Persist Charge (2/4) - Stop flow

Synopsis:
As a Grid Access Provider,
I want to stop a Charge
So that I keep the master data aligned with my own system
This is another story of a few stories with the goal of implementing the charge persistence rule set (master data only)
With this story we will implement the stop flow, highlighted below:

Notes:
In a stop request; effective date + termination date are set and equal.
Acceptance criteria:

[ ] 1 Given a charge exists with multiple charge periods
When a stop request is received with a stop date inside the first charge period
Then the charge is stopped on stop date
And the persisted result must be like:

[ ] 2 Given a charge exists with multiple charge periods
When a stop request is received with a stop date equal to the start date of the third period
Then the charge is stopped on the stop date
Ad the persisted result must be like:

[ ] 3 Given a charge exists with two periods and the charge is stopped
When a stop request is received with a stop date inside the first charge period
Then charge is stopped on the new stop date
And the persisted result must be like:

[ ]  4 Given a charge exists with prices
When a stop request is received
Then the charge is stopped
And persisted prices from the stop date and onwards are removed

Testing AC# 1 in U-001.

[ ] 1 Given a charge exists with multiple charge periods
When a stop request is received with a stop date inside the first charge period
Then the charge is stopped on stop date
And the persisted result must be like:

Starting point:

Submitted stop @ 2022-05-03T22:00:00
<?xml version="1.0" encoding="UTF-8"?>
<cim:RequestChangeOfPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:requestchangeofpricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:requestchangeofpricelist:0:1 urn-ediel-org-structure-requestchangeofpricelist-0-1.xsd">
	<cim:mRID>DocId2022-03-18T13:23:47.802Z</cim:mRID>
	<cim:type>D10</cim:type>
	<cim:process.processType>D18</cim:process.processType>
	<cim:businessSector.type>23</cim:businessSector.type>
	<cim:sender_MarketParticipant.mRID codingScheme="A10">9656626091925</cim:sender_MarketParticipant.mRID>
	<cim:sender_MarketParticipant.marketRole.type>DDM</cim:sender_MarketParticipant.marketRole.type>
	<cim:receiver_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:receiver_MarketParticipant.mRID>
	<cim:receiver_MarketParticipant.marketRole.type>DDZ</cim:receiver_MarketParticipant.marketRole.type>
	<cim:createdDateTime>2022-03-18T14:23:47Z</cim:createdDateTime>
	<cim:MktActivityRecord>
		<cim:mRID>OpId2022-03-18T13:23:47.802Z</cim:mRID>
		<cim:ChargeGroup>
			<cim:ChargeType>
				<cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">9656626091925</cim:chargeTypeOwner_MarketParticipant.mRID>
				<cim:type>D03</cim:type>
				<cim:mRID>ChgId009</cim:mRID>
				<cim:name>Charge Tariff day Name</cim:name>
				<cim:description>The charge description update</cim:description>
				<cim:priceTimeFrame_Period.resolution>P1D</cim:priceTimeFrame_Period.resolution>
				<cim:effectiveDate>2022-05-03T22:00:00Z</cim:effectiveDate>
                <cim:terminationDate>2022-05-03T22:00:00Z</cim:terminationDate>
				<cim:VATPayer>D02</cim:VATPayer>
				<cim:transparentInvoicing>false</cim:transparentInvoicing>
				<cim:taxIndicator>true</cim:taxIndicator>
			</cim:ChargeType>
		</cim:ChargeGroup>
	</cim:MktActivityRecord>
</cim:RequestChangeOfPriceList_MarketDocument>

Result:

Notification also looks OK:
<?xml version="1.0" encoding="utf-8"?>
<cim:NotifyPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:notifypricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:notifypricelist:0:1 urn-ediel-org-structure-notifypricelist-0-1.xsd">
    <cim:mRID>b05d118cf7634548b8f9681cebef8d9a</cim:mRID>
    <cim:type>D12</cim:type>
    <cim:process.processType>D18</cim:process.processType>
    <cim:businessSector.type>23</cim:businessSector.type>
    <cim:sender_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:sender_MarketParticipant.mRID>
    <cim:sender_MarketParticipant.marketRole.type>DDZ</cim:sender_MarketParticipant.marketRole.type>
    <cim:receiver_MarketParticipant.mRID codingScheme="A10">9656626091925</cim:receiver_MarketParticipant.mRID>
    <cim:receiver_MarketParticipant.marketRole.type>DDM</cim:receiver_MarketParticipant.marketRole.type>
    <cim:createdDateTime>2022-03-18T13:25:03Z</cim:createdDateTime>
    <cim:MktActivityRecord>
        <cim:mRID>38a9c3455b124e819ef9a432682ea7b6</cim:mRID>
        <cim:snapshot_DateAndOrTime.dateTime>2022-03-18T13:23:45Z</cim:snapshot_DateAndOrTime.dateTime>
        <cim:ChargeGroup>
            <cim:ChargeType>
                <cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">9656626091925</cim:chargeTypeOwner_MarketParticipant.mRID>
                <cim:type>D03</cim:type>
                <cim:mRID>ChgId009</cim:mRID>
                <cim:name>Charge Tariff day Name</cim:name>
                <cim:description>The charge description update</cim:description>
                <cim:priceTimeFrame_Period.resolution>P1D</cim:priceTimeFrame_Period.resolution>
                <cim:effectiveDate>2022-05-03T22:00:00Z</cim:effectiveDate>
                <cim:terminationDate>2022-05-03T22:00:00Z</cim:terminationDate>
                <cim:VATPayer>D02</cim:VATPayer>
                <cim:transparentInvoicing>false</cim:transparentInvoicing>
                <cim:taxIndicator>true</cim:taxIndicator>
            </cim:ChargeType>
        </cim:ChargeGroup>
    </cim:MktActivityRecord>
</cim:NotifyPriceList_MarketDocument>

Testing AC# 2 in U-001.

[ ] 2 Given a charge exists with multiple charge periods
When a stop request is received with a stop date equal to the start date of the third period
Then the charge is stopped on the stop date
Ad the persisted result must be like:

Staring point:

Submitted stop @ 2022-05-10T22:00:00
<?xml version="1.0" encoding="UTF-8"?>
<cim:RequestChangeOfPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:requestchangeofpricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:requestchangeofpricelist:0:1 urn-ediel-org-structure-requestchangeofpricelist-0-1.xsd">
	<cim:mRID>DocId2022-03-18T13:47:06.365Z</cim:mRID>
	<cim:type>D10</cim:type>
	<cim:process.processType>D18</cim:process.processType>
	<cim:businessSector.type>23</cim:businessSector.type>
	<cim:sender_MarketParticipant.mRID codingScheme="A10">9656626091925</cim:sender_MarketParticipant.mRID>
	<cim:sender_MarketParticipant.marketRole.type>DDM</cim:sender_MarketParticipant.marketRole.type>
	<cim:receiver_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:receiver_MarketParticipant.mRID>
	<cim:receiver_MarketParticipant.marketRole.type>DDZ</cim:receiver_MarketParticipant.marketRole.type>
	<cim:createdDateTime>2022-03-18T14:47:06Z</cim:createdDateTime>
	<cim:MktActivityRecord>
		<cim:mRID>OpId2022-03-18T13:47:06.365Z</cim:mRID>
		<cim:ChargeGroup>
			<cim:ChargeType>
				<cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">9656626091925</cim:chargeTypeOwner_MarketParticipant.mRID>
				<cim:type>D03</cim:type>
				<cim:mRID>ChgId010</cim:mRID>
				<cim:name>Charge Tariff day Name</cim:name>
				<cim:description>The charge description update</cim:description>
				<cim:priceTimeFrame_Period.resolution>P1D</cim:priceTimeFrame_Period.resolution>
				<cim:effectiveDate>2022-05-10T22:00:00Z</cim:effectiveDate>
                <cim:terminationDate>2022-05-10T22:00:00Z</cim:terminationDate>
				<cim:VATPayer>D02</cim:VATPayer>
				<cim:transparentInvoicing>false</cim:transparentInvoicing>
				<cim:taxIndicator>true</cim:taxIndicator>
			</cim:ChargeType>
		</cim:ChargeGroup>
	</cim:MktActivityRecord>
</cim:RequestChangeOfPriceList_MarketDocument>

Result:

@jonasdmoeller, what happened to the boolean "IsStopped" Charge variable we discussed a bit back? Did you decide not to go that way?

notes from team talk this morning:

there is no bool 'IsStopped' in the storage layer.
when stopping a charge, the latest period's end date will be set to the requested stop date (no row with equal start and end dates)
the Charge domain model will be able to answer "IsStopped"

Testing AC# 3 in U-001:

[ ] 3 Given a charge exists with two periods and the charge is stopped
When a stop request is received with a stop date inside the first charge period
Then charge is stopped on the new stop date
And the persisted result must be like:

Starting point:

Submitted new stop date = 2022-05-04T22:00:00Z
<?xml version="1.0" encoding="UTF-8"?>
<cim:RequestChangeOfPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:requestchangeofpricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:requestchangeofpricelist:0:1 urn-ediel-org-structure-requestchangeofpricelist-0-1.xsd">
    <cim:mRID>DocId{{$isoTimestamp}}</cim:mRID>
    <cim:type>D10</cim:type>
    <cim:process.processType>D18</cim:process.processType>
    <cim:businessSector.type>23</cim:businessSector.type>
    <cim:sender_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:sender_MarketParticipant.mRID>
    <cim:sender_MarketParticipant.marketRole.type>DDM</cim:sender_MarketParticipant.marketRole.type>
    <cim:receiver_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:receiver_MarketParticipant.mRID>
    <cim:receiver_MarketParticipant.marketRole.type>DDZ</cim:receiver_MarketParticipant.marketRole.type>
    <cim:createdDateTime>{{ISO8601Timestamp}}</cim:createdDateTime>
    <cim:MktActivityRecord>
        <cim:mRID>OpId{{$isoTimestamp}}</cim:mRID>
        <cim:ChargeGroup>
            <cim:ChargeType>
                <cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:chargeTypeOwner_MarketParticipant.mRID>
                <cim:type>D03</cim:type>
                <cim:mRID>ChgId012</cim:mRID>
                <cim:name>Charge Tariff day Name</cim:name>
                <cim:description>The charge description update</cim:description>
                <cim:priceTimeFrame_Period.resolution>P1D</cim:priceTimeFrame_Period.resolution>
                <cim:effectiveDate>2022-05-04T22:00:00Z</cim:effectiveDate>
                <cim:terminationDate>2022-05-04T22:00:00Z</cim:terminationDate>
                <cim:VATPayer>D02</cim:VATPayer>
                <cim:transparentInvoicing>false</cim:transparentInvoicing>
                <cim:taxIndicator>true</cim:taxIndicator>
            </cim:ChargeType>
        </cim:ChargeGroup>
    </cim:MktActivityRecord>
