Implement ControlledToken, contract owner can burn/mint tokens at will

Fixes #785 (issue was closed but this PR takes the suggestions received there)
🚀 Description

Another smart contract, or in some (rare) specific cases a centralized account, can burn/mint tokens from/to accounts at will. Other contracts may inherit this functionality to enable some use-cases where a controlled token is necessary

[x] 📘 I've reviewed the OpenZeppelin Contributor Guidelines
[x] ✅ I've added tests where applicable to test my new functionality.
[x] 📖 I've made sure that my contracts are well-documented.
[x] 🎨 I've run the JS/Solidity linters and fixed any issues (npm run lint:all:fix).

this definitely doesn't belong in BurnableToken
Why ??
how to write a ControlledToken ?

how to get the https://coveralls.io/builds/15837883/source?filename=contracts%2Ftoken%2FERC20%2FControlledToken.sol ??

Closing due to staleness. Also, this can be easily achieved with _mint and _burn.


Way to exclude file from fastcgi_cache

We are trying to get a Vote up down script working is there a way to bypass cache for a specific region of the site?

If its a single script, you can add a location {  in nginx conf to bypass it.
But ideally in WordPress world, vote-up/down requests should be handled using WordPress admin ajax. EE already skips cache for WordPress admin ajax by default.

The issue is the vote work, but it display dos not update, it dos not show the correct number of votes.

All such counts should be fected via (admin) ajax. If it's added to page during page-generation, it will be cached.
Also, please use http://community.rtcamp.com/c/easyengine for support.


Fix for wrong lighting when using textures

According to RedBook computed color in lighting should be
finalColor = primaryColor ( all lighting stuff using materials) * textureColor + secondaryColor.
That long standing bug made the textured objects appear more lighted than they should.
Easy to see if using texture + material with ambient component + ambient light.

I also reordered the code to make more sense when reading it. Maybe @Kuranes and @stephomi could take a look also.

From what I understand, before was
if (textureDiffuse) diffuse = materialDiffuse*textureDiffuse
else diffuse = materialDiffuse
if (vertexDiffuse) diffuse = diffuse *vertexDiffuse

finalColor = lighting(diffuse)

after PR it is
if (vertexDiffuse) diffuse = materialDiffuse*vertexDiffuse
else diffuse = materialDiffuse

finalColor = lighting(diffuse)

if (textureDiffuse) finalColor = finalColor * textureDiffuse

meaning texture diffuse color is not a diffuse texture (scaled by light equation NdotL) but more like an Ambient occlusion (light independant) ?
( for me a secondary color is a second vertex color or a second texture color ? )
Maybe there is a possiblity to do "secondary color", but only if we have a vertex color and a texture color, we could check /consider the texture color a secondary (or the vertex color as the secondary) but that's not what current code does ?
(as it always interpret texture color as a secondary, even if there is no primary ?)

about reordering, perhaps we could move the whole 'alpha' part prior to lighting ?
would make sense to premult before the NDotL as it scale diffuse... may need to read on that.
(at least the alpha, but not premult, as in case of 'discard' and 'mulitple light', it would save a lot of perf)

@Kuranes thanks for the review.
The point of the PR is not the secondary color, as you say it should come with an alternate vertex color.
The point is the texture should not be affected by lighting.

meaning texture diffuse color is not a diffuse texture (scaled by light equation NdotL) but more like an Ambient occlusion (light independant) ?

That's the point, it is like that in OpenGL. Texture Color is combined with primary color ( being primary color materials + color + ligthing ). I can search some links, but it is in the RedBook.

Maybe that shed some light: OpenGL  https://books.google.es/books?id=ckpNmNlLE_sC&pg=PA168&lpg=PA168&dq=fragment+lighting+texture+secondary&source=bl&ots=KGM9tDb0Lx&sig=qiDROsq8Hv8vhG_623bsqhmsIac&hl=es&sa=X&ved=0ahUKEwjXi4PF04jMAhWC2RoKHQcVD8UQ6AEIHzAA#v=onepage&q=fragment lighting texture secondary&f=false
OpenGL computes lighting before TextureMapping, in its default mode.

Thanks for the reference, much clearer.
Seems indeed to be Opengl 1.4 behaviour !

Yep, also the seconday is used to apply specular colo, because it could cause some problems. ( See redbook page 450: Secondary Specular Color when lighting is enabled )

Do you happen to have more on the lighting part,  to be sure to get opengl canonic lighting equation ?
( to double check the createLightiing shader code, particularly light ambient )

That's all I have at the moment, with this PR I just see my scenes as in OSG. But I also noticed that all the ambient variables are not used in the shader functions, so maybe them should be removed from the function parameters. ( materialAmbient and lightAmbient not used at all in https://github.com/cedricpinson/osgjs/blob/develop/sources/osgShader/node/lights.gls)

One more thing, I recall now., by not using materialAmbient and lightAmbient in the lighting functions then it seems attenuation does not affect ambient stuff which maybe wrong. But I don't have a PR for this.

Thanks for the infos!

good for me, could you rebase on develop plz ?

Done.


[Cherry-pick][PLUGIN-1672] Allowing hyphen in BQ table name

Original PR: https://github.com/data-integrations/google-cloud/pull/1281, https://github.com/data-integrations/google-cloud/pull/1282
BigQuery connector did not allow hyphen in the table name. Added support for that
Jira issue link: PLUGIN-1672

Approving the change as the failure in E2E are independent of the change.


Dialog open  bug (still not fixed)

TuSimple/naive-ui version (版本)
2.23.0
Vue version (Vue 版本)
3.2.26
Browser and its version (浏览器及其版本)
Chrome  版本 96.0.4664.110（正式版本） (arm64)
System and its version (系统及其版本)
MacOS(12.1)
Node version (Node 版本)
Reappearance link (重现链接)
https://codesandbox.io/s/immutable-moon-6hnm8?file=/src/Demo.vue
Reappearance steps (重现步骤)

use the dialog component without 'positive-text' and 'negative-text'
when the dialog is open
press 'enter' or 'space' key
open a new dialog and repeat

Expected results (期望的结果)
close the dialog
Actual results (实际的结果)
open a new dialog
Remarks (补充说明)
i have submit a issue yestoday, it was closed without fixed.
I saw the version released today, but it still not be fixed, I hope it can be resolved soon.

the autofocus is dependent on the  positive-text and negative-text so you should provide them

This is a bug, I'll refactor it later.

We should learn from this.
ref https://mui.com/components/dialogs/


Allow Assignment of Issues to Users with READ access level

Gitea version (or commit ref): e87c540a87602682d49f1b10bfa91cbebe0fc9b6
Git version: 2.17.1
Operating system: Linux
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
It should be possible to assign issues to people with "read" access.
Currently the users with "read" access rights to a private repo are not shown in the Assignees Dropdown.
But the People can for example send pull requests to the repo. In my opinion it would be logical, if this users can also have issues assigned.
Also Github does have this permission for the "read" access level.
As a reference please look here:
https://help.github.com/articles/repository-permission-levels-for-an-organization/
Line:  Have an issue assigned to them
Screenshots

Does anyone know of a workaround for this?  I'd be okay with allowing any registered user to create an issue on any repo regardless of collaborator status, for instance.  Don't see any way to do that though.

What's permission is reasonable? For a public repository, writers  to code  and collaborators could be as assigners. For a private repository, readers, writers to code and collaborators could be as assigners.

@kTitan we need a PR to do that.

Re-opening because still needed afaik.

I think the required access shall be a setting, at least in app.ini (later on maybe per organization or repo).
To be assignable to an issue or pull request the user shall at least have read access to that unit (doesn't make sense to be assigned to something you can't read).
If you are assigned to an issue/pr you shall be able to make comments in it, even if you only have read access to other issues (comment from @guillep2k)
What options should there be for which are assignable? Some ideas:

Read access to the issue/pr
Write access to the issue/pr
Read access to the issue/pr and write access to some other unit (code or pr?)
Write access to the issue/pr OR read access when repo admin assign
Read access but only repo admin can assign

We should make a good consideration which alternatives are really reasonable to avoid complexity in the code.

What options should there be for which are assignable? Some ideas:

I think that anyone with read access is a potential assignee. For private repos this is not a problem. The problem of course are public repos, with potentially hundreds of users and more. In this case I'd use the collaborator permission. Since a collaborator can have either read, write or admin access, I can add @mike to my repo as a collaborator with read access or more (he already can read the code, since my repo is public); then I can assign him for any issue/pr.
Summary:

Private repos: anyone with explicit read/write access to that issue or pr.
Public repos: anyone with explicit read/write .... oh, it's the same! 😁

I think it makes sense to assign people to issues even if they have no access to code. For example, to gather more information about the problem from a client. It's not the same for PRs, for which they should have at least read access to code (they might be in charge of fact checking, etc.).
Whether you are authorized to assign others to anything is a different matter, and it should be discussed separately. For starters, I think of the following scenarios:

In public access sites, I can assign anyone to an issue/PR of mine to force him/her to get my SPAM; they wouldn't be able to unassign themselves.
In an organization, the assignment action might be reserved to certain people only. This kind of granularity means extra work, so a simple set of checkboxes like "admins only/admins and writers" could be a good start.

So we could potentially have three options:

write access
read access
public access

The last one could be limited to anyone previously contributing or otherwise interacting with the repo.
Regarding PRs, I don't know if it makes sense at all to have access to PRs but not code. But that should be up to the users. I don't think we shall complicate it here, if you have read or write access to PRs you can also be assigned.
If we increase the number of possible assignable I think we should also fix #6978.

We should keep in mind that if someone has no access to code, having access to a PR will expose parts or all of the code to them.

Yes, should make be a warning in the settings. But that is why I don't think we need to consider that case so much when it comes to assignable.

Any progress on this one?

Hmm, It's really a problem. Please have a look again , Thanks.This issue is stale ... @guillep2k
In my opion, Assign means a special permission. that means user who is assigned can do all things for this issue or pr which author can do.
for problem about who can be assigned, I think all user with read permission can be assigned. may be can use same solution with #10756 or use contributors after we released this feature: #847

@a1012112796 It's more complicated than that. What if I assign a PR to @john, who is in the development team, but later @john gets removed from all teams. Should @john still be considered to have special permissions on the PR? Should he have access to code?

@guillep2k there are two major and completely distict problems

ability to assign somebody to the issue he can already see and comment (this seems trivial from my point of view), If he don't have access to the code, he also don't have acces to PRs so he can't be assigned to them.

handle cases what to do if you change someons access rights or team membership - this is hard and needs to be discussed and defined and is probably long run, but anyway, it should be implemented despite the result of this issue - it should be completely different issue

We are doing the workaround, that we temporally add the tester to developers team, assign him the issue and remove him from developers tema. So he is assigned, but he don't see the code, which is what we want. But it went impractical so we leave him in developers group. Which is impractical for him, because he see more than he is interested.

I agree that we could allow specific users to be assigned to issues they would not be normally able to access. It's easier to implement, but it should be explicit (e.g. this user was specifically allowed to see "this issue"), so code that adds/removes permissions on a greater level doesn't remove them inadvertently. Again, PRs are a different beast (and IMHO make a little less of sense).
In the meantime, depending on your use case, maybe you could set up a separate repository for the issues alone. Your real developers can link PRs from the real repo to close issues on the proxy repo. That's supported.

tl;dr: At the moment, without the ability to assign issues to non-collaborators, a typical group using gitea converges by trial and error toward a monorepo usage pattern, with everyone in the group having write access to the monorepo, bypassing most of gitea's permissioning system.  Unless the repo owner knows to set up protected branches, everyone in the group winds up being able to push directly to any branch in the monorepo, bypassing PRs.  I think it's time we fix this bug, in the simplest way that might work:  Let any user in gitea's database be assigned to an issue, with a config file boolean to enable the new code path.
In other words, I would consider this issue closed if we support this single use case:

Carol assigns an issue to Alice.

Allow Alice to be any user in the gitea database.

Alice forks main/repo, creating alice/repo.
Alice fixes the issue and pushes the change to alice/repo.
Alice creates a PR in main/repo.

Alice is already able to create this PR even if she is not a collaborator, right?  My own testing seems to say yes.  Am I missing something?

Without this one change, gitea makes a fork/PR workflow hard to encourage, because you can't assign bugs to people, so you can't encourage them to fork, so you can't encourage them to send you a PR.
I agree with @j123b567 that any other bugs this change creates, security or otherwise, need to be handled as separate gitea issues.  I can live with Alice not being able to comment on the issue that's been assigned to her -- at worst that communications happens out-of-band.  I can even live with Carol making the mistake of assigning a bug to Alice when Alice doesn't even have read access to the repo.  Let fixing these things be separate issues and separate code changes, even if that means refactoring -- preventing regression during that refactoring is what drone is for.
In the meantime, we're already using workarounds that are far worse in terms of both security and workflow:  In our own case locally, we first wound up putting all issues into a single general/issues repository that everyone has write access to, similar to what @guillep2k suggests.  More recently we've begun migrating all of our code into general/issues, and we've renamed it general/core -- it's now our monorepo.  And we've wound up making everyone on the server a collaborator with write access to the monorepo in order to get around this bug.
In our local case, I've given up on advocating branching or PRs completely at this point, and we're now just committing everything to master in the monorepo -- I'm going to instead have the release workflow deal with migrating from master to test and prod branches, and leave master a cesspool.  Yes, this could be made better by making master a protected branch, and we may yet do that, but that more advanced usage wasn't obvious to us as things grew organically, and it's not going to be obvious to other new gitea owners either.  The normal usage pattern for new gitea owners is to try to assign a bug, then horse things around until the desired assignee finally shows up in the dropdown list.   This usually means opening permissions up more than they would otherwise feel comfortable doing.

@6543 is there a way of assigning a user to an issue via API? I couldn't find any.
AFAICT from browsing the code a little, the only thing preventing the assignment of a user with read-only access to the issue is that the assign box is search only; i.e. it doesn't allow the input of a specific user name, and the search results only include users with write permissions to prevent the list from becoming too big on public repos with thousands of registered users. I can't seem to find the specific PR ATM, but I recall reviewing one where this limitation was discussed. Otherwise the system should currently allow any user with read access to be assigned to an issue.

You can't normally let anybody with read access be assigned or else you can spam any random user with notifications.  I create 1000 public issues with spam content, assign @guillep2k to all of them, send you 1000 emails, etc...
The criteria Github uses is:
Up to 10 people, anyone who has commented on the issue or pull request, anyone with write permissions to the repository, and organization members with read permissions to the repository.
If the menu contained people meeting that criteria I'd think those will cover many cases and would be a good starting point.

@mrsdizzie Sigh, you're right. However on private instance (e.g. corporate) rules can be bended. Or maybe we could allow users to assign themselves? @stevegt what is exactly that assignment gives you in your case? Notifications? User <---> issue matching? ... ?

I think implementing the basic rules above before doing anything else will solve a majority of cases and can think on more edge cases after as it comes up. I suspect "any org member with read access" will cover most of those cases above.  For anything more Gitea would need more fine grained 'role' type groups that don't really exist (yet)

@guillep2k yes the EditIssue Api can change assignees

tl;dr
@guillep2k We need to be able to use assignments to get people aimed in the right direction for what they need to work on, after which they use the normal github-style fork->fix->PR workflow.  None of that should need write access to the master copy of a repo.  Like most orgs using gitea, we have an internal gitea instance -- not public, so no spam risk.  A config variable to enable read-only assignments would do the job.
Details and background:
We use oauth for logins into gitea.  Everyone, once set up with oauth, has read-only access to all repos by default.  We use multiple gitea orgs and multiple repos to categorize projects.  In our case, the users are often interns -- less experienced, high turnover.  Having to add and then later remove each intern as a member of each org/repo doesn't scale well.
Not being able to assign issues to read-only users also decreases the value of the training interns are getting in that they aren't getting used to normal github-style workflow.  If we have to give them write access in order to get them to work on a project, then we're giving them an unrealistic experience relative to what they'll see as an open source contributor.  We could use restricted branches to enforce use of forks and pull requests and prevent pushing to master, but that would have to be done on each repo, so again it doesn't scale.

tl;dr
We need this feature to follow Github Fork and Pull Model - the assignees aren't necessary to have write access but rather fork the repository, make changes and create pull requests. From Github documentation:

This model is popular with open source projects as it reduces the amount of friction for new contributors and allows people to work independently without upfront coordination.

tl;dr
We need this feature to follow Github Fork and Pull Model - the assignees aren't necessary to have write access but rather fork the repository, make changes and create pull requests. From Github documentation:

This model is popular with open source projects as it reduces the amount of friction for new contributors and allows people to work independently without upfront coordination.

Did #14262 close this issue too?

Did #14262 close this issue too?

Not as far as I can tell. For a public repository I can only assign a collaborator that has at least write permission. Collaborators with read permission do not show up in the "Assign users" list.
From the discussion so far my understanding is that there is no workaround at the moment. Please let me know if I missed it.

Any progress? This is quite a big issue for us


[Feature] Hope the script function will support the ability to repost messages to specified topics based on the messages received

Motivation
When the device side is not ready, we hope to script the device to simulate the active reporting of information when we receive a message on a specific topic for the purpose of development and debugging.
Detailed design
1、Write a script to reassemble the payload based on the received messages for publishing to another topic.
2、Bind the script to the subscribed topic.
3、After the subscribed topic receives the message, trigger the script to republish the message.
Alternatives
The current alternatives are: after publishing a message, you need to switch to the mqttx tool, edit the payload manually according to the received message and then publish it to a specific topic, which leads to a sense of fragmentation in the whole process, increasing duplication of effort and reducing efficiency.
More detail (optional)

@we6288815 Hi, thanks for your feedback! The current script function is indeed not powerful enough. We will implement a more complete script function as soon as possible based on your suggestions.

So do I, when does the feature release?

@heliping Hi, sorry about that! I'm not quite sure when the script function will be optimized yet, as we are recently discovered that MQTTX is having major problems with the stability of sub/pub messages, and I'm currently focusing on optimizing the data storage aspect. When MQTTX is stable, we will continue to optimize the scalability features.


Omelette du fromage

Omelette du fromage is not a correct way to say cheese omelet in french. It means cheese's omelet. Omelette au fromage is the correct way.

:+1:

Hi! I know.. and maybe a bit overdue, but this is done on purpose. See: https://www.google.nl/search?q="omelette+du+fromage" :smile:
cc'ing the bugs: #17, #42, #59, #97

I should have look for older bug reports. Thanks for your response.

No problem. It's coming up every once in a while (you're the 5th), and while I like the practical joke, I also would like to hear from more French people what they think of it. Also, perhaps keeping this bug open would help others find it :wink:

