[FR] Handle removed assertArraySubset() assertion

The Assert::assertArraySubset() assertion was hard deprecated in PHPUnit 8.0.0 and removed in PHPUnit 9.0.0.
Ref: https://github.com/sebastianbergmann/phpunit/issues/3494
It could be useful to have this assertion still available as there is no one-on-one alternative for it within PHPUnit itself.
@rdohms has created a polyfill for this functionality. Unfortunately the version constraints of that repo do not allow for it to be included with this library at this time.
Widening the version constraints for that repo and using a custom autoloader, similar to the one used in this repo is being discussed in https://github.com/rdohms/phpunit-arraysubset-asserts/issues/11
It would be great if that package could be included. If not, polyfilling the functionality within this repo should be considered.
If this functionality is not added to this repo, tests currently using assertArraySubset() could be refactored using one of the below patterns:
class FooTest extends TestCase {

    public function testArrayWithKeyOriginalLoose() {
        $subset = [
            'key1' => 'value',
            'key2' => 'value'
        ];
        $strict = false;

        $array  = ClassUnderTest::getArray();
        $this->assertArraySubset( $subset, $array, $strict );
    }

    public function testArrayWithKeyRefactoredLoose() {
        $subset = [
            'key1' => 'value',
            'key2' => 'value'
        ];

        $array  = ClassUnderTest::getArray();

        foreach ( $subset as $key => $value ) {
            $this->assertArrayHasKey( $key, $array );
            $this->assertEquals( $value, $array[ $key ] );
        }
    }

    public function testArrayWithKeyOriginalStrict() {
        $subset = [
            'key1' => 'value',
            'key2' => 'value'
        ];
        $strict = true;

        $array  = ClassUnderTest::getArray();
        $this->assertArraySubset( $subset, $array, $strict );
    }

    public function testArrayWithKeyRefactoredStrict() {
        $subset = [
            'key1' => 'value',
            'key2' => 'value'
        ];

        $array  = ClassUnderTest::getArray();

        foreach ( $subset as $key => $value ) {
            $this->assertArrayHasKey( $key, $array );
            $this->assertSame( $value, $array[ $key ] );
        }
    }

    public function testArrayWithoutKeyOriginalStrict() {
        $subset = [ 'value1', 'value3', 'value10' ];
        $strict = true;

        $array  = ClassUnderTest::getArray();
        $this->assertArraySubset( $subset, $array, $strict );
    }

    public function testArrayWithoutKeyRefactoredStrict() {
        $subset = [ 'value1', 'value3', 'value10' ];

        $array  = ClassUnderTest::getArray();

        $this->assertTrue( array_intersect( $subset, $array ) === $subset );
    }
}

As of version 0.3.0, the dms/phpunit-arraysubset-asserts package allows for installation in combination with PHP 5.4 - current and PHPUnit 4.8.36/5.7.21 - current, which effectively solves this issue.
The dms/phpunit-arraysubset-asserts package is now listed in the README of this repo as an alternative for the removed functionality. See #16.


[docs][material-ui] Fix #43986: Incorrect React useState Example on Toggle Button

[X] I have followed (at least) the PR section of the contributing guide.

Fixes: https://github.com/mui/material-ui/issues/43986

I can't push directly to your master branch, but you need to run the following commands in order to fix the CI:
pnpm install
pnpm prettier
pnpm docs:typescript:formatted

I can't push directly to your master branch, but you need to run the following commands and push the changes in order to fix the CI

@mnajdova good catch, it looks like that worked. All CI tests are passing now, whenever you have a second to take a look at this.


Trigger unique button instance within row

Issue Type

[x] Question

