Pubkey rotation mechanisms, threats, and use cases

This is such a cool project, and I'm really excited to see how this develops! The planned design for identity and re-homing is especially interesting to me.
As I understand it, the design document's mechanism for pubkey rotation is that a new database (I'll call it V2) appears and declares itself to be the successor of the previous database (I'll call it V1), and the DNS-ID authority corroborates this declaration, presumably at the request of the entity which had write access to V1. After the declaration and the corroboration, followers can trust V2.

Use case: this sounds like it could be useful for revoking V1 if its private key is accidentally destroyed or compromised, because followers can just ignore new records in V1 once V2 appears and the DNS records are updated.
Threat: would it be possible for someone with control of the DNS-ID authority to create V2 and, by manipulating the DNS records, unilaterally mislead followers into thinking that V1 is transitioned/revoked?
Possible countermeasure: perhaps followers could require that V1 update itself with a declaration that V2 is its successor; so V1 must corroborate the declarations of V2 and the DNS-ID authority. However, this would make the pubkey rotation mechanism ineffective against a stolen private key. Maybe it could still be useful for accidental destruction of V1's private key: V2 can be created around the same time as V1, and V1 can declare ahead of time that V2 is its successor, but V2 doesn't yet declare that it is V1's successor. Then, after V1's private key is lost (but assuming V2's private key hasn't been lost), V2 can declare itself as the successor, and the DNS-ID authority can corroborate this too. If instead V1 was not lost but V2 became compromised, then V1 could simply declare some other database as its successor.

We could also generalize this mechanism: instead of (or in addition to) using DNS records as corroboration, followers could require corroboration from other hypercores (which would be writable by other users or by other entities which can act as custodians). V1 could declare its trust in these other pubkeys ahead of time, and followers can trust V2 once some threshold number of V1's trusted custodians declares that V1 is succeeded by V2. Perhaps that threshold could also be specified by V1 ahead of time.
I'm really new to all of this so I've probably missed some important information, and I'd love to hear thoughts about any of this!

Thanks for the thoughtful writeup!
The weakness you're identifying is that the DNS-ID provider is a unilateral identity authority. The generalization is right; you need to apply some kind of "added authorities" model which confirm a change. This could be other cores that the user makes, or the cores of other users.
Users rarely take precautions so this is mostly a UX issue. Questions to explore are:

Is there a way to make this process seem worthwhile, simple, and interesting, so that users don't perceive it as a chore?
Is it possible that the precautions are only really needed for accounts with a higher security need?
Are there other, better mitigations than adding authorities? For instance, could we make domain-names a viable form of identifier (pfrazee.com rather than pfrazee@server.com)? Would such a thing be more effective? etc

tl;dr of incoming wall of text:

If URLs are constructed like<EMAIL_ADDRESS>and shown like<EMAIL_ADDRESS>on the user profile, how important are impersonation risks of someone else registering as<EMAIL_ADDRESS>after a rehoming? Or registering as something like<EMAIL_ADDRESS>(with capital-i instead of lowercase-L in the name) or<EMAIL_ADDRESS>Having server-curated name indices and allowing users to select which indices they will use is an interesting possibility which could address this and the unilateral identity authority problem. It adds some complexity but maybe it's worthwhile and interesting enough? I'm not sure, and I think we can adjust simplicity vs. flexibility while still solving the unilateral authority problem, which is why I have such a lengthy analysis below.
If the DNS-ID provider is independent from the server with write access to the database, and the URLs of both servers are stored in the database, would that reduce the number of situations where someone would want to change the DNS-ID? By separating responsibilities, then the DNS-ID provider only exists to give names for URLs and displaying to users, while everything else goes to the database-writing server in the database resolved by the DNS-ID provider.

--
I thought a bit more about the properties of different schemes for specifying identity, for the use case where private keys live on third-party servers - which is probably the only really usable approach for the near future - and I think there's a centralized-to-distributed spectrum of approaches between the extremes explored in the comments above:
The Extremes
1: strong authority, one authority per database: this is the DNS-ID system currently described in design.md. The only way to respond to identity theft via a compromised server is to fork the identity and resolve the competing claims of identity socially (i.e. by talking to followers from the new account). And other servers all depend on the DNS-ID provider - so if I want to rehome from ctzn.one to ctzn.two, I'd need to make sure that anyone who posted a link to me or any post I made using<EMAIL_ADDRESS><EMAIL_ADDRESS>etc., should update their link to use<EMAIL_ADDRESS><EMAIL_ADDRESS>etc., and I'd need ctzn.one or ctznry.com, hikers.ctzn, etc., to prevent anyone else from re-registering as<EMAIL_ADDRESS>and impersonating me.
2: strong authority, more authorities per database but only one authority in practice: a database self-declares the "added authorities" who confirm its identity, and followers use that list as their source of truth. But the server can always be made to change the database's list of authorities by a malicious actor. So this scheme has the same consequences if the server is compromised, at the cost of more complexity. Not good.
3: very weak authorities, very many authorities shared very locally: every person is their own local identity authority - this is the petnames system. If an identity needs to be changed for whatever reason (a private key is destroyed or leaked, or a pubkey is rotated under normal circumstances), a person needs to notify the people around them who trust them, and then have those people announce this. Identities are always resolved socially, not just when there are competing claims. I think dealing with petnames would feel like a chore if we rely mainly on people to curate databases of petnames and build consensus all the time. This scheme may also have ethical concerns, e.g. if someone changes names, the petnames assigned to them could be used to deadname them, even if they create an entirely new profile.
An In-Between Approach
4: socially-determined strength & number of authorities, shared across servers (probably follows a power law-esque curve): every person chooses a set of subscriptions to indices of names (i.e. directories of people and communities) curated by various servers. This is a different take on the petnames system, with a more dynamic "interplay between [server] authority and individual authority" in naming databases than approaches 1 or 3:

Each server has one or more indices listing the name(s) of each pubkey registered in the index, and the same pubkey may be on multiple servers. Different indices may have different policies for trusting name registrations or updates, or naming rules; the server just curates each index, and then other people decide how credible/useful they are by either subscribing to them or not. A server could have multiple indices for different trust levels (cf. Ubuntu's main, universe, restricted, and multiverse package indices).
When a user joins a server or community, it could auto-suggest a few indices to subscribe to. Users subscribe to the name indices they trust and care about, and this process could contribute to a feeling of realizing the existence of people around them as they are introduced to names/communities from other servers, at a self-set pace.
If a user only subscribes to a big, centralized server's default name indices and never feels a need to subscribe to other indices, that's fine too; the door's always open. But for people who start their own servers for small or special-interest communities, I think there's value in being able to build a local shared namespace while reusing the same user profile as on other servers.
When a user/community database is shown to a user, the user will see all registered names for the database's pubkey, from the name indices which the user is subscribed to. Maybe they could also check the pubkey's registered names from other known but untrusted indices, e.g. indices trusted by other users from their server.
If a user/community database isn't on any of a user's subscribed indices, the database's self-proposed name, such as a DNS-ID and a display name, is shown but marked as untrusted/unknown. The database's "profile page" could also list some indices where it claims to be registered, and users can decide whether to subscribe to those.

I think this could be flexible and reasonably interesting and easy for users to get started with, while also formalizing a mechanism to socially resolve identity. It reminds me of Cabal's subjective moderation system, but with less granularity, and for naming rather than ignoring:

If I never interact with anyone from another server, which is probably true when someone first joins ctzn), I don't need to worry about name indices. And if my server is for a tight-knit community, I can very easily see who's an outsider.
If someone isn't on many of the indices I trust, I will be shown this so I can make an informed decision. If I hear that an index I subscribe to is acting suspiciously, I can unsubscribe or post about it.
People online will always need to weigh if someone is who they claim to be, so we might as well make that process transparent in the user experience (maybe?). Usually the stakes are very low, and checking/unchecking a box to subscribe to a name index or hovering over a name to see someone's other registered names feels like a proportional amount of opt-in effort. But if e.g. someone's trying to do phishing through impersonation on a DNS-ID abandoned by rehoming, then the name index and in-group vs. out-of-group implications can be very useful ambient warnings.
When I rotate pubkeys, I need to change registration on all indices where it's worth the effort to ensure that other people can verify that the same person is behind two pubkeys. The name index could record this as a pubkey redirect and the server would render other records accordingly.
If people on other servers have me listed under the server's indices, they already know me through those names and URLs, so changing DNS-ID providers is less disruptive. If I rehome but ctznry.com and hikers.ctzn already had me on their name indices (one using standard usernames, the other using heroku-style autogenerated names), then I was already accessed by users of those servers through https://ctznry.com/user/ethanjli and https://hikers.ctzn/permauser/sleepy-egret-3967. Other sites which don't have me on a trusted index could even keep an index of untrusted DNS-IDs accessed by its users and continue reserving them, e.g<EMAIL_ADDRESS>and<EMAIL_ADDRESS>would both work after I rehome; and if someone else tries to impersonate me, they might be given<EMAIL_ADDRESS>instead
Since the DNS-ID provider listed on my database is only ever displayed as a fallback name and in URLs and has no other function (assuming the DNS-ID provider is separate from the server which holds my private keys and writes to my database for me), rehoming may be unimportant and only very rarely useful (e.g. if the DNS-ID provider stops running).

More In-Between Approaches
Comparing approaches, I think approach 1 is basically like approach 4 with the following constraints added:

each server shares the same two name indices: the DNS IDs of the databases, and the index of display names. Both are just looked up from databases, rather than being stored on their own. All together, these are globally shared indices.
every person automatically trusts/subscribes to their server's name indices, and there's no unsubscription, since there are only two name indices and each is a singleton.
a database can only associate itself with at most one DNS-ID name index and one display name index. No other names or name indices.
servers use the globally unique DNS-ID name index to present pubkeys to users (in URLs and displays).

If we want to give more flexibility/forkability of name indices (e.g. communities can make name indices, or users can make private or public name indices, or name indices can themselves be named by name indices), we'll get more complexity in the usability (e.g. if a user subscribes to 100 name indices, how does that get displayed? what if there's a deep level of recursion in naming?). Adding flexibility could support the village scale of interactions within a larger server better, e.g. a group of friends making a community and having their own names for each other without having to start and run their own server. Increasing constraints (e.g. servers can make their own name indices, and every user on the server sees names using those indices and no other indices, and the same user can log in on any server) could streamline the user experience more. In any case, it looks like we can tune the dial by adding constraints or relaxing constraints on the administration of name indices.