Yep. I think it works as a reference, but I doubt French people will get
it. In France, Dexter's lab is translated and distributed in French and
there may not be that much adults watching it in English.
http://www.dailymotion.com/video/x2a83eq_le-laboratoire-de-dexter-saison-1-episode-27-l-omelette-au-fromage_fun
You don't read French language everyday on Github and if you don't know the
Meme, it can be a little weird indeed. But it is not that critical.
2015-10-01 11:13 GMT+02:00 Diederik van der Boor<EMAIL_ADDRESS>
No problem. It's coming up every once in a while (you're the 5th), and
while I like the practical joke, I also would like to hear from more French
people what they think of it. Also, perhaps keeping this bug open would
help others find it [image: :wink:]
—
Reply to this email directly or view it on GitHub
https://github.com/edoburu/django-parler/issues/101#issuecomment-144665575
.

Ah, thank you for clearing that up! That sheds some light on why some people didn't get it!


Display which service belongs to the Public IP found

Can we display which service in the output per Public P found?
Right now I would have to run aws_public_ips -s  one by one to find that info...
Thanks

If you change the output to json (-f json) then it will have the service information


Error: Element type is invalid

Dear all,
Representation of your work is great!
I'm trying to use your library, but without success, thats why I need a help from you..
I gett an error:
"Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.".
I have applied all the suggested steps of installation and appling from your part.
Below is a part of my component's code:

                 {                     headerGroups.map(headerGroup => (
                         {                             // Gives us access to each column                             headerGroup.headers.map( column => (                                                                      {column.render('Header')}                                                                              {column.isSorted ? (column.isSortedDesc ? ' ▼' : ' ▲') : ''}                                                                                ))                         }
                     ))                 }

                 {                     page.map(row => {                         prepareRow(row)                         return(
                                 {                                     row.cells.map( cell=> {                                         return {cell.render('Cell')}	                                     })                                 }
                         )                     })                 }

Hey @MZvjerac would you mind posting your code sample in codesandbox.io and sharing the link?

Dear Coston,
I can give you code for a table component where I wanna implement your
library.
Link for table component :
https://codesandbox.io/s/elegant-clarke-dpodc?file=/src/2TableAKRx.js
This component is used together with others to create something like this:
[image: image.png]
Like you see, there are a lot of columns whose presentation on mobile phone
screens are bad, because of that
your solution looks great.
Thank you in advance!
On Tue, Sep 14, 2021 at 2:24 PM Coston @.***> wrote:

Hey @MZvjerac https://github.com/MZvjerac would you mind posting your
code sample in codesandbox.io and sharing the link?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coston/react-super-responsive-table/issues/298#issuecomment-919099808,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQHRT35MEQS5DHXSORQK6QLUB45JJANCNFSM5D76234Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I'm having a similar issue with just the Thead component. I can't get @MZvjerac 's sandbox to load (it looks like there are a few imports that didn't get uploaded to the sandbox) but I'm suspecting that without Thead it might work?

Try this: https://www.youtube.com/watch?v=ZtopjfXhUZI
It work nice.
On Sat, Sep 25, 2021 at 6:46 PM rkaufman13 @.***> wrote:

I'm having a similar issue with just the Thead component. I can't get
@MZvjerac https://github.com/MZvjerac 's sandbox to load (it looks like
there are a few imports that didn't get uploaded to the sandbox) but I'm
suspecting that without Thead it might work?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coston/react-super-responsive-table/issues/298#issuecomment-927149866,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQHRT3Z7FYT5ZQ2J2CGUK4DUDX4GPANCNFSM5D76234Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Same issue with Thead, I can't quite pinpoint what exactly is causing it. I've commented out Thead and the rest of the table loads just fine with react-table. Will come back with an actual working sandbox later.

I also confirmed this. If thead has multiple trs, it fails.  The react-table is not responsive in the first place, it needs specifying width and height. I think using react-table with react-super-responsive-table is in demand. I hope this will fix.

I had the same error a few days ago, I also wanted to use both libraries, react-table for its ease of creating tables and react-super-responsive-table for the ease it gives for the responsive of the table.
I solved it by leaving the TR out of the .map that is made to headerGroups, being as follows:
Before:

           {headerGroups.map((headerGroup) => (
               {headerGroup.headers.map((column) => (                 {column.render("Header")}	               ))}
           ))}

           {rows.map((row) => {             prepareRow(row);             return (
                 {row.cells.map((cell) => {                   return (                     {cell.render("Cell")}	                   );                 })}
             );           })}

After:

             {headerGroups.map((headerGroup) =>               headerGroup.headers.map((column) => (                 {column.render("Header")}	               ))             )}

           {rows.map((row) => {             prepareRow(row);             return (
                 {row.cells.map((cell) => {                   return (                     {cell.render("Cell")}	                   );                 })}
             );           })}

I hope it can work for you.

I had the same error a few days ago, I also wanted to use both libraries, react-table for its ease of creating tables and react-super-responsive-table for the ease it gives for the responsive of the table.
I solved it by leaving the TR out of the .map that is made to headerGroups, being as follows:
Before:

           {headerGroups.map((headerGroup) => (
               {headerGroup.headers.map((column) => (                 {column.render("Header")}	               ))}
           ))}

           {rows.map((row) => {             prepareRow(row);             return (
                 {row.cells.map((cell) => {                   return (                     {cell.render("Cell")}	                   );                 })}
             );           })}

After:

             {headerGroups.map((headerGroup) =>               headerGroup.headers.map((column) => (                 {column.render("Header")}	               ))             )}

           {rows.map((row) => {             prepareRow(row);             return (
                 {row.cells.map((cell) => {                   return (                     {cell.render("Cell")}	                   );                 })}
             );           })}

I hope it can work for you.

@coston I am not quit sure about this but i did some investigations and I noticed that the issue appears when trying to loop the Tr component where we need to add the key propriety to it.
I reviewed the code for the Tr and I think you should at least add the key prop to (Consumer) component as it is the parent component. For now the props, which contains the key prop are spread in TrInner .
Hoping this is the issue.

Is this something possible to fix? I ran into this issue as well.


Building Sequence with --with-gui=auto fails

Describe the issue
When building Sequence on a recent debian9 with all updates etcpp, the build fails
Makefile:5432: recipe for target 'qt/qt_libsequenceqt_a-stakereportdialog.o' failed
Steps to reproduce

git clone https://github.com/duality-solutions/Sequence
cd Sequence
./autogen.sh
./configure --with-incompatible-bdb --with-gui=auto
make

Expected behavior
Build completes.
Actual behavior
Build fails:
In file included from qt/stakereportdialog.cpp:8:0: ./qt/forms/ui_stakereportdialog.h: In member function ‘void Ui_StakeReportDialog::setupUi(QDialog*)’: ./qt/forms/ui_stakereportdialog.h:320:27: error: ‘class QTableWidget’ has no member named ‘setSizeAdjustPolicy’; did you mean ‘setSizePolicy’?          StakeReportTable->setSizeAdjustPolicy(QAbstractScrollArea::AdjustIgnored);                            ^~~~~~~~~~~~~~~~~~~ ./qt/forms/ui_stakereportdialog.h:320:47: error: ‘AdjustIgnored’ is not a member of ‘QAbstractScrollArea’          StakeReportTable->setSizeAdjustPolicy(QAbstractScrollArea::AdjustIgnored);                                                ^~~~~~~~~~~~~~~~~~~ Makefile:5432: recipe for target 'qt/qt_libsequenceqt_a-stakereportdialog.o' failed make[2]: *** [qt/qt_libsequenceqt_a-stakereportdialog.o] Error 1
What platform are you using (Linux, Windows, Mac)
# uname -a
Linux x220 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
# cat /etc/debian_version
9.4

Could you please testbuild the branch called "buildtest".

Sequence must be built with qt5.


themes.gohugo.io down

DNS error on visiting http://themes.gohugo.io/ Error code: ERR_NAME_NOT_RESOLVED

It's "coming soon", as stated in README.


Support Nested Forms

Many places in the code where we select based on [data-schema-key] in the template will need to be changed to ignore sub-forms. PR #330 fixed one area but there are several more, and it will need to be tested well in general before we can claim to support it. Technically we should probably look at the form attribute as well in case an input is linked to a separate form.

I ran into the infinite loop problem today with a nested form. After poking around I was able to make it stop by commenting out this line in autoForm.js. Obviously this breaks other stuff, but thought it might help pinpoint.

@fusepilot I believe I fixed this without causing issues in this commit. The feature/subforms branch in my repo pretty much works, but I haven't had a chance to merge it in yet. The only issue as I mentioned earlier is that calling AutoForm.resetForm() clears the contents of the subform fields. Otherwise I'm using it as a custom package in my packages directory and it appears to work well.

Thanks @aramk, that branch does indeed seem to fix it. Looking forward to the merge.

I'll make a PR in any case and we can work from there.

A lot of internals have changed in devel branch and are still changing, so some of this PR will have to be redone. I suspect that there are still issues anyway. If anyone has an example of a case where subforms would be needed, that would be helpful for testing. I've never had any use for subforms.

Thanks for the heads up. In my case I had a customer form with a set of order schedules containing an order template which is used to populate new orders in the schedule. I'm reusing a single order form for both these instances and the template, such that any number of them can appear on a customer's page. While some of it could be handled with sub-schemas, the order form has its own complex logic.

Isn't subforums technically not allowed in html?
http://stackoverflow.com/questions/379610/can-you-nest-html-forms

See the next two answers, it mentions it’s possible. We’re not going to let something like standards stop us from doing what we want :P
On Sun, Feb 1, 2015 at 2:15 AM, rclai<EMAIL_ADDRESS>wrote:

Isn't subforums technically not allowed in html?
http://stackoverflow.com/questions/379610/can-you-nest-html-forms
Reply to this email directly or view it on GitHub:
https://github.com/aldeed/meteor-autoform/issues/332#issuecomment-72321519


Can not import react module into the app

Node/npm version(s): v18.16.1
Package(s) version(s): ^3.1.3
Description of the issue/feature:  The package cannot be imported into the app, which always returns the same error (I have also tried with the new version but nothing changes)
package.json
    {
  "name": "react_",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@porscheofficial/cookie-consent-banner-react": "^3.1.3",
    "@statuspage/status-widget": "^1.0.4",
    "@stripe/react-stripe-js": "^2.1.0",
    "@stripe/stripe-js": "^1.54.1",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^14.0.0",
    "@testing-library/user-event": "^14.4.3",
    "aos": "^2.3.4",
    "firebase": "^8.6.8",
    "history": "^5.3.0",
    "i18next": "^23.2.11",
    "i18next-browser-languagedetector": "^7.1.0",
    "i18next-http-backend": "^2.2.1",
    "lottie-react": "^2.4.0",
    "lottie-web": "^5.12.2",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-ga4": "^2.1.0",
    "react-i18next": "^13.0.2",
    "react-owl-carousel": "^2.3.3",
    "react-router-dom": "^6.4.3",
    "react-router-hash-link": "^2.4.3",
    "react-scripts": "^5.0.1",
    "react-scrollspy": "^3.4.3",
    "shebang-regex": "^4.0.0",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@babel/plugin-proposal-private-property-in-object": "^7.21.11"
  }
}