</cim:RequestChangeOfPriceList_MarketDocument>

Result:

Testing AC# 4 in U-001

[ ]  4 Given a charge exists with prices
When a stop request is received
Then the charge is stopped
And persisted prices from the stop date and onwards are removed

OBS: This AC can only be partly verified due to the following 2 reasons:

Prices (aka point) are only store on 'Create' actions, as persisting prices rule set is yet to be defined and implemented (story #1196)
VR.507-1 currently blocks submissions of price series longer than a single day (story #1198)

Starting point:
Hence, the starting point will be a bit alternative.

Charge created at 2022-05-05T22:00:00 with a price
Charge updated at 2022-05-01T22:00:00 (no price stored)

**Stopping charge on Price date (2022-05-05T22:00:00) **
<?xml version="1.0" encoding="UTF-8"?>
<cim:RequestChangeOfPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:requestchangeofpricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:requestchangeofpricelist:0:1 urn-ediel-org-structure-requestchangeofpricelist-0-1.xsd">
    <cim:mRID>DocId{{$isoTimestamp}}</cim:mRID>
    <cim:type>D10</cim:type>
    <cim:process.processType>D18</cim:process.processType>
    <cim:businessSector.type>23</cim:businessSector.type>
    <cim:sender_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:sender_MarketParticipant.mRID>
    <cim:sender_MarketParticipant.marketRole.type>DDM</cim:sender_MarketParticipant.marketRole.type>
    <cim:receiver_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:receiver_MarketParticipant.mRID>
    <cim:receiver_MarketParticipant.marketRole.type>DDZ</cim:receiver_MarketParticipant.marketRole.type>
    <cim:createdDateTime>{{ISO8601Timestamp}}</cim:createdDateTime>
    <cim:MktActivityRecord>
        <cim:mRID>OpId{{$isoTimestamp}}</cim:mRID>
        <cim:ChargeGroup>
            <cim:ChargeType>
                <cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:chargeTypeOwner_MarketParticipant.mRID>
                <cim:type>D03</cim:type>
                <cim:mRID>ChgId014</cim:mRID>
                <cim:name>Charge Tariff day Name</cim:name>
                <cim:description>The charge description update</cim:description>
                <cim:priceTimeFrame_Period.resolution>P1D</cim:priceTimeFrame_Period.resolution>
                <cim:effectiveDate>2022-05-05T22:00:00Z</cim:effectiveDate>
                <cim:terminationDate>2022-05-05T22:00:00Z</cim:terminationDate>
                <cim:VATPayer>D02</cim:VATPayer>
                <cim:transparentInvoicing>false</cim:transparentInvoicing>
                <cim:taxIndicator>true</cim:taxIndicator>
            </cim:ChargeType>
        </cim:ChargeGroup>
    </cim:MktActivityRecord>
</cim:RequestChangeOfPriceList_MarketDocument>

Result:

Additional test - stop before price date
Starting point:

**Stopping charge before Price date (2022-05-04T22:00:00) **
<?xml version="1.0" encoding="UTF-8"?>
<cim:RequestChangeOfPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:requestchangeofpricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:requestchangeofpricelist:0:1 urn-ediel-org-structure-requestchangeofpricelist-0-1.xsd">
    <cim:mRID>DocId{{$isoTimestamp}}</cim:mRID>
    <cim:type>D10</cim:type>
    <cim:process.processType>D18</cim:process.processType>
    <cim:businessSector.type>23</cim:businessSector.type>
    <cim:sender_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:sender_MarketParticipant.mRID>
    <cim:sender_MarketParticipant.marketRole.type>DDM</cim:sender_MarketParticipant.marketRole.type>
    <cim:receiver_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:receiver_MarketParticipant.mRID>
    <cim:receiver_MarketParticipant.marketRole.type>DDZ</cim:receiver_MarketParticipant.marketRole.type>
    <cim:createdDateTime>{{ISO8601Timestamp}}</cim:createdDateTime>
    <cim:MktActivityRecord>
        <cim:mRID>OpId{{$isoTimestamp}}</cim:mRID>
        <cim:ChargeGroup>
            <cim:ChargeType>
                <cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:chargeTypeOwner_MarketParticipant.mRID>
                <cim:type>D03</cim:type>
                <cim:mRID>ChgId015</cim:mRID>
                <cim:name>Charge Tariff day Name</cim:name>
                <cim:description>The charge description update</cim:description>
                <cim:priceTimeFrame_Period.resolution>P1D</cim:priceTimeFrame_Period.resolution>
                <cim:effectiveDate>2022-05-04T22:00:00Z</cim:effectiveDate>
                <cim:terminationDate>2022-05-04T22:00:00Z</cim:terminationDate>
                <cim:VATPayer>D02</cim:VATPayer>
                <cim:transparentInvoicing>false</cim:transparentInvoicing>
                <cim:taxIndicator>true</cim:taxIndicator>
            </cim:ChargeType>
        </cim:ChargeGroup>
    </cim:MktActivityRecord>
</cim:RequestChangeOfPriceList_MarketDocument>

Result:

Additional test - stop after price date
Starting point:

**Stopping charge before Price date (2022-05-07T22:00:00) **


Request is sent with unnecessary whitespace

I've been experimenting with this library and noticed that the outgoing requests are sent in the POST body with unnecessary white space characters and line breaks.
For example the query:
mutation CreateSession {
  createSession {
    token
    content
  }
}

Is sent as a POST request with a body of:
{"query":"mutation CreateSession {  createSession {    __typename    token    content  }}","operationName":"CreateSession","variables":{}}
Is there an option to normalize this behavior and strip the excessive white space and line break characters?

@sav007 Picking this up if it's available


Changed URL config + added s1 pos rec to init

Before you submit this PR: make sure to put all operations-related information in a wiki-note, a PR should be about code and is publicly accessible
What does the code in this PR do / what does it improve?
Can you briefly describe how it works?
Can you give a minimal working example (or illustrate with a figure)?
Please include the following if applicable:

[ ] Update the docstring(s)
[ ] Update the documentation
[ ] Tests to check the (new) code is working as desired.
[ ] Does it solve one of the open issues on github?

Notes on testing

Until the automated tests pass, please mark the PR as a draft.
On the XENONnT fork we test with database access, on private forks there is no database access for security considerations.

All italic comments can be removed from this template.

Considering the merged https://github.com/XENONnT/straxen/pull/1146, are we going to close this PR?

@matteoguida Sorry, I can not understand the current condition. At https://github.com/XENONnT/straxen/blob/0c3443d62c465b827e9d4e5ab5113127473a0c58/straxen/plugins/peaks/peak_s1_position_cnn.py#L19 you are already using straxen.URLConfig. And the auto-test gives no error. Would you show me the error? Also I think I saw Luis approved the PR but maybe then retrieved it...

@dachengx I open an issue, @LuisSanchez25 missclicked when I approved the PR as I wrote here in a message (we were both trying to understand what the problem was).

As we solved all the issues I guess this PR can be closed, thanks a lot guys for the great support!


[Suggestion] More advanced lookup history traversal using Back/Forward buttons

I'm aware that I can already use the lookup history to go back through the items I'm exploring. However, using it puts me back into the default view for the item I selected. Clicking the current item on the other direction also works, but the scroll position was lost.
I've been spoiled with the Recipe Book mod in Factorio that lets me spam E to go back one step at a time, while also preserving my scroll location on the previous views. That way I can traverse into distractions without losing focus and needing to scroll back to where I was looking before.
Can you implement viewing history that also stores scroll position, and a back/forward button to navigate through that history?

This is reasonable, I've been meaning into making history traversal better, I'll look into it.

I feel a little bit awful now that I've discovered that Back feature already exists within the mod, bound by default to Backspace. It's exactly what I wanted! Adding Forward and buttons on screen (or something else) to communicate that the feature exist could still be on the table though.

Oh worry not. I assumed this description was telling me that the current back functionality wasn't working, glad to hear it is. Either way, I will keep this bug open for adding forward traversal functionality.

Forward has been added to augment history traversal. It will be released along with the 1.20.2 port in the coming days.


ADBDEV-1691. Refactor query_info_collect_hook call site in ExecProcNode

Set node->fHadSentNodeStart = true before query_info_collect_hook is called.
This allows query_info_collect_hook to modify node->fHadSentNodeStart, so that it could request repeatable calls of the hook from MultiExecProcNode / ExecProcNode.

@leskin-in, do you think it's a good idea to change the hook behavior from one hypothetical hook subscriber to another hook subscriber? For example, multiple extensions are subscribed on query info hook. If the second subscriber changes flag value, the first one will unexpectedly receive a notification for the next tuple. This change may be good only in the case of the only subscriber. But we haven't such limitation.

@Stolb27 ,
I agree: this is a change of the API of this hook. Previously, its users were guaranteed that the hook is called only once, while after this change, the number of calls may be modified by users of this hook.
Finally, note that the change does not interfere with the behaviour of existing users of this hook: hook's user must modify node->fHadSentNodeStart for API to change - and all existing hook users are not expected to do that (because this operation would have no effect).
In an actual installation, one must be aware which extensions are installed and use this hook - hook users may be incompatible. A new-API hook user can deal with the mentioned problem by calling underlying hook users just once.

@leskin-in what's motivation to intercept the executor loop before each new iteration of node execution? Do you want to capture the intermediate statistics for the node executed on previous iteration? Perhaps, more reasonably to inject two hooks before and after node execution within one iteration without any admitting flags?

@maksm90,

@leskin-in what's motivation to intercept the executor loop before each new iteration of node execution?
Minimization of code changes

Do you want to capture the intermediate statistics for the node executed on previous iteration?
Yes, that is what we are going to do with the current version of the code. Note, however, that if at least N > 0 tuples is returned from a node, ExecProcNode() is called N + 1 times (the N + 1th call clears the slot / returns NULL result tuple). Thus, the current implementation where the hook is called before execution iteration is fine.

Perhaps, more reasonably to inject two hooks before and after node execution within one iteration without any admitting flags?
In my opinion, a better option would be to move this hook to the end of ExecProcNode. But this has two consequences, both of which I suppose we should avoid:

The changes are going to be bigger, in terms of both lines of code and the behaviour
GPCC may rely on concrete location of this hook before ExecProcNode() for some reason that we are not aware of (this hook was not dropped in 7X, although gpperfmon, the only GPDB built-in user of this hook, was). As a result, this change would not be accepted in upstream.

Note, however, that if at least N > 0 tuples is returned from a node, ExecProcNode() is called N + 1 times (the N + 1th call clears the slot / returns NULL result tuple). Thus, the current implementation where the hook is called before execution iteration is fine.

Yes but we miss the last iteration of node execution. For example, your hook will not able to detect statistics for last rows in SeqScan for selection with filter admitting only starting rows in a whole set.

In my opinion, a better option would be to move this hook to the end of ExecProcNode.

Similarly for the hook at the end of executor loop - we miss the starting snapshot of statistics before node execution (it might be important thing if snapshot is not zero).

GPCC may rely on concrete location of this hook - before ExecProcNode() - for some reason that we are not aware of (this hook was not dropped in 7X, although gpperfmon, the only GPDB built-in user of this hook, was). As a result, this change would not be accepted in upstream.

I think we might add hooks with new types (the first argument of callee function) that fully satisfies our requirements. The only downside that such hooks injection on each iteration of executor might considerably slows down that executor.

your hook will not able to detect statistics for last rows in SeqScan for selection with filter admitting only starting rows in a whole set

we miss the starting snapshot of statistics before node execution

What statistics do you mean?
The hook currently is useful for us for two purposes:

Track the number of tuples returned by the given node. This enables to track the "progress" of node (and as a result of query) execution
Pass control flow to arbitrary code periodically during query execution (not just at query / node start and finish)

Both these cases can be covered by the current implementation of this PR, introducing minimal changes to the existing code.
@maksm90 could you describe what extra data we should collect? It is especially unclear to me why we need two hooks, both at start and end of each ExecProcNode() call.

What statistics do you mean?
@maksm90 could you describe what extra data we should collect? It is especially unclear to me why we need two hooks, both at start and end of each ExecProcNode() call.

I mean some counters (system or internal) that makes statistics snapshot and progress is represented as difference of these counters. In this case we have to capture statistics snapshot before and after node execution within one iteration.

AFAICS, current implementation is enough for our purposes of hook usage. I approve this PR but we might propose to community idea with two hook motivating that in current version we miss the last iteration of node execution that cannot be fully compensated by calling of hook within ExecutorEnd() function.

@leskin-in I agree with @Stolb27 that this PR changes query_info_collect_hook behaviour and it breaks other extensions that use it. Our own hook seems to be a better solution from my point of view (we don't need ADB-CC work with open source GPDB any more).

@darthunix

it breaks other extensions that use it

Could you explain whether this comment refers to all extensions that use this hook? If so, how does the change break them?

After a discussion today, @Stolb27 , @maksm90 , @darthunix and I have agreed to stick to a solution with an extra hook, which we would add to our GPDB fork. This way we do not interfere with GPDB extensions at all at the performance-crucial point in ExecProcNode() discussed in this PR.
The reason for this is that we cannot guarantee compatibility of multiple extensions using the same hook: each may have its own assumptions about the hook's contract; the order of loading of extensions affects this contract, too; this does not seem good for the users of GPDB.


Shared storage needed for HA

Hi,
The page on setting up high availability doesn't say that for HA DTR needs shared storage.
Customers are still confused about this, they expect DTR to also synchronize images, since this page just talks aboutsetting up replicas.
We must be more specific on this. I wanted to point this page to them for clarification, but then realized we're not explicit enough.
Thanks in advance!
Best regards,
Sacha
File: datacenter/dtr/2.4/guides/admin/configure/set-up-high-availability.md, CC @joaofnfernandes

This has been addressed upstream and will become available in the next DTR release.


gradle buildGhidra: Searching for JDK in JRE directory

Hello, I am trying to build ghidra-debugger and it gives me the following error:

It says that it is searching the jre dir for jdk? Why?!
Can anyone explain?

If someone would answer soon that'd be great.

Gradle uses the java found within your execution PATH or JAVA_HOME environment variable.  You will need to ensure that JDK 11.x can be found via one of these two mechanisms before issuing gradle command.

It does exist in C:\Program Files\Java\jdk-11.0.10

And it is in the path.

You can examine the logic for the gradle command which is a script.  You may have more than one java installation in your path.  If this is the case you can correct the PATH (should only have one) or set JAVA_HOME to your JDK 11.x installation directory this should take precedence.  You can set this environment (Edit environment variables for your account).

Okay, I reinstalled Jdk 11 and now I get this error:

What went wrong:
java.io.FileNotFoundException: C:\Program Files\Java\jdk-11.0.10\lib\tzdb.dat (The system cannot find the file specified)

In the command prompt that you are executing gradle from, what is the output of the following command:
echo %JAVA_HOME%

Well, I was using Windows PowerShell, and that just printed "%JAVA_HOME%".
But I used a batch file and it printed "C:\Program Files\Java\jdk-11.0.10" and I
could've guessed that, since I just created the JAVA_HOME system environment
variable last night.

What JDK 11 distro are you using?

Uhhh what do you mean?

I downloaded it here: https://download.oracle.com/otn-pub/java/jdk/11.0.10%2B8/020c4a6d33b74f6a9d2bc6fbf189da81/jdk-11.0.10_windows-x64_bin.exe

Can you give Amazon Corretto a try?
https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html

Oh, okay.

It most likely installed to C:\Program Files\Amazon Corretto\jdk11.0.10_9.  Try setting your JAVA_HOME environment to that path.

Okay.

That path does not exist.

Oops, I accidentally installed the x86 version

Ghidra requires the 64-bit version

I know, I'm reinstalling now. Sorry. Haha

Trying buildGhidra again...

Uhhh just got back, it compiled, but can the debugger connect to gdb stubs?

If 3ds includes a gdb stub compatible with 7.0 or greater, you can use the "GNU gdb over GADP" interface.

I'm going to close out this ticket since your build is now working.  The Discussions area is a good place to ask follow up questions about the debugger.


Feat: Change colour of card on hover

Describe the feature
The card colour could be changed when the mouse hover overs it. Right now, only a small element pops up on the bottom right corner when the mouse hovers over the card. Changing the background colour would help the card stand out against the others and pull the attention of the user to content of the card.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@anuragverma108 please assign this issue to me


Added max tile zoom setting and increased the max zoom

Added a configurable max tile zoom option to configure the maximum zoom level a tile server can handle.
This allows use of tile servers that have higher detail tiles available.
Increased the maximum map zoom so that the map can be zoomed in further.
If the map is zoomed in further than the tile server can handle it will max out at the configurable max tile zoom and just enlarge the highest resolution tile.
This fixes #38

Instead of repeating the magic numbers 25 and 19 in the code, can you put them in consts.ts?


feat(ui/ux): improve ui/ux related to a message reply

At this moment is somewhat confusing the UI/UX on the app when replying to a message and needs to be improved.
Do we have a design for this @XileHorizon?

I think the replies could be more clarified by adding a profile picture to the message you are replying to, which, especially in groups, will help to distinguish that a message is a reply and who is being responded to.
Before:

After:

Figma Link: https://www.figma.com/file/GrAhLmQWA2kfD1Nw9nd24m/Chats-%2F-Landing-Page?type=design&node-id=881-42499&mode=design&t=HOlZWHqDRotLUNrO-4

The design also has a clear color contrast between the message you are sending and the reply to it . . . should that color change across the app? It looks more like a "light theme" sort of color though.

@XileHorizon Messages from my own user now, will be light color in default theme?
The coloring used in the mockups is more or less like its own theme (with exaggerated colors to more easily display contrast at a glance), separate from the in-app default theme. I can adjust the colors in the example if that helps, but without Matt's approval, I think we should leave the colors in-app as they are.


Unread Message Count on Sidebar

I think it would be cool to add the count of unread messages to the "Messages" sidebar menu item that way as soon as you log in you can see how many unread messages you have.

Yes, that was something i recognized yesterday.
Thanks for the PR I'll merge it ASAP!

Completed :+1:


RDKDEV-438: RDKCOM-3539 DisplayInfo: Include "tvhdrtypes" property on…

RDKDEV-438: RDKCOM-3539 DisplayInfo: Include "tvhdrtypes" property on DisplayInfo REST API call
The DisplayInfo.cpp file is modified to invoke TVCapabilities() which basically passes an iterator to get the HDR types supported by TV, these values are then updated against new DisplayInfo property 'tvhdrtypes'.
Signed-off-by<EMAIL_ADDRESS>(cherry picked from commit ccc97ee0031649ae89f665f97fff0058e623b0ac)

Closing older PRs. Pls create new PRs on latest sprint branch.


Add license to source distributions

Thanks for this tool!
This little PR just ensure the license is included in source distributions: while this isn't required by the terms of the MIT license, it helps downstream packages, etc.
Motivation: looking to package this on conda-forge!

Welp, travis did eventually run, but looks like it's run afoul of some new pip solver behavior.
Also, by the by, the conda-forge package is up... can work up a separate PR if you are interested in a badge, like:

Thanks! Yea, I need to work on the build/test infra :sweat_smile:
If you want to make a PR for the badge, that would be great!


Table is not part of Bower installed showdown

When installing showdown with 'bower install showdown', table.js is not part of the extensions folder

This should be fixed in version 0.3.3


Threshold 0 issue

When scanning results in a file scoring 0, it seems that the tool will just throw, even if you set minimumThreshold to 0.
Two issues here:

The bug above
The tool fails to tell the user which file was the worst (and triggered a threshold violation)

Closing due to https://github.com/sgb-io/codehawk-cli/issues/122


Use Viewport copy constructor in paint methods

@charlenni Merging PR with copy constructor.

Yes, now it looks much better. The problem was, that the copy function didn't worked with a IReadOnlyViewport. That was also the reason, why I said, that Viewport is confusing.


Event binding in componentDidMount

doing event binding in componentWillMount means that if this view is ever rendered server side, you'll have a leak because componentWillUnmount will never be called. Not a big deal, but this demo was my first taste of using react, so it kind of formed my initial opinion of where event binding should occur.

Coverage remained the same at 98.28% when pulling 03eaff8c2070401ccac44257b5e87cfb094c7553 on pwmckenna:patch-1 into e3bbf467cafe860fcb73889a21ecc9d9d76db3c2 on firebase:master.

Thanks for the PR (and for trying out the plugin)!
So I'm not totally familiar with the differences between componentWillMount and componentDidMount, but from looking at the React doc on the lifecycle methods, it looks like the former will always be called on both the client and server while the latter will only be called on the client. With that understanding, it's not clear to me why componentDidMount would be more correct than componentWillMount here. If we go with componentDidMount, then this plugin would not work on the server, which doesn't seem like desired behavior.
It's quite possible that I'm missing something here, so please enlighten me if so.

Also, I just realized you submitted a change to an example, not the actual plugin, but I guess my question still stands as to why componentDidMount is more correct here than componentWillMount.

I confess that I hadn't even checked to see if the plugin was doing the same thing. If we come to agreement, I'd be happy to make a pull request for that as well.
the issue is that on the server the component is never mounted at all. this means both that componentDidMount is never called, but also that componentWillUnmount is never called. If the binding is done in componentWillMount, you'll leak if the component is never mounted (which is the case server side). Server side you wouldn't want to bind event handlers anyhow, as the rendering is done synchronously.

just took a peek at the plugin src and realized that the plugin itself doesn't actually do event binding (its still early...brain not working...), so there's no leak, unless the consumer uses it incorrectly.

Cool, thanks for the info. Going to close this PR then. Let me know if you have any other ideas!

oh, i meant that the actual plugin isn't an issue. the example still would leak, it would just be the example's fault, not the plugin's.

What exactly is being leaked here? The Firebase client will clean up after itself even if the user (or the plugin for that matter) doesn't remove the event listeners explicitly. So, we should be good there. Is there something else which is being leaked? Also, I still don't quite fully understand how the Firebase data would ever be downloaded on the server if we change this to componentDidMount, which is not going to be called. In that case, we would have no data, which seems bad.

The plugin can't clean up after itself server side because componentWillUnmount is never called server side. I don't believe you'd want to use the plugin to get the data server side anyhow, because the rendering server side is synchronous, which means that you'll have to render before any of the callbacks are called anyhow. You'd want to wait for the data outside of the view and pass it in as an initialState type of prop so that the server could actually render synchronously.
ps. lots of discussion for just an example. I'm happy to go on, but cut me off whenever you get tired :)


Wind generator is a tps demon

I am playing the modpack enigmatic 2 on a server. But here comes the problem and I don't really know anything about this so I don't know how to fix it. Every time I place down a wind generator the server starts lagging as hell, but when I destroy it again the server immediately stops lagging and I don't know what i could do to do to fix it.
~2slow

A tick profiler of some sort would help

Can't reproduce by just placing a wind generator, so going to need a tick profiler file to fix.


[Bug]: Tap not receiving state when run via Meltano

Singer SDK Version
0.19.0
Python Version
3.8
Bug scope
Taps (catalog, state, stream maps, etc.)
Operating System
Windows & WSL2 (Ubuntu 20.2)
Description
I'm running into the issue where the state passed into the tap/streams is empty when running via Meltano. My tap is based on this Google Analytics tap that was using "^0.4.2" of the singer-sdk. I made a new tap based on the latest template in v0.19.0 and copied over the dependencies from the pytporject.toml and ran poetry install to get everything up to date.
I can see that the tap's capabilities include "state" if I log out the self.capabilities and can see that the stream/tap is writing to the state table in Postgres so it appears to have the correct DB settings and is able to access the database. I can also see that the state is correct via: meltano --environment prod state get daily-ga-lcp-load
But when I run the import via meltano elt ... and log self.state from the tap or stream I get an empty object ({}). This is the command I'm running: meltano --environment prod elt --state-id daily-ga-lcp-load tap-ga--report-lcp target-postgres --transform run
When I run the tap directly via tap-rb-google-anlytics --config config.json --state state.json --catalog catalog.json as recommended by @visch on this issue I can see the state in my tap and the streams so I don't believe it is an issue with my tap/stream code.
It only appears to be when running via meltano with meltano invoke my-tap --state-id my-id, or meltano elt my-tap --state-id my-id, or even when running via airflow.
Thanks for any help!
Code
No response

@aaronsteers @seth-meltano if we could have an engineer look at this that'd be great. Note the linked Meltano issue as well.

@LukePammant - it looks like you've done everything right on the tap side. In your meltano.yml file though, you'll need to also declare capabilities, including state to enable incremental sync and bookmarks.

@aaronsteers - ah I see now. @visch mentioned about the meltano.yml file but I thought talking about it in regards to the file in the custom tap folder (not in my meltano project folder).
I've added the capabilities to the extractor definition in the meltano.yaml in my meltano project and it looks like its working now. Thank you!

Singer SDK Version
0.19.0
Python Version
3.8
Bug scope
Taps (catalog, state, stream maps, etc.)
Operating System
Windows & WSL2 (Ubuntu 20.2)
Description
I'm running into the issue where the state passed into the tap/streams is empty when running via Meltano. My tap is based on this Google Analytics tap that was using "^0.4.2" of the singer-sdk. I made a new tap based on the latest template in v0.19.0 and copied over the dependencies from the pytporject.toml and ran poetry install to get everything up to date.
I can see that the tap's capabilities include "state" if I log out the self.capabilities and can see that the stream/tap is writing to the state table in Postgres so it appears to have the correct DB settings and is able to access the database. I can also see that the state is correct via: meltano --environment prod state get daily-ga-lcp-load
But when I run the import via meltano elt ... and log self.state from the tap or stream I get an empty object ({}). This is the command I'm running: meltano --environment prod elt --state-id daily-ga-lcp-load tap-ga--report-lcp target-postgres --transform run
When I run the tap directly via tap-rb-google-anlytics --config config.json --state state.json --catalog catalog.json as recommended by @visch on this issue I can see the state in my tap and the streams so I don't believe it is an issue with my tap/stream code.
It only appears to be when running via meltano with meltano invoke my-tap --state-id my-id, or meltano elt my-tap --state-id my-id, or even when running via airflow.
Thanks for any help!
Code
No response

This has caught me more than once and it is a big drain on time, you're not the only one! It's hard to tell this is happening
Glad you found it!!


Installation doesn't honour the contents of stack.yaml.

With a checkout of the repo, doing a stack build will correctly pull in the nix packages specified. However a stack build intero will get a bundle that doesn't include stack.yaml (I checked with cabal get intero) and then fails because ncurses isn't available to it.

That's just how stack works.

True, though, we may indeed want to install intero based on a configuration that is included with the package - see https://github.com/commercialhaskell/intero/issues/324

The problem is that because intero works by triggering an install itself if you're on nix the compile will just fail.

Intero doesn't support nix.

@seanparsons The way I deal with this is to always use a shell.nix file. You can put ncurses and zlib in the buildInputs there, and intero will build.


Takes rootfs as filesystem by mistake

Bug Report

What version of TiKV are you using?
v5.2.2

What operating system and CPU are you using?
Linux.

Steps to reproduce
refer to this in the forum. User longsky found this bug.
The TiDB dashboard takes the rootfs as the type of filesystem. And the source of this is the INFORMATION_SCHEMA.CLUSTER_HARDWARE table. TiKV reports the filesystem in an abnormal way.

What did you expect?
It should act like PD and TiDB, only takes the exact disk and its filesystem as account.
What did happened?
It reports the virtual filesystem rootfs by mistake.

I checked the code and found that TiKV uses a library called sysinfo to fetch the disk info. Then I tried this library with the current version TiKV used(0.16) and the latest version(0.21). They all recognized the rootfs as a filesystem.
So I guess it might be better to filter the virtual filesystem on the side of TiKV.


avr: use new cross compilation infrastructure

Gets rid of:

avrbinutils
avrgcc

to replace with:

pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.gcc

:+1: :heart:

Success on aarch64-linux (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on aarch64-linux: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/klgxdd526njckk7cq8j1pxakb2p6wv70-gcc-wrapper-7.3.0
/nix/store/m6llsl31vkhkhxfy055m44444nz9s9ki-stdenv-linux

Success on x86_64-linux (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on x86_64-linux: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0
/nix/store/glnk048cqva0ig8yrjfw140z2r2v18b4-stdenv-linux

Success on x86_64-darwin (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess
Partial log (click to expand)
  /nix/store/dnyr1mi70mxsyw865b7307544m8szrh0-mpfr-4.0.1
  /nix/store/f31cpaviz7r983b9sdkkm8crmhsmhad6-expand-response-params
  /nix/store/kjk5rnhcnh6r65fmcfyll5wlbfggb3bn-libmpc-1.1.0
copying path '/nix/store/f31cpaviz7r983b9sdkkm8crmhsmhad6-expand-response-params' from 'https://cache.nixos.org'...
copying path '/nix/store/dnyr1mi70mxsyw865b7307544m8szrh0-mpfr-4.0.1' from 'https://cache.nixos.org'...
copying path '/nix/store/kjk5rnhcnh6r65fmcfyll5wlbfggb3bn-libmpc-1.1.0' from 'https://cache.nixos.org'...
copying path '/nix/store/6d95j619zw7n6sbk5dqs36gwrsvif9x0-gcc-7.3.0' from 'https://cache.nixos.org'...
copying path '/nix/store/10n6qiaz1piz0gsh05x5i062cscrwi6f-gcc-wrapper-7.3.0' from 'https://cache.nixos.org'...
/nix/store/10n6qiaz1piz0gsh05x5i062cscrwi6f-gcc-wrapper-7.3.0
/nix/store/7l83571b34mmbr1zkxa596vw2wdqxxnh-stdenv-darwin

@GrahamcOfBorg build pkgsCross.avr.hello

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: pkgsCross.avr.hello
Partial log (click to expand)
Cannot nix-instantiate `pkgsCross.avr.hello' because:
error: attribute 'avr' in selection path 'pkgsCross.avr.hello' not found

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: pkgsCross.avr.hello
Partial log (click to expand)
Cannot nix-instantiate `pkgsCross.avr.hello' because:
error: attribute 'avr' in selection path 'pkgsCross.avr.hello' not found

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: pkgsCross.avr.hello
Partial log (click to expand)
Cannot nix-instantiate `pkgsCross.avr.hello' because:
error: attribute 'avr' in selection path 'pkgsCross.avr.hello' not found

@GrahamcOfBorg build pkgsCross.arduino-avr.hello
I need to figure out a way that we don't break qmk_firmware, which looks like it uses Nix:
https://github.com/qmk/qmk_firmware

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: pkgsCross.arduino-avr.hello
Partial log (click to expand)
Cannot nix-instantiate `pkgsCross.arduino-avr.hello' because:
error: attribute 'arduino-avr' in selection path 'pkgsCross.arduino-avr.hello' not found

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: pkgsCross.arduino-avr.hello
Partial log (click to expand)
Cannot nix-instantiate `pkgsCross.arduino-avr.hello' because:
error: attribute 'arduino-avr' in selection path 'pkgsCross.arduino-avr.hello' not found

@GrahamcOfBorg build pkgsCross.arduino-uno.hello

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: pkgsCross.arduino-avr.hello
Partial log (click to expand)
Cannot nix-instantiate `pkgsCross.arduino-avr.hello' because:
error: attribute 'arduino-avr' in selection path 'pkgsCross.arduino-avr.hello' not found

Failure on aarch64-linux (full log)
Attempted: pkgsCross.arduino-uno.hello
Partial log (click to expand)
 #include_next <limits.h>  /* recurse down to the real one */
               ^~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:1658: lib/c-strcasecmp.o] Error 1
make[2]: Leaving directory '/build/hello-2.10'
make[1]: *** [Makefile:1878: all-recursive] Error 1
make[1]: Leaving directory '/build/hello-2.10'
make: *** [Makefile:1413: all] Error 2
builder for '/nix/store/w5bk6jp2fwc8yhz9zzha4k8kv8mj54df-hello-2.10-avr.drv' failed with exit code 2
error: build of '/nix/store/w5bk6jp2fwc8yhz9zzha4k8kv8mj54df-hello-2.10-avr.drv' failed

Failure on x86_64-darwin (full log)
Attempted: pkgsCross.arduino-uno.hello
Partial log (click to expand)
 #include_next <limits.h>  /* recurse down to the real one */
               ^~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:1658: lib/c-strcasecmp.o] Error 1
make[2]: Leaving directory '/private/tmp/nix-build-hello-2.10-avr.drv-0/hello-2.10'
make[1]: *** [Makefile:1878: all-recursive] Error 1
make[1]: Leaving directory '/private/tmp/nix-build-hello-2.10-avr.drv-0/hello-2.10'
make: *** [Makefile:1413: all] Error 2
builder for '/nix/store/kvl688caam66mqxpq5whqbdwxmckg8qi-hello-2.10-avr.drv' failed with exit code 2
error: build of '/nix/store/kvl688caam66mqxpq5whqbdwxmckg8qi-hello-2.10-avr.drv' failed

Failure on x86_64-linux (full log)
Attempted: pkgsCross.arduino-uno.hello
Partial log (click to expand)
 #include_next <limits.h>  /* recurse down to the real one */
               ^~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:1658: lib/c-strcasecmp.o] Error 1
make[2]: Leaving directory '/build/hello-2.10'
make[1]: *** [Makefile:1878: all-recursive] Error 1
make[1]: Leaving directory '/build/hello-2.10'
make: *** [Makefile:1413: all] Error 2
builder for '/nix/store/674083hq20pvkiz97c5a0yc5hnlq5hv7-hello-2.10-avr.drv' failed with exit code 2
error: build of '/nix/store/674083hq20pvkiz97c5a0yc5hnlq5hv7-hello-2.10-avr.drv' failed

Oh I recall our GCC derivation doing something funny with limits.h

@ericson2314 It looks like it's coming from this line:
https://github.com/nixos/nixpkgs/blob/master/pkgs/development/compilers/gcc/builder.sh#L142
We've always assumed we had limits.h, but that's not always the case. Maybe remove that line from the builder? (later on of course, trying to avoid mass rebuilds here)

That is we overwrite the builtin LIMITS_H_TEST with that flag, causing it to always be true:
https://github.com/gcc-mirror/gcc/blob/master/gcc/Makefile.in#L535
But it looks like we can't avoid the mass rebuild unfortunately!

Success on x86_64-darwin (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess
Partial log (click to expand)

these paths will be fetched (37.20 MiB download, 155.10 MiB unpacked):
  /nix/store/10n6qiaz1piz0gsh05x5i062cscrwi6f-gcc-wrapper-7.3.0
  /nix/store/6d95j619zw7n6sbk5dqs36gwrsvif9x0-gcc-7.3.0
  /nix/store/alrfpp3mnyr5lycdh1xi36mhpclnkv0l-gcc-7.3.0-lib
copying path '/nix/store/alrfpp3mnyr5lycdh1xi36mhpclnkv0l-gcc-7.3.0-lib' from 'https://cache.nixos.org'...
copying path '/nix/store/6d95j619zw7n6sbk5dqs36gwrsvif9x0-gcc-7.3.0' from 'https://cache.nixos.org'...
copying path '/nix/store/10n6qiaz1piz0gsh05x5i062cscrwi6f-gcc-wrapper-7.3.0' from 'https://cache.nixos.org'...
/nix/store/10n6qiaz1piz0gsh05x5i062cscrwi6f-gcc-wrapper-7.3.0
/nix/store/7l83571b34mmbr1zkxa596vw2wdqxxnh-stdenv-darwin

Success on aarch64-linux (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on aarch64-linux: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/klgxdd526njckk7cq8j1pxakb2p6wv70-gcc-wrapper-7.3.0
/nix/store/m6llsl31vkhkhxfy055m44444nz9s9ki-stdenv-linux

Success on x86_64-linux (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on x86_64-linux: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0
/nix/store/glnk048cqva0ig8yrjfw140z2r2v18b4-stdenv-linux

@GrahamcOfBorg build pkgsCross.arduino-uno.hello

Success on x86_64-linux (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on x86_64-linux: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0
/nix/store/glnk048cqva0ig8yrjfw140z2r2v18b4-stdenv-linux

Success on aarch64-linux (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on aarch64-linux: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/klgxdd526njckk7cq8j1pxakb2p6wv70-gcc-wrapper-7.3.0
/nix/store/m6llsl31vkhkhxfy055m44444nz9s9ki-stdenv-linux

Pinging a few people who have used avrgcc to see what can be done to make this transition easier:
Specifically how can we get multiple compilers to work with cc-wrapper? Without knowing ICU and MCU ahead of time we are kind of stuck...

@mguentner
@acowley
@gesturbjarkason

Failure on x86_64-linux (full log)
Attempted: pkgsCross.arduino-uno.hello
Partial log (click to expand)
                   close (fd);
                   ^~~~~
                   fclose
make[2]: *** [Makefile:1658: lib/localcharset.o] Error 1
make[2]: Leaving directory '/build/hello-2.10'
make[1]: *** [Makefile:1878: all-recursive] Error 1
make[1]: Leaving directory '/build/hello-2.10'
make: *** [Makefile:1413: all] Error 2
builder for '/nix/store/sk9rxds3a6y7pfkkjynh716ibcsbw1rf-hello-2.10-avr.drv' failed with exit code 2
error: build of '/nix/store/sk9rxds3a6y7pfkkjynh716ibcsbw1rf-hello-2.10-avr.drv' failed

Failure on aarch64-linux (full log)
Attempted: pkgsCross.arduino-uno.hello
Partial log (click to expand)
                   close (fd);
                   ^~~~~
                   fclose
make[2]: *** [Makefile:1658: lib/localcharset.o] Error 1
make[2]: Leaving directory '/build/hello-2.10'
make[1]: *** [Makefile:1878: all-recursive] Error 1
make[1]: Leaving directory '/build/hello-2.10'
make: *** [Makefile:1413: all] Error 2
builder for '/nix/store/i61sx5li0lqaia39mb73mwm7xq97wwi3-hello-2.10-avr.drv' failed with exit code 2
error: build of '/nix/store/i61sx5li0lqaia39mb73mwm7xq97wwi3-hello-2.10-avr.drv' failed

Success on x86_64-darwin (full log)
Attempted: gcc, stdenv
The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess
Partial log (click to expand)
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

/nix/store/10n6qiaz1piz0gsh05x5i062cscrwi6f-gcc-wrapper-7.3.0
/nix/store/7l83571b34mmbr1zkxa596vw2wdqxxnh-stdenv-darwin

Failure on x86_64-darwin (full log)
Attempted: pkgsCross.arduino-uno.hello
Partial log (click to expand)
                   close (fd);
                   ^~~~~
                   fclose
make[2]: *** [Makefile:1658: lib/localcharset.o] Error 1
make[2]: Leaving directory '/private/tmp/nix-build-hello-2.10-avr.drv-0/hello-2.10'
make[1]: *** [Makefile:1878: all-recursive] Error 1
make[1]: Leaving directory '/private/tmp/nix-build-hello-2.10-avr.drv-0/hello-2.10'
make: *** [Makefile:1413: all] Error 2
builder for '/nix/store/djcfv74bd24walc9z8kdnhf2qj5kz3f1-hello-2.10-avr.drv' failed with exit code 2
error: build of '/nix/store/djcfv74bd24walc9z8kdnhf2qj5kz3f1-hello-2.10-avr.drv' failed

Failure on x86_64-darwin (full log)
Attempted: dfu-programmer, gcc, newlib, stdenv
The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess, opentx, qmk_firmware
Partial log (click to expand)
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: Resource temporarily unavailable
builder for '/nix/store/0782dybi3wk39b41j447mpc2cdfxh9ni-curl-7.61.1.drv' failed with exit code 254
cannot build derivation '/nix/store/s25qjww0mz3rg1i6hc103v1y1w1a4vgw-newlib-3.0.0.tar.gz.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/fc5cz85aswfp4mqf0z6pyidbbalhwg1r-newlib-3.0.0.drv': 1 dependencies couldn't be built
builder for '/nix/store/pzi01l4dxgqc06z3aq68vyhnv83qvxfw-dfu-programmer-0.7.2.drv' failed with exit code 254
error: build of '/nix/store/fc5cz85aswfp4mqf0z6pyidbbalhwg1r-newlib-3.0.0.drv', '/nix/store/pzi01l4dxgqc06z3aq68vyhnv83qvxfw-dfu-programmer-0.7.2.drv' failed

Failure on aarch64-linux (full log)
Attempted: dfu-programmer, gcc, newlib, qmk_firmware, stdenv
The following builds were skipped because they don't evaluate on aarch64-linux: avrdudess, opentx
Partial log (click to expand)
make[1]: *** [tmk_core/rules.mk:286: .build/z150_blackheart_default.elf] Error 1
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/g6kdngcpb0q0cja3h82413ms3ypi2d39-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/g6kdngcpb0q0cja3h82413ms3ypi2d39-qmk_firmware-0.6.144.drv' failed

Timed out, unknown build status on x86_64-linux (full log)
Attempted: avrdudess, dfu-programmer, gcc, newlib, opentx, qmk_firmware, stdenv
Partial log (click to expand)
Making vitamins_included/rev1 with keymap default                                                      [OK]
Making viterbi/rev1 with keymap default                                                                [OK]
Making viterbi/rev1 with keymap default                                                                [OK]
Making wavelet with keymap default                                                                     [OK]
Making whitefox with keymap default                                                                    [WARNINGS]
(Firmware size check does not yet support cortex-m4 microprocessors; skipping.)
Making wilba_tech/wt60_a with keymap default                                                           [OK]
Making wilba_tech/wt65_a with keymap default                                                           [OK]
building of '/nix/store/16nq0h56krjw96balhx2qh3k02yimdws-qmk_firmware-0.6.144.drv' timed out after 3600 seconds
error: build of '/nix/store/16nq0h56krjw96balhx2qh3k02yimdws-qmk_firmware-0.6.144.drv', '/nix/store/2rj8qpc4diy91cx0w2zn1dbwx8la3kqv-opentx-2.2.1.drv' failed

Failure on x86_64-darwin (full log)
Attempted: dfu-programmer, gcc, newlib, stdenv
The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess, opentx, qmk_firmware
Partial log (click to expand)
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: retry: Resource temporarily unavailable
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin/setup: fork: Resource temporarily unavailable
builder for '/nix/store/pzi01l4dxgqc06z3aq68vyhnv83qvxfw-dfu-programmer-0.7.2.drv' failed with exit code 254
builder for '/nix/store/0782dybi3wk39b41j447mpc2cdfxh9ni-curl-7.61.1.drv' failed with exit code 254
cannot build derivation '/nix/store/s25qjww0mz3rg1i6hc103v1y1w1a4vgw-newlib-3.0.0.tar.gz.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/fc5cz85aswfp4mqf0z6pyidbbalhwg1r-newlib-3.0.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/fc5cz85aswfp4mqf0z6pyidbbalhwg1r-newlib-3.0.0.drv', '/nix/store/pzi01l4dxgqc06z3aq68vyhnv83qvxfw-dfu-programmer-0.7.2.drv' failed

Failure on x86_64-linux (full log)
Attempted: avrdudess, dfu-programmer, gcc, newlib, opentx, qmk_firmware, stdenv
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/mqmr0syag2p7ch8lddnnph5sjvhml8wc-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/2rj8qpc4diy91cx0w2zn1dbwx8la3kqv-opentx-2.2.1.drv', '/nix/store/mqmr0syag2p7ch8lddnnph5sjvhml8wc-qmk_firmware-0.6.144.drv' failed

Success on x86_64-darwin (full log)
Attempted: dfu-programmer, gcc, newlib, stdenv
The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess, opentx, qmk_firmware
Partial log (click to expand)
make[2]: Leaving directory '/private/tmp/nix-build-newlib-3.0.0.drv-0/newlib-3.0.0/etc'
make[1]: Nothing to be done for 'install-target'.
make[1]: Leaving directory '/private/tmp/nix-build-newlib-3.0.0.drv-0/newlib-3.0.0'
post-installation fixup
strip is /nix/store/g5r4apl0za012ffs6ladinwa5w0m1l3k-cctools-binutils-darwin/bin/strip
patching script interpreter paths in /nix/store/ggz078k77gdn4j95ld64lzwrqxbh41dr-newlib-3.0.0
/nix/store/qx9jfm08jrc1ig02icfgknph3i9rwny1-dfu-programmer-0.7.2
/nix/store/xs8x90rif8vp3ymhdyqpc66cx0l7s2c9-gcc-wrapper-7.3.0
/nix/store/ggz078k77gdn4j95ld64lzwrqxbh41dr-newlib-3.0.0
/nix/store/8qai18dv0nqyw6s61g9p91n8684rnlg8-stdenv-darwin

Just squashed commits and cleaned things up. Interested in getting any feedback on this!

Failure on x86_64-linux (full log)
Attempted: qmk_firmware
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/kb0av5cx9byxw230k74y6hljk2asqz2f-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/kb0av5cx9byxw230k74y6hljk2asqz2f-qmk_firmware-0.6.144.drv' failed

Failure on aarch64-linux (full log)
Attempted: qmk_firmware
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/ncfy8l7ckdg57ybj76y84asl54ql5qz8-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/ncfy8l7ckdg57ybj76y84asl54ql5qz8-qmk_firmware-0.6.144.drv' failed

Timed out, unknown build status on x86_64-linux (full log)
Attempted: avrdudess, dfu-programmer, gcc, newlib, opentx, qmk_firmware, stdenv
Partial log (click to expand)
[ 37%] Linking CXX executable ../../firmware.elf
/nix/store/z6pvjan22wqxcg787kyw89jl64dhh2ks-arm-none-eabi-binutils-2.30/bin/arm-none-eabi-ld: cannot find -lstdc++_nano
/nix/store/z6pvjan22wqxcg787kyw89jl64dhh2ks-arm-none-eabi-binutils-2.30/bin/arm-none-eabi-ld: cannot find -lg_nano
/nix/store/z6pvjan22wqxcg787kyw89jl64dhh2ks-arm-none-eabi-binutils-2.30/bin/arm-none-eabi-ld: cannot find -lc_nano
collect2: error: ld returned 1 exit status
make[2]: *** [radio/src/CMakeFiles/firmware.dir/build.make:2581: firmware.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:148: radio/src/CMakeFiles/firmware.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
builder for '/nix/store/2rj8qpc4diy91cx0w2zn1dbwx8la3kqv-opentx-2.2.1.drv' failed with exit code 2
error: build of '/nix/store/2rj8qpc4diy91cx0w2zn1dbwx8la3kqv-opentx-2.2.1.drv', '/nix/store/mqmr0syag2p7ch8lddnnph5sjvhml8wc-qmk_firmware-0.6.144.drv' failed

Failure on x86_64-darwin (full log)
Attempted: qmk_firmware
Partial log (click to expand)
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
make: *** [Makefile:544: all:default] Error 1
Make finished with errors

builder for '/nix/store/d5wmab3pgdzpq6s40kxmmbcxqrddm7g1-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/d5wmab3pgdzpq6s40kxmmbcxqrddm7g1-qmk_firmware-0.6.144.drv' failed

Very cool. Thanks for working on this. I can at least confirm this works with my own custom keyboard firmware based on qmk_firmware. If interested, see: https://github.com/danielfullmer/nixos-config/commit/27447be5cc69c30b44e34ec379130183a3d16a5d

Failure on x86_64-darwin (full log)
Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
Partial log (click to expand)
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
make: *** [Makefile:544: all:default] Error 1
Make finished with errors

builder for '/nix/store/wy6nxg0j9lhq64b8ad6nsaz8a1llml63-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/nwmnccq9dpdgy6qdw6l5j85124zl131p-axoloti-1.0.12-2.drv', '/nix/store/wy6nxg0j9lhq64b8ad6nsaz8a1llml63-qmk_firmware-0.6.144.drv' failed

Failure on aarch64-linux (full log)
Attempted: dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
The following builds were skipped because they don't evaluate on aarch64-linux: axoloti
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/9mmwbcrfr0yk02097ymc60ag4smk4h22-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/9mmwbcrfr0yk02097ymc60ag4smk4h22-qmk_firmware-0.6.144.drv' failed

Merging this now. Apologies if this breaks anything. I will be available to fix any potential breakages this weekend. Please report any issues as the appear!

Failure on x86_64-linux (full log)
Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/n0jxmmxhdxzdbr8sxilmkrki5pb9yjbn-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/bp1lnx8mwhbn1gs6dzp2vl3y5qw8psbb-axoloti-1.0.12-2.drv', '/nix/store/n0jxmmxhdxzdbr8sxilmkrki5pb9yjbn-qmk_firmware-0.6.144.drv' failed

Failure on aarch64-linux (full log)
Attempted: dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
The following builds were skipped because they don't evaluate on aarch64-linux: axoloti
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/9mmwbcrfr0yk02097ymc60ag4smk4h22-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/9mmwbcrfr0yk02097ymc60ag4smk4h22-qmk_firmware-0.6.144.drv' failed

Failure on x86_64-darwin (full log)
Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
Partial log (click to expand)
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
make: *** [Makefile:544: all:default] Error 1
Make finished with errors

builder for '/nix/store/wy6nxg0j9lhq64b8ad6nsaz8a1llml63-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/nwmnccq9dpdgy6qdw6l5j85124zl131p-axoloti-1.0.12-2.drv', '/nix/store/wy6nxg0j9lhq64b8ad6nsaz8a1llml63-qmk_firmware-0.6.144.drv' failed

Timed out, unknown build status on x86_64-linux (full log)
Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
Partial log (click to expand)
/nix/store/1v2gny7fnmzn06ixv61hlwazdx4h52sb-arm-none-eabi-stage-final-gcc-debug-wrapper-7.3.0/bin/arm-none-eabi-g++ -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -fno-math-errno -Wno-unused-parameter -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -fno-rtti -Wall -Wextra -Wa,-alms=build/lst/svf.lst  -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/svf.o.d -mthumb -DTHUMB -I. -I/build/source/platform_linux/../CMSIS//Include -I/build/source/platform_linux/../CMSIS//DSP_Lib/Include -I/build/source/platform_linux/../chibios/os/ports/common/ARMCMx/CMSIS/include -I/build/source/platform_linux/../chibios/os/ports/common/ARMCMx -I/build/source/platform_linux/../chibios/os/ports/GCC/ARMCMx -I/build/source/platform_linux/../chibios/os/ports/GCC/ARMCMx/STM32F4xx -I/build/source/platform_linux/../chibios/os/kernel/include -I/build/source/platform_linux/../chibios/os/hal/include -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32F4xx -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/GPIOv2 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/I2Cv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/OTGv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/RTCv2 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/SPIv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/TIMv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/USARTv1 -I. -I/build/source/platform_linux/../chibios/ext/fatfs/src -I/build/source/platform_linux/../chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc -I./mutable_instruments -I./mutable_instruments/warps -I./mutable_instruments/braids -I./mutable_instruments/rings -I./mutable_instruments/elements -I./mutable_instruments/stmlib ./mutable_instruments/streams/svf.cpp -o build/obj/svf.o

/nix/store/1v2gny7fnmzn06ixv61hlwazdx4h52sb-arm-none-eabi-stage-final-gcc-debug-wrapper-7.3.0/bin/arm-none-eabi-g++ -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -fno-math-errno -Wno-unused-parameter -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -fno-rtti -Wall -Wextra -Wa,-alms=build/lst/vactrol.lst  -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/vactrol.o.d -mthumb -DTHUMB -I. -I/build/source/platform_linux/../CMSIS//Include -I/build/source/platform_linux/../CMSIS//DSP_Lib/Include -I/build/source/platform_linux/../chibios/os/ports/common/ARMCMx/CMSIS/include -I/build/source/platform_linux/../chibios/os/ports/common/ARMCMx -I/build/source/platform_linux/../chibios/os/ports/GCC/ARMCMx -I/build/source/platform_linux/../chibios/os/ports/GCC/ARMCMx/STM32F4xx -I/build/source/platform_linux/../chibios/os/kernel/include -I/build/source/platform_linux/../chibios/os/hal/include -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32F4xx -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/GPIOv2 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/I2Cv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/OTGv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/RTCv2 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/SPIv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/TIMv1 -I/build/source/platform_linux/../chibios/os/hal/platforms/STM32/USARTv1 -I. -I/build/source/platform_linux/../chibios/ext/fatfs/src -I/build/source/platform_linux/../chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc -I./mutable_instruments -I./mutable_instruments/warps -I./mutable_instruments/braids -I./mutable_instruments/rings -I./mutable_instruments/elements -I./mutable_instruments/stmlib ./mutable_instruments/streams/vactrol.cpp -o build/obj/vactrol.o

/nix/store/1v2gny7fnmzn06ixv61hlwazdx4h52sb-arm-none-eabi-stage-final-gcc-debug-wrapper-7.3.0/bin/arm-none-eabi-gcc   build/obj/arm_bitreversal2.o  build/obj/crt0.o build/obj/vectors.o build/obj/chcore.o build/obj/chcore_v7m.o build/obj/nvic.o build/obj/chsys.o build/obj/chdebug.o build/obj/chlists.o build/obj/chvt.o build/obj/chschd.o build/obj/chthreads.o build/obj/chdynamic.o build/obj/chregistry.o build/obj/chsem.o build/obj/chmtx.o build/obj/chcond.o build/obj/chevents.o build/obj/chmsg.o build/obj/chmboxes.o build/obj/chqueues.o build/obj/chmemcore.o build/obj/chheap.o build/obj/chmempools.o build/obj/hal.o build/obj/adc.o build/obj/can.o build/obj/ext.o build/obj/gpt.o build/obj/i2c.o build/obj/icu.o build/obj/mac.o build/obj/mmc_spi.o build/obj/mmcsd.o build/obj/pal.o build/obj/pwm.o build/obj/rtc.o build/obj/sdc.o build/obj/serial.o build/obj/serial_usb.o build/obj/spi.o build/obj/tm.o build/obj/uart.o build/obj/usb.o build/obj/stm32_dma.o build/obj/hal_lld.o build/obj/adc_lld.o build/obj/ext_lld_isr.o build/obj/can_lld.o build/obj/ext_lld.o build/obj/mac_lld.o build/obj/sdc_lld.o build/obj/pal_lld.o build/obj/i2c_lld.o build/obj/usb_lld.o build/obj/rtc_lld.o build/obj/spi_lld.o build/obj/gpt_lld.o build/obj/icu_lld.o build/obj/pwm_lld.o build/obj/serial_lld.o build/obj/uart_lld.o build/obj/board.o build/obj/fatfs_diskio.o build/obj/fatfs_syscall.o build/obj/ff.o build/obj/ccsbcs.o build/obj/chprintf.o build/obj/memstreams.o build/obj/axoloti_control.o build/obj/codec.o build/obj/axoloti.o build/obj/axoloti_filters.o build/obj/axoloti_math.o build/obj/axoloti_oscs.o build/obj/axoloti_board.o build/obj/midi.o build/obj/ui.o build/obj/glcdfont.o build/obj/usbcfg.o build/obj/sdcard.o build/obj/pconnection.o build/obj/parameters.o build/obj/main.o build/obj/patch.o build/obj/flash.o build/obj/virtual_control.o build/obj/arm_bitreversal.o build/obj/arm_cfft_f32.o build/obj/arm_cfft_q15.o build/obj/arm_cfft_q31.o build/obj/arm_cfft_radix2_f32.o build/obj/arm_cfft_radix2_init_f32.o build/obj/arm_cfft_radix2_init_q15.o build/obj/arm_cfft_radix2_init_q31.o build/obj/arm_cfft_radix2_q15.o build/obj/arm_cfft_radix2_q31.o build/obj/arm_cfft_radix4_f32.o build/obj/arm_cfft_radix4_init_f32.o build/obj/arm_cfft_radix4_init_q15.o build/obj/arm_cfft_radix4_init_q31.o build/obj/arm_cfft_radix4_q15.o build/obj/arm_cfft_radix4_q31.o build/obj/arm_cfft_radix8_f32.o build/obj/arm_rfft_f32.o build/obj/arm_rfft_fast_f32.o build/obj/arm_rfft_fast_init_f32.o build/obj/arm_rfft_init_f32.o build/obj/arm_rfft_init_q15.o build/obj/arm_rfft_init_q31.o build/obj/arm_rfft_q15.o build/obj/arm_rfft_q31.o build/obj/arm_mult_q31.o build/obj/arm_mult_q15.o build/obj/arm_mult_f32.o build/obj/arm_shift_q31.o build/obj/arm_shift_q15.o build/obj/arm_scale_f32.o build/obj/arm_cmplx_mult_cmplx_q31.o build/obj/arm_cmplx_mult_cmplx_f32.o build/obj/arm_cmplx_mag_q31.o build/obj/arm_cmplx_mult_cmplx_q15.o build/obj/arm_cmplx_mag_q15.o build/obj/arm_cos_q31.o build/obj/arm_sin_q31.o build/obj/arm_sqrt_q31.o build/obj/arm_sqrt_q15.o build/obj/arm_fir_init_q31.o build/obj/arm_fir_fast_q31.o build/obj/arm_biquad_cascade_df1_32x64_init_q31.o build/obj/arm_biquad_cascade_df1_32x64_q31.o build/obj/arm_biquad_cascade_df1_fast_q31.o build/obj/arm_biquad_cascade_df1_init_q31.o build/obj/arm_biquad_cascade_df1_q31.o build/obj/arm_fir_interpolate_init_q31.o build/obj/arm_fir_interpolate_q31.o build/obj/arm_fir_decimate_init_q31.o build/obj/arm_fir_decimate_q31.o build/obj/arm_fir_decimate_fast_q31.o build/obj/arm_fir_lattice_init_q31.o build/obj/arm_fir_lattice_q31.o build/obj/arm_iir_lattice_init_q31.o build/obj/arm_iir_lattice_q31.o build/obj/arm_common_tables.o build/obj/arm_const_structs.o build/obj/usbh_core.o build/obj/usbh_ctlreq.o build/obj/usbh_ioreq.o build/obj/usbh_pipes.o build/obj/usbh_hid.o build/obj/usbh_hid_keybd.o build/obj/usbh_hid_mouse.o build/obj/usbh_hid_parser.o build/obj/stm32f4xx_ll_usb.o build/obj/stm32f4xx_hal_gpio.o build/obj/stm32f4xx_hal_cortex.o build/obj/stm32f4xx_hal_hcd.o build/obj/usbh_midi_core.o build/obj/usbh_vendor.o build/obj/usbh_conf.o build/obj/serial_midi.o build/obj/bulk_usb.o build/obj/midi_usb.o build/obj/crc32.o build/obj/exceptions.o build/obj/watchdog.o build/obj/sysmon.o build/obj/axoloti_memory.o  build/obj/units.o build/obj/atan.o build/obj/random.o build/obj/mutable_resources.o build/obj/braids_resources.o build/obj/analog_oscillator.o build/obj/digital_oscillator.o build/obj/macro_oscillator.o build/obj/axoloti_mi.o build/obj/multistage_envelope.o build/obj/ominous_voice.o build/obj/resonator.o build/obj/string.o build/obj/tube.o build/obj/exciter.o build/obj/elements_resources.o build/obj/part.o build/obj/voice.o build/obj/clouds_resources.o build/obj/correlator.o build/obj/mu_law.o build/obj/granular_processor.o build/obj/frame_transformation.o build/obj/phase_vocoder.o build/obj/stft.o build/obj/rings_resources.o build/obj/streams_resources.o build/obj/compressor.o build/obj/envelope.o build/obj/follower.o build/obj/lorenz_generator.o build/obj/processor.o build/obj/svf.o build/obj/vactrol.o -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -fno-math-errno -Wno-unused-parameter -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -nostartfiles -L. -Wl,-Map=build/axoloti.map,--cref,--no-warn-mismatch,--library-path=/build/source/platform_linux/../chibios/os/ports/GCC/ARMCMx,--script=STM32F407xG.ld -mno-thumb-interwork -mthumb  -lm  -o build/axoloti.elf
/nix/store/1v2gny7fnmzn06ixv61hlwazdx4h52sb-arm-none-eabi-stage-final-gcc-debug-wrapper-7.3.0/bin/arm-none-eabi-objcopy -O ihex build/axoloti.elf build/axoloti.hex
make: /nix/store/1v2gny7fnmzn06ixv61hlwazdx4h52sb-arm-none-eabi-stage-final-gcc-debug-wrapper-7.3.0/bin/arm-none-eabi-objcopy: Command not found
make: *** [/build/source/platform_linux/../chibios/os/ports/GCC/ARMCMx/rules.mk:216: build/axoloti.hex] Error 127
builder for '/nix/store/bp1lnx8mwhbn1gs6dzp2vl3y5qw8psbb-axoloti-1.0.12-2.drv' failed with exit code 1
error: build of '/nix/store/bp1lnx8mwhbn1gs6dzp2vl3y5qw8psbb-axoloti-1.0.12-2.drv', '/nix/store/n0jxmmxhdxzdbr8sxilmkrki5pb9yjbn-qmk_firmware-0.6.144.drv' failed

Timed out, unknown build status on x86_64-darwin (full log)
Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
Partial log (click to expand)
 ^~~~~~~~
/nix/store/lxi68avn1z2ihd4xxma4wl7y5ws19sg3-libc++-5.0.2/include/c++/v1/cmath:589:1: error: template with C linkage
 template <class _A1>
 ^~~~~~~~
/nix/store/lxi68avn1z2ihd4xxma4wl7y5ws19sg3-libc++-5.0.2/include/c++/v1/cmath:601:1: error: template with C linkage
 template <class _A1>
 ^~~~~~~~
make: *** [/private/tmp/nix-build-axoloti-1.0.12-2.drv-0/source/platform_linux/../chibios/os/ports/GCC/ARMCMx/rules.mk:163: build/obj/units.o] Error 1
builder for '/nix/store/nwmnccq9dpdgy6qdw6l5j85124zl131p-axoloti-1.0.12-2.drv' failed with exit code 1
error: build of '/nix/store/nwmnccq9dpdgy6qdw6l5j85124zl131p-axoloti-1.0.12-2.drv', '/nix/store/wy6nxg0j9lhq64b8ad6nsaz8a1llml63-qmk_firmware-0.6.144.drv' failed

Failure on aarch64-linux (full log)
Attempted: dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
The following builds were skipped because they don't evaluate on aarch64-linux: axoloti
Partial log (click to expand)
Making z150_blackheart with keymap default                                                             [OK]
Making zeal60 with keymap default                                                                      [OK]
Making zeal65 with keymap default                                                                      [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zen/rev1 with keymap default                                                                    [OK]
Making zlant with keymap default                                                                       [OK]
Make finished with errors
make: *** [Makefile:544: all:default] Error 1
builder for '/nix/store/9mmwbcrfr0yk02097ymc60ag4smk4h22-qmk_firmware-0.6.144.drv' failed with exit code 2
error: build of '/nix/store/9mmwbcrfr0yk02097ymc60ag4smk4h22-qmk_firmware-0.6.144.drv' failed

Timed out, unknown build status on x86_64-linux (full log)
Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli
Partial log (click to expand)
/build/build/./gcc/xgcc -B/build/build/./gcc/   -msp8 -O2  -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -DDF=SF -Dinhibit_libc -mcall-prologues -Os -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc  -DDF=SF -Dinhibit_libc -mcall-prologues -Os -I. -I. -I../../.././gcc -I../../../../gcc-7.3.0/libgcc -I../../../../gcc-7.3.0/libgcc/. -I../../../../gcc-7.3.0/libgcc/../gcc -I../../../../gcc-7.3.0/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o _satfractTIHQ.o -MT _satfractTIHQ.o -MD -MP -MF _satfractTIHQ.dep -DL_satfract -DFROM_TI -DTO_HQ -c ../../../../gcc-7.3.0/libgcc/fixed-bit.c -fvisibility=hidden -DHIDE_EXPORTS
building of '/nix/store/2c8dkbrx2zdi1gk1cb0wj3jh0jdpz6ms-avr-stage-static-gcc-debug-7.3.0.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/wn03qv0zi813pcx0ppdzrfxlflcql3ff-avr-stage-static-gcc-debug-wrapper-7.3.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/qkpr63xyy1gs8hnw0s4znql5sjkcbwcy-stdenv-linux.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/jdd9bl0bg18nd0mvk0gn6mf59m4ch0a3-avr-libc-2.0.0-avr.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/1ca1397x6v5icikbis3ls9fihh9klrg0-avr-binutils-wrapper-2.30.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/54m1674ybfgvjgi7z4b6cdpm93lh3c3n-avr-stage-final-gcc-debug-7.3.0.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/fvhbpf0z7igcls0ca16n19pk0grhl8ad-avr-stage-final-gcc-debug-wrapper-7.3.0.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/n0jxmmxhdxzdbr8sxilmkrki5pb9yjbn-qmk_firmware-0.6.144.drv': 2 dependencies couldn't be built
error: build of '/nix/store/bp1lnx8mwhbn1gs6dzp2vl3y5qw8psbb-axoloti-1.0.12-2.drv', '/nix/store/n0jxmmxhdxzdbr8sxilmkrki5pb9yjbn-qmk_firmware-0.6.144.drv' failed

It was difficult for me to figure out how to find avr-gcc after this change, since command-not-found no longer reports which package provides it. Is there anything we can do about that?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-build-patched-avr-gcc-with-patched-avr-libc/21468/2


Flux Integration test with kyverno is flaking

What happened?
It has been a few days since the tests started flaking too much.
https://prow.k8s.io/job-history/gs/kubernetes-jenkins/pr-logs/directory/pull-e2e-framework-test
--- FAIL: TestFluxRepoWorkflow (20.08s)
    --- FAIL: TestFluxRepoWorkflow/Check_creation_of_tenant_resources_under_kyverno_cluster_policies (10.04s)
        --- FAIL: TestFluxRepoWorkflow/Check_creation_of_tenant_resources_under_kyverno_cluster_policies/ensure_privileged_containers_can't_be_deployed_in_the_cluster (10.04s)
            flux_test.go:45: <nil>
            flux_test.go:47: <nil>

I did some debug and found the following.
I0712 23:33:04.996051   19948 warning_handler.go:65] "would violate PodSecurity \"restricted:latest\": privileged (container \"nginx\" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (container \"nginx\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container \"nginx\" must set securityContext.capabilities.drop=[\"ALL\"]), runAsNonRoot != true (pod or container \"nginx\" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container \"nginx\" must set securityContext.seccompProfile.type to \"RuntimeDefault\" or \"Localhost\")" logger="KubeAPIWarningLogger"
I0712 23:33:10.004013   19948 conditions.go:228] "Checking for condition match" resource="/, Kind= [flux-c1467/nginx-1]" state="True" conditionType="Available" cond=[{"type":"Available","status":"False","lastUpdateTime":"2024-07-12T18:03:04Z","lastTransitionTime":"2024-07-12T18:03:04Z","reason":"MinimumReplicasUnavailable","message":"Deployment does not have minimum availability."},{"type":"Progressing","status":"True","lastUpdateTime":"2024-07-12T18:03:04Z","lastTransitionTime":"2024-07-12T18:03:04Z","reason":"ReplicaSetUpdated","message":"ReplicaSet \"nginx-1-6dbc76f964\" is progressing."}]
I0712 23:33:15.009544   19948 conditions.go:228] "Checking for condition match" resource="/, Kind= [flux-c1467/nginx-1]" state="True" conditionType="Available" cond=[{"type":"Available","status":"True","lastUpdateTime":"2024-07-12T18:03:11Z","lastTransitionTime":"2024-07-12T18:03:11Z","reason":"MinimumReplicasAvailable","message":"Deployment has minimum availability."},{"type":"Progressing","status":"True","lastUpdateTime":"2024-07-12T18:03:11Z","lastTransitionTime":"2024-07-12T18:03:04Z","reason":"NewReplicaSetAvailable","message":"ReplicaSet \"nginx-1-6dbc76f964\" has successfully progressed."}]
I0712 23:33:15.037476   19948 warning_handler.go:65] "would violate PodSecurity \"restricted:latest\": privileged (container \"nginx\" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (container \"nginx\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container \"nginx\" must set securityContext.capabilities.drop=[\"ALL\"]), runAsNonRoot != true (pod or container \"nginx\" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container \"nginx\" must set securityContext.seccompProfile.type to \"RuntimeDefault\" or \"Localhost\")" logger="KubeAPIWarningLogger"
I0712 23:33:20.045901   19948 conditions.go:228] "Checking for condition match" resource="/, Kind= [flux-c1467/nginx-2]" state="True" conditionType="Available" cond=[{"type":"Available","status":"False","lastUpdateTime":"2024-07-12T18:03:14Z","lastTransitionTime":"2024-07-12T18:03:14Z","reason":"MinimumReplicasUnavailable","message":"Deployment does not have minimum availability."},{"type":"Progressing","status":"True","lastUpdateTime":"2024-07-12T18:03:14Z","lastTransitionTime":"2024-07-12T18:03:14Z","reason":"ReplicaSetUpdated","message":"ReplicaSet \"nginx-2-7db5b7ffd5\" is progressing."}]
I0712 23:33:25.044663   19948 conditions.go:228] "Checking for condition match" resource="/, Kind= [flux-c1467/nginx-2]" state="True" conditionType="Available" cond=[{"type":"Available","status":"True","lastUpdateTime":"2024-07-12T18:03:22Z","lastTransitionTime":"2024-07-12T18:03:22Z","reason":"MinimumReplicasAvailable","message":"Deployment has minimum availability."},{"type":"Progressing","status":"True","lastUpdateTime":"2024-07-12T18:03:22Z","lastTransitionTime":"2024-07-12T18:03:14Z","reason":"NewReplicaSetAvailable","message":"ReplicaSet \"nginx-2-7db5b7ffd5\" has successfully progressed."}]

Looks like the flakiness is because the kyverno policy is not getting enforced always. The nginx-1 deployment based pod is never supposed to start up as per the config, but it does. That leads to the tests failing.
I0712 23:33:04.996051   19948 warning_handler.go:65] "would violate PodSecurity \"restricted:latest\": privileged (container \"nginx\" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (container \"nginx\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container \"nginx\" must set securityContext.capabilities.drop=[\"ALL\"]), runAsNonRoot != true (pod or container \"nginx\" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container \"nginx\" must set securityContext.seccompProfile.type to \"RuntimeDefault\" or \"Localhost\")" logger="KubeAPIWarningLogger"
It does generate this warning but doesn't seem to fail.
What did you expect to happen?
Tests not to flake
How can we reproduce it (as minimally and precisely as possible)?
for x in $(seq 1 15); do go test -count=1  ./...; done;   running this under examples/third_party_integration/flux/kyverno can easily reproduce flaky tests
Anything elese we need to know?
No response
E2E Provider Used
kind
e2e-framework Version
HEAD
OS version

# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here

@harshanarayana Thank you for the pointers. I have added the logic to check for all the deployment related to kyverno to be available before we run the tests as part of the PR https://github.com/kubernetes-sigs/e2e-framework/pull/438 and  have also ran the test multiple times using the following shell script:
#!/bin/bash
set -euo pipefail
for x in $(seq 1 15); do
  echo "Running test ${x}"
  set -x
  go test -v ./... -count=1
  set +x
  sleep 5
  kind get clusters
done

The test has not failed since then.
cc @vladimirvivien @cpanato


Add missing radix transform

Fixes #117. Does what it says on the tin.
cc/ @fandy

Overall looks perfect, but if I'm being picky then this might be a valid test case:
// before
parseInt('442', 10);
//after
parseInt(442, 10);
``

This way `parseInt` doesn't have to automatically do type coercion.

@fandy I see where you're coming from, but I don't know that it's the best bet since 1) we have no instances of actually calling parseInt on a literal, only on references, and 2) we are basically just doing the same parseInt call ourselves to figure out what the numeric literal should be, which defeats the purpose of having the parseInt in the transformed code.


The app doesn't seem to work on my device

When I download the app and enable it, its seems like the screen stays up (open on coffee app) but when switching to other app to study like YouTube (any app) the screen turns off so like the app only work when it's opens on coffee app even I try the alternative mode same problem.+ I don't want the app to be working 24/7 only when I enable it and when I disable it stop, by the way good app👍
Device info:
Oppo A74
Android 13
Coloros 13

Did you grant any permissions after enabling alternative mode? Can you enable coffee and check what's the configured screen timeout? It should be set to the highest possible value then.
I can confirm Coffee is working on a stock Android 13, so it's most likely an overly aggressive battery saver, which is out of my control :/

Did you grant any permissions after enabling alternative mode? Can you enable coffee and check what's the configured screen timeout? It should be set to the highest possible value then. I can confirm Coffee is working on a stock Android 13, so it's most likely an overly aggressive battery saver, which is out of my control :/

Yup I granted it edit system settings and I'm pretty sure that doest has to do with battery saver because it's off and when I enable the quick tile icon and givit some time outside of the app it turn off the screen after some time i think it's like 30s (system default) and when I go to check on the icon I found it off and same thing with doing it inside the app

Hey, maybe I should start my own thread, but I feel iffy doing that, because if every device had the same problem, we'd have hundreds of threads with the same title XD I hope that's OK.
I just wanted to chime in and say I'm experiencing the same issue. It's from the same R&D, if that helps. My phone is:
OnePlus 9 Pro (T-mobile Variant)
Operating System: OxygenOS 14.0
Version: LE2127_<IP_ADDRESS>
All that being Android 14.
I also enabled Alternate mode, gave it the necessary permission to "modify system settings" and disabled battery optimization and allowed the app to run in the background.
After I turned on Coffee, I headed over to to "Display and Brightness" settings to check the "Auto screen off" value, and it has not changed from my preferred "15 seconds" with Coffee toggled on.
I'd like to also note that before the Android 14 update, it was actually working. I didn't even have to turn on "Alternate mode"

I had the same issue. After some month of not caring today i got into it. In my case it was the adaptive battery setting even though it was turned off.
So in settings -> battery -> adaptive battery -> restricted apps -> uncheck coffee (and maybe some other apps).
I don't know why it was killing coffee (and other apps) even if it is turned off. I had issues with other apps as well like messeging apps where i did not or much later get notifications.
I hope this helps

I had the same issue. After some month of not caring today i got into it. In my case it was the adaptive battery setting even though it was turned off. So in settings -> battery -> adaptive battery -> restricted apps -> uncheck coffee (and maybe some other apps). I don't know why it was killing coffee (and other apps) even if it is turned off. I had issues with other apps as well like messeging apps where i did not or much later get notifications. I hope this helps

This worked for me. Thanks.