During the CTZN livestream for April 21 around timestamp 05:33:40, @pfrazee shared his thoughts on identity authority in a discussion with @redsolver. Paul's apparently had this conversation many times and people keep bringing up the same things 😅. So, since there'll probably be more people in the future wanting the same discussion, here's my summary of what Paul said:

So far, the proposed solutions Paul's heard for removing hierarchy of authority introduce too many other issues. For example, if a system just uses personal petnames and there are no global names, then there are no global IDs; then linking things by names becomes unusable. So there's a need for a uniform identification scheme which is global to all interactions among a set of users.
Profiles do have globally unique pubkeys, but people need shortnames for user IDs. Relying on pubkeys as the primary user identifiers prevents URLs from being shared easily out-of-band (e.g. saying the URL of your own profile out loud to other people), which is a big problem.
CTZN's approach is to use hierarchy of authority but provide other mechanisms to enable recovery when that fails. This is a hybrid approach using DNS-IDs as a global naming scheme for user IDs, combined with records of name mappings distributed across the social graph where every published record (e.g. comments) lists both the user ID and the database URL. The latter mechanism enables search. So CTZN has a system of two overlapping identifiers, which should allow resolving who someone was at some point if the DNS-ID gets lost, which is needed to transfer an identity.
TBD: how seamless should rehoming be? Is it good enough to make a new account on a new server and point to the old account and just announce a transition? Or is it necessary to be able to magically transfer an account between homeservers?
It's not clear that the benefits of blockchain-based domain IDs (which allows user IDs to persist beyond an individual service) outweigh the issues (requiring users to pay for IDs) compared to DNS-IDs.
Paul's considering letting users register domain names as their user IDs, as an optional alternative to the email address-style user ID format.
One thing which is interesting about Keybase's approach is that it separates identity providers from hosting providers - this approach might make rehoming a bit more straightforward.

I basically agree with what Paul says, and I propose closing this issue as out of the scope of the core of CTZN due to the plan for frontend customization:

I'd love to be able to have my own domain name as my user ID, without having to host all my databases. But I agree that domain names as user IDs is a niche use case, because users would have to pay for a domain name.
I really like the idea of separating DNS-ID providers from db hosts, even more than in my previous comment. If I'm unhappy with the uptime of a db host (or if they change their pricing policy, or whatever) and want to change to a different host, I only have to do a pubkey rotation instead of also having to migrate away from the DNS-ID everyone previously knew me as. This is a big problem I have with Mastodon, where if I need to change the server hosting my data then I can't keep my name. To me, this seems like a big win: even if changing names is hard, maybe changing hosts can be seamless.
I agree with the need for shortnames so that profiles are globally shareable & findable independent of the social graph (and without forcing users to run a search, which, based on my experience with searching people by their display name on Facebook, isn't even reliable), and DNS-IDs are a good approach for this. This need exists whether or not other naming systems (e.g. petnames or display names) are available.
Whether or not DNS-IDs or other globally unique names are used, there needs to be a way to look at the social graph and/or do some searching to verify that a profile, after being resolved from some name, actually belongs to the person it claims to be. This acts as a mitigation for unilateral identity authority, hacking, catfishing, etc., and it's a separate problem from resolving names into profiles. Right now checking the social graph looks like inspecting a profile's followers list and interactions - if they haven't hidden those things with a custom profile. My above proposal, of community-published lists of users/communities whose profiles they vouch for in some way, would be an opt-in way to structure social information about a profile's authenticity and subject it to curation/moderation. Would it work and be useful? Idk. But it wouldn't replace DNS-IDs, and that's fine because they're trying to solve different problems. Could we get the best of both worlds by combining DNS-IDs for locating profiles (solving the discovery problem) with easy-to-use search or frontend features to contextualize the located profiles (providing tools for the authenticity problem)?
If frontend customization supports annotating profiles with data from custom community-published indices or from data currently in the social graph, then functionality like what I've proposed doesn't have to be baked in to CTZN, which leaves room for flexibility and experimentation. Then the issue of enabling verification of a profile's authenticity (for any number of possible reasons beyond a compromised DNS-ID provider) could be in the scope of frontend customization + new schemas, rather than the core of CTZN. Maybe this is the right approach, since the proposed verification mechanisms are still unproven. If so, should we close this issue?


cookies : cookies.txt doesnt work with python code!

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question
It seems youtube-dl.extract_info doesn`t recognize cookies.txt as a payload option.
a simple example:
#!/usr/bin/env python3.9
# -*- coding: utf-8 -*-

from youtube_dl import YoutubeDL as ytdl

ydl_Opts = { 'cookies': 'cookies.txt',}
link='https://a youtube video require sign in '

with ytdl(ydl_Opts) as ydl:

    result = ydl.extract_info(link, download=False)

result : DownloadError: ERROR: Sign in to confirm your age
This video may be inappropriate for some users.
cookies works fine  when i use command line like :
 youtube-dl -F --cookies=cookies.txt 'https://a youtube video require sign in'
any clue / suggestion to this issue ?? thanks!

According to the class documentation for YoutubeDL, the option is named cookiefile as a property passed to the class constructor
So:
ydl_Opts = { 'cookiefile': 'cookies.txt',}

.


Question about PanResponder and Views

So, I'm trying to modify the code a bit such that instead of the panhandler being attached to the frontscreen, I'd like to have it attached to the menu itself. I'd transform the menu to have a -x axis equal to its width by default. However, if I tie the panhandler to the menu, then I'm afraid that I won't be able to actually touch the panhandler, as it'll be off screen. Is there any way to extend the pan handler such that it will still be on screen enough for me to use? (Would I have to have another wrapper view that has a little overlap with the screen? Or is there a better mechanism for this).
I'm basing this question off the assumption that the PanResponder is tied to the Animated.View that we tie it to.

If you want to animate menu - you would have to move this:
https://github.com/react-native-fellowship/react-native-side-menu/blob/master/index.js#L193
to https://github.com/react-native-fellowship/react-native-side-menu/blob/master/index.js#L218
React.cloneElement(menu, {
   style:  { //animated, don't forget to make your `menu` Animated.View }
});

If you need such behaviour, I'd strongly recommend https://github.com/root-two/react-native-drawer as it looks like that's what you are trying to achieve.

haha that's exactly what i'm looking for! Thanks!
Just wondering though, for panresponders tied to views, do touches only register within that view itself? So If I had a view that was offscreen, there'd technically be no way to touch that particular responder?

You're right, there's no way to touch on that responder if it's offscrean.


Fix resync period to be configurable and change default to 10m

What this PR does / why we need it:
Fix resync period to be configurable and change default to 10m
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

A bug that the value of the flag `--resync-period` was not respected is now fixed.

The default value of the resync period is changed from `60m` to `10m`.

/cla


Detect if a field was hidden in afterInit event

Hey,
I'm currently adding some data in my afterInit event. It currently looks like this:
Posting.js
afterInit(e) {
  const doc = e.currentTarget;
  doc.userDoc = User.findOne({_id: doc.userId});
}

Because of some performance improvements, I want to disable the loading of the user document. I know that I can disable events via options, but there may be some other code, which still should run. So I want to create a query like this:
Posting.findOne({},{fields:{userDoc:0}});

Now the problem happens: I'm not able to get the options parameter within the afterInit event, so I'm not able to detect if I had disabled the field. After reading the documentation, I found out, that the afterFind event could help. Because it also returns the result, I could add the userDoc object if it wasn't disabled in the options. That works fine if I do a findOne(), but will fail if I do a find().fetch(), because in this case, result returns a MongoCursor instead of the result array.
So, what would be the best way to attach additional data depending on the options?

I wouldn't rather use afterInit/afterFind for this purpose. It's better to create a method that would take a boolean argument. If it's set then it will fetch and store related document in the main document.

Hey,
thank you for the quick response. Adding an own method like findWithRelations was my first thought, but normally it is easier to load all relational data with the object, so other members of the team will not forgot, that they have to use this method instead of find(). There is currently just one case, where the userDoc is useless (preview function), and that's why I want to add the condition.
I'm just wondering about the afterFind event. The docs are saying, that we can modify the results in that event. But result is a MongoDB cursor and doesn't return the docs array. Is there another prop where the results are saved?

It's just a limitation of this system. Fixing it would be really hard. The userDoc is not really a part of the original object so it's bad design decision to use fields for that. You should really use method for that.


CMD+L doesn't work once chat is started

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS: MacOS
- Continue version: pre release
- IDE version: VSCode
- Model: NA
- config.json:

Description
CMD+L doesn't work when you have already started a chat and then try to start another chat by adding block context.
To reproduce

Start a regular chat with few back and forth messages
From the editor add a code block using CMD+SHIFT+L to the chat
Then try to start the new chat by CMD+L along with the attached code block context.

Log output
No response

@priyashpatil I think what's happening is that we're not recognizing cmd+L when the cursor is already inside of the input box. Is this consistent with what you're seeing?

@sestinj Can confirm: if input is focused then cmd+L doesn't work.
Also there another related bug, duplicating added context:

Add a code block context cmd+shift+L to existing chat
Focus out of input (click outside of input).
Then cmd+L would start a new chat but it will duplicate the attached code block context.

@RomneyDa the new pre-release has fixed the above mentioned bugs but there's another related bug:

Start a new chat
Add code context CMD+SHIFT+L
Then add another code context CMD+SHIFT+L
Then press CMD+L

This closes the char sidebar and this seems to be issue on only new Chats.

@priyashpatil was able to duplicate
I kind of feel like this should be normal behavior, and that in this case if people want to clear the box they should just hit delete or cmd + delete
I guess the question is if you had just pulled some code into the chat with Cmd + shift + L and then you hit CMD + L, would you expect it to start a new session with no input? Or to start a new session without changing the input? My intuition is with the new input, because anything in the input feels "unsaved", and to delete it you should manually hit delete (cmd L saves last session)
Thoughts?

@RomneyDa if CMD+L is supposed to start a new chat but if already on a new chat, I think it should ignore the keystroke instead of closing the chat window.


grit-cli apply usability with patterns provided inline

At the moment, it's inconvenient to use grit apply / check with patterns provided inline.
If the syntax were a bit more convenient, i'd probably replace my usage of grep  for basic searches
For example, I'm trying to find occurrences of __fields__? Should I use apply or check?
grit apply  ``'`__fields__`'``

You should use apply. grit check is for linting/checking patterns you have enforced in your .grit directory.
Note that you need to specify the language. This is what you're looking for:
grit apply --lang python '`__fields__`'


[fix] free memory pool in rtmp core/live server conf

When this module is built with ASAN, running it wil receive several
memory leak reports:
Direct leak of 48 byte(s) in 1 object(s) allocated from:
    ...
    #3 0xd6e96a in ngx_rtmp_live_merge_app_conf /home/vagrant/git/nginx-http-flv-module/ngx_rtmp_live_module.c:275:18
    #4 0xd06a87 in ngx_rtmp_block /home/vagrant/git/nginx-http-flv-module/ngx_rtmp.c:283:22
    ...

Direct leak of 48 byte(s) in 1 object(s) allocated from:
    ...
    #3 0xd3edc7 in ngx_rtmp_core_merge_srv_conf /home/vagrant/git/nginx-http-flv-module/ngx_rtmp_core_module.c:407:22
    ...

This fix is expected to mute the report.

Would you please test what I commented?
Thank you very much!

@winshining
Thank you!


Use str.zfill() instead of str.rjust(.., '0') to be more explicit

We are filling the string with possible leading zeroes so we can directly use
str.zfill() instead of str.rjust(..., '0'), the former IMHO is more explicit
and easier to read (and we save a couple of bytes too in both README.md and
mintotp.py!).
Except when there is a possible leading sign prefix (+ or -) they
are equivalent.

All failing checks on Travis CI seems unrelated to the changes of this PR (I have only run gmake checks though), if I am not missing something.
If in some way this change introduced some regressions please let me know!

Thank you for sending this pull request.
The build errors on Travis CI were unrelated to this pull request. There were two different errors occurring with different versions of Python. One was a bug in Makefile which I have fixed in commit bfeab401bc10032cd31f042b29edc701a9128779. The other was an issue due to Travis CI's virtual Python environment bundling an old version of indirect dependency. I have pushed a workaround for it in commit 0eea21d8a1fa580ddae2b298bba740985ec24172. The build is succeeding now.

Thank you very much @susam!


CPU Usage is too high in v1.6.4

Describe the bug
I'm glad to see the performance improvements related to my work noted in the release notes. Unfortunately, in actual usage, I only saw the CPU utilization increase by 7-8 times without a corresponding improvement in performance. I tried running several tasks and, although I did not measure precisely, I couldn't notice any performance enhancement.
Additionally, in the screenshots of both versions, the cluster was idle, yet the CPU utilization for System+User was as high as 70%-90%, which is unacceptable to me. In contrast, it was around 10% in version 1.6.3.
To Reproduce

Set up a simple cluster as listed in some tutorial in v1.6.3.
Upgrade OrbStack to v1.6.4.

Expected behavior
The low CPU usage as in v1.6.3

Diagnostic report (REQUIRED)
OrbStack info:
Version: 1.6.4
Commit: 90e832a0f4c6787bd028dc4efcd9c98cd5a2bc3d (v1.6.4)
System info:
macOS: 14.5 (23F79)
CPU: arm64, 10 cores
CPU model: Apple M1 Max
Model: MacBookPro18,2
Memory: 32 GiB
Diagnostic report failed: get presigned url: Post "https://api-license.orbstack.dev/api/v1/debug/diag_reports": dial tcp: lookup api-license.orbstack.dev: no such host

Screenshots and additional context (optional)
No response

Why was this closed?


Cut a 0.7.1 release

We have several fixes in git which podman could make use of ( https://github.com/containers/gvisor-tap-vsock/commit/4c6193e834df39be1899330ee459f49372d5cd1c , https://github.com/containers/gvisor-tap-vsock/commit/49a1f884c7cc7138f1c32737e2485727d16ebbbe ), I'm planning to make a 0.7.1 release very soon now.

Just did this!


Update completion.md

The old docker-zsh-completion repo is deprecated.
Please switch to the ZSH completion from Docker .

Hi, @victor23d , the old docker-zsh-completion repo  may be deprecated, but you are attempting to replace command completion for Docker Compose. That script is not deprecated:
ZSH Command Completion

Docker Compose: https://raw.githubusercontent.com/docker/compose/1.20.1/contrib/completion/zsh/_docker-compose
Dockerd: https://raw.githubusercontent.com/docker/cli/master/contrib/completion/zsh/_docker

I'm going to close this PR but feel free to reopen if you think I am wrong.

cc: @shin-

@gbarr01  You are right.


fix issues related to using static=true in api.add_route() and static_route in responder.API()

In responder 2.0.3, Using static=true in api.add_route() and static_route in responder.API() had some issues:

static=true would always return "Hello world !"
After fixing the above, when using static=true, if index.html required other resources (such as index.js), responder would return a 404 (because the GET request would use the route /index.js). Alternatively, specifying static_route to be / would result in a 404 for trying to get index.html because responder would check the static files mounted app first

This PR provides these issue in the following ways:

_staic_response() returns the contents of index.html (as is intended)
Router's __call__ checks routed added by add_route (or @api.route) first. This allows for the default static route to return index.html via _static_response(), and for additional resources required by index.html to be returned via the static files mounted app

Hey @daphil10, thanks for catching it up :D
Regarding the before_requests, it's the desired behavior we check for the submounted apps first, I will merge your PR once the related commit is removed,
+1 For the explicit commits :D

I'll remove it if it's needed, but first let me try to spell out my use case & issue more to see if there's a solution to my problem. It's possible I'm doing something wrong with my setup.
The motivation for moving before_requests and checking the submounted apps first was related to an issue of an index.html requiring other static assets while also using the default route. For example:
<body>
    <script src="index.js"></script>
</body>

would work with the following:
import responder
api = responder.API() # static_route is '/static'
api.run()

and browsing to localhost:5042/static/html. But would break with:
import responder
api = responder.API() # static_route is '/static'
api.add_route('/', static=true)
api.run()

because fetching index.js would not go through static_route (via /static/index.js) but instead /index.js. The alternative is to do this:
import responder
api = responder.API(static_route='/')
api.add_route('/', static=true)
api.run()

but then the issue is that localhost:5042 will try to find / in Starlette's StaticFiles app attached as a submount, instead of going to the add_route defined / first.
Is there a way to get this setup to work? Or is there another place (like a middleware) that could be added to get it to work?

Alright I see, thanks @daphil19, sorry I've been a bit busy


order summary should contain the applied coupon code details

Bug report
Title
order summary should contain the applied coupon code details
Issue Description
order summary should contain the applied coupon code details
Preconditions
Please provide as detailed information about your environment as possible.
1. framework Version- master

Steps to reproduce
1. step1- place an order by applying to coupon code
2. step2- go to customer-> view order (their is no detail about applied coupon code)

Expected result
applied coupon code should be display with discount amount in customer order summary
Actual result
coupon code details is not display in customer order summary

Tell us what happens instead.

[points....]

need to be implemented for velocity theme also https://prnt.sc/thltpg

This issue is already fixed in the velocity theme as well.

Fixed in master - https://prnt.sc/tqzx0m


Derek/doc enhance

Wrapped up current version of documentation updates

Codecov Report

Merging #91 (abb66c7) into v0.1.9 (374e484) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##           v0.1.9      #91   +/-   ##
=======================================
  Coverage   95.05%   95.05%
=======================================
  Files          14       14
  Lines        2325     2325
=======================================
  Hits         2210     2210
  Misses        115      115

Impacted Files
Coverage Δ

gnss_lib_py/parsers/navdata.py
100.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Discourse reverts notification email every time

Describe the bug
Every time I rebuild my server, the notification email got reset back to<EMAIL_ADDRESS>I searched around and found the root cause of the issue being https://github.com/discourse/discourse/blob/main/db/fixtures/990_settings.rb
Discourse uses site_settings.yml as default for options, whereas the discourse module in nixpkgs use it as the final configuration.
And that database fixture then revert the setting back on every deployment.
I can confirm removing that fixture fixes this issue.
Steps To Reproduce
Steps to reproduce the behavior:

set notificationEmailAddress and deploy

Expected behavior
notification email address doesn't change.
Notify maintainers
@talyz

Thanks for reporting this! Can you try out #140133 and see if it fixes the problem?

Sure, I will try when available. I looked at the change, it should work great. But if upstream defaults change, it will break though.

Yeah, while the risk of that happening seems pretty low, maybe it would be best to just remove the file altogether - it doesn't seem to fill any function for us anyway. I'll do that instead.

Yes. We have already got our own default for notification email, so removal should just be fine.


ppa-website: some optimizations and redesign

This PR does 3 things:
1 – Does some optimization to reduce index.html size.
2 – Adds a “Copied successfully” splash after a user clicked on the button to copy commands.
3 – Redesigns this page to make it darker.

Thanks, @regularenthropy !


Change import in Getting Started

This PR changes the import in the Getting Started guide to createMachine (it's Machine right now) and adds a note about the fact that the Xstate Viz only works with Machine.
For me, one of Xstate's learning curves is that there's a few ways to do things, and sometimes you're not sure if what you're doing's better or worse, or if it makes no difference. In this case I'm pretty sure createMachine is the new way of doing things, and I'd rather newcomers know that upfront, then warn them about the Xstate Viz.
I know you wanted more beginner-friendly tutorials, but I picked this as my first PR just to get started 'cause it seemed pretty easy. @davidkpiano thoughts? Thanks!

Now that I'm reading this docs now, this change seems to have been implemented elsewhere, so closing out!

Now that I'm reading the docs again again now, I'm realizing half of this PR was implemented. Machine is still at large in the doc here, though not the code blocks:

Happy to submit another issue/PR to fix that; let me know what the best course of action is.

@jtoar I'd happily accept a PR that fixed instances of Machine that are still at large 👍


panic: runtime error: index out of range

i get this error , i'm don't have a good knowledge with go
panic: runtime error: index out of range
goroutine 1 [running]:
panic(0x61b5e0, 0xc420012130)
/usr/lib/go/src/runtime/panic.go:500 +0x1a1
main.main()
/home/mast3r/goscan/scanner.go:38 +0x1f0

i update the code and readme.md. there is no exist target file before, and i add wordpress.txt, now you can try it. if you want to custom it , maybe you need to write some golang by yourself.


"intel-onevpl-22.2.0" build fails due to compiler errors (GCC v11.2)

System information

Ubuntu 21.10 container i.e. GCC/G++ v11.2.0
Latest release tags of the dependencies (libva, gmmlib, media-driver, MediaSDK, oneVPL), as of 2022-02-08

Issue behavior
Describe the current behavior
cmake -LH -Wno-dev -G Ninja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release .  &&  ninja
...
[103/385] Building CXX object _studio/shared/mfx_logging/CMakeFiles/mfx_logging.dir/src/mfx_utils_logging.cpp.o
FAILED: _studio/shared/mfx_logging/CMakeFiles/mfx_logging.dir/src/mfx_utils_logging.cpp.o
/usr/bin/c++ -DLINUX -DLINUX32 -DLINUX64 -DMEDIA_VERSION_STR=\"22.2.0\" -DMFX_API_VERSION=\"2.6+\" -DMFX_BUILD_INFO="\"Linux-5.4.0-97-generic 5.4.0-97-generic | GNU 11.2.0 | glibc 2.34\"" -DMFX_DEPRECATED_OFF -DMFX_GIT_COMMIT=\"c03cd8d\" -DMFX_ONEVPL -DMFX_VERSION_USE_LATEST -DMSDK_BUILD=\"\" -DNDEBUG -DONEVPL_EXPERIMENTAL -DSYNCHRONIZATION_BY_VA_SYNC_SURFACE -D_FILE_OFFSET_BITS=64 -D__USE_LARGEFILE64 -I../_studio/shared/mfx_logging/include -I../api/vpl/mediasdk_structures -I../api/vpl/include -I../_studio/shared/include -I../_studio/mfx_lib/shared/include -I. -I../api/vpl -I../api/vpl/../mediasdk_structures -I../api/vpl/private -I../contrib/ipp/include -I../_studio/shared/umc/core/vm/include -I../_studio/shared/umc/core/umc/include -I../_studio/shared/umc/core/vm_plus/include -isystem /usr/local/include/libdrm -isystem /usr/include/valgrind -O3 -DNDEBUG -fPIC -Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-unused -std=gnu++14 -MD -MT _studio/shared/mfx_logging/CMakeFiles/mfx_logging.dir/src/mfx_utils_logging.cpp.o -MF _studio/shared/mfx_logging/CMakeFiles/mfx_logging.dir/src/mfx_utils_logging.cpp.o.d -o _studio/shared/mfx_logging/CMakeFiles/mfx_logging.dir/src/mfx_utils_logging.cpp.o -c ../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp
In file included from ../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:21:
../_studio/shared/mfx_logging/include/mfx_utils_logging.h:46:13: error: 'shared_ptr' in namespace 'std' does not name a template type
   46 | extern std::shared_ptr<std::FILE> gMfxLogFile;
      |             ^~~~~~~~~~
../_studio/shared/mfx_logging/include/mfx_utils_logging.h:32:1: note: 'std::shared_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?
   31 | #include <sstream>
  +++ |+#include <memory>
   32 |
../_studio/shared/mfx_logging/include/mfx_utils_logging.h: In function 'void MfxLogPrint(Args&& ...)':
../_studio/shared/mfx_logging/include/mfx_utils_logging.h:156:18: error: 'gMfxLogFile' was not declared in this scope; did you mean 'gMfxLogMutex'?
  156 |     FILE* file = gMfxLogFile != nullptr ? gMfxLogFile.get() : stdout;
      |                  ^~~~~~~~~~~
      |                  gMfxLogMutex
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp: At global scope:
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:26:6: error: 'shared_ptr' in namespace 'std' does not name a template type
   26 | std::shared_ptr<std::FILE> gMfxLogFile = {};
      |      ^~~~~~~~~~
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:22:1: note: 'std::shared_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?
   21 | #include "mfx_utils_logging.h"
  +++ |+#include <memory>
   22 |
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp: In function 'void SetLogFileFromEnv()':
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:106:9: error: 'gMfxLogFile' was not declared in this scope; did you mean 'gMfxLogMutex'?
  106 |         gMfxLogFile = std::shared_ptr<std::FILE>(fopen(logFileName, "w"), fileDeleter);
      |         ^~~~~~~~~~~
      |         gMfxLogMutex
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:106:28: error: 'shared_ptr' is not a member of 'std'
  106 |         gMfxLogFile = std::shared_ptr<std::FILE>(fopen(logFileName, "w"), fileDeleter);
      |                            ^~~~~~~~~~
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:106:28: note: 'std::shared_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?
../_studio/shared/mfx_logging/src/mfx_utils_logging.cpp:106:48: error: expected primary-expression before '>' token
  106 |         gMfxLogFile = std::shared_ptr<std::FILE>(fopen(logFileName, "w"), fileDeleter);
      |                                                ^
...
[148/385] Building CXX object _studio/mfx_lib/decode/CMakeFiles/decode_hw.dir/__/__/shared/umc/codec/h265_dec/src/umc_h265_nal_spl.cpp.o
In file included from /usr/include/c++/11/algorithm:61,
                 from ../_studio/shared/umc/core/umc/include/umc_defs.h:41,
                 from ../_studio/shared/umc/codec/h265_dec/src/umc_h265_nal_spl.cpp:21:
In static member function 'static _Tp* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(const _Tp*, const _Tp*, _Tp*) [with _Tp = unsigned char; bool _IsMove = true]',
    inlined from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = true; _II = unsigned char*; _OI = unsigned char*]' at /usr/include/c++/11/bits/stl_algobase.h:495:30,
    inlined from '_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = true; _II = unsigned char*; _OI = unsigned char*]' at /usr/include/c++/11/bits/stl_algobase.h:522:42,
    inlined from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = true; _II = unsigned char*; _OI = unsigned char*]' at /usr/include/c++/11/bits/stl_algobase.h:529:31,
    inlined from '_OI std::copy(_II, _II, _OI) [with _II = std::move_iterator<unsigned char*>; _OI = unsigned char*]' at /usr/include/c++/11/bits/stl_algobase.h:620:7,
    inlined from 'static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<unsigned char*>; _ForwardIterator = unsigned char*]' at /usr/include/c++/11/bits/stl_uninitialized.h:110:27,
    inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<unsigned char*>; _ForwardIterator = unsigned char*]' at /usr/include/c++/11/bits/stl_uninitialized.h:151:15,
    inlined from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<unsigned char*>; _ForwardIterator = unsigned char*; _Tp = unsigned char]' at /usr/include/c++/11/bits/stl_uninitialized.h:333:37,
    inlined from '_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = unsigned char*; _ForwardIterator = unsigned char*; _Allocator = std::allocator<unsigned char>]' at /usr/include/c++/11/bits/stl_uninitialized.h:355:2,
    inlined from 'void std::vector<_Tp, _Alloc>::_M_range_insert(std::vector<_Tp, _Alloc>::iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const unsigned char*; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]' at /usr/include/c++/11/bits/vector.tcc:783:9,
    inlined from 'void std::vector<_Tp, _Alloc>::_M_insert_dispatch(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const unsigned char*; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]' at /usr/include/c++/11/bits/stl_vector.h:1665:19,
    inlined from 'std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const unsigned char*; <template-parameter-2-2> = void; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]' at /usr/include/c++/11/bits/stl_vector.h:1383:22,
    inlined from 'int32_t UMC_HEVC_DECODER::StartCodeIterator::GetNALUnitInternal(UMC::MediaData*, UMC::MediaData*)' at ../_studio/shared/umc/codec/h265_dec/src/umc_h265_nal_spl.cpp:239:30:
/usr/include/c++/11/bits/stl_algobase.h:431:30: warning: 'void* __builtin_memcpy(void*, const void*, long unsigned int)' writing 1 or more bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
  431 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h:33,
                 from /usr/include/c++/11/bits/allocator.h:46,
                 from /usr/include/c++/11/vector:64,
                 from ../_studio/shared/umc/codec/h265_dec/include/umc_h265_nal_spl.h:27,
                 from ../_studio/shared/umc/codec/h265_dec/src/umc_h265_nal_spl.cpp:24:
/usr/include/c++/11/ext/new_allocator.h: In member function 'int32_t UMC_HEVC_DECODER::StartCodeIterator::GetNALUnitInternal(UMC::MediaData*, UMC::MediaData*)':
/usr/include/c++/11/ext/new_allocator.h:127:48: note: at offset 3 into destination object of size 3 allocated by 'operator new'
  127 |         return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
      |                                  ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/ext/new_allocator.h:127:48: note: at offset [4, 9] into destination object of size 3 allocated by 'operator new'

Describe the expected behavior
Build succeeds.
Notes
Next Ubuntu 22.04 LTS release (Jammy) has the same GCC version: https://packages.ubuntu.com/jammy/gcc

@eero-t : thank you for catching this. We will fix.

Missing of std::shared_ptr is eventually easy. We've just missed #include <memory>.
Second issue is a problem. I think we stepped into https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100366. Fortunately it's a warning, not an error which might give us some time to resolve or workaround it.

#197 fixes the error and adds ci for gcc11, but it does not fix the warning.

Just having the error fix is fine!
Hopefully the fix goes in, and there's a new (tested) bugfix release tag soon, so that I can also run some (trivial) tests with this.
PS. Have there been any efforts on getting oneVPL + GPU backend to distros, as this is supposed to be MediaSDK successor?


compile enums as regexes, not grammars

We should try to compile enums into a regex if possible.
Size distribution of enum sizes below - there is on the order of 100 cases with more than 200 enum items (which will blow the parser), and even for smaller ones regexes will be faster.

Enum size
Num. schemas

1
1920

2
1293

3-4
1763

5-8
957

9-16
444

17-32
390

33-64
263

65-128
88

129-256
51

257-512
15

513-1024
8

1025-2048
2

2049-4096
6

4097-8192
1

@mmoskal do you know if these are mostly string enums?

among the non-synthesized cases:
  "enum:string_or_null": 3415,
  "enum:number_or_null": 143,
  "enum:boolean_or_null": 60,
  "enum:primitive": 44,
  "enum:mixed": 8

Where primitive means other combination of string, number, boolean, null.
The mixed cases are all weird.

just to do something quick and pragmatic -- it would be easy to rewrite the string enums as Schema::String variants with an alternation for the pattern. We could allow nullability by wrapping that in a Schema::OneOf -- would this take care of most or all of the "large" enums?

I would add is_const() method Schema, plus a const_val: Option<String> to Schema::String; then additional method const_compile() -> Option<String>; then when compiling AnyOf you check if they are all const and if so map with const_compile() and do an OR

Couldn't help myself #91 ;)

@mmoskal good man!! I'll take a look later :)


Tab screen is blank when switching to another tab

This is occuring in Terminus 1.0.73 running on Windows 10 1903.  When I switch back to a previously active tab, the screen is blank.
The screen will show new content, but the older content does not display.
If I can force the screen to scroll, the previous content will display.

The same problem also happened on the macOS Mojave

+1 on Windows 10

I think this is related to #773.  In any event, switching from xterm to hterm does fix the issue.
You have to do this in the config file since the UI doesn't exist for that option any more:
terminal:
  frontend: hterm

Duplicate of #729


Issue Report: /en-us/guides/reporting/v3/report-types/audience

Describe the bug
I query for the audience DSP report type with group by param ["lineItem", "order"]. I also attach the relevant fields associated with each of those group by values from the documentation.
I get this response:
Response: {'code': '400', 'detail': 'configuration columns includes invalid values: (lineItemName, lineItemId, lineItemComments, lineItemType, omsLineItemId, orderName, orderId, orderCurrency, omsProposalId)
Description of what the documentation currently says
https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/audience
I should be able to query for those values.
Description of what the documentation should say
Documentation should say it isn't updated yet.

Also, querying DSP reporting dspCampaign with ad for the groupBy filter doesn't work either.

Hi @albert-le-whoop
Thanks for the report! I'm not able to replicate your error, though. Can you post your full request body? For reference, here's mine:
{
        "name":"TEST",
        "startDate":"2024-05-05",
        "endDate":"2024-05-10",
        "configuration":{
            "adProduct": "DEMAND_SIDE_PLATFORM",
            "groupBy":["lineItem", "order"],
            "columns":["lineItemName", "lineItemId", "lineItemComments", "lineItemType", "omsLineItemId", "orderName", "orderId", "orderCurrency", "omsProposalId"],
            "reportTypeId":"dspAudience",
            "timeUnit":"SUMMARY",
            "filters": [{"field":"advertiserId","values":["......."]}],
            "format":"GZIP_JSON"
        }
    }

Response (after the successful request):
{
    "configuration": {
        "adProduct": "DEMAND_SIDE_PLATFORM",
        "columns": [
            "lineItemName",
            "lineItemId",
            "lineItemComments",
            "lineItemType",
            "omsLineItemId",
            "orderName",
            "orderId",
            "orderCurrency",
            "omsProposalId"
        ],
        "filters": [
            {
                "field": "advertiserId",
                "values": [
                    "..........."
                ]
            }
        ],
        "format": "GZIP_JSON",
        "groupBy": [
            "lineItem",
            "order"
        ],
        "reportTypeId": "dspAudience",
        "timeUnit": "SUMMARY"
    },
    "createdAt": "2024-06-18T21:08:19.786Z",
    "endDate": "2024-05-10",
    "failureReason": null,
    "fileSize": null,
    "generatedAt": null,
    "name": "TEST",
    "reportId": "123123123123",
    "startDate": "2024-05-05",
    "status": "PENDING",
    "updatedAt": "2024-06-18T21:08:19.786Z",
    "url": null,
    "urlExpiresAt": null
}

Same thing for the ad groupBy for the dspCampaign report type. My request goes through OK.


webpack err

Hi,
when i tried your  template with commands you specified, i get error when running webpack
and dotnet run.
Any other example how to run this?

May you specify your environment and version?

npm 5.5.1, dotnet 2.0

seems you didn't install webpack, if you do not want to install webpack globally, you can install it locally via:
npm install --save-dev webpack

same result, shoulnt you have command specified in project json?

sorry for the late reply, in fact the webpack command is not needed in order to run the code unless you want to pack the JavaScript code manually. aspnet-webpack package and the .net core JavaScriptService will pack the JavaScript code automatically during runtime. Since webpack 4 split the command line tool to package webpack-cli, you may need to install that package if you want to pack the JavaScript code by your own. I will update the Readme on next release, thanks.

still the same, its missing that main-server.js on build

Hey @Jack85 , sorry I forget to merge the PR. Please try again.

hanks, still the same \wwwroot\dist\main-server.js doesnt get created by me.

@Jack85 When the app run the first time, it may takes a few seconds to built the the ./ClientApp/server.js into ./wwwroot/dist/main-server.js. The same apply to ./ClientApp/client.js too. Once it did, you should see lines like'
info: Microsoft.AspNetCore.NodeServices[0]
        webpack built c91dc3e2f186f013c53c in 3212ms

in console.
I did delete the repo from my computer and did a clean clone from the master branch and start with
dotnet restore
npm install
dotnet run

and everything works.

Argh... one trick you may try is to set the ASPNET_ENVIRONMENT variable to 'Development' I just see that your environment is set to Production from your screenshot.

Where do you set it?
i think it might be connected to webpack that is installed locally only, dont want it global because of other projects.

if you are using window, you can set it via powershell:
 setx ASPNET_ENVIRONMENT Development

you can make sure the variable is set from System Properties -> Environment Variables...

thanks but do you really think it ll fix the missing file?

I think so, because what aspnet-webpack package does is to call webpack when it is in development environment.

so only in VS2017 it seems to start

If I click on message it takes long time to load but nothing appears

because you are running the project in visual studio it set the launching port to random available port number (i.e. 43497). In ./vuex/action.js the action assume you are launching the project at default port 5000, so either you set the launching port to 5000 in visual studio or edit http://localhost:5000/initialMessages  to http://localhost:43497/initialMessages and
http://localhost:5000/fetchMessages to 'http://localhost:43497/fetchMessages' respectively in action.js.

Correct, finally working in VS 2017.
How to make it work in vs code?

ok, found out just
dotnet restore && npm i


Build Enhancements

This PR contains the changes that I applied for creating the pip and conda packages.

Will this PR finally mean we can close #44, #45 and #46? That would be happy news!

#45 and #46 definitely, for #44, it seemed like he didn't have the correct boost libs?


Netmaster HA changes

This adds netmaster hot standby support.

Netmaster tries to take an etcd lock when it starts up. The one acquiring the lock is the leader and others are followers.
There can be any number of netmasters in the cluster. When current leader fails, one of the followers acquire the lock and become new leader.
Leader is responsible for making all state changes. Followers simply proxy all REST calls to current leader.
Netplugins detect the current leader using etcd and send all REST calls to current leader.
External clients(like netctl or web ui) can use either virtual-IP or loadbalancer to access netmaster's REST API.
All netmasters participate in ofnet route distribution in active-active manner.

Sumary of changes:

Restructure netmaster main package to introduce a master FSM(This includes leader lock mgmt).
Change netplugin to send REST requests to current leader..
Minor bug fixes in policy/rule handling.
Add test cases to test netmaster HA and switchover.
Add missing test cases on some of the policy features like match on IP address, match on network, ICMP etc..

Can i get an LGTM on this PR?


Add a test case to cover realtime table creation with diferent schem  name than the table name

Adding a test case to cover the case brought up in #2838.

Codecov Report

Merging #2840 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2840      +/-   ##
==========================================
- Coverage   69.25%   69.23%   -0.02%
==========================================
  Files         908      908
  Lines       43457    43457
  Branches     5898     5898
==========================================
- Hits        30095    30089       -6
- Misses      11354    11355       +1
- Partials     2008     2013       +5

Impacted Files
Coverage Δ

...kedin/pinot/core/util/SortedRangeIntersection.java
83.82% <0%> (-7.36%)
:arrow_down:

...r/helix/SegmentOnlineOfflineStateModelFactory.java
57.73% <0%> (-6.19%)
:arrow_down:

...mpl/dictionary/DoubleOffHeapMutableDictionary.java
72.72% <0%> (-5.46%)
:arrow_down:

.../impl/dictionary/LongOffHeapMutableDictionary.java
81.81% <0%> (-5.46%)
:arrow_down:

...e/operator/dociditerators/SortedDocIdIterator.java
59.45% <0%> (-5.41%)
:arrow_down:

...e/operator/dociditerators/BitmapDocIdIterator.java
60.71% <0%> (-3.58%)
:arrow_down:

...ot/core/query/pruner/ColumnValueSegmentPruner.java
84.74% <0%> (-3.39%)
:arrow_down:

...not/broker/broker/helix/ClusterChangeMediator.java
63.33% <0%> (-3.34%)
:arrow_down:

...manager/realtime/LLRealtimeSegmentDataManager.java
72.75% <0%> (-1.31%)
:arrow_down:

.../com/linkedin/pinot/common/data/TimeFieldSpec.java
91.35% <0%> (-1.24%)
:arrow_down:

... and 15 more

Continue to review full report at Codecov.

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


Write unit tests for initial modules - splash screen, login, course list, course details

Describe the feature you'd like
Write unit tests for initial modules - splash screen, login, course list, course details

The current Code Coverage of the app is 0 %. We will like to increase it to at least 75%.

I am working on this issue


Allow Celsius temperature setting

Related to #19
Before: Only F temp could be set.
Now: Check appliance units and use appropriate range for units.

@bm1549 do you have some time to look at this?

Closed via #34


Update Composer dependencies (2021-06-03-00-03)

Visual regression test passed!
View the visual regression test report


Horizontal list module

Hi Steve, thanks for looking into the horizontal lists. This will likely be implemented with our local navigation module as a dependency. We are going to be looking at new modules soon and likely starting with migrating any remaining modules from version one.

Hi @steveworley thanks for your contribution.
Unfortunately we can't merge this PR at this stage. This is our fault; we shouldn't have let it get so far behind. A large refactor has meant a lot has changed since this Pull Request was opened. We've also recently added much more detail to the contribution guide that outlines the work we need to do before we can add a component to the system.
In an effort to make sure your hard-work isn't lost I have moved what I can into a CodePen so that we can continue the conversation over on the community forum.


Mouse events triggered twice

When using the Access Bridge Explorer, and monitoring for mouse events, those are posted twice in the grid at the bottom of the page. Is there a way to capture mouse events only once? Please advice. Thanks.

Hi @ceconic ,
witch events a captured twice. There are four different mouseevents.


datepicker clearable button doesn't show when using tailwind theme

Reproduction
https://formkit.link/7e851bf05ed7f4b3012dd680872a6db7
Describe the bug
When using the datepicker with the tailwind theme, if you enable 'clearable' and select a date, the clear button isn't visible (it's there, but hidden).
I resolved this with the following in the datepicker section of the tailwind.theme.js file:
removeSelection: 'w-2.5 mx-1 self-center text-black leading-none absolute top-1/2 right-10 -translate-y-1/2',
Environment
• OS: Windows
• Browser: Chrome
• Version: 119.0.6045.200

Ah yeah, looks like regenesis/starter need to add that. Thanks for pointing it out!

This is resolved using regenesis: https://themes.formkit.com


Add quotation marks to Quick Accent

Description of the new feature / enhancement
So that when you press and hold - ' or " and press space, you can choose to type en dash – or em dash —, and curly quotes “ ” ‘ ’ or apostrophe ’
Scenario when this would be used?
Basically every time you type if you prefer curly quotes and apostrophes outside of programs that support smart punctuation, and for dashes, if you deal with numbers a lot and need to connect them with en dashes, or if you're a writer and use em dash from time to time
Supporting information
No response

You should be able to hold the monus key and insert differnt dashes.

~monus~ minus key :) @Aaron-Junker is right about dashes. Quotations are not there yet

@stefansjfw @Aaron-Junker  yeah sorry i thought i had auto update on, didn't check what version i was using and the dash wasn't supported on that one.

Hello, I would like to take this one.
I think the supported list of characters should be at least:

“ - U+201C : LEFT DOUBLE QUOTATION MARK
” - U+201D : RIGHT DOUBLE QUOTATION MARK
" - U+0022 : QUOTATION MARK
‘ - U+2018 : LEFT SINGLE QUOTATION MARK
’ - U+2019 : RIGHT SINGLE QUOTATION MARK
' - U+0027 : APOSTROPHE
` - U+0060 : GRAVE ACCENT
′ - U+2032 : PRIME
″ - U+2033 : DOUBLE PRIME
‴ - U+2034 : TRIPLE PRIME
⁗ - U+2057 : QUADRUPLE PRIME

As far as the trigger key goes, what would be the appropriate one? VK_OEM_7 - 0xDE?

Hello, I would like to take this one. I think the supported list of characters should be at least:

“ - U+201C : LEFT DOUBLE QUOTATION MARK
” - U+201D : RIGHT DOUBLE QUOTATION MARK
" - U+0022 : QUOTATION MARK
‘ - U+2018 : LEFT SINGLE QUOTATION MARK
’ - U+2019 : RIGHT SINGLE QUOTATION MARK
' - U+0027 : APOSTROPHE
` - U+0060 : GRAVE ACCENT
′ - U+2032 : PRIME
″ - U+2033 : DOUBLE PRIME
‴ - U+2034 : TRIPLE PRIME
⁗ - U+2057 : QUADRUPLE PRIME

As far as the trigger key goes, what would be the appropriate one? VK_OEM_7 - 0xDE?

The problem with vk_oem_7 is it is on every keyboard a different key. On the German keyboard it's for example the "Ä" key

Hmm, that is indeed an issue. What about VK_OEM_3 (tilde, grave accent) for starters?

Hmm, that is indeed an issue. What about VK_OEM_3 (tilde, grave accent) for starters?

That would be ö on both DE/DE and DE/DEI

Hello, I would like to take this one. I think the supported list of characters should be at least:

“ - U+201C : LEFT DOUBLE QUOTATION MARK
” - U+201D : RIGHT DOUBLE QUOTATION MARK
" - U+0022 : QUOTATION MARK
‘ - U+2018 : LEFT SINGLE QUOTATION MARK
’ - U+2019 : RIGHT SINGLE QUOTATION MARK
' - U+0027 : APOSTROPHE
` - U+0060 : GRAVE ACCENT
′ - U+2032 : PRIME
″ - U+2033 : DOUBLE PRIME
‴ - U+2034 : TRIPLE PRIME
⁗ - U+2057 : QUADRUPLE PRIME

I don't think the grave accent and the four primes are necessary. The grave accent is a modifier, not used by itself, and the primes are only used in math. Instead, add the left- and right-chevrons («») and the baseline quotation mark „ used by some languages. If it's technically feasible, it should work like the iOS keyboard: the popup menu is accessed by holding down the single/double quote key.

the grave accent is used in programming like in md where it denotes code blocks, and in js where it denotes a template string

the grave accent is used in programming like in md where it denotes code blocks, and in js where it denotes a template string

That's not a grave accent but a backquote and most keyboards already have a key for it, usually on the top left. The true grave accent is never used by itself and certainly never as a quote.

tmyl. on the normal qwertz keyboard, the backquote key (to the right of the ß key) is used as a dead key and types a grave accent if used with a compatible letter, or a backquote if used with a space, or, on some operating systems, another dead key.

Ah yes, the backquote key may be region specific.

This thread seems to have gone quiet.
I have found RIGHT SINGLE QUOTATION MARK and RIGHT DOUBLE QUOTATION MARK offered by Quick Accent on the comma ',' key of the UK English keyboard.
Where can I find LEFT SINGLE QUOTATION MARK and LEFT DOUBLE QUOTATION MARK? Or are these still a work in progress?
I have not found any documentation that gives a list of supported characters, with where to find each of them on the Quick Accent keyboard.

it seems he already had another issue open.
based on https://github.com/microsoft/PowerToys/issues/29371#issue-1956932747 i resolve this issue.
I chose to use the key at the top left.
VK_OEM_7(0xDE)
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '" key
It is all at the top like the questions on the majority of keyboards (if not all) and use for  '" on the US standard keyboard.
The other solution can be to place all the accents on the VK_OEM_7 key for ALL, and to place the other languages according to the location on the keyboards according to the language. If this second choice is preferable I can always modify my PL. I don't think finding the position of this key on each keyboard will take me a lot of time.

Do you think it's a good idea to make the key used dependent on the language?
Or a gobal key for all language, In this case it would be necessary to add information in the doc for the user.
It would also be possible to identify the keyboard and the key to press that to manage if it is the " key regardless of the language but I think that this option is not viable because it risks making the code too complex for not much thing (consequently requested more maintenance).

Please remember about low quotation mark too - „. It's super handy if you're a proofreader

@warquys

It would also be possible to identify the keyboard and the key to press that to manage if it is the " key regardless of the language but I think that this option is not viable because it risks making the code too complex for not much thing […].

It would also be pretty hard to invoke, as for example on the QWERTZ keyboard, the combination for " is SHIFT+2. As the user can configure the window to only open with the arrow keys, they would have to press SHIFT (and on some laptops without RIGHT SHIFT this would be even worse), 2, and LEFT ARROW or RIGHT ARROW.

As previous mentioned in [Extend quick accent to punctuations, e.g. guillemets #30480] please add guillemets to list of supported quotations


Combine CSV boolean values into single strings

We accept a number of synonyms for "true" and "false" in boolean columns in
uploaded CSV files. Previously, each synonym was a separate translatable
string, but that's going to be confusing for translators, especially if the
number of words needs to vary between languages.
Combine the word lists into two strings and add a description to each one to tell
translators what to do.
Previously, we used the first word in the list as the canonical localized word
that was accepted by, and returned by, the search API. Add separate strings for
that purpose so we don't have to tell translators to be careful about the order
of the list of synomyms.
The "one synonym per line" format uncovered a bug in gibberish string conversion:
it wasn't preserving line breaks on multiline strings, which included things like
our plaintext email bodies. Update the gibberish logic to preserve line breaks.

Current dependencies on/for this PR:

main

PR #1038   👈

This comment was auto-generated by Graphite.


Dastardly Github action automated security test

Acceptance criteria:

[ ] automated test setup which does Dastardly scan of all the pages of the 2x websites

https://portswigger.net/burp/dastardly
https://github.com/PortSwigger/dastardly-github-action
Hint

Might need to setup a sitemap for the website so the tool can crawl the right pages to test

Follow up

fix any threats

sprint points: 0
next sprint points: 5


Does not Work on the current maui verision and nugat packages

The first problem: downgrades of packages is not allowed and must be corrected to use the latest.
Second problem the viewmodels don't work, I can't find the command "ICommand".
Please update this repo
Thanks in advance

ICommand is replaced with RelayCommand in latest Toolkit.MVVM package.
I will update this sample to GS release soon.

Plz check again now. Update the repository to GA)

Still the first named isshue exist
Severity	Code	Description	Project	File	Line	Suppression State
Error	NU1605	Detected package downgrade: Microsoft.Graphics.Win2D from <IP_ADDRESS> to <IP_ADDRESS>. Reference the package directly from the project to select a different version.
MauiScientificCalculator -> Microsoft.Maui.Dependencies 6.0.312 -> Microsoft.Graphics.Win2D (>= <IP_ADDRESS>)
MauiScientificCalculator -> Microsoft.Graphics.Win2D (>= <IP_ADDRESS>)	MauiScientificCalculator	D:\DeepWorks Studios\Learn Assets\Maui\Projects\MauiScientificCalculator\src\MauiScientificCalculator.csproj	1

At best you should take your time time to proper update this exsample because it wont be an easy fix it seems like those dependency causes all kind of trouble. Before you push the update check it yourself on the plattfroms with the updated version of vs 2022 aswell the dependencys and maui
Greetings

Well after a little work i got nearly it running but now i get this
Severity	Code	Description	Project	File	Line	Suppression State
Error	NETSDK1130	Microsoft.Graphics.Canvas.winmd cannot be referenced. Referencing a Windows Metadata component directly when targeting .NET 5 or higher is not supported. For more information, see https://aka.ms/netsdk1130	MauiScientificCalculator	C:\Program Files\dotnet\sdk\6.0.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets	1007

Updated the project for Windows dependencies, but I have not tested for Windows. Plz do a pull request if any windows related changes are needed.

I will create it afresh using MAUI GA and update the sample soon.

Plz check now. I can confim to have tested it on Windows, Mac, iOS and Android.

yes it works fine now thanks :)