Error
ERROR in ./src/component/GDPR_Banner/Main.js 4:0-118
Module not found: Error: Can't resolve '<EMAIL_ADDRESS>in '/Volumes/SSD/shoppup_site/client/src/component/GDPR_Banner'

Import Statement
import {CookieConsentBanner, triggerCookieConsentBanner} from '@porscheofficial/cookie-consent-banner-react';

I have got the same issue.

Thanks for reporting @Th3F0x-code and @strandchef.
Can you confirm that this issue didn't happen in earlier versions (<=3.1.3)?

@pboeder yes exactly

Should be fixed with v3.1.5. Sorry for the inconvenience!


Allow specification of pipeline config when creating detector

Get rid of config_name field and add a pipeline_config field.

The tests here are going to fail until corresponding updates have been made to the public API. Will land this after landing the changes to the public API.


openapi definition is broken

try access http://localhost:8000/api/v2/openapi.json and it's broken
this results that we cannot use codegen anymore

Need to double check what change in the backend has introduced this


Misleading output for AAD app ARM authentication

Hello,
I just had to troubleshoot a customer's C# app that authenticates to ARM via a service principal (AAD app).
Problem was the log output from the SDK is not very helpful:
The client 'fdc050fd-5ca7-42b0-bccf-6b6df0b455db' with object id 'fdc050fd-5ca7-42b0-bccf-6b6df0b455db' does not have authorization to perform action 'Microsoft.KeyVault/vaults/read' over scope '/subscriptions/<subscriptionId>/resourceGroups/rg/providers/Microsoft.KeyVault/vaults/kv-aus'

It turns out that the application in question was the AAD app with ApplicationId as can be seen in this attachment.

The log output made me assume that the client was the ApplicationId and object id was the objectId, but in the AAD app portal there is no way to search by objectId neither is the objectId visible in the portal.
Am I just looking at the wrong thing or is this log output from the SDK not very helpful?

@davidobrien1985 can you please descibe what you are trying to do and what SDKs and their respective versions you are using.
The provided information is not sufficient to reproduce the issue.

Hi. We're closing this issue as no response or updates have been provided in a timely manner and we have been unable to reproduce it. If you have more details and are encountering this issue please add a new reply and re-open the issue.


prevent MST from validating ids in sections

Before this change if a unit had content with duplicate ids across sections, the content would
crash CLUE. With this change the ids only need to be unique within the section itself.
This can be tested with an old version of the seeit unit. You can use this unit by passing this argument to CLUE:
unit=https://models-resources.concord.org/clue-curriculum/version/seeit-duplicate-ids/seeit/content.json
So this should work:
https://collaborative-learning.concord.org/branch/section-scoped-ids/?appMode=dev&unit=https://models-resources.concord.org/clue-curriculum/version/seeit-duplicate-ids/seeit/content.json
And this should fail:
https://collaborative-learning.concord.org/version/v4.7.0/?appMode=dev&unit=https://models-resources.concord.org/clue-curriculum/version/seeit-duplicate-ids/seeit/content.json

The one failing regression test seems like a random bug in cypress itself.


Custom field date-type objects AssertionError in GraphQL

Environment

Nautobot version (Docker tag too if applicable): 1.5.17b1, also tested in 1.5.8
Python version: 3.9
Database platform, version: psql 13.10
Middleware(s): None

Steps to Reproduce

Create a custom field object for the Device type template with the type as Date
Set a date on a device in YYYY-MM-DD iso8601 format
You have to restart nautobot-server; we may need a post_save signal event for this as well, which would be a separate issue if so
Using GraphQL attempt to retrieve the value of this field from a device
{ devices (name: "ams01-dist-01") {  name,  cf_last_backup } }