Specs
What version are you using?
2.20.0
Basic question here, no issues with VGT.
I want to show/hide individual row buttons within a custom template when text is added to an input field in the same custom template.
Currently, I'm firing a method when the user inputs something in the input box, however the showSaveButton data value triggers the button to be shown in every row.
Is there a way to trigger a unique instance of each data property (showSaveBtn) so that only the button in that specific row is shown?
I could probably make this into a new component (it's already a library component) and then trigger state within it, but would like to avoid that.
Template:
  <span
            v-else-if="
              props.column.field == 'trackingNo' && props.row.trackingYn === 'Y'
            "
          >
            <FormulateInput
              v-model="props.row.trackingNo"
              type="text"
              name="trackingNo"
              class="mb-0"
              @input="showSaveOption(props.row.orderCd)"
            />
            <transition name="modal-fade">
              <BaseButton
                v-show="showSaveBtn"
                :key="props.row.idx"
                class="mt-1 float-left w-100"
                variant="primary"
                size="small"
                >저장하기</BaseButton
              >
            </transition>
          </span>

Data:
  showSaveBtn: false,
Method:
    showSaveOption(orderCd) {
      this.showSaveBtn = true
      console.log(orderCd)
    },

Gif of triggering all row buttons

hey @titusdecali, as you correctly identified this doesn't have much to do with VGT but more about logic. If you had this arrangement formulateInput and Basebutton in a v-for list, how would you make sure that the input only triggers its corresponding trigger?
Right now you have one global showSaveBtn. if that is set to true, it will obviously make all basebuttons visible.
One way to do this would be to only show the button when the corresponding trackingNo has a value:
<transition name="modal-fade">
    <BaseButton
       v-show="props.row.trackingNo"
       :key="props.row.idx"
       class="mt-1 float-left w-100"
       variant="primary"
       size="small">저장하기</BaseButton>
</transition>

so above will only be visible if the row's trackingNo has a value.
closing.


Server is kidnapping CPU cycles

Describe the bug
Version of the server 0.17.1, the server after a while reaches high level of CPU % taken, to my old macBookPro from 2012 is reaching 100% or more, I monitor the process using the tool htop and filtering with the keywork tankroyale
The problem doesn't look to appear until a game is started but when happens doesn't matter if the game is aborted or the bots are disconnected/unbooted/killed, the server is getting hold of my CPU
To Reproduce
Assuming the problem is not just related to me, boot up a server, join some bots, run a  game, stop the game, un-run the bots. Monitor the CPU usage from the server on each step.
Expected behavior
server to use any CPU is required to him during the battle and releasing it when the battle is finished
Screenshots
htop screenshots, ignore the blue higlighted row and fcus on the server row and the CPU% column
Server just started:

Walls and Crazy joined

Game started

Game aborted

Bots killed (after the games i aborted in order to avoid any illegal disruption of the game)

Desktop (please complete the following information):
MacOS Catalina on MacBook Pro 13-inch Mid 2-12
Java info:
java <IP_ADDRESS> 2022-08-18
Java(TM) SE Runtime Environment (build <IP_ADDRESS>+1-1)
Java HotSpot(TM) 64-Bit Server VM (build <IP_ADDRESS>+1-1, mixed mode, sharing)
extra
running server with this command line:
java -jar robocode/servers/robocode-tankroyale-server.jar --port=1234 --botSecrets=secret1 --controllerSecrets=secret2
The server jar is the one prelevated from the robocode-tankroyale-gui-0.17.1.jar upon extracting it

@SirStone
Have you experienced this issue only for version 0.17.1 or also on older versions of the server. Version 0.17.1 had very few changes compared to version 0.17.0. Only the stuff with session-id etc. was changed, and should not be enough to hurt performance.
I have run the server with Java 18 on two machines:

MacBook Pro 2019, 2,4Mhz, 8-core, Core I9
PC with Windows 11 AMD Ryzen 5 5600G

And I ran from 8-30 bots at a time, with 30 TPS and ~900 TPS (with turn timeout = 1 ms).
I have booted, unbooted, started battle from scratch, and restarted the server, but not rebooting it. I also tried out port 1234 instead of the default 7654.
I have been using IntelliJ Ultimate with profiling tools to monitor the server.
The results between the two machines were very close, and under heavy pressure with 30 bots at ~900 TPS, this is the result:

So I am wondering if my machines are simply very powerful, and hence I don't run into the issue.
Or perhaps something is troubling the server on your side?
In the very early days I had problems with bots that did not disconnect correctly from the server. But this should not be an issue anymore, and the connection to bots is kept as long as they are not stopped/disconnecting the server.

Hello
I already answered via e-mail but I can't see my message here, so I assume that my answer never reached here...
this was my message wrote the  19/09/2022:
I experienced this from 0.17.0 too. I can do more tests:
-Older version of the server
-running the GUI avoiding all my code influence

More people could participate with their experience in order to understand if my machine is an isolated case.

It just came in my mind that I experienced another thing, running with my interface so for now I can't completely say that it's not my fault.
Lately I run continuously a battle made of 2 round, after battle ends it is started again right away programmatically (I do this to get the results faster); after some time that I'm observing the battle, the graphic just hangs, aborting or starting a new battle generates the messages from the server for the controller but no more ticks are received.

I told you this only because could be related to the CPU kidnapping and some sub-process could be killed from the system.

Would you be interested in my game setup? Maybe I'm pushing in a wrong and unexpected way the timings of the game.

Today I'm here providing more screenshots, I've tested the very same steps with versions 0.17.0, 0.16.0, 0.15.0 and 0.14.0 and all shows the same behaviour
For each, in order:

server just started <-- CPU is low
bots joined <-- CPU is low
running game <-- CPU goes high
stopping game  <-- CPU remains high
bots left  <-- CPU still remains high

0.17.0

0.16.0

0.15.0

0.14.0

Test with the GUI
I've noticed that running the GUI is not creating this effect, no need for screenshots, the CPU goes up when the battle starts but as soon STOP is used the CPU usage drops to the normality (for a not running game).
My two cents:

The server, when the game is aborted leaves some routine running
The GUI, when stopping a game, is calling something on the server (maybe killing/rebooting it?) that solves/hides the problem

I guess the issue you experience has existed with the server for a long time, as it has not changed much since February where I put the stuff on GitHub. I basically just adjusted game logics, fixed bugs, and added a few things like secrets and session id.
When benchmarking the server, I always run it outside the GUI. But it should not make much difference, as the server, booter, bots are all started up in their own processes, and the processes are killed when stopping these.
Regarding...

Yes, it could be that some left overs are still taking up CPU when aborting a game. I will look into that. I think I already benchmarked this in IntelliJ, where it looked okay. I am wondering, if it could be the Java version that makes a difference? E.g. the garbage collection could work differently.

When the GUI is killing the process, it simple sends a single line containing the letter q for "quit". Then the server exits its own process.
The GUI controls the server via the ServerProcess.kt (line 78)
And the server reacts on input within Server.kt (line 128)

The rest of the communication between the controller (GUI) and server is via websockets.

I did a new benchmarking of the Server using the IntelliJ Ultimate profiler on my Windows 11 PC running Oracle JDK <IP_ADDRESS> on Windows 11, AMD Ryzen 5 5600G 3.90 GHz (not running in full speed):

I am running 8 java sample bots with 30 TPS and turn timeout on 5000 us.
Even though my machine might be faster than your Mac Book from 2012, it should not matter, as we should see a rise on CPU and heap memory over time. But on my machine, it is going back to normal when I abort or restart a battle, and the curves are stable.
Max heap memory used: 147 MiB
Max CPU usage (single thread): 5%
The server is running a single thread (ServerProcess.kt line 124) which is run to accept input from stdin (waiting for the q command)
A thread is being started and stopped with the NanoTimer.kt responsible for triggering a "new turn" event, when the timer is started and stopped for a battle. Even though this thread could be leaking (?), it should not take up lots of CPU resources for before it reaches thousands of threads.

Regarding your battles...  You run only two bots in 30 TPS and perhaps the default turn timeout of 30000 us? If you get near 1000 us (1 ms), you should expect problems (due to timer resolutions etc.). How many battles are your starting and aborting to observe the issue, and over how long time? If it is the first few battles, then something is definitely off.

I will play with the game setup timing variables to see if something changes but right now...
How many battles are your starting and aborting to observe the issue, and over how long time? always the first one, 100% of times
and over how long time? starting the game and aborting it after 10 seconds, 1 second or 1 millisecond to me is producing the same high CPU never released effect.
For me this is not a stopping issue, is just one click for me to reboot the server and stop the problem and during the battle is taking high CPU either way.
Because you don't experience this I suggest to wait until I try on another machine and/or operative system and maybe someone else can input their experience as well.

Yes, it sure would be great to hear if anybody else is experiencing this problem too.
And it would like to hear what you experience on another machine as well.

I see this same thing! My setup is a little different. Looks like this.

Server is in docker container (one container per "environment")
I run multiple server instances at a time.
Two bots per server. 30TPS.

If I leave the server idle after bots leave I end up with very high CPU utilization.

@stobias123 Thank you for the feedback. 🙂
I realised that I focused too much on what was going on within the battles. But it seems like the issue is triggered after the battle has ended or is aborted.
I am still not able to see 100% CPU usage on my system, but I do see it is using CPU when the game should have stopped running, which was definitely an issue.
I have had a deep look into the server, and I have fixed these issues on the server on the master branch, and these fixes comes with the next release:

Game is now aborted, when the last bot participating in a battle is leaving (disconnecting). Hence, the battle could run in the background (with bots not moving), when all bots have left a battle. So this was a bug that needed a fix.
Timer used for turn timeout was not stopped, when a battle had ended/aborted. I guess this was the real issue, or at least a part of it.
Freeing heap memory used for storing game state when game is ended/aborted.

Freeing the heap memory was not really a bug, but by design (keeping state in order to save a record of the entire battle history later). Anyways, I am freeing up the memory when the game is over to memory is free when the server waits for a new battle.
I am not sure if (all) issues are fixed now. But at least some of it has been fixed by now, and we'll see with the coming release if this also works out for you guys.

@SirStone, @stobias123
I have now released version 0.17.3 with several fixes for the server. I hope this one fixes the issue(s).

:clap: this 0.17.3 solves the problem for me!

server just started <-- CPU is low

bots joined <-- CPU is low

running game <-- CPU goes high

stopping game <-- CPU goes low!!!!

I dno't even need to un-boot the bots to go back to normal CPU usage now. No modifications have been made by me that could tamper with the results, better wait for the others to confirm my results.
My guess is that the problem was with the "not stopped timer" you mentioned.

@SirStone
Thanks for the feedback. I am really happy that this issue is now nailed.
I am sure that is was the timer that caused the issue. I will close this issue now.

I experienced this from 0.17.0 too. I can do more tests:
-Older version of the server
-running the GUI avoiding all my code influence
More people could participate with their experience in order to understand
if my machine is an isolated case.
It just came in my mind that I experienced another thing, running with my
interface so for now I can't completely say that it's not my fault.
Lately I run continuously a battle made of 2 round, after battle ends it is
started again right away programmatically (I do this to get the results
faster); after some time that I'm observing the battle, the graphic just
hangs, aborting or starting a new battle generates the messages from the
server for the controller but no more ticks are received.
I told you this only because could be related to the CPU kidnapping and
some sub-process could be killed from the system.
Would you be interested in my game setup? Maybe I'm pushing in a wrong and
unexpected way the timings of the game.
Il Lun 19 Set 2022, 22:16 Flemming N. Larsen @.***> ha
scritto:

@SirStone https://github.com/SirStone
Have you experienced this issue only for version 0.17.1 or also on older
versions of the server. Version 0.17.1 had very few changes compared to
version 0.17.0. Only the stuff with session-id etc. was changed, and should
not be enough to hurt performance.
I have run the server with Java 18 on two machines:

MacBook Pro 2019, 2,4Mhz, 8-core, Core I9
PC with Windows 11 AMD Ryzen 5 5600G

And I ran from 8-30 bots at a time, with 30 TPS and ~900 TPS (with turn
timeout = 1 ms).
I have booted, unbooted, started battle from scratch, and restarted the
server, but not rebooting it. I also tried out port 1234 instead of the
default 7654.
I have been using IntelliJ Ultimate with profiling tools to monitor the
server.
The results between the two machines were very close, and under heavy
pressure with 30 bots at ~900 TPS, this is the result:
[image: unnamed]
https://user-images.githubusercontent.com/2179727/191107813-1cd9360d-d2d9-42a5-bfe4-fa66e60ab1fc.png
So I am wondering if my machines are simply very powerful, and hence I
don't run into the issue.
Or perhaps something is troubling the server on your side?
In the very early days I had problems with bots that did not disconnect
correctly from the server. But this should not be an issue anymore, and the
connection to bots is kept as long as they are not stopped/disconnecting
the server.
—
Reply to this email directly, view it on GitHub
https://github.com/robocode-dev/tank-royale/issues/45#issuecomment-1251504838,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ7Z3CFNZ2BVM4XPMN2WT3V7DCZZANCNFSM6AAAAAAQPQZQL4
.
You are receiving this because you were mentioned.Message ID:
@.***>


New strategy on data fetching

At the moment, we do state management using zustand: https://github.com/penumbra-zone/web/blob/main/apps/webapp/state/send.ts
and data fetching via react hooks: https://github.com/penumbra-zone/web/blob/main/apps/webapp/hooks/balances.ts
When they operate alone, it's not an issue. However, when you compose them together, it is bridging two worlds that do not really go well together: https://github.com/penumbra-zone/web/blob/main/apps/webapp/app/send/send-form.tsx#L18-L34.
Also, react-hooks are simply bad in general with composing. React state management libraries are far better.
Further, our react-hooks that do extension requests are not cached at all. So there are frequent/redundant calls being made.
I think the solution is to build an intelligent query store in zustand.

We should think about the react-router loader system instead. I have a feeling this could be better. That would require us migrating away from nextjs 🤔
We should explore remixjs and astro to see their approaches. Maybe vite too.

Spent time thinking of our data fetching issue. Continuing the nested react-hook model will be the slow death of the web app. Just look at the frontend for Osmosis. They took this pattern to its logical end and they are left with a completely unmaintainable/undebuggable/re-render-hell-like state.
The crux of the issue is that we are using fetching patterns from 2019. The industry has evolved and moved on to much better server-focused paradigms (nextjs 13, remixjs, etc). These improve developer experience and client performance by moving data fetching responsibility to the backend. However, we can't make use of them. Due to philosophical/censorship-resisting reasons (which we should continue to think about), we have limited the server to only one responsibility: serve static assets. That means we have to stay in the client-only, single-page-app world.
=== Recommendation ===
We migrate away from Nextjs to React Router. We are currently using like 50% of what Nextjs is designed to be. And it's missing one critical client-side-only feature: loaders.
I believe this was recently introduced in React-Router v6. It's the idea that a component is paired with the function that supplies the data it requires and won't render until it's resolved. We need this on the client side (in nextjs it's server-side only). It's a simple idea but allows us to move away from the react-hook model of render-then-fetch to render-as-you-fetch pattern (https://twitter.com/DavidKPiano/status/1585982757603512320). Further, and most importantly, you don't compose via hooks calling hooks calling hooks in React-land. Fetching becomes normal async/await javascript in a loader. It also encourages more usage of state inside a url.
It's also helpful to know that the successor to react-router, Remixjs, is actively working on making it have a SPA target: https://github.com/remix-run/remix/discussions/7638, eventually making the react-router transition possible.


Adds a docker compose file to work with container

What does this provide beyond the existing shell script?

@haroon-sheikh what are your thoughts on this?

@aslakhellesoy You can do docker-compose exec web bash for interactive session, or docker-compose exec web make htmlproofer. It's just a better way of working with your docker containers. If we're all happy with using the docker_shell, I don't mind us sticking that way.

I'd be leaning the same way as @aslakhellesoy here. I love using docker-compose for apps with numerous containers, but I don't see any benefit over the shell script in this instance. :)

closing as per above.


expose cliContext

This needs to be exposed in order to query the state ("Frozen", "Active", "Expired") of a client.
The cosmos/relayer will use this in its testing suite.

Closing because I was able to build a client.Context in the relayer.


AMONG US!!!!!!!!!!!!!!!!11

We noticed your code lacked AMONG US. We would liek to change that.
Sincerely, Lindsey Beil

Sorry, this PR looks sus.


Unable to place 4 first nodes on multiple servers in IBFT2.0 Network with Besu v23.1.2