(iOS) Added preferences for privacy on background only and overriding LaunchImage

Description

In iOS activating privacy in WillResign method generates a behavior that isn't desirable in current project I'm working on (i.e. Shows privacy screen in Touch ID prompt), as such a preference "PrivacyOnBackground" is now checked, if it is true then privacy screen is only activated on background.
Another preference "PrivacyOverrideLaunchImage" has been added so that even if a launch image is set, if this preference is true it overrides to the "Default" image.
Related Issue

https://github.com/devgeeks/PrivacyScreenPlugin/issues/33
Motivation and Context

On our app that uses this plugin, when the Touch Id Prompt was launched the privacy screen blocked the app view.
The app has a launch image, but it has been defined in our app that the privacy screen must be different
How Has This Been Tested?

Manual testing to check if intended behavior was added, manual testing to check if previous behavior was kept without changes to current users of the plugin.
Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X ] My code follows the code style of this project.
[X ] My change requires a change to the documentation.
[X ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

I would have liked the fix for the Touch ID issue, but wish it hadn't been wrapped up with another feature. Maybe you could find a way to make this two different PRs?


No access on a LUKS encrypted drive with BTRFS filesystem via Windows Explorer

Version
Microsoft Windows [Version 10.0.22000.613]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
Kernel-Version: <IP_ADDRESS>
Distro Version
Ubuntu 20.04
Other Software
No response
Repro Steps
I have mounted a LUKS enrypted drive with BTRFS file system via:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
In this case drive 4 is the one which I do need:
wsl --mount \.\PHYSICALDRIVE4 --bare
lsblk
Find the drive which is the one which should be mounted in Linux:
in this case sdc
Unlock:
sudo cryptsetup luksOpen /dev/sdc1 cryptroothd
Mount:
sudo mount -o compress=zstd:1 /dev/mapper/cryptroothd /wd12tb
or
sudo mount -o compress=zstd:1 /dev/mapper/cryptroothd /mnt/wsl/wd12tb
After that the drive is fully usable within WSL. But I get no access via explorer. In the first case /wd12tb is just shown as directory and the mount is ignored
In the second case I'm getting the error message that access is not possible and maybe I have no rights.
If I try explorer.exe from the wd12tb folder (mount point) I'm getting the error invalid argument. One folder higher (which means without the mount) this is working.
When I access the folder via Samba this is working but that's an additional layer which should not be necessary and it will cost performance.
Expected Behavior
According to this guide access should be possible via Windows Explorer:
https://devblogs.microsoft.com/commandline/servicing-the-windows-subsystem-for-linux-wsl-2-linux-kernel/
Actual Behavior
Access via Windows Explorer is not possible
Diagnostic Logs
wsl.zip

Thanks for reporting this @nemihome.
If you're mounting in /wd12tb, the issue is probably this
Regarding the mount in /mnt/wsl .
What's the default user of your distro ? That what's the explorer access files as, so if the mount isn't accessible to the user, then the explorer can't access.
What I'd recommend would to do something like:
sudo mount -o compress=zstd:1 /dev/mapper/cryptroothd /mnt/wsl/wd12tb o uid=my-user -o gid=my-user

That way the mount should be accessible by the explorer

Hello @OneBlue  Thanks for reply
Default user is root. That's the same which did the mount. So basically that should work.
I also tried to set another user (same name which is logged on in windows with all groups mapped to it) but that did not help.
The options uid / gid seems to be not supported in this way. At least the command does not work.
sudo mount -o compress=zstd:1 /dev/mapper/cryptroothd /mnt/wsl/wd12tb -o uid=0 -o gid=0
I also tried just one -o with only UID.
sudo mount -o uid=0 /dev/mapper/cryptroothd /mnt/wsl/wd12tb
mount: /mnt/wsl/wd12tb: wrong fs type, bad option, bad superblock on /dev/mapper/cryptroothd, missing codepage or helper program, or other error.
I also tried it with 1002 instead of 0 (that's the user which I created with the same name than Windows logon user) but if root is standard user and mount is done with it that should work, shoudn't it? And at least if I start "explorer.exe ." in Ubuntu command prompt the user which is logged on should be used for access in my opinion. But this is also not working.

Thanks @nemihome. uid & guid are a bit misleading, they actually take user / group names (and not identifiers).
But if the default user is root that's probably not the issue.
Can you follow the Records WSL logs manually section and share the log file of a repro, along with the content of HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss ?

@nemihome WSL filesystem access from Windows is provided by drvfs driver. ext4 is supported, however btrfs might not be at this time.

Thanks @nemihome. uid & guid are a bit misleading, they actually take user / group names (and not identifiers).
But if the default user is root that's probably not the issue.
Can you follow the Records WSL logs manually section and share the log file of a repro, along with the content of HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss ?

Thank you. I have taken a look in manpage of mount. The option uid / gid seems to be depending on file system. I have not found them for BTRFS.
The log is already included in the first post as zip.
The Regedit entry is 2

@nemihome my previous comment about drvfs not supporting btrfs is void. It does work with btrfs encrypted partitions also.

Thank you for sharing. So basically that should work.

@elsaco Thank you. That is really strange. Seems to be the behavior is different on my system.  Can try to you install [Store WSL][https://aka.ms/wslstorepage) which has the fix and see if that fixes the issue ?

@OneBlue That's it. Thank you.

/dupe #6711


Run performance regression test

This issue tracks running of a performance regression test for the next release.

Here are the results from running Philadelphia Performance Test on the master branch, the previous release, 1.1.1, and the previous major release, 1.0.0. The columns show the time each operation under benchmark takes, relative to the master branch. Smaller is better.
I will follow up separately on each of those currently in the ❗status.

Benchmark
master
1.1.1
1.0.0
Status

FIXCheckSumsBenchmark.sum
100%
103%
85%
:exclamation:

FIXMessageBenchmark.formatAndPut
100%
100%
103%
:white_check_mark:

FIXMessageBenchmark.get
100%
101%
101%
:white_check_mark:

FIXMessageBenchmark.put
100%
100%
100%
:white_check_mark:

FIXMessageParserBenchmark.checkSumDisabled
100%
—
—
:white_check_mark:

FIXMessageParserBenchmark.checkSumEnabled
100%
99%
—
:white_check_mark:

FIXTagsBenchmark.get
100%
109%
102%
:white_check_mark:

FIXTagsBenchmark.put
100%
93%
94%
:exclamation:

FIXTimestampsBenchmark.append
100%
100%
118%
:white_check_mark:

FIXValueBenchmark.asBoolean
100%
98%
—
:white_check_mark:

FIXValueBenchmark.asChar
100%
101%
102%
:white_check_mark:

FIXValueBenchmark.asDate
100%
59%
59%
:exclamation:

FIXValueBenchmark.asFloat
100%
99%
102%
:white_check_mark:

FIXValueBenchmark.asInt
100%
99%
101%
:white_check_mark:

FIXValueBenchmark.asString
100%
40%
46%
:exclamation:

FIXValueBenchmark.asTimeOnly
100%
99%
99%
:white_check_mark:

FIXValueBenchmark.asTimestamp
100%
27%
25%
:exclamation:

FIXValueBenchmark.setBoolean
100%
94%
—
:white_check_mark:

FIXValueBenchmark.setChar
100%
98%
99%
:white_check_mark:

FIXValueBenchmark.setDate
100%
99%
101%
:white_check_mark:

FIXValueBenchmark.setFloat
100%
102%
102%
:white_check_mark:

FIXValueBenchmark.setInt
100%
97%
99%
:white_check_mark:

FIXValueBenchmark.setString
100%
100%
99%
:white_check_mark:

FIXValueBenchmark.setTimeOnly
100%
99%
99%
:white_check_mark:

FIXValueBenchmark.setTimestamp
100%
100%
100%
:white_check_mark:

FIXValueBenchmark.setToValue
100%
104%
93%
:exclamation:

The difference in FIXCheckSumsBenchmark.sum is caused by switching to a direct byte buffer in the benchmark in 1.1.1. The code under benchmark has not changed. ✅

The code under benchmark in FIXTagsBenchmark.put has not changed. ✅

The code under benchmark in FIXValueBenchmark.asString has not changed since 1.1.1. A re-run on the master branch gives a result comparable to that on 1.1.1. ✅

Regarding FIXValueBenchmark.setToValue, a re-run on the master branch gives a result comparable to that on 1.0.0. ✅

The code under benchmark in FIXValueBenchmark.asDate has a performance regression. I opened pull request #141 to fix that.

The code under benchmark in FIXValueBenchmark.asTimestamp has a performance regression. I opened pull request #142 to fix that.

All performance regressions have been addressed.


Update Logo

Are that... two colons?
Because MDC leverages colons for its syntax? :joy:
(First thought it were just four circles)


Product listing on category pages

The below query is executed 4 times on the category listing page which has around 10k products.
Each query takes around 2 secs which totals up to 8 secs.
Filename: packages\Webkul\Product\src\Repositories\ProductRepository.php
Function name: public function getAll($categoryId = null)
Is there any way we can avoid multiple query requests?
SELECT Count() AS aggregate
FROM   (SELECT DISTINCT product_flat.
FROM   product_flat
INNER JOIN product_flat AS variants
ON product_flat.id = Coalesce(variants.parent_id,
variants.id)
LEFT JOIN product_categories
ON product_categories.product_id =
product_flat.product_id
LEFT JOIN product_attribute_values
ON product_attribute_values.product_id =
variants.product_id
WHERE  product_flat.channel = 'default'
AND product_flat.locale = 'en'
AND product_flat.url_key IS NOT NULL
AND product_categories.category_id = {category-id}
AND product_flat.status = 1
AND product_flat.visible_individually = 1
GROUP  BY product_flat.id
ORDER  BY name DESC) c

Hi @scchethu,
We are already working on it. The two queries already removed. Still its in progress.

Hi @scchethu,
We are already working on it. The two queries already removed. Still its in progress.

Just making field change is reducing the query execution time to half
SELECT DISTINCT ar_product_flat.*
vs
SELECT DISTINCT ar_product_flat.id, ar_product_flat.name
Since we are counting the data we can skip ORDER BY name as well which will avoid one more column in select query for DISTINCT

Just making field change is reducing the query execution time to half
SELECT DISTINCT ar_product_flat.*
vs
SELECT DISTINCT ar_product_flat.id, ar_product_flat.name
Since we are counting the data we can skip ORDER BY name as well which will avoid one more column in select query for DISTINCT

The thing you are telling i have added everything, and i have 1 million products in the category. So still we are checking for some alternative.

The thing you are telling i have added everything, and i have 1 million products in the category. So still we are checking for some alternative.

still not solved this issue, this query takes lots of time we need to solve this issue with high priority.

still not solved this issue, this query takes lots of time we need to solve this issue with high priority.

Hi @scchethu,
Yeah this is not solved, yet the reason behind closing is that there is already one more issue opened related to this. So following one thread can be helpful.
The problem is comming from the filters portion i.e. attribute_values table as this table contains the value. So joining making the query slow.

Hi @scchethu,
Yeah this is not solved, yet the reason behind closing is that there is already one more issue opened related to this. So following one thread can be helpful.
The problem is comming from the filters portion i.e. attribute_values table as this table contains the value. So joining making the query slow.


Update schema of Typescript interfaces

Currently, the package doesn't indicate where fields can have a null value. Updating the Typescript interfaces will give Typescript devs a better sense of which nullable fields to handle.
Current schemas:
https://github.com/nikel-api/nikel-parser/tree/master/validations/schemas
Typescript interfaces:
https://github.com/nikel-api/nikel-ts/blob/master/src/types.ts

7617a4e


fatal error: cpu/vision.h: No such file or directory  #include "cpu/vision.h"

I have run the following command
python setup.py build develop --no-deps
I am facing following error
fatal error: cpu/vision.h: No such file or directory
#include "cpu/vision.h"

@NaeemKhan333 Which code? In addtion, could you provide more details, such as the version of pytorch, cuda, and mmcv?

I have
cuda 10.2
torch (1.6.0)
torchvision (0.7.0)

@NaeemKhan333 Maybe you can try use my settings: PyTorch1.1.0 and cuda9.0/10.0.

@JialeCao001
Traceback (most recent call last):
File "tools/test_net.py", line 4, in
from fcos_core.utils.env import setup_environment  # noqa F401 isort:skip
ModuleNotFoundError: No module named 'fcos_core'

It is due to pytorch and torch version issue
pip3 install torch==1.4 torchvision==0.5

Thanks for help


Link to C++ build tools on Windows has gone stale

The rustup installer on Windows links to http://landinghub.visualstudio.com/visual-cpp-build-tools if the user does not have them installed already, but the link no longer works. Removing the subdomain seems to work (might be a slightly different page, though).

Dup of #1363 already fixed pending release in #1428


Osim workflow

This PR changes workflows to reflect current IR workflow.
In order to achieve that, this PR creates a new function in CheckParser to compare equal values.
This PR also creates a model to store cached values from Jira used in new workflow classification.
This Pr also create properties in osidb.models.Flaw to map the new jira attributes.
Closes OSIDB-1319

@osoukup I have added a new commit to this PR to comply with the syntax used in #255, this impacts others commits, please take a look on everything again. I also believe now we can have the behavior we want that we talked (about assign / remove owner).

@osoukup I've changed some commits:

new commit fix flaw.affects_resolved filters: I noticed that affects_resolved would present a weird behaviour saying a not affect is not resolved.
new commit add manual state reject: to cover manual changes to reject state.
chenged reflect new IR workflow in osim: added a workflow for rejected that would be used only if its manually changed to this state.


Dependent on a standalone tool "cucumber-json-formatter"

Hi,
First of all, thank you so much for your work on this very useful tool.
We're working on a project with automated e2e tests running in CI mode, and we have some concerns with using the cucumber-json-formatter standalone tool in order to make the JSON report work.
Having to download a standalone tool can be tricky and it's not very CI-friendly (on a Windows environment, it's a .exe that can be detected as a malware ; and to make it work on the CI pipeline, we'll have to download the Linux version).
Is there any way to not have to use this standalone tool, and instead using a npm dependency that would be able to generate the same JSON report?
Thank you for your help.

This tool outputs something called "messages", a NDJSON-format which is library-friendly. All tools in the Cucumber sphere will eventually implement this and then it'll be up to the consumer what to do with them (such as generate a JSON report).
As far as I know, no such NPM package exist.
What I'd be open to, is for this package to download the executable on post-install, like Cypress does.

Here you can see how trivial it is to setup in a CI environment.

Docker helps :)
https://stackoverflow.com/a/72868618/1948252


Editors: revisit "preview" editors default behaviour

Documentation: https://code.visualstudio.com/docs/getstarted/userinterface#_preview-mode
We hear from users that the editor "preview" feature is controversial (see https://github.com/microsoft/vscode/issues/105600 and https://stackoverflow.com/questions/38713405/open-files-always-in-a-new-tab). This issue is to explore if we can make some tweaks to the current behaviour without changing the default setting to disable preview editors.
//cc @misolori @stevencl

A couple of changes I will consider to push:

change the default of enablePreviewFromQuickOpen to false with the rationale that explicitly selecting an editor from quick open is a signal that the user wants to work in the file and not open it as preview (https://github.com/microsoft/vscode/commit/8ed5286dc1d3bdcd1a97a06e23de7d8b2d317231)
set pinned: true if an editor was opened with a keyboard interaction that involves Enter key (https://github.com/microsoft/vscode/commit/b9a84341783c5aa6c103dec203bf2808dd1b9b57)
set pinned: true for editors that get opened through commands such as "Developer: Startup Performance" with the rationale that a user may not find it easy to recall how the editor was opened originally and thus might find it frustrating that it would close as soon as the next editor opens (https://github.com/microsoft/vscode/commit/b9a84341783c5aa6c103dec203bf2808dd1b9b57)
set pinned: true for editors that are a result of selecting 2 editors for diffing (https://github.com/microsoft/vscode/commit/b9a84341783c5aa6c103dec203bf2808dd1b9b57)

Closing, for extensions https://github.com/microsoft/vscode/issues/85636 covers it.


Rewrite export_all.sh in python

For cross platform compatibility.

I was wondering if you could add receipt, logs, erc20_tokens and contracts exporting, because name of this tool  contains a "all"!


Returned pos of function GetMasterStatus should be int64 instead of uint32

What did you do?
https://github.com/pingcap/tiflow/blob/6ad967659ba98065994f8cb79415912a408abb28/dm/pkg/conn/utils.go#L101-L103
What did you expect to see?
The returned pos should be int64 instead of uint32, to conform to MySQL's behavior:
https://github.com/mysql/mysql-server/blob/a246bad76b9271cb4333634e954040a970222e0a/sql/rpl_source.cc#L1225-L1226
What did you see instead?
The returned pos is uint32.
Versions of the cluster
DM version (run dmctl -V or dm-worker -V or dm-master -V):
v6.3.0-master-dirty

current status of DM cluster (execute query-status <task-name> in dmctl)
No response

@lance6716

$ mysql -h<IP_ADDRESS> -P3306 -uroot -p123456 --column-type-info

MySQL [(none)]> show master status;
...
Field   2:  `Position`
Catalog:    `def`
Database:   ``
Table:      ``
Org_table:  ``
Type:       LONGLONG
Collation:  binary (63)
Length:     20
Max_length: 4
Decimals:   0
Flags:      NOT_NULL UNSIGNED BINARY NUM
...

/cc @liumengya94


Bluetooth: lc3: Improve BT_CODEC_LC3_CHAN_COUNT_SUPPORT macro

This improves the macro so that it can take variable number of arguments, e.g. BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1, 2, 8).

What is the advantage of doing BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1, 3, 7) compared to
BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(3) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(7)?
Shorter lines of code?

What is the advantage of doing BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1, 3, 7) compared to BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(3) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(7)?
Shorter lines of code?

Yes :D

What is the advantage of doing BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1, 3, 7) compared to BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(3) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(7)?
Shorter lines of code?

Yes :D

What do you think about the proposal in https://github.com/zephyrproject-rtos/zephyr/pull/45373#issuecomment-1118360118?
While the variable-argument approach using the fixed size macros probably works, it's not particularly readable and easy to understand from a user's perspective if they investigate the macro.

What is the advantage of doing BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1, 3, 7) compared to BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(3) | BT_CODEC_LC3_CHAN_COUNT_SUPPORT(7)?
Shorter lines of code?

Yes :D

What do you think about the proposal in #45373 (comment)?
While the variable-argument approach using the fixed size macros probably works, it's not particularly readable and easy to understand from a user's perspective if they investigate the macro.

You have right, it was not a bit ugly solution. Please check the latest PR


[CLI]: Importing wandb inside a script fails

Describe the bug
import wandb fails from inside my training script with the following error:
Traceback (most recent call last):
  File "main.py", line 16, in <module>
    import wandb
  File "/usr/local/lib/python3.8/dist-packages/wandb/__init__.py", line 191, in <module>
    if wandb_sdk.lib.ipython.in_notebook():
  File "/usr/local/lib/python3.8/dist-packages/wandb/sdk/lib/ipython.py", line 62, in in_notebook
    return _get_python_type() != "python"
  File "/usr/local/lib/python3.8/dist-packages/wandb/sdk/lib/ipython.py", line 32, in _get_python_type
    from IPython import get_ipython  # type: ignore
  File "/usr/local/lib/python3.8/dist-packages/IPython/__init__.py", line 53, in <module>
    from .terminal.embed import embed
  File "/usr/local/lib/python3.8/dist-packages/IPython/terminal/embed.py", line 17, in <module>
    from IPython.terminal.ipapp import load_default_config
  File "/usr/local/lib/python3.8/dist-packages/IPython/terminal/ipapp.py", line 29, in <module>
    from IPython.core.magics import (
  File "/usr/local/lib/python3.8/dist-packages/IPython/core/magics/__init__.py", line 21, in <module>
    from .execution import ExecutionMagics
  File "/usr/local/lib/python3.8/dist-packages/IPython/core/magics/execution.py", line 11, in <module>
    import cProfile as profile
  File "/usr/lib/python3.8/cProfile.py", line 22, in <module>
    run.__doc__ = _pyprofile.run.__doc__
AttributeError: module 'profile' has no attribute 'run'

However, if I try opening an IPython terminal, import wandb doesn't fail whereas opening a regular python terminal and running import wandb throws the same error as above.
Additional Files
No response
Environment
WandB version: 0.15.3
OS: Ubuntu 20.04.6 LTS
Python version: 3.8.10
Versions of relevant libraries: ipython==8.12.2
Additional Context
No response

Runnin pip uninstall ipython -y does the trick but I'd prefer not to have to do that.

Hi @rsomani95 , the stacktrace is suggesting, _pyprofile is somehow replacing the global namespace. Do you happen to have a script called profile.py in your dirs?

Hi @rsomani95 , since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!

Hey @MBakirWB thank you for your response. You were right, there was a profile.py in the directory I was running from that caused the issue. Removing it solved the issue, thank you!


UI for this website

UI design for this website. Notice that the UI design will go concurrently as other job. It will replace any data that needs dynamic loading with a placeholder. UI is one of the most important job of this website. Make sure you actually put some work on that.

Don't pick this issue. I think people working on his issue will automatically response to work on the UI for the webpage


HTMLElement.shadowRoot is deprecated.

The contents of atom-text-editor elements are no longer encapsulated
within a shadow DOM boundary. Please, stop using shadowRoot and access
the editor contents directly instead.
HTMLElement.shadowRoot (/usr/share/atom/resources/app/src/text-editor-element.js:13:10)
MarkdownScrlSync.getVisTopHgtBot (/home/elliot/.atom/packages/markdown-scroll-sync/lib/utils.coffee:20:33)
MarkdownScrlSync.setMap (/home/elliot/.atom/packages/markdown-scroll-sync/lib/map.coffee:25:14)
MarkdownScrlSync.startTracking (/home/elliot/.atom/packages/markdown-scroll-sync/lib/main.coffee:75:12)
<unknown> (/home/elliot/.atom/packages/markdown-scroll-sync/lib/main.coffee:58:23)
Function.module.exports.Emitter.simpleDispatch (<embedded>:63943:20)

Closing because issue has already been reported several times.


FR: support Semi-join and Anti-join

Ready to migrate data from  hive to Clickhouse, there are plenty "Semi-join and Anti-join" sql script of existing systems.
so expected to support Semi-join and Anti-join sql grammar
thanks!

It's possible to use IN for SEMI JOIN and NOT IN for ANTI JOIN now. But they have restrictions on Nullable types. Right SQL emulation is via EXISTS / NOT EXISTS that are not equal with IN / NOT IN for Nullables.

A use case for ANTI JOIN #6534

#7665