Expected Behavior
Query to return the value of the Date

Observed Behavior

GrapQL returns "message": "Received not compatible date \"'2023-04-26'\""
stdout from nautobot-server gets an exception

[27/Apr/2023 17:20:01] "POST /graphql/ HTTP/1.1"<PHONE_NUMBER> Traceback (most recent call last):   File "/home/meganerd/.cache/pypoetry/virtualenvs/nautobot-Sgl-QJQc-py3.9/lib/python3.9/site-packages/graphql/execution/executor.py", line 480, in complete_value_catching_error     completed = complete_value(   File "/home/meganerd/.cache/pypoetry/virtualenvs/nautobot-Sgl-QJQc-py3.9/lib/python3.9/site-packages/graphql/execution/executor.py", line 563, in complete_value     return complete_leaf_value(return_type, path, result)   File "/home/meganerd/.cache/pypoetry/virtualenvs/nautobot-Sgl-QJQc-py3.9/lib/python3.9/site-packages/graphql/execution/executor.py", line 626, in complete_leaf_value     serialized_result = return_type.serialize(result)   File "/home/meganerd/.cache/pypoetry/virtualenvs/nautobot-Sgl-QJQc-py3.9/lib/python3.9/site-packages/graphene/types/datetime.py", line 23, in serialize     assert isinstance( AssertionError: Received not compatible date "'2023-04-26'"

You have to restart nautobot-server; we may need a post_save signal event for this as well, which would be a separate issue if so

This is a known issue: https://github.com/nautobot/nautobot/issues/446

@MeganerdDev I confirmed this bug. As a workaround, you should be able to access the value via _custom_field_data: { devices (name: "ams01-dist-01") { name, _custom_field_data } } and inside you will find the data you're looking for.

@bryanculver The mitigation is working however I was wondering if this can be looked at again for a bugfix? I did some investigation I think might be useful for context
In the serialize method of the Data class in graphene==2.1.9 ./graphene/types/datetime.py
The serializer expects a date object, and is getting a string instead
Not sure if we wanted to apply a monkey-patch with something like the following, or alternatively ensure the TYPE_DATE custom field object is converted before this serialization?
if not isinstance(date, datetime.date) and isinstance(date, str):
    date = datetime.datetime.strptime(date, "%Y-%m-%d").date()

The monkey-patched method
@staticmethod
def serialize(date):
    if isinstance(date, datetime.datetime):
        date = date.date()
    if not isinstance(date, datetime.date) and isinstance(date, str):
        date = datetime.datetime.strptime(date, "%Y-%m-%d").date()
    assert isinstance(
        date, datetime.date
    ), 'Received not compatible date "{}"'.format(repr(date))
    return date.isoformat()

Screenshot of testing -> result: working as expected

Hey team! Please add your planning poker estimate with Zenhub @bryanculver @gsnider2195 @HanlinMiao @jathanism

Need to backport to 1.6


Platform specific id

I have an app that is the same for Android and iOS with different ids for reasons beyond my control.
If I understood right, to change the ids to be specific for each platform, my ./renative.json (not ./appConfigs/renative.json) should be something like this:
...
"platforms": {
        "android": {
                ...
            },
            "id": "ANDROID_ID"
        },
        "androidtv": {
            ...
        },
        "ios": {
            "id": "IOS_ID"
        },
        "platforms": {
            ...
        }
    },
...

Is that correct?

You can specify it in common section on the top of appConfig
"common": {
      "platforms": {
          "ios": { "id": "com.my.app.ios"},
          "android": { "id": "com.my.app.android"},

or override it per platform build scheme, what is most common solution
"platforms": {
        "ios": {
            "buildSchemes": {
                "debug": {
                    "title": "My App Debug",
                    "id": "com.my.app.debug"
                },
                "trial": {
                    "title": "My App Trial",
                    "id": "com.my.app.trial",
                 "prod": {
                    "title": "My App Trial",
                    "id": "com.my.app",


public final methods in package private abstract superclasses are not in abi-dump.txt

Plugin version

0.75.0
Gradle version

7.1.1
Describe the bug

Package private abstract classes with public final methods are not in the abi-dump.txt file and thus likely not considered during analysis. Given that public sub classes can make the public final method of the package private abstract class accessible, this should be considered.
To Reproduce

// Base is not public but Base.compute/computeFinal() is
abstract class Base {

  public int compute() {
    return 0;
  }

  // not part of abi ?!
  public final int computeFinal() {
    return 0;
  }

}

// Calc makes Base.compute/computeFinal() accessible to anyone.
public class Calc extends Base {

}

Results in abi-dump.txt:
public class some/package/Calc {
	public fun <init> ()V
	public synthetic fun compute ()I
}

Expected behavior
Both methods should be part of the abi-dump.

Thanks for the report.


how grant security

Environment
KDE Neon
Mattermost Running version 1.21.0 cf13fff7

Operating system:
KDE Neon
I wonder how to keep my privacy avoiding to give my matrix user and password: how can I do?

You should create a new account for the bridge.

You should create a new account for the bridge.

Yes, so I did. Thanks.

Yes, so I did. Thanks.


Uses incorrect slashes on Windows

In the bootstrap_icons.py file, it uses os.path.join in both bs_icon and md_icon, but it's building a URL where we should always have forward slashes, never backwards slashes as you'll end up with if you're running the code on Windows.

Fixed with 0.6.1


[dvsim] Be more explicit about seeds when running tests

This should avoid ugly paths all over the place and tests that are hard to reproduce. We still get the long build seeds that were the motivation for the 256 bit constants that we had before.
The base seeds are now all 16 bit values, so should be a bit more convenient to type on the command line. But the build seeds should be much longer (256 bits) if needed.

Ok. Let's leave this to mature gently :-) We can always reconsider things and tidy this up after next time we take a release branch (where we'll be at a rather different place in the release cycle)

Ok. Let's leave this to mature gently :-) We can always reconsider things and tidy this up after next time we take a release branch (where we'll be at a rather different place in the release cycle)

Agreed, thanks for your work on this, @rswarbrick. This will be a useful improvement but now doesn't seem to be the right time to make this change.


fix: add explicit type casts while merge

Related Issue(s)

closes #3034

Thanks! @t1g0rz
Exactly what I had in mind


cann't get the raft-max-inflight-msgs config value from the config http api

Bug Report

What version of TiKV are you using?

raft commit log 慢。TiKV Grafana 的 Raft I/O 和 commit log duration 比较高（4.x 版本的 Grafana 才有该 metric）。每个 Region 对应一个独立的 Raft group，Raft 本身是有流控机制的，类似 TCP 的滑动窗口机制，通过参数 [raftstore] raft-max-inflight-msgs = 256 来控制滑动窗口的大小，如果有热点写入并且 commit log duration 比较高可以适度调大改参数，比如 1024。
-- This is from the doc

After I change the [raftstore] raft-max-inflight-msgs = 256, I use curl tikv_status_address/config to validate, but I cann't get the raft-max-inflight-msgs value.
curl <IP_ADDRESS>:20180/config
{"log-level":"info","log-file":"/home/pingcap/cs/cluster/dep/tikv-25160/log/tikv.log","log-format":"text","slow-log-file":"","slow-log-threshold":"1s","log-rotation-timespan":"1d","log-rotation-size":"300MiB","readpool":{"unified":{"min-thread-count":1,"max-thread-count":32,"stack-size":"10MiB","max-tasks-per-worker":2000},"storage":{"use-unified-pool":false,"high-concurrency":8,"normal-concurrency":8,"low-concurrency":8,"max-tasks-per-worker-high":2000,"max-tasks-per-worker-normal":2000,"max-tasks-per-worker-low":2000,"stack-size":"10MiB"},"coprocessor":{"use-unified-pool":true,"high-concurrency":32,"normal-concurrency":32,"low-concurrency":32,"max-tasks-per-worker-high":2000,"max-tasks-per-worker-normal":2000,"max-tasks-per-worker-low":2000,"stack-size":"10MiB"}},"server":{"addr":"<IP_ADDRESS>:25160","advertise-addr":"<IP_ADDRESS>:25160","status-addr":"<IP_ADDRESS>:25180","advertise-status-addr":"<IP_ADDRESS>:25180","status-thread-pool-size":1,"max-grpc-send-msg-len":10485760,"grpc-compression-type":"none","grpc-concurrency":8,"grpc-concurrent-stream":1024,"grpc-raft-conn-num":8,"grpc-memory-pool-quota":9223372036854775807,"grpc-stream-initial-window-size":"2MiB","grpc-keepalive-time":"10s","grpc-keepalive-timeout":"3s","concurrent-send-snap-limit":32,"concurrent-recv-snap-limit":32,"end-point-recursion-limit":1000,"end-point-stream-channel-size":8,"end-point-batch-row-limit":64,"end-point-stream-batch-row-limit":128,"end-point-enable-batch-if-possible":true,"end-point-request-max-handle-duration":"1m","end-point-max-concurrency":40,"snap-max-write-bytes-per-sec":"100MiB","snap-max-total-size":"0KiB","stats-concurrency":1,"heavy-load-threshold":300,"heavy-load-wait-duration":"1ms","enable-request-batch":true,"labels":{}},"storage":{"data-dir":"/data3/cs1/tikv-25160","gc-ratio-threshold":1.1,"max-key-size":4096,"scheduler-concurrency":524288,"scheduler-worker-pool-size":8,"scheduler-pending-write-threshold":"100MiB","reserve-space":"2GiB","block-cache":{"shared":true,"capacity":"50GiB","num-shard-bits":6,"strict-capacity-limit":false,"high-pri-pool-ratio":0.8,"memory-allocator":"nodump"}},"pd":{"endpoints":["<IP_ADDRESS>:25379"],"retry-interval":"300ms","retry-max-count":9223372036854775807,"retry-log-every":10,"update-interval":"10m"},"raftstore":{"prevote":true,"raftdb-path":"/data3/cs1/tikv-25160/raft","capacity":"100GiB","raft-entry-max-size":"8MiB","raft-log-gc-tick-interval":"10s","raft-log-gc-threshold":50,"raft-log-gc-count-limit":73728,"raft-log-gc-size-limit":"72MiB","raft-engine-purge-interval":"10s","raft-entry-cache-life-time":"30s","raft-reject-transfer-leader-duration":"3s","split-region-check-tick-interval":"10s","region-split-check-diff":"6MiB","region-compact-check-interval":"5m","region-compact-check-step":100,"region-compact-min-tombstones":10000,"region-compact-tombstones-percent":30,"pd-heartbeat-tick-interval":"1m","pd-store-heartbeat-tick-interval":"10s","snap-mgr-gc-tick-interval":"1m","snap-gc-timeout":"4h","lock-cf-compact-interval":"10m","lock-cf-compact-bytes-threshold":"256MiB","notify-capacity":40960,"messages-per-tick":4096,"max-peer-down-duration":"5m","max-leader-missing-duration":"2h","abnormal-leader-missing-duration":"10m","peer-stale-state-check-interval":"5m","snap-apply-batch-size":"10MiB","consistency-check-interval":"0s","raft-store-max-leader-lease":"9s","allow-remove-leader":false,"merge-check-tick-interval":"10s","cleanup-import-sst-interval":"10m","local-read-batch-size":1024,"apply-max-batch-size":256,"apply-pool-size":5,"apply-reschedule-duration":"5s","store-max-batch-size":256,"store-pool-size":5,"store-reschedule-duration":"5s","future-poll-size":1,"hibernate-timeout":"10m","perf-level":1},"coprocessor":{"split-region-on-table":false,"batch-split-limit":10,"region-max-size":"144MiB","region-split-size":"96MiB","region-max-keys":1440000,"region-split-keys":960000,"consistency-check-method":"mvcc"},"rocksdb":{"info-log-level":"info","wal-recovery-mode":2,"wal-dir":"","wal-ttl-seconds":0,"wal-size-limit":"0KiB","max-total-wal-size":"4GiB","max-background-jobs":8,"max-manifest-file-size":"128MiB","create-if-missing":true,"max-open-files":40960,"enable-statistics":true,"stats-dump-period":"10m","compaction-readahead-size":"0KiB","info-log-max-size":"1GiB","info-log-roll-time":"0s","info-log-keep-log-file-num":10,"info-log-dir":"","rate-bytes-per-sec":"0KiB","rate-limiter-refill-period":"100ms","rate-limiter-mode":2,"auto-tuned":false,"bytes-per-sync":"1MiB","wal-bytes-per-sync":"512KiB","max-sub-compactions":3,"writable-file-max-buffer-size":"1MiB","use-direct-io-for-flush-and-compaction":false,"enable-pipelined-write":true,"enable-multi-batch-write":true,"enable-unordered-write":false,"defaultcf":{"block-size":"64KiB","block-cache-size":"32163MiB","disable-block-cache":false,"cache-index-and-filter-blocks":true,"pin-l0-filter-and-index-blocks":true,"use-bloom-filter":true,"optimize-filters-for-hits":true,"whole-key-filtering":true,"bloom-filter-bits-per-key":10,"block-based-bloom-filter":false,"read-amp-bytes-per-bit":0,"compression-per-level":["no","no","lz4","lz4","lz4","zstd","zstd"],"write-buffer-size":"128MiB","max-write-buffer-number":5,"min-write-buffer-number-to-merge":1,"max-bytes-for-level-base":"512MiB","target-file-size-base":"128MiB","level0-file-num-compaction-trigger":4,"level0-slowdown-writes-trigger":20,"level0-stop-writes-trigger":36,"max-compaction-bytes":"2GiB","compaction-pri":3,"dynamic-level-bytes":true,"num-levels":7,"max-bytes-for-level-multiplier":10,"compaction-style":0,"disable-auto-compactions":false,"soft-pending-compaction-bytes-limit":"64GiB","hard-pending-compaction-bytes-limit":"256GiB","force-consistency-checks":false,"prop-size-index-distance":4194304,"prop-keys-index-distance":40960,"enable-doubly-skiplist":true,"enable-compaction-guard":false,"compaction-guard-min-output-file-size":"8MiB","compaction-guard-max-output-file-size":"128MiB","titan":{"min-blob-size":"1KiB","blob-file-compression":"lz4","blob-cache-size":"0KiB","min-gc-batch-size":"16MiB","max-gc-batch-size":"64MiB","discardable-ratio":0.5,"sample-ratio":0.1,"merge-small-file-threshold":"8MiB","blob-run-mode":"normal","level-merge":false,"range-merge":true,"max-sorted-runs":20,"gc-merge-rewrite":false}},"writecf":{"block-size":"64KiB","block-cache-size":"19298MiB","disable-block-cache":false,"cache-index-and-filter-blocks":true,"pin-l0-filter-and-index-blocks":true,"use-bloom-filter":true,"optimize-filters-for-hits":false,"whole-key-filtering":false,"bloom-filter-bits-per-key":10,"block-based-bloom-filter":false,"read-amp-bytes-per-bit":0,"compression-per-level":["no","no","lz4","lz4","lz4","zstd","zstd"],"write-buffer-size":"128MiB","max-write-buffer-number":5,"min-write-buffer-number-to-merge":1,"max-bytes-for-level-base":"512MiB","target-file-size-base":"128MiB","level0-file-num-compaction-trigger":4,"level0-slowdown-writes-trigger":20,"level0-stop-writes-trigger":36,"max-compaction-bytes":"2GiB","compaction-pri":3,"dynamic-level-bytes":true,"num-levels":7,"max-bytes-for-level-multiplier":10,"compaction-style":0,"disable-auto-compactions":false,"soft-pending-compaction-bytes-limit":"64GiB","hard-pending-compaction-bytes-limit":"256GiB","force-consistency-checks":false,"prop-size-index-distance":4194304,"prop-keys-index-distance":40960,"enable-doubly-skiplist":true,"enable-compaction-guard":false,"compaction-guard-min-output-file-size":"8MiB","compaction-guard-max-output-file-size":"128MiB","titan":{"min-blob-size":"1KiB","blob-file-compression":"lz4","blob-cache-size":"0KiB","min-gc-batch-size":"16MiB","max-gc-batch-size":"64MiB","discardable-ratio":0.5,"sample-ratio":0.1,"merge-small-file-threshold":"8MiB","blob-run-mode":"read-only","level-merge":false,"range-merge":true,"max-sorted-runs":20,"gc-merge-rewrite":false}},"lockcf":{"block-size":"16KiB","block-cache-size":"1GiB","disable-block-cache":false,"cache-index-and-filter-blocks":true,"pin-l0-filter-and-index-blocks":true,"use-bloom-filter":true,"optimize-filters-for-hits":false,"whole-key-filtering":true,"bloom-filter-bits-per-key":10,"block-based-bloom-filter":false,"read-amp-bytes-per-bit":0,"compression-per-level":["no","no","no","no","no","no","no"],"write-buffer-size":"32MiB","max-write-buffer-number":5,"min-write-buffer-number-to-merge":1,"max-bytes-for-level-base":"128MiB","target-file-size-base":"8MiB","level0-file-num-compaction-trigger":1,"level0-slowdown-writes-trigger":20,"level0-stop-writes-trigger":36,"max-compaction-bytes":"2GiB","compaction-pri":0,"dynamic-level-bytes":true,"num-levels":7,"max-bytes-for-level-multiplier":10,"compaction-style":0,"disable-auto-compactions":false,"soft-pending-compaction-bytes-limit":"64GiB","hard-pending-compaction-bytes-limit":"256GiB","force-consistency-checks":false,"prop-size-index-distance":4194304,"prop-keys-index-distance":40960,"enable-doubly-skiplist":true,"enable-compaction-guard":false,"compaction-guard-min-output-file-size":"8MiB","compaction-guard-max-output-file-size":"128MiB","titan":{"min-blob-size":"1KiB","blob-file-compression":"lz4","blob-cache-size":"0KiB","min-gc-batch-size":"16MiB","max-gc-batch-size":"64MiB","discardable-ratio":0.5,"sample-ratio":0.1,"merge-small-file-threshold":"8MiB","blob-run-mode":"read-only","level-merge":false,"range-merge":true,"max-sorted-runs":20,"gc-merge-rewrite":false}},"raftcf":{"block-size":"16KiB","block-cache-size":"128MiB","disable-block-cache":false,"cache-index-and-filter-blocks":true,"pin-l0-filter-and-index-blocks":true,"use-bloom-filter":true,"optimize-filters-for-hits":true,"whole-key-filtering":true,"bloom-filter-bits-per-key":10,"block-based-bloom-filter":false,"read-amp-bytes-per-bit":0,"compression-per-level":["no","no","no","no","no","no","no"],"write-buffer-size":"128MiB","max-write-buffer-number":5,"min-write-buffer-number-to-merge":1,"max-bytes-for-level-base":"128MiB","target-file-size-base":"8MiB","level0-file-num-compaction-trigger":1,"level0-slowdown-writes-trigger":20,"level0-stop-writes-trigger":36,"max-compaction-bytes":"2GiB","compaction-pri":0,"dynamic-level-bytes":true,"num-levels":7,"max-bytes-for-level-multiplier":10,"compaction-style":0,"disable-auto-compactions":false,"soft-pending-compaction-bytes-limit":"64GiB","hard-pending-compaction-bytes-limit":"256GiB","force-consistency-checks":false,"prop-size-index-distance":4194304,"prop-keys-index-distance":40960,"enable-doubly-skiplist":true,"enable-compaction-guard":false,"compaction-guard-min-output-file-size":"8MiB","compaction-guard-max-output-file-size":"128MiB","titan":{"min-blob-size":"1KiB","blob-file-compression":"lz4","blob-cache-size":"0KiB","min-gc-batch-size":"16MiB","max-gc-batch-size":"64MiB","discardable-ratio":0.5,"sample-ratio":0.1,"merge-small-file-threshold":"8MiB","blob-run-mode":"read-only","level-merge":false,"range-merge":true,"max-sorted-runs":20,"gc-merge-rewrite":false}},"ver-defaultcf":{"block-size":"64KiB","block-cache-size":"32163MiB","disable-block-cache":false,"cache-index-and-filter-blocks":true,"pin-l0-filter-and-index-blocks":true,"use-bloom-filter":true,"optimize-filters-for-hits":true,"whole-key-filtering":true,"bloom-filter-bits-per-key":10,"block-based-bloom-filter":false,"read-amp-bytes-per-bit":0,"compression-per-level":["no","no","lz4","lz4","lz4","zstd","zstd"],"write-buffer-size":"128MiB","max-write-buffer-number":5,"min-write-buffer-number-to-merge":1,"max-bytes-for-level-base":"512MiB","target-file-size-base":"8MiB","level0-file-num-compaction-trigger":4,"level0-slowdown-writes-trigger":20,"level0-stop-writes-trigger":36,"max-compaction-bytes":"2GiB","compaction-pri":3,"dynamic-level-bytes":true,"num-levels":7,"max-bytes-for-level-multiplier":10,"compaction-style":0,"disable-auto-compactions":false,"soft-pending-compaction-bytes-limit":"64GiB","hard-pending-compaction-bytes-limit":"256GiB","force-consistency-checks":false,"prop-size-index-distance":4194304,"prop-keys-index-distance":40960,"enable-doubly-skiplist":true,"enable-compaction-guard":false,"compaction-guard-min-output-file-size":"8MiB","compaction-guard-max-output-file-size":"128MiB","titan":{"min-blob-size":"1KiB","blob-file-compression":"lz4","blob-cache-size":"0KiB","min-gc-batch-size":"16MiB","max-gc-batch-size":"64MiB","discardable-ratio":0.5,"sample-ratio":0.1,"merge-small-file-threshold":"8MiB","blob-run-mode":"normal","level-merge":false,"range-merge":true,"max-sorted-runs":20,"gc-merge-rewrite":false}},"titan":{"enabled":false,"dirname":"","disable-gc":false,"max-background-gc":4,"purge-obsolete-files-period":"10s"}},"raftdb":{"wal-recovery-mode":2,"wal-dir":"","wal-ttl-seconds":0,"wal-size-limit":"0KiB","max-total-wal-size":"4GiB","max-background-jobs":4,"max-manifest-file-size":"20MiB","create-if-missing":true,"max-open-files":40960,"enable-statistics":true,"stats-dump-period":"10m","compaction-readahead-size":"0KiB","info-log-max-size":"1GiB","info-log-roll-time":"0s","info-log-keep-log-file-num":10,"info-log-dir":"","info-log-level":"info","max-sub-compactions":2,"writable-file-max-buffer-size":"1MiB","use-direct-io-for-flush-and-compaction":false,"enable-pipelined-write":true,"enable-unordered-write":false,"allow-concurrent-memtable-write":true,"bytes-per-sync":"1MiB","wal-bytes-per-sync":"512KiB","defaultcf":{"block-size":"64KiB","block-cache-size":"2GiB","disable-block-cache":false,"cache-index-and-filter-blocks":true,"pin-l0-filter-and-index-blocks":true,"use-bloom-filter":false,"optimize-filters-for-hits":true,"whole-key-filtering":true,"bloom-filter-bits-per-key":10,"block-based-bloom-filter":false,"read-amp-bytes-per-bit":0,"compression-per-level":["no","no","lz4","lz4","lz4","zstd","zstd"],"write-buffer-size":"128MiB","max-write-buffer-number":5,"min-write-buffer-number-to-merge":1,"max-bytes-for-level-base":"512MiB","target-file-size-base":"8MiB","level0-file-num-compaction-trigger":4,"level0-slowdown-writes-trigger":20,"level0-stop-writes-trigger":36,"max-compaction-bytes":"2GiB","compaction-pri":0,"dynamic-level-bytes":true,"num-levels":7,"max-bytes-for-level-multiplier":10,"compaction-style":0,"disable-auto-compactions":false,"soft-pending-compaction-bytes-limit":"64GiB","hard-pending-compaction-bytes-limit":"256GiB","force-consistency-checks":false,"prop-size-index-distance":4194304,"prop-keys-index-distance":40960,"enable-doubly-skiplist":true,"enable-compaction-guard":false,"compaction-guard-min-output-file-size":"8MiB","compaction-guard-max-output-file-size":"128MiB","titan":{"min-blob-size":"1KiB","blob-file-compression":"lz4","blob-cache-size":"0KiB","min-gc-batch-size":"16MiB","max-gc-batch-size":"64MiB","discardable-ratio":0.5,"sample-ratio":0.1,"merge-small-file-threshold":"8MiB","blob-run-mode":"normal","level-merge":false,"range-merge":true,"max-sorted-runs":20,"gc-merge-rewrite":false}},"titan":{"enabled":false,"dirname":"","disable-gc":false,"max-background-gc":4,"purge-obsolete-files-period":"10s"}},"raft-engine":{"enable":false,"dir":"/data3/cs1/tikv-25160/raft-engine","recovery-mode":"tolerate-corrupted-tail-records","bytes-per-sync":"256KiB","target-file-size":"128MiB","purge-threshold":"10GiB","cache-limit":"1GiB"},"security":{"ca-path":"","cert-path":"","key-path":"","cert-allowed-cn":[],"redact-info-log":null,"encryption":{"data-encryption-method":"plaintext","data-key-rotation-period":"7d","master-key":{"type":"plaintext"},"previous-master-key":{"type":"plaintext"}}},"import":{"num-threads":8,"stream-channel-window":128,"import-mode-timeout":"10m"},"backup":{"num-threads":30},"pessimistic-txn":{"wait-for-lock-timeout":"1s","wake-up-delay-duration":"20ms","pipelined":true},"gc":{"ratio-threshold":1.1,"batch-keys":512,"max-write-bytes-per-sec":"0KiB","enable-compaction-filter":false,"compaction-filter-skip-version-check":false},"split":{"qps-threshold":3000,"split-balance-score":0.25,"split-contained-score":0.5,"detect-times":10,"sample-num":20,"sample-threshold":100},"cdc":{"min-ts-interval":"1s","old-value-cache-size":1024}}%

What operating system and CPU are you using?
Steps to reproduce
What did you expect?
What did happened?
TiKV Version
a69dd472859004811477bb2291d1ef6260ac6ec2

@breeswish  PTAL

These configurations are marked as hidden. @BusyJay PTAL, I think they should be revealed from configuration API. Otherwise there is no way for other components (like SQL Diagnostics) to know the value of this configuration item.

@NingLin-P PTAL. It can be a read-only field.

Previously, which configurations are marked as hidden are subject to whether they show up at the config template and that may implying whether we want the user to change these configs. But indeed, this relationship is staled, and I will send a PR to make some configs become read-only field. /cc @rleungx @overvenus


few bad links

Category 3d:

LowPoly 3D models from Google https://poly.google.com/search/duck  -  n/a (project shutdown by google)
https://www.kukla-kit.com/  - n/a (failed to load)

thank you :(


Modified time doesn't take effect in block "start countdown"

Describe the bug
Modified time doesn't take effect in block "start countdown"
Steps to reproduce the behavior
1.Navigate to https://arcade.makecode.com/beta#
2.Tutorial---->Lemon Leak---->Start Tutorial
3.Click step 3
Expect behavior
Change the time from 10 to 30 seconds and takes effect in the simulator.
Actual behavior
Change the time from 10 to 30 seconds and time becomes 3 seconds in the simulator.

Additional context
1.OS: Windows(rs6)
2.arcade version: 0.18.4
3.Microsoft MakeCode version: 6.1.14

might be a leading-edge debounce issue? it looks like it compiled while the "3" was being typed and didn't update for the "0". this is probably fixed in latest/with michal's recent fixes to debounce

@Sheila111 can you please test this bug again and see if this still repros?

Fixed

@abchatra  yes, it's fixed.


I think position embedding is important in sentiment analysis. Maybe adding position embdding in embedding layer makes figure more precise.

I try to modify data_util.py, but there are some places that make me confused. I am caught in the bottleneck. So how to modify data_util.py to add position embedding?
Thanks

Please refer to the implementations of RAM and TNet.


fix: add favicon test asset

The favicon was taken from https://github.com/mathiasbynens/small.
Issue: https://bugzilla.mozilla.org/show_bug.cgi?id=1682076

Thanks a lot for adding the favicon! Please note that at least the above mentioned test will now pass in Firefox. I would expect that others might also pass. So itFailsFirefox would have to be removed too.

@whimboo Done! Please mark review+ through GitHub's UI once everything looks okay.


CL:0000645 pituitcyte - issues

def: "A cell with long processes running parallel to adjacent axons in the
proximal infundibulum of the neurohypophysis. These processes form a
three-dimensional network among the axons of the hypothalamic neurosecretory
cells and are connected by gap junctions which provide for their metabolic
coupling. This cell type constitutes most of the nonexcitable tissue in the
neurohypophsis; function may include possibly acting as an intermediate in the
modulation of oxytocin and vasopressin release. This cell type is highly
variable in size and shape and commonly contain lipid droplets and deposits of
lipochrome pigment." [ISBN:0412046911, ISBN:0517223651,
http://en.wikipedia.org/wiki/Pituicyte]
xref: BTO:0003793
xref: FMA:83503
is_a: CL:0000127  ! astrocyte

Is this really an astrocyte? WP says they are similar to astrocyte/glial cells.
Similar != subclassof.

Also: add part_of link to UBERON:0002198 ! neurohypophysis

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 27 Sep 2013 at 5:30

Following up on this, a recent study on "Single-Cell Molecular and Cellular Architecture of the Mouse Neurohypophysis" (PMID:31915267) supports "the notion that tanycytes and pituicytes are of a common astrocytic lineage" (and the frequent denomination of pituicyte as the main astroglia in the neurohypophysis).
This suggests that the current placement of CL:0000645 'pituicyte' as subclass of 'astrocyte' (and near-sibling of 'tanycyte') is correct. Hence, I will

[ ] Modify the definition slightly to read "A glial cell of astrocytic lineage with long processes..."
[ ] Add PMID:31915267 as def dbxref
[ ] add part_of UBERON:0002198 ! neurohypophysis


Problem reading data from Azure blob

Hi!  Thank you all for the wonderful work that you've contributed to this package.
I'm trying to use the package to read from an Azure blob but I'm getting an error.  Here are the details...
<EMAIL_ADDRESS>df = spark.read.format("xml").options(rowTag='rowTag').load(file_path, schema=schema)
Error:  AzureException: shaded.databricks.org.apache.hadoop.fs.azure.AzureException: Container container_name in account acct_name.blob.core.windows.net not found, and we can't create it using anoynomous credentials, and no credentials found for them in the configuration.
If it try to access the blob container using a file of different format, i.e. csv, the read works so I'm pretty sure that the container_name is there and that I can read from it.
<EMAIL_ADDRESS>df = spark.read.format("csv").load(file_path, header=True, sep='|') ## this works and store the data in the dataframe
Appreciate your help in advance.  Thank you!

Hm, that's not going to be related to this library per se. It's an auth error from Azure. I don't know why it would be different from CSV though. This library just doesn't do anything that special to read data. I am not sure how you are supplying credentials or whether somehow this ends up not propagating, but I also don't have any reason to believe this is different w.r.t. file access


Allow the attribute used to find error elements to be specified

To properly use the errorElement setting, you generally also need to change the attribute that validation uses to determine whether an error message exists already. By default, the plugin uses the label element, and the for attribute. For example: Your error message here
Changing the errorElement to span for example fixes one accessibility issue (that you can't have more than one label element per input due to screen reader issues), but brings up another one - Error message here is not valid HTML, as a span element can't have the for attribute.
Therefore, we need a way of also specifying which attribute of the element to check, instead of hard-coding the for attribute. Then, we could use data-for in cases where the for attribute isn't legal.

I'm sorry for the lack of activity on this issue. Instead of leaving it open any longer, I decided to close old issues without trying to address them, to longer give the false impression that it will get addressed eventually, especially after several years with no activity. It doesn't mean I'm abandoning the project, just that I'm unable to work through 200+ open issues with the little time I can afford to spend on this project.
To the reporter (or anyone else interested in this issue): If you're still affected by the same issue, please consider opening a new issue, with a testpage that demonstrates the issue with a current version of the plugin. Even better, make an attempt to fix the issue yourself, and improve the project by sending a pull request. This may seem daunting at first, but you'll likely learn some useful skills that you can apply elsewhere as well. And you can help keep this project alive. We've documented how to do these things, too. A patch is worth a thousand issues!


Fix reporting/logging of numEntriesScannedPostFilter

#3739 introduced a typo where we started reporting number of segments queried as the value for number of entries scanned post filter. (The PR was for auto reformatting the code, but looks like there were also a few manual changes that resulted in the typo)
Detection/Verification: both manual at this time. We have tests that verify the execution stats at the operator levels, but none at the queryscheduler level. We should add/update tests to verify these values as well. Tracking it via  #3871

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@1f9d096). Click here to learn what that means.
The diff coverage is 100%.

@@           Coverage Diff            @@
##             master   #3870   +/-   ##
========================================
  Coverage          ?   67.3%
  Complexity        ?       4
========================================
  Files             ?    1029
  Lines             ?   50791
  Branches          ?    7096
========================================
  Hits              ?   34185
  Misses            ?   14274
  Partials          ?    2332

Impacted Files
Coverage Δ
Complexity Δ

...che/pinot/core/query/scheduler/QueryScheduler.java
86.66% <100%> (ø)
0 <0> (?)

Continue to review full report at Codecov.

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


New documentation

Rendered on: https://docs.sourced.tech/gitbase
It closes #332

It closes #332

Other than typos and grammatical stuff, LGTM. Great job with the docs 🎉

@jfontan @kuba-- @erizocosmico done.


Receive screen: sometimes incorrect details of one-time use online address are displayed or the wallet crashes

Describe the bug
When we quit the receive screen and than reopen it sometimes incorrect details of one-time use online address (for wallet) are displayed or the wallet crashes
To Reproduce

Go to the receive screen
See the details of the online (for wallet) one-time use address
Quit the receive screen and than open it again
See the details of the online (for wallet) one-time use address

Actual behaviour
Sometimes the detail are displayed as for the online address for exchange or mining pool. When we insert this address to the UI wallet it's inalid. Sometimes the wallet crashes.
Expected behaviour
Correct details for online address (for wallet) are displayed

Not fixed. And the same problem with the offline address

Incorrect offline address. Sometimes when clicking to the 'more details' button for offline address the wallet crashes

checked


New release is missing all files on npm

Release 1.5.0 is missing all implementation files on NPM
See https://www.npmjs.com/package/@buckaroo/buckaroo_sdk?activeTab=code

Yes! Thanks for bringing this to our attention. We are working on a fix.

It should be fixed now. https://www.npmjs.com/package/@buckaroo/buckaroo_sdk/v/1.5.2?activeTab=code
Once again thanks for bringing this to our attention.


CI failure since prost 0.11 upgrade

Thanks for merging https://github.com/mechiru/google-api-proto/pull/3 @mechiru!
Unfortunately it looks like CI is failing now because protobuf is not installed on the Ubuntu image. I did not notice this because locally I did have protoc available.
See https://github.com/tokio-rs/prost/releases/tag/v0.11.0

prost-build now requires protoc to be available in the path or set via the PROTOC env var.

Options:

install protobuf on the image CI runs
use protobuf-src to build from source and set PROTOC accordingly

@shikhar Thank you reporting it. I fixed this issue!


pixels per micron in parameters is actually microns per pixel

when gda adds pixels_per_micron to the params it sends to artemis it is using a property which is MicronsPerPixel

Note that maths we're doing in places still seems to work so we might need to change that

We think think that we're sending the wrong value to ispyb so:

Change the variable name throughout
When pushing into ispyb use one over the value

Will also need to change the variable name that GDA sets


Cut new release

@3rd-Eden can you cut 1.1.0? It would be nice to have symbols support (#7).

Released 1.1.0


Add AnyStatus to Tools

Tools/AnyStatus - VS Gallery
AnyStatus is a free and open source Visual Studio Extension that helps developers maintain a healthy development environment and quickly diagnose issues by providing tools to monitor resources and applications on-premise or in the cloud.
With AnyStatus you can monitor HTTP servers, send Ping requests, check TCP ports, monitor GitHub Issues, monitor CI builds on Team Foundation Server, Jenkins, TeamCity, AppVeyor...and much more. All from within Visual Studio.

Thank You


queryOptions should to pass initialData with a callback that is potentially returning undefined

Describe the bug
In angular-query
When using queryOptions '@tanstack/angular-query-experimental' and passing an initial value function, typescript will not allow that typescript to return undefined. The following code will not compile:
interface Todo {
  id: string;
  title: string;
}

export const todoQueryOption = (id: string | null) =>
  queryOptions({
    queryKey: ['todo', id],
    queryFn: () =>
      Promise.resolve({
        id: '1',
        title: 'Do Laundry',
      }),
    initialData: (): Todo | undefined => undefined,
  });

This should be allowed because I might want to check if I have this particular "todo" item in the cache, and if I don't, I would want angular query to request that item. Since this is conditional, I have to put it in a function that might either have a todo or not (in the example I set it to undefined just for the example).
I believe this has to do with this type definition:
export type DefinedInitialDataOptions<
  TQueryFnData = unknown,
  TError = DefaultError,
  TData = TQueryFnData,
  TQueryKey extends QueryKey = QueryKey,
> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
  initialData:
    | NonUndefinedGuard<TQueryFnData>
    | (() => NonUndefinedGuard<TQueryFnData>)
}

Which should be changed to:
export type DefinedInitialDataOptions<
  TQueryFnData = unknown,
  TError = DefaultError,
  TData = TQueryFnData,
  TQueryKey extends QueryKey = QueryKey,
> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
  initialData:
    | NonUndefinedGuard<TQueryFnData>
    | (InitialDataFunction<TQueryFnData>)
}

Your minimal, reproducible example
https://stackblitz.com/edit/stackblitz-starters-jdj53x?file=src%2Fmain.ts
Steps to reproduce

Write this code in angular query:

interface Todo {
  id: string;
  title: string;
}

export const todoQueryOption = (id: string | null) =>
  queryOptions({
    queryKey: ['todo', id],
    queryFn: () =>
      Promise.resolve({
        id: '1',
        title: 'Do Laundry',
      }),
    initialData: (): Todo | undefined => undefined,
  });

It wouldn't compile.

Expected behavior
The code should compile
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

OS: Windows
Runtime: Node 20.11.0
(No browser is used to reproduce this bug)

Tanstack Query adapter
angular-query
TanStack Query version
5.32.0
TypeScript version
5.3.0
Additional context
No response

Opened a PR that fixes this: https://github.com/TanStack/query/pull/7351

Hi @TkDodo I'm not sure about this one. Code is identical to React adapter and I don't think initialData is supposed to be able to undefined?

The problematic types are defined in angular-query-experimental.
If an undefined return type is not supported than I'm not sure how the common use case will work. This example (from the docs) currently wouldn't work:
result = injectQuery(() => ({
  queryKey: ['todo', this.todoId()],
  queryFn: () => fetch('/todos'),
  initialData: () => {
    // Use a todo from the 'todos' query as the initial data for this todo query
    return this.queryClient
      .getQueryData(['todos'])
      ?.find((d) => d.id === this.todoId())
  },
}))

it should work, but it also doesn't work in react query:
https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAbzgRwK4FMoE8DyYbAQB2AznAL5wBmUEIcA5AAIwCGpbAxgNYD0U6VpxgBaNJiwMAUFOBEYmKkPRwAKhAAmERFLhxgGgFxwSMKHIDmAbl1wCMADbpjp80WtTyM9AA9IsOE5iUztNCABFDGw8AmI4AF44AAoDFzNLOAAfOCJUBwcASgSAPltxaPxCUiSEWz1yrABpdCxjAG0GGDCGABp9DQBdHrqUKKwAMSJjJKL40r0FuAAFWhBgEnQAOgESCAcAN3QakcXUxgBGXpOF+ydjBgARbQAZVlQiDWwrxb1yAuHTkRgARWA4Hqw2NMCsZ1FosnB3hp0FQ5OgNCUER9kaiNACKAUrEA
I don't think your proposed solution is right though. I think we should rather extend UndefinedInitialDataOptions to be:
export type UndefinedInitialDataOptions<
  TQueryFnData = unknown,
  TError = DefaultError,
  TData = TQueryFnData,
  TQueryKey extends QueryKey = QueryKey,
> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
-  initialData?: undefined
-  initialData?: undefined | () => undefined
}

thoughts ?

sorry, that doesn't work. This seems to be the correct diff:
- initialData?: undefined
+ initialData?: undefined | InitialDataFunction<TQueryFnData>

as shown in this reproduction: https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBDAnmApnA3nAIgQxjgFRwHMAabFAMxwFcAbGAUSimnIEUaUpEBpFROQCSAO2AxgOOrnwAxGiIDGEiCLgBfOJVYg4AcgAC+EQGd8igNYB6AI5ceAWkXQUegFChIsBMjSYAqiYonNyIAPJgKqYaWjr6Rjim5tZQKDjKDnah7m4oAB5e8EiocP4iACZUwCIo5aLiktJ4OBFRJgA8bnBwBCE8siIyOHAAvHAKFiIQAO4ipF09zKxQoxTU9EwsbAsEQ6u99ogDQ-PdB6H8iHD5MCgVJnB9fAKrT5fzAHyrgcGHrcCqDrnfqDZrkAhLNg9E49N4CL4AMgwC2qDSkQwA-AAucYVKo1cpwAA+cHqEnRzXkSii7WBR1B+A+bnUbjcxTQADlVGVKpRqrUAOI0HBQcq0r5jAjXPK3e643n8wkYuA1ABu3DgOIIrPyhR8JSw+NqZMaQ3+gM6Zyex2aqwmU1mp0WWxWY0N6wYkKgTt2tsl1oZOB9cKuNzu5QeIdeh3ebglpSCT3NplpAZhEJd4PTIcRyO6qPJTXwWIW3RJXJEPKN5SFIrFdJtjNLxLgAApWwBKUZfCtVvkE2ui1OHRs4D4d5k6grQeCUBTKAFqLI8ZMdHZpv24yYzOY7L2rd20T2ZnZ7f0jwPBmMvMNyqNjEOfVsLCCRRcmHHuxUmin4VfD0JR3BL0szBWFr0QD55g7T9qx-IsWjfC0G0vZ1llA-BwRzOAkXQBZl2eRBP2aIhiAAnh3nAwDAyZFlcmnbw52pRc4AI-91wvM8twdXczn3N0qCPTZ0NPTcUJODiLhvGVw0jCDoykwQ42fbpXzaHE+2-MRCzNJCU3EsCM3Q6FDJzaCNLxftjW001mn-AzMLQqFfUculLlzPDugIy5iPwUjyMIrDOOaWipz1JiF1UVi-j0kxWzU98cXtHcu08uBUhgGgoDUBLAUnVlqluKBqEUNACAgcoIDzOBgHKHEzCgapiAAbgWCQYDoFB6pgRqRBa-LdRnOBnCSBAKogJM9NWVtau63riBbER6DoLsRiZLyYraVs0o2xScQAbT0GBxr0chaoAXSdXaQRxTtu2bboAAUdGAIIADpUhMCA6HVbaHu6Gq6v0ABGU7-u6drOpxPQsCqgAZWgKh4MGAYB9QOyumqbN-HBbpgnpxpbBQFQJbt5WrJ10eaoA

okay interestingly, we have test that cover this case already, and they don't fail:
https://github.com/TanStack/query/blob/39b2f81bc782a8633bd601b6d2e35d2a8c2ec4c0/packages/react-query/src/__tests__/useQuery.test-d.tsx#L79-L91
🤔

I don't think your proposed solution is right though. I think we should rather extend UndefinedInitialDataOptions

When looking at the types more closely I believe you are correct.
According to my understanding the idea is that UndefinedInitialDataOptions will return query result where data is possibly undefined, while DefinedInitialDataOptions returns query result where the data is required, so the consumer wouldn't need to handle the optional undefined value. According to that logic the option of () => T | undefined can result in a query that is possibly undefined, so it should be in the UndefinedInitlaDataOptions (Even though it's confusing, because the initialData is technically "defined").
I'll fix the PR accordingly.

okay interestingly, we have test that cover this case already, and they don't fail:

It doesn't fail because you use injectQuery directly. The bug (both in angular and react) reproduces when you use queryOptions

I fixed the PR per feedback: https://github.com/TanStack/query/pull/7351


Custom plugin cannot find task by type when running with test kit

Expected Behavior
A custom plugin that works when resolved with maven should also work when added by test kit.
Current Behavior
The custom plugin fails to find tasks by type (i.e. using project.tasks.withType(ShadowJar::class.java)) but only when the plugin is added by test kit (i.e. using GradleRunner.create().withPluginClasspath()).
The task can be found by name (i.e. using project.tasks.named("shadowJar"), however it throws a runtime error if the task is cast to the task type (i.e. using project.tasks.named("shadowJar", ShadowJar::class.java)).
Context (optional)
I am trying to test some new functionality in a custom plugin that applies some common shadow configuration.  The code I'm trying to run looks like this:
class MyPlugin : Plugin<Project> {
  override fun apply(project: Project) {
    project.pluginManager.withPlugin("com.github.johnrengelman.shadow") {
      project.tasks.withType<ShadowJar>().configureEach {
        transform(MyTransformer()) // I need the `Task` to be cast as a `ShadowJar` for this to work
      }
    }
  }
}

This worked when added it to a project locally, but failed when I tried to extract it to a seperate project and write a test for it using test kit.
Steps to Reproduce
Repro
git clone git@github.com:mpeyper/testkit-issue-repro.git
cd testkit-issue-repro
./bin/gradle test

Gradle version
7.6.1
Build scan URL (optional)
No response
Your Environment (optional)
❯ gradle --version

------------------------------------------------------------
Gradle 7.6.1
------------------------------------------------------------

Build time:   2023-02-24 13:54:42 UTC
Revision:     3905fe8ac072bbd925c70ddbddddf4463341f4b4

Kotlin:       1.7.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          17.0.6 (Eclipse Adoptium 17.0.6+10)
OS:           Mac OS X 13.3.1 aarch64

Did you follow the instructions here on automatic injection with the Gava Gradle development plugin? https://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath-injection

Yes, I believe I have followed it correctly. Is there a specific step you think may have been missed?
The plugin is found and is being applied (some of the expected logs appear in the repro) but there just seems to be something going wrong with finding the tasks by type that I believe should still be findable.

The two projects are different. In one project you add the plugin to the buildscript classpath: https://github.com/mpeyper/testkit-issue-repro/blob/main/test-project-maven-local/build.gradle.kts#L11
in the other one you do not: https://github.com/mpeyper/testkit-issue-repro/blob/main/test-project-testkit/build.gradle.kts#L9

Yes, that is the point. The plugin gets applied regardless of method, and the task exists in both, but only the one from maven local can find the task by type while the one using test kit classpath injection cannot. I would expect either to work.

If you add the plugin to the buildscript classpath in both projects or neither does it behave the same way?

If I remove the plugin from the buildscript classpath in test-project-maven-local (the neither case) I get:

test-project-testkit fails like before
test-project-maven-local fails with

> Configure project :consumer-project
Evaluating project ':consumer-project' using build file '/Users/mpeyper/development/testkit-issue-repro/test-project-maven-local/consumer-project/build.gradle.kts'.
Could not execute [class org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatHandler.buildFinished]

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/mpeyper/development/testkit-issue-repro/test-project-maven-local/consumer-project/build.gradle.kts' line: 3

* What went wrong:
Plugin [id: 'com.example.plugin.test'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (plugin dependency must include a version number for this source)

If I add the plugin from the buildscript classpath in test-project-testkit (the both case) I get:

test-project-maven-local passes like before
test-project-testkit fails with:

> Configure project :
Evaluating root project 'test-project-testkit' using build file '/Users/mpeyper/development/testkit-issue-repro/test-project-testkit/build.gradle.kts'.
Caching disabled for Kotlin DSL plugin accessors for classpath '3b280ac4f1d9b96f159d256490a81553' because:
  Build cache is disabled
Skipping Kotlin DSL plugin accessors for classpath '3b280ac4f1d9b96f159d256490a81553' as it is up-to-date.
Caching disabled for Kotlin DSL script compilation (Project/TopLevel/stage1) because:
  Build cache is disabled
Kotlin DSL script compilation (Project/TopLevel/stage1) is not up-to-date because:
  No history is available.
The configuration :classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Resource missing. [HTTP HEAD: https://repo.maven.apache.org/maven2/com/example/plugin/test/plugin/0.0.1/plugin-0.0.1.pom]
Resource missing. [HTTP HEAD: https://jcenter.bintray.com/com/example/plugin/test/plugin/0.0.1/plugin-0.0.1.pom]

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'test-project-testkit'.
> Could not resolve all files for configuration ':classpath'.
   > Could not find com.example.plugin.test:plugin:0.0.1.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/com/example/plugin/test/plugin/0.0.1/plugin-0.0.1.pom
       - https://plugins.gradle.org/m2/com/example/plugin/test/plugin/0.0.1/plugin-0.0.1.pom
     Required by:
         project :

For the first failure when removing the plugin from the buildscript classpath:
* What went wrong:
Plugin [id: 'com.example.plugin.test'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (plugin dependency must include a version number for this source)

Can you make sure that the plugin marker is published to maven local and that you are searching in maven local for the plugin? It does not appear that maven local is a plugin repository listed for your build.
For the second failure, can you share how you did this? I have a suspicion, that the plugin was not declared using the plugin DSL.

Sorry, I think there might be some confusion about what the two projects represent as there is nothing surprising to me about the project setup or why those two attempts failed the way they failed.
test-project-maven-local publishes the plugin to maven local and references the mavenLocal repository and adds the classpath like you would if you were consuming the plugin as an external dependency (i.e. add the classpath, apply the plugin). The intention here is to simulate how the plugin would be consumed by a real project if it were published for real. This works as expected and produces this log:
> Configure project :consumer-project
Evaluating project ':consumer-project' using build file '/Users/mpeyper/development/testkit-issue-repro/test-project-maven-local/consumer-project/build.gradle.kts'.
The configuration :consumer-project:classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :consumer-project:classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :consumer-project:classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :consumer-project:classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
-- APPLYING MyPlugin --
-- SHADOW PLUGIN APPLIED --
-- EAGERLY found task ':consumer-project:shadowJar' --
-- LAZILY found task ':consumer-project:shadowJar' --
-- BYNAME found task ':consumer-project:shadowJar' (type class com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar_Decorated --
Caching disabled for Kotlin DSL accessors for project ':consumer-project' because:
  Build cache is disabled
Skipping Kotlin DSL accessors for project ':consumer-project' as it is up-to-date.
Caching disabled for Kotlin DSL script compilation (Project/TopLevel/stage2) because:
  Build cache is disabled
Skipping Kotlin DSL script compilation (Project/TopLevel/stage2) as it is up-to-date.
-- CONFIGURE CONSUMER PROJECT --

test-project-testkit does not reference mavenLocal and expects testkit to provide the plugin in the classpath when running the project in the integration test. The intention of this project is to demonstrate how the integration tests are running the plugin and would run before the plugin is published anywhere. This does not work as expected, producing this log:
> Configure project :consumer-project
Evaluating project ':consumer-project' using build file '/Users/mpeyper/development/testkit-issue-repro/test-project-testkit/consumer-project/build.gradle.kts'.
Caching disabled for Kotlin DSL script compilation (Project/TopLevel/stage1) because:
  Build cache is disabled
Skipping Kotlin DSL script compilation (Project/TopLevel/stage1) as it is up-to-date.
The configuration :consumer-project:classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :consumer-project:classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :consumer-project:classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :consumer-project:classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
-- APPLYING MyPlugin --
-- SHADOW PLUGIN APPLIED --
Caching disabled for Kotlin DSL accessors for project ':consumer-project' because:
  Build cache is disabled
Skipping Kotlin DSL accessors for project ':consumer-project' as it is up-to-date.
Caching disabled for Kotlin DSL script compilation (Project/TopLevel/stage2) because:
  Build cache is disabled
Skipping Kotlin DSL script compilation (Project/TopLevel/stage2) as it is up-to-date.
-- BYNAME found task ':consumer-project:shadowJar' (type class com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar_Decorated --
-- CONFIGURE CONSUMER PROJECT --

Notice that the plugin is applied, the shadow plugin is also applied and that the ShadowJar task can be found by name (shadowJar), regardless of whether it is from maven-local or testkit, but the issue is that the ShadowJar task can only be found by type (either eagerly or lazily) for the maven-local project.
In both cases, it is using the same plugin code, which uses the plugin DSL.
My expectation is that the plugin should function the same in the integration tests as it would if consumed by a real project so that I am able to test it before it is published.

For your repository based test, the setup you use is not idiomatic. You are mixing buildscript classpath configuration with usage of the plugins block. This is not how a project should be configured for real.
Ideally, you should not have to add dependencies for plugins, simply declare them in the plugins block. And you would need to add mavenLocal to settings.pluginManagement.repositories.
If you are looking to not declare a version in the project, see this documentation.
I am not sure what's happening with the TestKit version of the build. It feels like a classloading issue because of the mix between plugin classpath injection and dependency declarations.
Could you update your reproducer to remove all buildscript blocks, replacing them by the necessary settings variants?

Thanks @ljacomet, that got it.  When the buildscript sections are removed, both the tests pass. I did not mind specifying the versions in build scripts so I went that way instead of using the settings files. I've pushed up the changes to the repro if you are curious what I did.
I'm not sure why our projects tend to use the buildscript.dependencies for plugins.  Note that this method is shown in the shadow docs as an alternative, which is why I had assumed it was an ok way to configure things when using a multiproject setup and not hacing to specify the version all over the place.
I'm not sure if there is anything else here for you. The setup I had worked pretty well for the majority of the plugin development (the plugin where this was noticed does a lot more than just apply this config) and has for many months (maybe years), so it felt off when just plugin.tasks.withType didn't work, but I'd completely understand if you wanted to close this as user error because the setup did was not done in an idiomatic way.
In either case, my test is working so I will now endeavour to take these learning back to the original plugin.

Thanks for testing and confirming.
I'll discuss with the team but we might want to keep this issue as a documentation one, so that others do not suffer from a similar issue.

Thank you for your interest in Gradle!
This is a valid documentation issue that we will address.


Create or find an appropriate people counter algorithm

Setup project [x]
Find best HOG Descriptor [ ]
Finish Utility testing [
Test real time at bus stop [ ] ]


Low text html ratio

while using SEO measuring tools such as lighthouse, we get a very low score for text/html ratio, because the translations json text is embedded in the page source. I wonder if there is a way to using this library while maintaining a high text/html ratio.
we currently are using version 0.37.0 but we came across this problem throughout all the previous versions as well.

The only other thing that comes to mind would be a separate network request, which is not something we're going to build in just to please lighthouse.
Open to suggestions but please remember that tools are meant to be interpreted, not taken literally.


fix(setup): correct parameter name in config form

fixes wrong parameter name introduced with #209

Verified working, thank you!