I followed by tutorials and because of the limitation of servers, I need separate 4 nodes on multiple machines: AWS vs DO.
[https://besu.hyperledger.org/23.4.0/private-networks/tutorials/ibft/validators]
Issue Description:
I am encountering an issue with the deployment of an IBFT2.0 network involving four nodes. Three nodes are hosted on AWS instances, and one node is deployed on a DigitalOcean (DO) instance. The network uses Besu v23.1.2 and Java version jdk20. Although the nodes have been successfully synced, the block production process is not functioning as expected.
Steps to Reproduce:
Deploy three nodes on AWS instances using Besu v23.1.2 and Java version jdk20.
Deploy one node on DigitalOcean (DO) with the same Besu and Java versions.
My step-by-step start time includes: node1 as a boot node (AWS), node4 (DO), node2 (AWS), node3 (AWS)
Configure all nodes to use the IBFT2.0 consensus mechanism.
Ensure all necessary ports (including the default Ethereum port 30303) are open for communication among the nodes.
Start each node and monitor the synchronization process.
Expected Behavior:
Upon successful deployment and synchronization of the four nodes, the IBFT2.0 network should function correctly, and the nodes should be able to produce blocks in a distributed manner.
Actual Behavior:
Despite successful node deployment and synchronization, the nodes are not producing blocks as expected. The block production process seems to be stuck or halted, leading to a failure in achieving consensus among the nodes.
Additional Information:
The AWS and DO instances are properly provisioned with sufficient resources to handle the network's demands.
There are no apparent firewall or networking issues, as all nodes are reachable and can sync with each other.
The time synchronization has been verified to ensure that nodes are operating with the correct time.
Possible Root Causes:
There might be an issue with the IBFT2.0 consensus algorithm implementation or configuration that is preventing block production.
There could be a compatibility issue with Besu v23.1.2 and the Java version jdk20 when running on the specified server infrastructure.
Workarounds Tried:
As a workaround, I have attempted to restart the nodes, reconfigure the consensus mechanism, and redeploy the network on fresh instances. However, none of these measures have resolved the block production problem.
Expected Resolution:
I kindly request the Besu contributors to investigate this issue further to identify the root cause and provide a resolution. The ability to deploy and operate an IBFT2.0 network on multiple servers is crucial for our use case, and we are eager to participate in resolving this matter collaboratively.
Please let me know if any additional information or logs are required to diagnose and address the problem effectively. Thank you for your attention to this matter.
Best regards,

Hi @khiem20tc, the most common cause of no blocks being produced is a misconfigured extraData in the genesis file. The extraData needs to contain all your validating nodes' node addresses.
Please double check that the extraData string you have in your genesis file matches the list of validator addresses that you have set up, and note the validator addresses change if the private node key changes. Besu will auto-generate a private node key if you don't specify one, so redeploying nodes may be cause the keys to change if you don't separately specify them, https://besu.hyperledger.org/development/public-networks/reference/cli/options#node-private-key-file
More info about extraData is here:
https://besu.hyperledger.org/23.4.0/private-networks/how-to/configure/consensus/ibft#extra-data
There's two ways you can validate the extraData is correct:

Decode the extraData string as RLP, e.g. using this tool https://toolkit.abdk.consulting/ethereum#rlp which will give you a list of node addresses
Manually re-encode your deployed nodes' address using besu rlp encode --from=toEncode.json as shown in the docs and then compare the result with your genesis file.

I recommend getting used to configuring the network using https://docs.goquorum.consensys.net/tutorials/quorum-dev-quickstart/using-the-quickstart on one machine first, before you introduce the complication of multiple machines.
If this does not resolve your issue, please can you post some more logs, maybe can try increasing to DEBUG level as well: https://besu.hyperledger.org/development/public-networks/how-to/monitor/logging

Thank Sir,
I have already set it up successfully by checking extra data and putting the key to match the boot node's first position in the array after decoding. And then, I also specified the location of the key for each node when starting to run to avoid node auto-gen new key.

Great news, sounds like you're sorted then - I will close this, feel free to reopen with more info if it's not actually resolved.


Clarity on the respective purposes of build and publish

💡 Feature request
Overview and problem statement
I guess this would likely fall into a request for documentation updates...
I just went to set up a CI/CD pipeline for an experimental Cloudflare Worker I am working on and wrangler did not behave how I intuitively expected it to.
I set up a Build stage to my pipeline in which I ran wrangler build, then published the built artifact for consumption in my Deploy stage. Pretty standard stuff I think.
In my Deploy stage I set up wrangler publish and expected it to be responsible for taking the result of wrangler build (a nice lightweight artifact) and publishing it to my Cloudflare account.
Instead it seems like publish essentially needs the full repo source and npm installation all over again, which suggests it is not intended to be combined with build at all, which has left me confused as to the design/intended use-cases of the commands.
Would love to hear your thoughts on this setup and intuition, maybe I have just messed up my approach.
Thanks!

I agree with this report. It is unclear and frustrating to have to build every time on publish. JS developers often know what steps to get a project built and prefer to have control of that.  I think rather than documenting this we should consider solving the problem at the design of the CLI level.
Possible solutions:

publish --skip-build. Which would simply publish to CF but do no building. Radical, but if this flag gets popular consider sunsetting the old publish to skip builds by default
Inwrangler.toml, have type='javascript' not install wasm-pack or build anything it simply talks to CF's API

@victoriabernard92 thanks for acknowledging - do you help run the project? Would you be willing to accept PRs to implement these proposed solutions?

@JamesHenry while we do accept PRs this proposal needs design from and buy in from our team. I am looking forward to hearing their suggestions and getting back to you.

@victoriabernard92 Are there individuals we can ping to make this a little more concrete?
Again, I am happy to do all the work here, I just need the go ahead

This should remain open please

This should remain open please.
@ashleymichal - is there a way I can avoid this now being my job to keep this open? 😅
This seems to have been acknowledged by the team as something that could be improved and will be addressed?

it is indeed; it also needs some attention alongside the other wrangler build issues. i think a wrangler publish --skip-build flag could be a good approach to solving the immediate problem; I think it would also benefit from a top-level build_dir setting in wrangler.toml that defaults to the existing build_dir settings.

closing since this is addressed by #1677, which will be going out as part of an RC in the near future.


[WIP] Split *.ModifyAsync into smaller methods

Summary
Takes the concept from #206 (and #207) and applies it to all ModifyAsync methods.
Details
This takes the ModifyAsync methods and breaks them down into smaller methods for each argument.
Changes proposed

Split DiscordWebhook.ModifyAsync into smaller methods (d5d9c64)
Split DiscordChannel.ModifyAsync into smaller methods (ce314c4)
Split DiscordMember.ModifyAsync into smaller methods (58975d5)
Split DiscordGuildEmoji.ModifyAsync into smaller methods (d7f94fb)
Split DiscordGuild.ModifyAsync into smaller methods (7ac68af)

please resolve the the build error and fill out the contribution form

gee i wonder what the WIP in the title means 🙄

Buy CI lootboxes today to get a chance of your build succeeding

Missed that

I'm not for that. The creation methods were ok, because of the argument count. This is too much.

Blame Discord. Splitting a single operation into several is not OK. If it was an alias that simply prevents confusion, it'd be fine. If it's a single operation, multiple data, they should not be split.

That's a bad excuse

It's not an excuse, it's a fact.

[the sound of ¯\_(ツ)_/¯ echoes through the abyss]

An alternative would be introducing ASP.NET Core-like model overloads which take a model callback thing, akin to what D.NET does, so you can have (in addition to what's already available):
channel.ModifyAsync(x =>
{
    x.Name = "newname";
    x.Topic = "New Topic";
});

Etc. We've been considering something like that around 2.x development, but ultimately decided it was too much effort to implement at the time, and then we just forgot about the idea.
If you feel like up to the task, I would welcome that. Note that I'd like that in addition to existing methods.
The kind of problem you'd be facing is handling the models in a clean manner (as it would require you to introduce a bunch of new types, preferably in the DSharpPlus.Net.Abstractions namespace).


Override AccountsTemplates.configureRoute

I am using a TelescopeApp (v0.25.5) and I need to edit the route paths and templates for "sign-in" and "sign-up". These are already declared under /telescope-users/lib/config.js
When I do:
AccountsTemplates.configureRoute('signIn', {
    name: 'landing',
    template: 'landingPage'
});

I get an error saying: Route already configured!
Is there a way I can override a previously declared route?

 Quite ugly IMO
delete AccountsTemplates.routes.signIn;

the thing is that the first call to configureRoute actually set the route using the router API...
so, in principle, you should also cancel route configuration on the router: are you getting any problem with your current solution?

Nope. Deleting the key on that object gives you the option to "overwrite" an already set route.
I'm not sure if you can close this. Let's just say, I found a hack not a solution.
Thanks for a great package anyway!

In case we're sure it's not a problem to configure the same route twice with flow-router, we can avoid checking whether the route is already set up (i.e. we could remove these lines).
@arunoda, do you think it would be a problem doing something like the following?
FlowRouter.route('/one/path', {
      name: 'myRoute',
      // Other options here...
});

FlowRouter.route('/another/path', {
      name: 'myRoute',  // same name as above!
      // Other different options here...
});

which is trying to change options (including path...) for a named route already defined.

It won't be an issue for the route name. But configuring the same route definition twice will be problematic.

@arunoda is there any way to undo or cancel a route definition so that a new call to FlowRouter.route could then be safely performed?

Thanks for the hack @raduchiriac, I ran into the same thing with telescope. Im interested to know if theres a superior solution.

Any updates on this? @raduchiriac 's hack did not work for me when trying to set a different layout for the '/sign-in' route.

I have the same issue, can't set a different layout to the signIn route.  Any updates please? @raduchiriac

@raduchiriac
have you overcome this issue? If you have found any , pls share with us. i also need to set different layout for signUp in the AccountTemplates.

It's not a solution but a work-around.
It's more than a year ago so I don't remember everything but checking my answer above, I think I was doing this:
delete AccountsTemplates.routes.signUp;
AccountsTemplates.configureRoute('signUp', {
  name: 'signUp',
  path: '/sign-up',
  template: 'register'
});


Use already recovered transaction during tracing

Describe the feature
with #5302
we're caching the senders of transactions, so we no longer need to recover them during tracing
TODO
use SealedBlockWithSenders during block level tracing
Additional context
No response

Can take this !

sweet!, lmk if you need pointers, this affects trace_ debug_ rpc calls that fetch the full blocks

@yash-atreya do let us know when you intend to take it on ^^

Hey @gakonst @mattsse
I was going to start working on this on Thursday.
Do you intend to include this in alpha.11? Will try to do it sooner then.

thursday's fine :)
thanks in advance 🙏

Hey @mattsse
Extremely sorry for the delay.
Needed some guidance to implement this. I have identified the block level tracing methods where the cached senders should be used instead of recovering the signers.

trace_block
Under the hood this function uses fn trace_block_until to generate the traces.
https://github.com/paradigmxyz/reth/blob/025511baa654bf664c3d3e684364707bc6db5ed2/crates/rpc/rpc/src/eth/api/transactions.rs#L762
trace_block_until calls self.block_by_id to get the SealedBlock
https://github.com/paradigmxyz/reth/blob/025511baa654bf664c3d3e684364707bc6db5ed2/crates/rpc/rpc/src/eth/api/transactions.rs#L781-L782
Enhancement:
Use self.block_with_senders(blockId) which returns SealedBlockWithSenders. This removes the need doing the following
https://github.com/paradigmxyz/reth/blob/025511baa654bf664c3d3e684364707bc6db5ed2/crates/rpc/rpc/src/eth/api/transactions.rs#L808 instead we can just do:

let tx = TransactionSignedEcRecovered::from_signed_transaction(tx, signer); // Signer is from block.senders[idx]

trace_filter
The above enhancement will also apply here as this function also uses trace_block_until.
Moreover, this function fetches blocks in the specified range:
https://github.com/paradigmxyz/reth/blob/025511baa654bf664c3d3e684364707bc6db5ed2/crates/rpc/rpc/src/trace.rs#L260
And the signers of the fetched blocks are recovered and used in the match filter, like so:
https://github.com/paradigmxyz/reth/blob/025511baa654bf664c3d3e684364707bc6db5ed2/crates/rpc/rpc/src/trace.rs#L267-L275
Enhancement:
Add new method fn block_range_with_senders which fetches the range of block and returns ProviderResult<Vec<BlockWithSenders>>. We do not need to recover the signers now. However this uses the db and not the cache.

replay_block_transactions
This method also uses trace_block_until under the hood and the initial enhancement applies here as well.

I hope I'm on the right track, would appreciate your input on this.

@yash-atreya sorry I forgot to respond to this one here.
your PR was great, so now we can the same thing for:
https://github.com/paradigmxyz/reth/blob/main/crates/rpc/rpc/src/eth/api/call.rs#L74-L74
and all the others that fetch blocks for tracing

@yash-atreya sorry I forgot to respond to this one here. your PR was great, so now we can the same thing for:
https://github.com/paradigmxyz/reth/blob/main/crates/rpc/rpc/src/eth/api/call.rs#L74-L74
and all the others that fetch blocks for tracing

@mattsse Thanks. I'll get on it.
Just wanted to confirm whether I should move forward with the following enhancement I suggested for trace_filter, which uses the db instead of the cache to retrieve the block range with senders. I'll create a separate PR for this.

Enhancement:
Add new method fn block_range_with_senders which fetches the range of block and returns ProviderResult<Vec>. We do not need to recover the signers now. However, this uses the db and not the cache.

Just wanted to confirm whether I should move forward with the following enhancement I suggested for trace_filter, which uses the db instead of the cache to retrieve the block range with senders. I'll create a separate PR for this.

need to think about it, but I believe we want this yes

Just wanted to confirm whether I should move forward with the following enhancement I suggested for trace_filter, which uses the db instead of the cache to retrieve the block range with senders. I'll create a separate PR for this.

need to think about it, but I believe we want this yes

Have created the PR in case you need it. #5647

Hey @mattsse, the last few PRs have been extremely fun, thank you for your guidance.
Feel free to assign me more issues, I'll be on the lookout as well.

ty!
if you don't find any interesting issue please ping dm on tg or twitter and I'll come up if something


selectedMenuItemStyle for SelectField

I’m trying to change the color of the selected menuItem in a SelectField.  It looks like you can only change the selected color when you create a Menu component.  Then you can use the selectedMenuItemStyle prop.  However, the SelectField and DropDown components create the Menu inside the PopOver and the menuItem.selectedTextColor is hard coded to rawTheme.palette.accent1Color.  It would be very helpful if selectedMenuItemStyle could be exposed to the SelectField component.

Hmmm this is a very good feature to have. a PR is welcome if you have the time ^_^

That property was exposed in #5389.

That property was exposed in #5389.


VBlock..End; NewSubstVar; LookupParent

Codecov Report

Merging #143 (9f36973) into main (8b77535) will increase coverage by 0.02%.
The diff coverage is 96.66%.

@@            Coverage Diff             @@
##             main     #143      +/-   ##
==========================================
+ Coverage   94.46%   94.49%   +0.02%
==========================================
  Files          15       15
  Lines        5819     5848      +29
==========================================
+ Hits         5497     5526      +29
  Misses        248      248
  Partials       74       74

Impacted Files
Coverage Δ

codebuild.go
94.94% <93.33%> (+0.04%)
:arrow_up:

stmt.go
94.50% <100.00%> (+0.02%)
:arrow_up:

type_var_and_const.go
98.52% <100.00%> (+0.04%)
:arrow_up:

Continue to review full report at Codecov.

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


useSWR to fetch only one time

How can I use swr to fetch data only once? I don't need to refresh the data and revalidate.
I prefer to use swr library for this and not just sending simple request and showing data, for couple of reasons:

swr manages cache
swr prevent a situation of update after unmount (no need to cancel request)
and more great things swr has to offer..

So how can I use swr for this? What I need to put in the options param?
Is it a good idea to use it for this purpose? It feels like I'm using a sledgehammer to crack a nut.
Thanks!

Hello,
I'm sorry but I don't quite understand. I was currently using useSWR to get the data to a form I was editing when I changed an image, this then disappeared a click in the same browser, I guess and I understand that it has to do with the options mentioned above:
useSWR(key, {
  revalidateOnFocus: false,
  revalidateOnMount:false,
  revalidateOnReconnect: false,
  refreshWhenOffline: false,
  refreshWhenHidden: false,
  refreshInterval: 0
});

So what should I do? Disable all of the above options, which doesn't seem right to me.  Or use natively without your library as in this example.
const [question, setQuestion] = useState(defaultValues);
    const [mounted, setMounted] = useState(false);
    const [error, setError] = useState(false);

    useEffect(() => {
        async function initialData() {
            const response = await fetch(config.apiNamespace + crud.apiRouter+'/'+props.id, {
                method: 'GET'
            })
            let data = await response.json();
            if (response.status !== 200){
                setError(data)
            }else{
                setQuestion(data)
            }
            setMounted(true);
        }
        initialData().then()
    },[])

    if (!mounted) {
        return (<Loader/>)
    }
    if (error) {
        return (<ErrorPage statusCode={error.data.status} title={error.message} statusText={error.message}/>)
    }

Any clarification?

@chiqui3d A couple of pointers here.
First, if this is initial data that you are fetching, you might wanna give initialData a try.
function MyComponent({ initialData }) {
  const { data } = useSWR('/api/data', fetcher, { initialData });
  // ...
}

If you are using an SSR solution, like next.js, you could return initialData from getServerSideProps.
Another thing I can think of is that it seems like you are binding the values of the object you fetch with useSWR directly to inputs in a form - that's why, I assume, you are actually seeing this behaviour in which fields revert back to its original value on revalidation. Instead, you might want to try and separate the initial values and the edited values in different states (if you are not using it already, formik may help with that). Or use plain uncontrolled inputs.
{initialData && (
  <form>
    <input name="name" type="text" defaultValue={initialData.name} />
    <input name="age" type="number" defaultValue={initialData.age} />
  </form>
}

Hello @nfantone,
Thank you very much now using defaultValue instead of value, it works perfectly.
Sorry for my rookie question, so is this what I recommend to use? Defaultvalue instead of value.
This is my complete component using useSWR without Next.js in this case, but I usually use Next.js.
import React, {useEffect, useState} from "react";
import {Breadcrumb, Breadcrumbs} from '@src/Layout/Breadcrumbs'
import FormBootstrap from "react-bootstrap/Form"
import TopActions from "@src/Form/TopActions";
import ResponseSuccessForm from "@src/Form/ResponseSuccessForm";
import ResponseFailForm from "@src/Form/ResponseFailForm";
import BottomActions from "@src/Form/BottomActions";
import {FetchWithResponse} from "@src/helpers/fetchWithResponse";
import ColWithInput from "@src/Form/ColWithInput";
import Row from "@src/Form/Row";
import Answer from "@src/Pages/questions/partials/Answer";
import config from "@root/config";
import Loader from "@src/Layout/Loader";
import ErrorPage from "@src/Layout/ErrorPage";
import useSWR from "swr";
import fetchSWR from "@src/helpers/fetchSWR";

const defaultValues = {
    title: '',
    answers: [
        {
            title: '',
            image: '',
            order: '',
            question_id: ''
        },
        {
            title: '',
            image: '',
            order: '',
            question_id: ''
        },
        {
            title: '',
            image: '',
            order: '',
            question_id: ''
        }
    ],
}

const crud = {
    name: 'question',
    pageName: 'Editar pregunta',
    listName: 'Preguntas',
    listRouter: 'questions/index',
    actionApiRouter: 'questions',
    submitButton: 'Actualizar pregunta',
    submitAction: 'PUT',
    actionMessage: 'Pregunta actualizada correctamente'
}

const QuestionsEdit = (props) => {
    const [validated, setValidated] = useState(false)
    const [responseForm, setResponseForm] = useState('')
    const [responseFailForm, setResponseFailForm] = useState(null)
    const [mounted, setMounted] = useState(false);
    const [question, setQuestion] = useState(defaultValues);
    const {data, error} = useSWR(config.apiNamespace + crud.actionApiRouter+'/'+props.id, url => fetchSWR(url, {
        method: 'GET',
    }, false));

    useEffect(() => {
        async function initialData() {
            setQuestion(data)
            setMounted(true)
        }
        initialData().then()
    },[data])

    if (!mounted) {
        return (<Loader/>)
    }
    if (mounted && error) {
        const statusText = error.statusText || error.toString()
        return (<ErrorPage statusCode={error.status} title={statusText} statusText={statusText}/>)
    }

    const onChangeHandler = (event, index) => {
        const element = event.target;
        setQuestion(prevState => {
            return {...prevState, [element.name]: element.value};
        });
    }

    const handleSubmit = async (event) => {
        const form = event.currentTarget
        if (form.checkValidity() === false) {
            event.preventDefault()
            event.stopPropagation()
        }
        const imageErrors = [];
        const ImageError = ({index}) =>
Por favor agrega la imagen para la respuesta {index}

        question.answers.forEach((answer,index) => {
            if (answer['image'] === ''){
                imageErrors.push(<ImageError key={"error-"+index} index={index+1}/>);
            }
        })
        if (imageErrors.length > 0 ){
            event.preventDefault()
            event.stopPropagation()
            setValidated(false);
            setResponseFailForm(imageErrors);
            return;
        }

        setValidated(true);
        if (form.checkValidity() === true) {
            event.preventDefault()
            setResponseFailForm('')
            setResponseForm('')
            const successCallback = async (res, newData) => {
                setValidated(false)
                setResponseForm(crud.actionMessage);
            };
            const errorCallback = async (res, data) => {
                setValidated(false)
                setResponseFailForm('Error ' + data.status + '. ' + data.message)
            };

            return await FetchWithResponse(
                config.apiNamespace + crud.actionApiRouter+'/'+question.id,
                props,
                JSON.stringify(question),
                crud.submitAction,
                true,
                successCallback,
                errorCallback
            );

        }
    }
    return (
        <>
            <Breadcrumbs currentIconClass="far fa-bookmark" currentPageName={crud.pageName}>
                <Breadcrumb pageName={crud.listName} href={crud.listRouter}/>
                <Breadcrumb current={true} pageName={crud.pageName}/>
            </Breadcrumbs>
            {question && mounted &&

                    <FormBootstrap autoComplete="off"
                                   className={"form js-form-new-" + crud.name}
                                   method="POST"
                                   noValidate
                                   validated={validated}
                                   onSubmit={handleSubmit}
                                   encType="multipart/form-data">
                        <TopActions backButton={{href: crud.listRouter}}
                                    submitButton={{value: crud.submitButton}}/>
                        {responseForm && <ResponseSuccessForm successMessage={responseForm}/>}
                        {responseFailForm && <ResponseFailForm errorMessage={responseFailForm}/>}

                        <Row text="Titulo de la pregunta">
                            <ColWithInput
                                col="col-md-8"
                                name="title"
                                label={false}
                                placeholder="Introduce un titulo"
                                defaultValue={question.title}
                                onChange={onChangeHandler}
                                required={true}
                            />
                        </Row>

                        <Answer data={question} setData={setQuestion}/>

                        <BottomActions backButton={{href: crud.listRouter}}
                                       submitButton={{value: crud.submitButton}}/>
                    </FormBootstrap>

 }
        </>
    )
}

export default QuestionsEdit;

Thanks again for your time.

It has been complicated to me, with the preview of the image, it is easier to leave it as it was before, that is to say that it is executed only once, that to have to be controlling the preview of the image and to return to get the images through the DOM when sending the form seems to me more complicated.

@chiqui3d Would you happen to have a runnable example you could share? It's kind of hard to follow what your issues are without something to collate against.

Similar problem i have: https://stackoverflow.com/questions/66699292/where-to-calculate-groups-for-fluentui-detaillist-in-nextjs
In fluentUI i want to calculate another state "groups" for a DetailedList based on returned data from swr, but then when user changes some state (similar to the input example) it then refetches with swr and then it recalculate the groups and i end up with revering the user action of collapsing UI.
New at all this - feeling I miss the bigger picture.

For whoever comes to this issue:
Since 1.0.0, there’s a new useSWRImmutable you can import from swr/immutable, which by default will only fetch the resource once. Related docs: https://swr.vercel.app/docs/revalidation#disable-automatic-revalidations.

I'm new to using useSWR also but I'm actually having a similar use case as the author. I'm using Next.js and getStaticProps with incremental static regeneration.
When using ISR without SWR two refreshes are needed in order to see updates from the server (which is f*n annoying).
If I add SWR only one refresh is needed (expected behaviour for the user). A lot of my page content doesn't need to be revalidated on focus etc (just unnecessary requests for the users).
This is why I'm considering using SWR in a similar way as the author ie with most flags disabled.

This may help. SWR has excellent deduplication capacity built-in: https://swr.vercel.app/docs/advanced/performance
I was awaiting a lengthy promise.all with some moderate to hefty data manipulation on the results. I don't want to make these requests often, not even every time the component mounts as the data will at best be updated daily. I do want it to be cached and subtly revalidated on the semi-regular, though.
In my case, the above immutable config options plus revalidateOnMount: false ended up cacheing undefined against the key, even with a bit of manual mutate() going on.
What did work was setting the dedupingInterval to an hour.
{
	revalidateIfStale: false,
	revalidateOnFocus: false,
	revalidateOnReconnect: false,
	revalidateOnMount: true, // If false, undefined data gets cached against the key.
	dedupingInterval: 3_600_000, // dont duplicate a request w/ same key for 1hr
}

This way, SWR can complete its revalidation comparisons,  which start when the component mounts and continue whilst the data's being manhandled, but the same API request isn't arbitrarily duplicated for at least an hour, even if the component remounts.

i have an issue because my swr always fetching everytime my animation moves, for example sidebar animation.

For late visitors... SWR now have "immutable mode": https://swr.vercel.app/blog/swr-v1.en-US#immutable-mode


ds.mean('dim') drops strings dataarrays, even when the 'dim' is not dimension of the string dataarray

What happened:
I have a dataset along many dimensions, e.g. time and experiments. Some of the dataarrays only contain strings and only have the experiments as dimension. When I use ds.mean('time') I lose these dataarrays.
What you expected to happen:
I would expect that the mean on the full dataset would be similar that what happends with float dataarrays that don't contain the dimension: just return them unchanged. As shown in the minimal example attached, using ds.min produced the result I would expect.
Minimal Complete Verifiable Example:
Here da1 corresponds to my dataarrays that are lost. da3 produced what I would expect (same result no matter the data type).
import xarray as xr

da1 = xr.DataArray(['a','b']).rename('da1')
print(da1, '\n')

da3 = xr.DataArray([-1, -2]).rename('da3')
print(da3, '\n')

da2 = xr.DataArray([[0,1],[2,3]]).rename('da2')
print(da2, '\n')

ds = xr.merge([da1,da2,da3])
print(ds, '\n')

print('mean:', ds.mean('dim_1'))
print('min:', ds.min('dim_1'))

And the output is:
<xarray.DataArray 'da1' (dim_0: 2)>
array(['a', 'b'], dtype='<U1')
Dimensions without coordinates: dim_0

<xarray.DataArray 'da3' (dim_0: 2)>
array([-1, -2])
Dimensions without coordinates: dim_0

<xarray.DataArray 'da2' (dim_0: 2, dim_1: 2)>
array([[0, 1],
       [2, 3]])
Dimensions without coordinates: dim_0, dim_1

<xarray.Dataset>
Dimensions:  (dim_0: 2, dim_1: 2)
Dimensions without coordinates: dim_0, dim_1
Data variables:
    da1      (dim_0) <U1 'a' 'b'
    da2      (dim_0, dim_1) int64 0 1 2 3
    da3      (dim_0) int64 -1 -2

mean: <xarray.Dataset>
Dimensions:  (dim_0: 2)
Dimensions without coordinates: dim_0
Data variables:
    da2      (dim_0) float64 0.5 2.5
    da3      (dim_0) int64 -1 -2
min: <xarray.Dataset>
Dimensions:  (dim_0: 2)
Dimensions without coordinates: dim_0
Data variables:
    da1      (dim_0) <U1 'a' 'b'
    da2      (dim_0) int64 0 2
    da3      (dim_0) int64 -1 -2

I searched in the opened issues but haven't seen any similar one.
I agree this looks like a big. It's puzzling why it would only occur on mean rather than min.

Just ran into this bug, see #5393.
Hopefully no one was already working on it...


[BUG] ContextError: Cannot evaluate ReferenceAttr object without a context

datar version checks

[X] I have checked that this issue has not already been reported.

[X] I have confirmed this bug exists on the latest version of datar and its backends.

Issue Description
Getting this error on trying to use any function(group_by,filter) from datar.
ContextError: Cannot evaluate ReferenceAttr object without a context
Expected Behavior
Should have been running coreectly without any error.
Installed Versions

0.11.2

Could you provide a copy of minimal runnable code, as well as the full version information?

By the way, you also need datar-pandas backend to be installed:
pip install -U datar[pandas]
# or
pip install -U datar-pandas


Move all blockchain scripts into repo root

They don't belong to the npm packages but to our CI setup

Readme should be updated to run scripts from script folder

thx, updated


remove broken queries

These queries are not set up correctly and are causing the app to not load. Did not see corresponding server schema resolves so removed them.
If there are schema resolves then the queries need to be rewritten to use the apollo structure for queries:
export const QUERY_TRACKER = gql`
    query queryTracker($trackerId: ID!) {
        user {
            tracker(trackerId: $trackerId) {
                trackerId
                date
                workedOut
                caloriesBurned
                stepsTaken
                sleepDuration
                waterIntake
                notes
            }
        }
    }
`;

the resolvers were created for those queries. can you be a bit more specific to the issue you were having so i can re-write these?

 the resolvers were created for those queries. can you be a bit more specific to the issue you were having so i can re-write these?

The QUERY_SINGLE_RECIPE and QUERY_SINGLE_TRACKER are working fine. Currently the front-end page isn't loading because the two queries removed in this PR were not valid queries. Specifically these two:
https://github.com/danielfama14/get-fit/blob/main/Client/src/utils/queries.js#L47
https://github.com/danielfama14/get-fit/blob/main/Client/src/utils/queries.js#L68

fixed them. can you check again if they're working. i merged them. please do a git pull and try. thanks!!!!


feat: add cdk sql connection string

Description of changes

Updates the types and interfaces to support SQL connection string SSM Path customer input for SQL data source connection configurations.
Adds type validations to disambiguate possible input combinations.
Updates the SQL Lambda handler to fetch the SQL connection string from SSM if specified in the environment variables.

CDK / CloudFormation Parameters Changed

Issue #, if available

Description of how you validated changes
CI checks. Full E2E suite passed
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies
[ ] Any CDK or CloudFormation parameter changes are called out explicitly

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Cherry picked these commits into a new PR that is based on main - https://github.com/aws-amplify/amplify-category-api/pull/2409.


Fix database example in README

After quite a bit of fighting with a '406 not accepted' error, I found out that removing the 'purpose' fields from the username and password got it working.
1 error occurred:
	* Unable to create item: Unable to create item. Receieved \"406 Not Acceptable\" for \"/v1/vaults/5jzejthcprrewjbeyl5hvvocwy/items\"

I've also added some other important fields which I found from using op item template get database; database and database_type.

Closing this as README is fully changed.


Treat organization_guid and space_guid as not required field in Provision request

What is the problem?
Provision request spec defines organization_guid and space_guid as required fields. However, these fields have been deprecated in favour of using context for quite a while now  Nov 2017
Given that they are deprecated for a while it would be good to not have them being tested as required fields.
At the same time, there is an OSBAPI spec issue opened here to make it explicit that those are not required.

Hi Felisia,
thanks for raising that. Unfortunately, we have to check the service brokers to being implemented accordingly to the OSBAPI spec. So as long as this is spec we have to check for it. So I am here on the same page with @mattmcneeney. But I think we may should weaken the enforcement at that fields or raise a deprecation warning. I will discuss it with the others here at the team and reach back out to you.

@FelisiaM We put raising warnings on our road map. If we implemented that we will add deprecation warnings. I would close this issue for now, if you have nothing to add?


Update GetResponse email styling

Need to update logo and styling

@petervecchiarelli  -- is this something you need to do or do you need our help with?


Fix checking patterns to infer packaged builder

Don't ignore results of pattern resolving if self.data_files is not None. Otherwise lines 854 and 1037 make no sense.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

oh wow good catch


Poor scroll wheel behavior when close to ground

Reported in the forum: https://groups.google.com/forum/?hl=en#!topic/cesium-dev/wJOMrgxK5tk
In this example, scrolling to zoom in is uncontrollable.  It moves the camera way past where the view is set.
var viewer = new Cesium.Viewer('cesiumContainer');

var positions = [-71.29105, 42.464285, 44.205711, -71.291001, 42.464357, 40.953957, -71.275873, 42.468022, 37.06498, -71.312714, 42.594241, 1123.425537, -71.339351, 42.819745, 1303.672852, -71.371783, 43.047171, 1277.159912, -71.388573, 43.289406, 1307.889771, -71.412506, 43.54532, 575.371643];

viewer.entities.add( {
    polyline: {
        positions: Cesium.Cartesian3.fromDegreesArrayHeights( positions ),
        material: Cesium.Color.RED
    },
    wall: {
        positions: Cesium.Cartesian3.fromDegreesArrayHeights( positions ),
        material: Cesium.Color.RED
    }
} );

var heading = 6;
var pitch = -0.2;
var range = 100000;

var dest = Cesium.Cartesian3.fromDegrees( -71.27338128077781, 42.46736,<PHONE_NUMBER>6251833 );

var sphere = new Cesium.BoundingSphere( dest );

viewer.camera.flyToBoundingSphere( sphere, {
    offset: new Cesium.HeadingPitchRange( heading, pitch, range )
} );

Perhaps related to #2968.


[SIP-13] Proposal for Code Review Process

Motivation
The Superset community has a large number of contributors and stakeholders, which leads to many people trying to modify the codebase at the same time.
For project maintainer this introduces a lot of challenges:

A large number of issues and pull requests, which require significant amount of time to triage, review and shepherd until merging. As of Oct 15, 2018, there are 864 open issues and 161 open PRs. Many of these are a few years old and remain in limbo.
Keeping the code base healthy. It is great to receive many community contributions, but the overall project stability and code quality must come first. If the PR idea/work is interesting, but the quality does not match the standard or introduces risky changes without justified reasons, the project maintainers have a hard time handling these PRs. With the proposal for frequent release plan (SIP-12), master stability becomes even more important.
Merging a PR that ends up breaking master branch. Old community PRs that are finally merged sometimes break the master branch (commonly CI) because they are not rebased against master and tested again before merging. The responsibility then falls to the maintainer to resolve the broken state.

For contributors, these are the common questions:

Who will review my PR? Currently, it is unclear who should participate in the code review of each PR. Contributors sometimes manually tag github username of project maintainers for reviews. This does not work well for beginners who do not know anyone, perhaps tagging @mistercrunch. Even experienced contributors can have this issue when touching the code in different sections of the project. It is also a manual process.
When will someone review my PR? There are several uncertainties around the code review process. Some are implied (e.g.,no review until the PR pass all CI tests, PRs with [WIP] in the title are considered work-in-progress and will not be reviewed, etc.). However, there are many PRs that are not ready for review, but do not have [WIP] and cause confusion.
When will someone merge my PR? After PRs are approved, sometimes they are left in that state for a while. It is not explained when it will be merged. This left the contributors hanging.
Which release will include my PR? Currently, it is unclear when will the change make it to an official release, leading to different organizations maintaining their own branches. Please also see a proposal for release plan in SIP-12 for more details.

To be more efficient at maintaining Superset and improving it in the long-term, we need more workflow clarity that will increase code quality and improve project stability. This proposal wishes to reduce operational workload for the project maintainers, set the right expectations for everyone and make the project keep growing with happy community.
Proposed Changes
[P.1] Project maintainers can request an issue to be created before a PR is reviewed.
A philosophy we would like to strong encourage is

"Before creating a PR, create an issue."

We would like to update the contributing guidelines for Superset as follows.

Bug fixes: If you’re only fixing a small bug, it’s fine to submit a pull request right away but we highly recommend to file an issue detailing what you’re fixing. This is helpful in case we don’t accept that specific fix but want to keep track of the issue. Please keep in mind that the project maintainers reserve the rights to accept or reject incoming PRs, so it is better to separate the issue and the code to fix it from each other. In some cases, project maintainers may request you to create a separate issue from PR before proceeding.
Refactor: For small refactors, it can be a standalone PR itself detailing what you are refactoring and why. If there are concerns, project maintainers may request you to create a SIP for the PR before proceeding.
Feature/Large changes: If you intend to change the public API, or make any non-trivial changes to the implementation, we requires you to file a new issue as SIP (Superset Improvement Proposal). This lets us reach an agreement on your proposal before you put significant effort into it. You are welcome to submit a PR along with the SIP (sometimes necessary for demonstration), but we will not review/merge the code until the SIP is approved.
In general, small PRs are always easier to review than large PRs. The best practice is to break your work into smaller independent PRs and refer to the same issue. This will greatly reduce turnaround time.
Finally, never submit a PR that will put master branch in broken state.

[P.2] Create multiple new templates for new issues/PRs
Currently we only have an issue template but not a PR template.
To facilitate the issue and PR creation, we will provide templates for different scenarios. Github supports multiple templates which users can choose from a menu when creating.

Creating issue templates
Multiple issue and pull request templates
Ansible has good examples of templates

An issue will be one of the following types:

Question
Bug
Feature request
SIP (Superset Improvement Proposal)

A PR will be one of the following types

Bugfix - Fix bugs
Feature - Add new features
Refactor - Refactor code to improve code quality
Test - Add new test cases

A PR should generally includes the following:

Summary
Before/after screenshots or animated GIF (when applicable)
Test Plan
Checkboxes

Has associated issue(s):
Changes UI
Includes screenshot
Requires DB Migration
Introduces new feature or API
Removes existing feature or API

[P.3] Pre-define reviewers with CODEOWNERS
Github allows us to list mandatory reviewers for each directory in a CODEOWNERS file. When a new PR is opened, the corresponding reviewers will be assigned to review that PR automatically.  Mandatory reviewers do not have to be committers.
CODEOWNERS will be defined as a team. A team contains one or more people, such as (python-reviewers, js-reviewers, vis-reviewers) See an example.
Note: CODEOWNERS requires changing github repo settings (via Apache) to enable protected branch option. Teams are defined in organization settings. Need to investigate if it has to be the same github organization (Apache) to define the teams. Fallback plan is using another github org or macro/alias.
[P.4] Define a protocol when a PR is in progress
Authoring

Fill in all sections of the PR template.
Add label “WIP” if not ready for review (WIP = work-in-progress)
Add category label: bugfix, refactor, test or feature
Remove label “WIP” and add “READY” when ready for review
Changes to user interface require before/after screenshots, or GIF for interactions

Recommended capture tools (Kapture, LICEcap, Skitch)
If no screenshot is provided, the mandatory reviewers will mark the PR with “missing:screenshot’ label and will not review until screenshot is provided.

Reviewers will not review the code until all CI tests are passed. Sometimes there can be flaky tests. You can close and open PR to re-run CI test. Please report if the issue persists and rebase your PR after the fix has been deployed to master.
If the PR was not ready for review and inactive for > 30 days, we will close it due to inactivity. The author is welcome to re-open and update. Will set up a stale bot to do this.

Reviewing

Triage and add labels: Here are some example labels. Please keep in mind that these are examples. The final list of labels and adding a bot to add them will become action items if this SIP is approved.

Missing: screenshot, issue, test
Language: Javascript, Python, Others
Components: Dashboard, SQL Lab, Explore, Charts

Use constructive tone when writing reviews.
If there are changes required, state clearly what needs to be done before the PR can be approved.

Merging

At least one mandatory reviewer is required for merging a PR.
A PR with label “READY” and approved will be merged by a committer. The committer adds label(s) of release branches to go into, i.e., release/1.1, release/1.2. (See SIP-12)
After the PR is merged, close the corresponding issue(s).

Post-merge Responsibility

Project maintainers may contact the PR author if new issues are introduced by the PR.
Project maintainers may revert your changes if a critical issue is found, such as breaking master branch CI.

Note about labels
Non-committers cannot assign label by default. We will setup bots that allow contributors to add whitelisted labels via bot. User can type in comments such as
-label WIP
+label READY

If this does not work, we can fallback to adding [WIP] or [READY] to PR titles.
[P.5] New changes to CI
Here are a few proposed improvements to the CI
[P.5.1] Add mandatory reviewers hook
The mandatory reviewers are defined in CODEOWNERS file
[P.5.2] Enable Stale branch check.
Pros
- Prevents broken master when a stale branch is approved and merged.
- Parallelized merging of PRs.
Cons
- Serialized merging of PRs impies adding overhead (having to re-sync either via the UI or CLI) and rerun the CI.
- Improvements in CI performance would help reduce some of the burden.
Note: Require this change to the github repo settings

[P.5.3] Automatic checks for code coverage project/patch
Similar to scikit-learn, this enforces the contributing guidelines of unit testing. Commits pushed to master should not make the overall project coverage decrease by more than 1%:
This will be enabled, though initially as a non-required check as we iterate on the configuration settings.
Note: These CI changes require Apache admin changes to the Github repo.
Action items
Please comment and refer to [P.x.x] if you have any suggestion.
If this SIP is approved, here are the follow-up tasks.

Update CONTRIBUTING.md
Create new issues and PRs templates
Create CODEOWNERS file, teams, and list mandatory reviewers
Update CI configuration
Setup bots for handling labels
Setup a bot for closing stale issues and PR
Triage the current PRs and issues.

References

React.js contributing guidelines
Node.js contributing guidelines
Ansible bots
Gitissue bot
Probots

@betodealmeida @mistercrunch

This is all super great. Some thoughts:

this seems to very much reflect the general consensus, nothing too controversial here as far as I'm concerned
guidelines or hard rules? I'm siding towards guidelines unless we can actually enforce with tooling (github or GH integrations)
I'm not sure whether not-rebasing prior to merge is a real common issue (how many times did that really happen, and how much work is it to fix a basic merge issue like import ordering?), I'd rather deal with the occasional issue with hard reverts than making everyone constantly rebase. I'm thinking code should settle quite a bit after this huge round of refactor that's been taking place (py2 deprecation, major JS restructuring, plugins, ...)
happy to give code owners a try (haven't used it in the past)
I used a stale bot in the past, but it was a bit of a manual process (running a script, used my Github personal API token ...). I really think we need this. I'm not sure if Apache will let use probot, they have strict restrictions on giving perms to outside orgs. I can dig out the info as to the thing I used in the past, but it wasn't great...

Reminder that part of the SIP process should be to notify the Apache Superset dev@ mailing list.

this seems to very much reflect the general consensus, nothing too controversial here as far as I'm concerned
guidelines or hard rules? I'm siding towards guidelines unless we can actually enforce with tooling (github or GH integrations)

Glad to hear that. We intend for this to be a written-down version of the unwritten agreement of how it currently work, with some more explicit instructions of what to do, so there will be less surprise why something is not reviewed.

I'm not sure whether not-rebasing prior to merge is a real common issue (how many times did that really happen, and how much work is it to fix a basic merge issue like import ordering?), I'd rather deal with the occasional issue with hard reverts than making everyone constantly rebase. I'm thinking code should settle quite a bit after this huge round of refactor that's been taking place (py2 deprecation, major JS restructuring, plugins, ...)

We can extract this bullet point [P.5.2] into a separate issue if the community has different opinions about it.

happy to give code owners a try (haven't used it in the past)

I have never used CODEOWNERS specifically, but used OWNERS file per directory at my previous job. This can automate some manual taggings we are doing in PRs and is useful for maintaining large codebase in general.

I used a stale bot in the past, but it was a bit of a manual process (running a script, used my Github personal API token ...). I really think we need this. I'm not sure if Apache will let use probot, they have strict restrictions on giving perms to outside orgs. I can dig out the info as to the thing I used in the past, but it wasn't great...

Your experience with this will be super helpful.

I created a pull request template to follow up on [P.2] Create multiple new templates for new issues/PRs. Having multiple Pr templates is difficult at this point because you need to use the ?template= query param to use them, so I just created one PR template for now, but once they improve that feature we can add multiple as you suggested.

Remaining tasks are

Create CODEOWNERS file, teams, and list mandatory reviewers. (May consider using the pull-approve bot instead because it allows more flexible way to define reviewers.)
Update CI configuration
Setup bots for handling labels

@kristw I'm closing this due to age, but please do reopen the issue if you intend to put it up for a DISCUSS or VOTE thread. Thank you!

Apologies for the prior confusing comment. This SIP is still technically in the VOTE process. It has sufficient votes to pass. We should post a [RESULT] thread to close this out @kristw

Although this seems to be stuck in an open vote, some aspects of the SIP have been completed whereas others likely outdated, hence we sense closing this SIP makes the most sense. @kristw if you feel otherwise please re-open the SIP with additional context.


Add OSPF for port channels interfaces

Issue Type

Template enhancement
Role enhancement

Is your feature request related to a problem? Please describe.
No.
eos_cli_config_gen role currently supports OSPF for Ethernet interfaces but not yet for Port Channels interfaces.
Describe the solution you'd like
Add OSPF for port channels interfaces

There is currently no port channel support for uplinks.
Should I work using eos_cli_config_gen role to add ospf on port channels on non uplinks ports?

Resolved by PR #783


Add friendlier error messages when packages yml is malformed

resolves #5486
Description

Added __post_init__ method to RegistryPackage dataclass that checks that a version has been provided and that the name of the package contains a "/".
Added corresponding tests to check the error messages stated in the issue are returned to the user.

Checklist

[X] I have read the contributing guide and understand what's expected of me
[X] I have signed the CLA
[X] I have run this code in development and it appears to resolve the stated issue
[X] This PR includes tests, or tests are not required/relevant for this PR
[X] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[X] I have run changie new to create a changelog entry

Failures look like connection errors that I can't re-run and resolve

@gshank would you prefer it to be done using the validate method?

It would probably be better, because when we add more validation it will probably be done in 'validate' methods. If it takes too much time, we could defer it until later, but give it a try?

No worries happy to give it a try! I've had a look at the logic for the validate method and finding it quite hard to understand / find a pattern in the implementation.
Am I correct in thinking that I should add a call to validate in the __post_init__ of the PackageConfig class?

I had a go at this by adding a validate classmethod to PackageConfig:
@dataclass
class PackageConfig(dbtClassMixin, Replaceable):
    packages: List[PackageSpec]

    @classmethod
    def validate(cls, data):
        super().validate(data)

With a simple test to see what happens when the validate method is called:
    def test_dependency_resolution_allow_prerelease(self):

        packages_data = {"packages": [{'package': 'dbt-labs-test/b', 'version': None}]}

        a = PackageConfig.validate(data=packages_data)

Which as expected throws a ValidationError:
  @classmethod
  def validate(cls, data: Any):
      h_cls = cast(Hashable, cls)
      schema = _validate_schema(h_cls)
      validator = jsonschema.Draft7Validator(schema)
      error = next(iter(validator.iter_errors(data)), None)
      if error is not None:
>           raise ValidationError.create_from(error) from error
E           hologram.ValidationError: {'package': 'dbt-labs-test/b', 'version': None} is not valid under any of the given schemas
E
E           Failed validating 'oneOf' in schema['properties']['packages']['items']:
E               {'oneOf': [{'$ref': '#/definitions/LocalPackage'},
E                          {'$ref': '#/definitions/GitPackage'},
E                          {'$ref': '#/definitions/RegistryPackage'}]}
E
E           On instance['packages'][0]:
E               {'package': 'dbt-labs-test/b', 'version': None}

Not sure if this can be deemed a friendlier error message if a validate method is called when a PackageConfig is passed?

@jared-rimmer thanks for your patience!
Only adding a validation method with any additional checks continues the same validation it was doing before.  We generally add the validation method to add additional validation checks.
    @classmethod
    def validate(cls, data):
        super().validate(data)

If we combine what you had in the post_init in the validation method we get this.  We'll want to do super.validate() at the end so we get a chance to catch those validation errors and give nicer messages first.  I also tweaked your messages a bit to give some more information.
@dataclass
class PackageConfig(dbtClassMixin, Replaceable):
    packages: List[PackageSpec]

    @classmethod
    def validate(cls, data):
        for package in data["packages"]:
            if not package["version"]:
                raise ValidationError(
                    f"{data['package']} is missing the version.  When installing from the Hub "
                    "package index, version is a required property"
                )

            if "/" not in data["package"]:
                raise ValidationError(
                    f"{data['package']} was not found in the package index. Packages on the index "
                    "require a namespace, e.g dbt-labs/dbt_utils"
                )
        super().validate(data)

Let me know if you have any questions!


Using 'rowOptions' result in a crash

What steps will reproduce the problem?
$dp = new \yii\data\ArrayDataProvider();
$dp->allModels = [
    ['id' => 1, 'name' => 'Item 1'],
    ['id' => 2, 'name' => 'Item 2'],
];

echo \yii\dataview\GridView::widget([
    'dataProvider' => $dp,
    'rowOptions' => function ($model) {
        return ['class' => 'foo-' . $model['id']];

    },
]);

What is the expected result?
For the grid view to have additional classes on rows.
What do you get instead?
Error: Cannot use object of type yii\di\Container as array in /Users/didou/yii3/myapp/src/views/site/index.php:25
Additional info
Printing the backtrace, I think that there's something wrong going on with the dependency injection during the widget initialization:
#0  yii\view\View->{closure}()
#1  call_user_func() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/AbstractContainer.php:464]
#2  yii\di\AbstractContainer->resolveDependencies() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/AbstractContainer.php:357]
#3  yii\di\AbstractContainer->buildFromConfig() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/AbstractContainer.php:163]
#4  yii\di\AbstractContainer->buildWithoutDefinition() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/AbstractContainer.php:132]
#5  yii\di\AbstractContainer->build() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/AbstractContainer.php:158]
#6  yii\di\AbstractContainer->buildWithoutDefinition() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/AbstractContainer.php:132]
#7  yii\di\AbstractContainer->build() called at [/Users/didou/yii3/myapp/vendor/yiisoft/di/src/Factory.php:48]
#8  yii\di\Factory->create() called at [/Users/didou/yii3/myapp/vendor/yiisoft/yii-core/src/helpers/BaseYii.php:69]
#9  yii\helpers\BaseYii::createObject() called at [/Users/didou/yii3/myapp/vendor/yiisoft/view/src/widgets/Widget.php:132]
#10 yii\widgets\Widget::widget() called at [/Users/didou/yii3/myapp/src/views/site/index.php:31]
#11 require(/Users/didou/yii3/myapp/src/views/site/index.php) called at [/Users/didou/yii3/myapp/vendor/yiisoft/view/src/view/View.php:363]

the provided callback, wrongly identified as a dependency, ends up being called from AbstractContainer line 464

Q
A

Yii version
3.0

PHP version
7.1.19

Operating system
macOS Darwin Kernel Version 18.2.0

Moved to https://github.com/yiisoft/di/issues/62


Update base.html

Changed background of navigation bar,changed slogan,corrected typos

It was already done!


ISet.difference does not always return the correct result

I wrote a small test for the problem:
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
import 'package:flutter_test/flutter_test.dart';

enum SomeEnum { foo, bar }

const _sorted = ConfigSet(sort: true);

ISet<T> sortedEnumISet<T extends Enum>(Iterable<T> items) =>
    items is ISet<T> ? items.withConfig(_sorted) : ISet.withConfig(items, _sorted);

void main() {
  test('ISet.union(...).difference(...)', () {
    final emptySet1 = <SomeEnum>{}.lock;
    final emptySet2 = sortedEnumISet<SomeEnum>([]);
    final foo = sortedEnumISet([SomeEnum.foo]);
    expect(emptySet1.union(foo).difference(emptySet2), equals(foo));
  });
}

With fast_immutable_collections version 9.1.5 this test fails with the following output:
package:matcher                                     expect
package:flutter_test/src/widget_tester.dart 454:18  expect
test/fast_immutable_collections_test.dart 16:5      main.<fn>

Expected: ISetImpl<SomeEnum>:[SomeEnum:SomeEnum.foo]
  Actual: ISetImpl<SomeEnum>:[]
   Which: at location [0] is ISetImpl<SomeEnum>:[] which shorter than expected

I guess the cause of the problem is the different config of emptySet1 and emptySet2. However, I think the test should pass.

Let me check.

Thanks for finding this. This packege is complex, and I depend on the tests to make sure there are no bugs. There was a test for this, but unfortunately the test was wrong:
final SAddAll<int> sAddAll = SAddAll(SFlat<int>.unsafe({1, 2}), {3, 4, 5});
expect(sAddAll.difference({3, 4, 10, 11}), {1, 2}); // Should be {1, 2, 5}
expect(sAddAll.difference({1, 2, 3, 4}), <int>{}); // {5}

I've fixed this, added even more tests for difference, union and intersection, and will publish version 10.1.0 right now.


Un-rc prom-fed package version values

Per title, this is follow up after recent changes have passed QA testing.
This will remove the RC suffix from the image and chart versions.

I'm testing out a new process of doing un-RC on the chart first via PR. Then tagging for the image value after. While this seems like a conflict, I realized that CI should be using the local builds of the image. And as such likely won't ever hit the "cannot pull image tag that doesn't exist" type of issue.


Changed in /user/raidboss.js not applying

I'm editing the volume and sound file of InfoSounds in /user/raidboss.js (renamed from raidboss-example.js) but the changes I'm doing there are not being applied. Volume and Sound are still the default ones.
this is the field I'm changing:
// Volume between 0 and 1 to play the InfoSound at.
Options.InfoSoundVolume = 0.3;

the value 0.3 is not being applied.
Things I've tried:

Restarting ACT after applying changes
Double checking if the values I changed in the file are there
Editing the 'raidboss.js' file itself in /cactbot/ui/raidboss/raidboss.js
Reloading Overlay after each change

Any steps im missing to do these changes? I just want to adjust the volume for now.

Hmm.  I verified that Options.InfoSoundVolume correctly works for me.
One thing you could do to debug temporarily is to add the line console.log(soundVol + ' ' + soundUrl); into cactbot/ui/raidboss/popup-text.js right after audio.play() here: https://github.com/quisquous/cactbot/blob/master/ui/raidboss/popup-text.js#L454
That will print out in the plugin log what volume it thinks it is playing at, and you can verify if your option is having an effect.

Hi, is this still happening?

Didn't get into testing it, but the volume was still loud even after changing.
Is this the correct adjustment to debug it?

I'm not super familiar with the plugin log to check the volume, thats in ACT itself right?

Yes, the log is at the bottom of the window where you added the overlay.
Whenever a sound is played it should print a line that says
Raidboss: BrowserConsole: 0.3 ../../resources/sounds/somesound.wav (Source: bla bla bla..., Line: 455)
or something similar

Hi, I'm going to close this old issue.  If this is still a problem, let me know and we can debug further.


STYLE: Replace v[v.size() - 1] by v.back(), in elastix Core

Improved code readability and simplicity by using std member function back().

For the record, five std container types have a back() member function: std::string, std::vector, std::list, std::array, and std::deque. It appears to be quite useful 😃


Add CSS file to Scene before launch

I want to add global.css file directly into Scene, but scene is not available before launch. My first attempt was to override beforeInitialView() method but scene is still not initialized.
public void beforeInitialView(Stage stage, ConfigurableApplicationContext ctx) {
    super.beforeInitialView(stage, ctx);
    stage.getScene().getStylesheets().addAll(getClass().getResource("global.css").toExternalForm());
}

public static void main(String[] args) {
    launch(Main.class, MainView.class, args);
}

I can set global.css in main.fxml, but this force me to set global.css in every possible root view in scene.

Not sure yet, if I get you right...
Need to check it.


New version: 8x8.Work version 7.18.2

Pull request has been created with Komac v1.11.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

Related to: https://github.com/microsoft/winget-pkgs/issues/135119


Build BoxtOut AddressSelectionUI

Address Selection UI sync
The functionality for the Address selection has been built. At the moment it does not match the styling from the designs. See attached.

In this ticket we need to:

[ ] Build the AutoCompleteListItem to match the design
[ ] Add the animation to move the "search input" higher when the user focus's on it
[ ] Hide the keyboard and auto complete results when user selects a location
[ ] Center the floating continue button on the Scaffold
[ ] Hide the floating continue button until we have selected a value

The PR for this ticket will be reviewed in a FilledStacks episode so keep it tight! Keep things neat :)
I hope someone does it lol. Otherwise I'm talking to myself. Which happens a lot 😄

Ignore the "Use current location" button. We'll do that at a different time. You can leave it out of the design completely.

Hi Dane, I wanna do this, can you assign me this issue?

https://github.com/FilledStacks/boxtout/pull/30

Thanks @algokun I will review now.


move changelog statement

Feel free to merge.

No problem! Thanks on behalf of your users for maintaining a clean changelog! :)


HDDS-3357. Add check for import from shaded package

What changes were proposed in this pull request?
Add a checkstyle rule to reject import from shaded packages.  This helps avoid accidentally using shaded transitive dependencies instead of direct, unshaded dependencies, eg. org.apache.curator.shaded.com.google.common.collect.ImmutableSet instead of com.google.common.collect.ImmutableSet.
Also skip frontend install/compile for Recon (as checkstyle only applies to Java code) similarly to ac93176a0.
https://issues.apache.org/jira/browse/HDDS-3357
How was this patch tested?
Temporarily added an import from a sun.* package, verified that it is flagged (along with the only current import from shaded package):
$ hadoop-ozone/dev-support/checks/checkstyle.sh
...
hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/RatisHelper.java
 21: Illegal import - sun.security.ec.ECKeyFactory.
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSetDiskChecks.java
 38: Illegal import - org.apache.curator.shaded.com.google.common.collect.ImmutableSet.
$ echo $?
1

Failed check due to import from shaded package:
https://github.com/adoroszlai/hadoop-ozone/runs/570614153
Successful check after removing offender:
https://github.com/adoroszlai/hadoop-ozone/runs/570825882

@fapifta 70df72dc58d5d3067f6f45a8233ff6683dc3a1f5 is your change, it's included here only to make the check pass.  If you create a PR with it, we can merge that first.

Thanks @lokeshj1703 for the review.

Why do we need -Dskip.yarn and -Dskip.installyarn in MAVEN_OPTIONS?

yarn in this case refers to the Javascript package manager by this name.  These flags save some time during the build, since Checkstyle does not care about Javascript code.  #275 added similar feature in the Findbugs script, which is also Java-specific.

Hmm, great improvement, the changes seem to be good, and I support committing them (non-binding +1), I have added the mentioned changeset a bit late... it is under PR #818 currently being checked by automated checks.

@adoroszlai Thanks for clarifying! I am +1 on the PR.

@adoroszlai Thanks for working on this! Merged it.

Thanks @fapifta and @lokeshj1703 for the review and @vivekratnavel for review and merge.


Add onslide and document attributes

Basically {{#carousel-container onslide=(action 'slideChanged')}} where the action would look like this:
slideChanged(options) {
  console.log(options);
  // => { index: 1, previousIndex: 0, direction: 'right' }
}

@knownasilya welcome addition :+1:
Question
I have the practice of using hyphenated actions for the components like on-save, on-cancel. What do you prefer on-slide or onslide ?

We can use the - for consistency since the other attribute has one.

@knownasilya Thanks!


Grabbing color name from random value

Is there any way to display the color name with the random color? If I were to generate a random color and it would fill the color depending on the hue and the shade depending on the luminosity?
e.g. Light blue, dark red, bright green

See #102.

Hmm. I'm not looking to use the exact color names, just the light or dark and basic hue ranges already established in the color dictionary.
randomColor({    luminosity: 'light',    hue: 'blue' });
but reversed.

Have followed up in #102, closing this for now.


chore(deps): update common-dev-assets digest to d455b65

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
0aeee4c -> d455b65

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

:tada: This PR is included in version 2.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


feat(agent): host address env & host scheme

Add HOST_ADDRESS environment to define the server address when installing an agent.
Add the option to define the scheme of the address, if it's http an insecure connection will be used in any environment.

The original version, agent gets the issuer URL and uses that, shouldn't we check at least the the basedomain in the issuer and in the JWT?

@nandor-magyar The problem is that dyo (and darklens) has the agent address hardcoded in an env, so if your agent needs to access the server on a different route you need to modify that env so the JWT has the correct issuer. Let's say one agent uses host.docker.internal another uses a local IP and a third uses a public domain, you'd need to modify that env 3 times just to be able to install 3 agents. So comparing the HOST_ADDRESS and JWT issuer won't work I think.

Based on an internal discussion, the feature will not be included in the agent.


Add installation_year as a plant part level in the PPL

This should be easy to do after the installation_year column is fixed.
From the same issue in the RMI repo:
While linking depreciation records to master unit list records, I'm noticing a natural grouping for the EIA plant part list could be installation_year.
In theory this should be trivial to setup - just add the appropriate parameters into the dictionary which describes the plant-part levels (PLANT_PARTS) and re-generate.

Update: this probably needs to be done after LabelTrueGranularities is refactored because of the way MakePlantParts is formatted. See PR comment for details.


[WIP] Add support for creation of python velox bindings

This is initial PR that adds initial and rudimentary support for python velox bindings. Currently I have only added basic type definitions etc. In subsequent PRs we will allow creation of vectors/ registration of udfs etc. Some of pybind template magic requires the type definitions to be in a header since otherwise we see weird errors in meta's internal systems.
Note also that running make python will now create the python module, create a python session and load said module.
Future PRs will add support for setup.py and more fully fledged python packages.

cc: @cpcloud

Working on adding tests.


[Question] which is the best way to patch pods created by controllers

Describe your question
After i  create a deploy with 3 replicas,  I want to patch pods of deploy to add annotations.  Thanks for reply.
chainsaw version Version
v0.2.8
Additional context
No response

You can probably use a patch.

You can probably use a patch.

do you have example to patch pods array.

specify the labels to lookup the target pods and the annotations you want to add.
- patch:
    resource:
      apiVersion: v1
      kind: Pod
      metadata:
        labels:
           ...
        annotations:
            foo: bar