Is the memory stream performance related to Signal integrity

https://github.com/open-power/hostboot/blob/abc40c539e2cb3cb5d7c1473ad9122488b3a595c/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_draminit.C#L62
During the stream test, I found that the measured stream result is less than 50% of the theoretical value. I think that Signal integrity only affects whether memory initialization can be successful. May I ask for your advice:
Does Signal integrity affect memory stream performance? If I want to debug this problem, do I need to pay attention to the Signal integrity parameters I choose?

We aren't sure what you mean by "Signal integrity" here.  If you are talking about electrical issues on any of the busses that can definitely impact performance.  However, you mentioned "Signal integrity parameters" which makes me think you are referring to some kind of setting.   Can you provide more detail on what/where you are using these parameters?
Also, where are you measuring your results and how?  OCMB to DDR?  Proc to OCMB?  The complete path?

I don't suspect that the signal integrity settings (assuming you're talking about DDR) would cause an impact to the performance. It should, like you say, really get you to be able to initialize. If you have some settings you might suspect, we can take look at those. I would think you would want to look at the MC settings first though. I suspect it be more likely in there.

On our platform, the memory Training cannot pass, so I modified some parameters in the' user_input_msdg 'sent by PNOR to OCMB to pass the memory training:
PhyOdtImpedance = 80 60 48 40
PhyDrvImpedancePU = 60 53 48 43 40 36 34 32 30
PhyDrvImpedancePD = 36 34 32 30 28
DramRttNomR0/1 = 240 120 80 60 40 34
DramRttWrR0/1 = 240 120 80
DramRttParkR0/1 = 240 120 80 60 48 40 34
Some of these parameter combinations can be trained through memory and booted to the OS, such as the following group:
PhyOdtImpedance = 80
PhyDrvImpedancePU = 60
PhyDrvImpedancePD = 36
DramRttNomR0/1 = 120
DramRttWrR0/1 = 80
DramRttParkR0/1 =40
But after entering the OS, we used the "stream" test tool to test and found that the Memory bandwidth was only 25% of the theoretical value. I suspect that the "user_input_msdg" value I selected affected the stream performance.

where are you measuring your results and how?
What we are testing should be the stream performance of the entire link. The following stream testing tools were used:
https://www.cs.virginia.edu/stream/ref.html
So is there a way to test the bandwidth performance of OCMB>DIMM separately?

When running stream testing under OS, sometimes the following error will be reported and the test will stop.
[  769.211099] Disabling lock debugging due to kernel taint
[  769.211102] MCE: CPU4: machine check (Severe) Host UE Load/Store DAR: 00000000ad56ba80 paddr:<PHONE_NUMBER>a30000 [Not recovered]
[  769.211103] MCE: CPU4: PID: 3970 Comm: stream NIP: [00000000100014c0]
[  769.211103] MCE: CPU4: Initiator CPU
[  769.211103] MCE: CPU4: Hardware error
[  769.211104] stream[3970]: unhandled signal 7 at<PHONE_NUMBER>0014c0 nip<PHONE_NUMBER>0014c0 lr<PHONE_NUMBER>001448 code 4
[  769.212179] Memory failure: 0x383a3: recovery action for dirty LRU page: Recovered
May I ask:
Is this also related to the parameter values I selected.
4 .Finally, we currently choose the ' user_input_msdg ' value based on the condition of being able to train in memory and achieve optimal stream performance. Is there a better way to determine which "user_input_msdg" parameter value is optimal for our platform?

Memory bandwidth was only 25% of the theoretical value.

How do the numbers compare to an equivalent Rainier configuration?  Comparing to a real-world example is perhaps more accurate than theory.

That would imply some settings are wrong and the memory is not running correctly.  @ecorderoibm can probably answer more intelligently.  Do you see any PELs coming from opal-prd in this case?

those settings you changed don't have any affect on the bandwidth are only for signal integrity on the DRAM interface. I agree with Dan. Would be good to know what you measured using a DDIMM and work backwards from there for comparison and validation of you measurements.

The following are my test results. Due to the limitations of our platform, I inserted a 3200MHz ISDIMM under the OMI 0A/1A/2A/3A of Proc0. When testing the bandwidth of the DIMM under Proc0, the result was 24558.3MB/s. On Rainier, I inserted a 3200MHz DDIMM under the 0A/1A/2A/3A of Proc0, and the result was 74540.4MB/s.
PS: The theoretical bandwidth of four 3200MHz DIMMs is 100GB/s, which has been tested on Rainier and reaches 65% of the theoretical value
When I run the stream script in OS and  report an MCE error, I cannot see any PEL in BMC. However, if I copy the script to ‘/etc/profile. d/’ and execute the script automatically during OS startup, the system will report checkststop. I will separate the collected PEL logs into my later answer.

]
}
}
}

Today, I limited the memory frequency to 2666MHz (of course, I also used the SI parameter of 2666). When entering the OS, I was able to run the Stream test, andthere were no MCE errors, but the results were also unqualified:
For example, there are four 2666MHz cables under Proc0, with a bandwidth of only about 20000MB/s
I currently want to address the issue of stream testing reporting MCE at 3200MHz. Based on the absence of MCE errors at 2666MHz, I think this may be an SI issue. I have many 3200MHz parameter combinations that can be used for training, and I plan to try running streams one by one to see if there are MCE errors. May I ask if there is a better method, or do you suspect that this may be related to which parameter settings? This way, I can focus on and test this parameter.
I received an SI simulation report from my colleague, and I understand that the recommended value for this ODT is related to DDR:
Operation type	Memory Controller configuration		DRAM configuration
Write			pm27_dq_d2828						DQ_ODT_80
Read			pm27_dq_t48							DQ_RON_34_ODT_OFF
Address			pm27_ca_d40_srf_c3p					DCA_IBT_100
But I'm not sure if what we mean by 'signal integrity simulations' is the same thing. sorry, Because I haven't read such simulation reports before, I'm not sure which results to focus on~

I change the IO_ OMI_ CHANNEL default value to LOSS to LOW_ LOSS, and then using different SI parameters on two different sets of DIMMs, the memory can now boot and run Streams without reporting MCE errors. Unfortunately, the Stream performance still does not meet the requirements

I only configure one DIMM under each Proc, and then specify 1/2/12 cores to run the Stream. The resulting values are set to 6000MB/s (the theoretical value should be 25GB/s)

When specifying a Core to run a Stream, I use the top command to check the CPU usage. The Stream application occupies 100% of the CPU

I put the ARRAY of the stream_ When the SIZE is downgraded and paired with 128K, the measured bandwidth of a core is approximately 490GB/s. I think this should be a memory operation directly completed in the cache.

May I ask:
1. At this point, there are no PEL or other error reports. Can I assume that the memory subsystem has not reported any errors? If so, how should we monitor it?
2. Regarding my above experimental phenomenon, can I lock the issue onto the OMI -->OCMB -->DDR link? What I mean is to exclude the impact of certain errors within the Processor?

1 - Yes, if there are no PELs then there have been no errors detected.
2 - I don't see any indication of "errors" so this is all just hardware tuning.
Have you been in contact with your IBM contacts regarding how the theoretical versus actual numbers relate from a hardware perspective?  The Hostboot team is not directly involved in any of the hardware tuning or performance measurements.
@ecorderoibm @steffenchris - Anything to add?

Regarding the issue of Stream performance not meeting standards, we found that there was an issue with the I2C address configuration of our platform's Thermal Sensor. We sent 'EXPFW_TEMP_SENSOR_CONFIG_INTERVAL_READ' to OCMB, but OCMB was unable to read a valid sensor value through the corresponding I2C address:
If we don't send EXP_ FW_ TEMP_ SENSOR_ CONFIG_ INTERVAL_ READ to OCMB, and the results of the Stream test meet the standards.
https://github.com/open-power/ocmb-explorer-fw/blob/33e3301f619163c8d3aad373b045cb8db494d3d1/_exp/src/temp_sensor/temp_sensor_plat.c#L564C19-L564C19
By the way:
I guess OCMB will enter a "safe mode" if it cannot read the Thermal Sensor, but there is no relevant introduction found in the code and Spec. Can you provide a professional explanation? Or do you know where I can get relevant explanations?

Unfortunately, we encountered same MCE error while running HTX:
1. If we specify the frequency to 3200MHz, running mdt.mem for less than 10 minutes will result in MCE error. If we specify the frequency to 2666MHz, there will be no MCE error even after running for 40 minutes. So I guess it's still a problem of Signal integrity
2. Specify 3200MHz for Stream testing on the same platform and no MCE issues will be reported again
After an MCE error occurred, we triggered checkstop to collect FIRdata by injecting error to TI, and found that there were 2 MCs in each Proc that always reported the following error:
{
"Chip Desc": "node 0 proc 0 (P10 2.0)",
"Signature": "MC_DSTL_FIR(1)[1] Subchannel A AFU initiated Recoverable Attention",
"Attn Type": "recoverable"
},
And when trying on different platforms, the MC numbers that reported errors are consistent. Regarding this error, I would like to ask:
1. Based on the error content, can you determine whether this is an SI issue with the DDR bus or the OMI bus?
2. What is the "AFU" mentioned here?
Regarding this MCE error, I plan to adjust the SI parameters of DDR and OMI. I would like to confirm what the following two OMI attributes mean:
IO_ OMI_ PRE1 IO_ OMI_ PRE2
Our current values for both values are 0.
Do you have any other debugging suggestions?

IO_ OMI_ PRE1 IO_ OMI_ PRE2

I can't personally tell you exactly what these are but I can say that we have them both set to zero on all of our boxes.

AFU = Accelerator Function Unit.  It was left over from OpenCAPI.  It is still referenced throughout OMI since its all OpenCAPI based.

Thank you for your answer. I now have some concepts about the problems I am facing.
So this is definitely used on the OMI interface, we cannot disable this module? My concern is that there are issues with both our OMI and DDR bus SI. I think I know how to adjust the SI parameters of DDR, but what are the SI parameters of OMI? Can we also adjust it?

These values control the OMI Tx FFE.  Where each value is X/128 precursor.  For example, if IO_OMI_PRE1=8.  Then 8/128=6.25% of Tx FFE Precursor1.
IO_ OMI_ PRE1
IO_ OMI_ PRE2

we cannot disable this module?

Note sure what you mean by "module" here.  The OMI bus is obviously fundamental to the system design.  You could try masking off the FIRs that are turning on but I suspect that will just hide the issue and you'll fail in some other way.

I put PHY_ The INIT mode has been set to WRITE_ EYE_ Train, I was puzzled by the printed results. Taking Rank0's bit0 as an example, from these logs, I understand that Vref values around 50 should be selected to ensure that as many Delays as possible can pass:
163.65588|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 0 -- MIN: 127 MAX: 0
163.65589|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 1 -- MIN: 127 MAX: 0
163.65590|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 2 -- MIN: 44 MAX: 50
163.65591|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 3 -- MIN: 40 MAX: 55
163.65592|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 4 -- MIN: 34 MAX: 59
163.65593|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 5 -- MIN: 33 MAX: 62
163.65595|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 6 -- MIN: 29 MAX: 66
163.65596|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 7 -- MIN: 23 MAX: 73
163.65597|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 8 -- MIN: 21 MAX: 73
163.65598|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 9 -- MIN: 17 MAX: 73
163.65599|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 10 -- MIN: 18 MAX: 73
163.65600|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 11 -- MIN: 18 MAX: 73
163.65602|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 12 -- MIN: 17 MAX: 73
163.65603|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 13 -- MIN: 18 MAX: 73
163.65604|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 14 -- MIN: 17 MAX: 73
163.65605|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 15 -- MIN: 17 MAX: 73
163.65606|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 16 -- MIN: 17 MAX: 73
163.65607|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 17 -- MIN: 18 MAX: 73
163.65609|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 18 -- MIN: 20 MAX: 73
163.65610|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 19 -- MIN: 22 MAX: 71
163.65611|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 20 -- MIN: 23 MAX: 70
163.65612|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 21 -- MIN: 24 MAX: 68
163.65613|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 22 -- MIN: 27 MAX: 66
163.65614|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 23 -- MIN: 32 MAX: 63
163.65616|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 24 -- MIN: 33 MAX: 60
163.65617|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 25 -- MIN: 38 MAX: 56
163.65618|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 26 -- MIN: 39 MAX: 55
163.65619|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 27 -- MIN: 45 MAX: 52
163.65620|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 28 -- MIN: 127 MAX: 0
163.65621|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 29 -- MIN: 127 MAX: 0
163.65623|ocmb:k0:n0:s0:p26 VrefDQ RANK 0, DBYTE 0 BIT 0 EYE INDEX 30 -- MIN: 127 MAX: 0
But it ultimately selects VrefDQ_ Center is 22:
163.78035|ocmb:k0:n0:s0:p26 VrefDQ_Center RANK 0, NIBBLE 0: 22

May I ask:

Is there a deviation in my understanding of the training log? Why is the training result different from what I expected?
InitVrefDQ [0] is a parameter that affects WRITE_ EYE_ Does the process of training have any impact? I have modified this value, does the training result seem to have not changed?
If my previous understanding of the training results is correct, how should I change the Vref training results to around 50?
If PHY_ The mode of INIT is DEFAULT_ Train, how is its Vref determined?

May I ask:

Is there a deviation in my understanding of the training log? Why is the training result different from what I expected?
InitVrefDQ [0] is a parameter that affects WRITE_ EYE_ Does the process of training have any impact? I have modified this value, does the training result seem to have not changed?
If my previous understanding of the training results is correct, how should I change the Vref training results to around 50?
If PHY_ The mode of INIT is DEFAULT_ Train, how is its Vref determined?

@ecorderoibm @esteban012 can maybe weigh in on these questions.  You may need to engage Microchip as well since their firmware directly drives the DDR training, not Hostboot.

The initVrefDQ setting will only tell the algorithm where to start. it really should have no impact on the final results. I think your opinion on the results is correct. The question as to why it selects a lower number than you expect, I would ask to MCHP. I am not sure where to look to know why, they will probably know. They will also be able to tell you how to override the training results if you are looking to try it at a different set point. Same for question #4 I think you can ask them to take you through the training algorithm, which will also be part of understanding why the Vref result was selected.

I am not sure of the details used. Microchip would need to respond to specific questions regarding the draminit training algorithm. However, you did not post the TxDqDly_Center. Could you please post the results for TxDqDly_Center for the bit mentioned?
InitVrefDQ is the initial VREF that is used for the write eye training. The algorithm should then train the WR VREF and write delays after using this setting as a starting point. If you want to skip WR VREF training,
To update the WR VREF results, you would need to use CCS to issue the WR VREF latch commands on a per DRAM basis. Please consult the generic/memory/lib/dimm/ddr4/pda.H for the API on how to handle the latching commands on a per DRAM basis
I am not sure of the details used. Microchip would need to respond to specific questions regarding the draminit training algorithm.

The TxDqDly_Center is 15
When conducting MCBIST testing, we found that the memory that reported MCE errors would have the following errors:
2023-08-11T15:02:29.532101698,[INF]:#### MCBIST: explorer:k0:n0:s0:p04 ####
2023-08-11T15:02:29.532117806,[INF]:########## PORT: 0 #############
2023-08-11T15:02:29.532120243,[INF]:Byte:<PHONE_NUMBER>556677 8899
2023-08-11T15:02:29.532121884,[INF]:Nibble:<PHONE_NUMBER>010101 0101
2023-08-11T15:02:29.532123572,[INF]:### DIMM: 0 ###
2023-08-11T15:02:29.532125242,[INF]:Mask        :0000000000000000 00ff
2023-08-11T15:02:29.532126816,[INF]:R0 Err Count:f............... ..MM
2023-08-11T15:02:29.532128386,[INF]:R0 Err Flags:X............... ..MM
2023-08-11T15:02:29.532129943,[INF]:R1 Err Count:ff.............. ..MM
2023-08-11T15:02:29.532131483,[INF]:R1 Err Flags:XX.............. ..MM
I will paste the corresponding error trap on the next reply. Regarding this error report, I would like to consult:

Is this error related to MCE errors? Because we found that the memory location where the MCE error was reported corresponds to the memory location where this error was reported in MCBIST.
What does MCBIST specifically do? I understand that it is to write a fixed pattern into DRAM through a method called super fast, and then read it out to determine whether the writing was successful? But what addresses have been written, and how is it determined whether they are successful?
Are there any other suggestions from this log? I'm not sure if the MCE error is a signal integrity issue now?

@avalluriMu - fyi

Hello, thank you for your support. After modifying the values of the following registers, the issue of MCE error has been resolved:
https://github.com/open-power/hostboot/blob/fa90493edad80a0b34737cd83267712a88899ce1/src/import/chips/ocmb/explorer/common/include/explorer_scom_addresses.H#L1178
But I still have two questions and I hope you can help me answer them:

The interpretation of this register is "Read to Read to different master". What does the 'master; here mean?
I see that the register addresses related to OCMB are defined in these two files: explorer_ scom_ addresses.H explorer_ scom_ addresses_fixes.H, what does' fixes' mean here?Are there any differences in the SCOM addresses between these two files?
I think after understanding these two issues, we can close this issue.
Thank you very much!

Master in this case is master rank, ie same chip select
those registers have no real difference. the first file is the main one and the _fixes one are ones that were missing from the first one.

Got it. Thanks again!


Forbid emoji reaction when a channel is shhhh-ed

We recently had an issue with users reaction spamming the !silence message, in my opinion it would be smart to also disable emojis when a channel is silenced. The following lines might be of interest:
https://github.com/python-discord/bot/blob/fe325adc66e9621ea970abd83db58df4b792caa5/bot/cogs/moderation/silence.py#L121
https://github.com/python-discord/bot/blob/fe325adc66e9621ea970abd83db58df4b792caa5/bot/cogs/moderation/silence.py#L141

What is the proposed solution for this?
Removing the permissions is fairly easy, but then they can't be restored reliably with some channels allowing them and others forbidding them (or following the category)

I think we should store the previous state (no override or allow) in memory to put it back exactly how it was, and in case of shut down when the cog is silenced, note the previous state in the alert and allow the unsilencer to specify the emoji reaction state, through and ID or something

Depending on how needed this is from a moderating standpoint, I think it'd be better to wait for persistence on the bot

Silenced channel will now be stored in the database? Well I guess we should
better wait then. I cannot find any corresponding issue or PR though, have
I missed it?

Don't think there's an issue for it and don't know how near it is but there were a few messages in dev contrib for using something like redis as a persistent cache.
Not a fan of expanding the command for manually specifying allowing/forbidding emoji perms as an arg for when the bot restarts

Yes in that case I agree with you, we would be better using a permanent
storage for that

Maybe we should use bot-settings endpoint to storage permissions (int of permission code) during channel is shhh-ed. After deactivating, this should delete this. When this is OK, I'd like to work on it.

I don't think it is a good idea to store it on bot-settings since it isn't really a setting, it is generated at runtime and is meant to disappear after a few minutes. Also, I'd like to work on this myself if you don't mind 😁

@Akarys42 But then maybe we should hold permission values in dictionary during channel is shh-ed and then restore same perms? And this is your issue, so no problem

We would still have to drop the permissions somewhere to recover it later if the bot reboots in the meantime, I think we should have a new database model for that, maybe we could also use this opportunity to make a more general model to store small data that need to persist across reboots.

Basically bot-settings is exactly this. This name don't refer to it, but this still is. Python News will use it to storage already sent news.

Basically bot-settings is exactly this. This name don't refer to it, but this still is. Python News will use it to storage already sent news.

The long term solution for this will be persistent storage using Redis. I've setup Redis on our host server and I believe @lemonsaurus wanted to tackle the idea soon. In the meantime though, bot settings does work (however be careful of race conditions, it can easily overwrite itself)


interface-specific c_eprint config

Adds preprocessor logic to allow for interface-specific definitions of c_eprint.
The behaviour is unchanged except when R_LANG is defined. In the case of R_LANG, c_eprint is define directly as the R native print function, avoiding usage of __FUNCTION__ and __VA_ARGS__. These cause difficulties with CRAN warnings on some platforms which insist on building with -Wpedantic, specifically the fedora CRAN test server.

Coverage increased (+0.4%) to 91.249% when pulling 911605e0b4262dae187d177b61ae21f3161a9319 on pg/R_eprint into 2616792a1ef80e613444463e3b700d219271c8ff on master.

Thanks! I think it works for now. I would add a proper logger in the future though since now it is hard to see in R if the message is an error or a simple output printing. https://github.com/oxfordcontrol/osqp/issues/152

Yes, adding the proper logging function should be done for v1.0.


Ensure configuration files align with current standards in the main PatternFly repos / previous package within PF-React

[x] Check that dependencies have proper semver characters resolved by #16
[x] Check that installing dependencies does not cause any warnings resolved by #16 (other than warnings caused by other PF packages)
[x] Check that dependencies are properly sorted into deps/devDeps/peerDeps resolved by #16
[ ] #17
[x] Check that linting does not cause any errors/warnings to be thrown
[x] Check that tsconfig matches configuration as it existed in the pre-extraction package
[x] Check that running a build does not cause any errors/warnings

All items other than #17 were resolved in #16. #17 is blocked by #18.


fix(p-radio): handle disable case

To Reviewers

[ ] Skipping review is not a problem (style, chore ONLY)
[x] Not that difficult

Type of Change

[ ] New feature
[x] Bug fixes
[ ] Feature improvement

[ ] These changes require a usage change

[ ] Others (performance improvement, refactoring, CI/CD, etc.)

Checklist

[ ] Updated Storybook documents for component
[ ] Wrote test codes for composable, utils and etc.
[x] Tested with console(if usages are changed)

Description
Handle disable case that didn't exist in handleClick handler.

:tada: This PR is included in version 2.0.0-beta.33 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update version of github-event-processor to 1.0.0-dev.20240502.2

This update is being done because of changes in the following PR and the newly published version of Azure.Sdk.Tools.GitHubEventProcessor for that change is 1.0.0-dev.20240502.2.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


Document is not defined

My Environment

Dependency
Version

Node.JS version
v21.7.3

react-color-palette version
v7.2.2

Expected Behavior:
There should be no errors
Actual Behavior:
When a user navigates to a page with react-color-palette elements, there's no error. However if they refresh the site, there's an error in the console:
ReferenceError: document is not defined
    at Object.toHex (/home/container/.next/server/chunks/4784.js:1:7006)
    at Object.convert (/home/container/.next/server/chunks/4784.js:1:6550)
    at f (/home/container/.next/server/chunks/4784.js:5:4209)
    at I (/home/container/.next/server/app/dashboard/[guildid]/tickets/panels/[id]/page.js:1:5791)
    at nj (/home/container/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:46251)
    at nM (/home/container/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:47571)
    at nN (/home/container/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:64546)
    at nI (/home/container/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:47010)
    at nM (/home/container/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:47717)
    at nM (/home/container/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:12:61546) {
  digest: '2960734530'
}

Additional Context:
The page has "use client"; at the top. I'm not using the ColorService utils.

Could you please provide a link to an example where this error can be reproduced?

I could, but the example will require you to login to the site with discord
and contact me.
Is it possible for you?
pt., 16 sie 2024, 16:41 użytkownik Wondermarin @.***>
napisał:

Could you please provide a link to an example where this error can be
reproduced?
—
Reply to this email directly, view it on GitHub
https://github.com/Wondermarin/react-color-palette/issues/80#issuecomment-2293637580,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVVGIOYSMDV5RMPSSALB223ZRYFQZAVCNFSM6AAAAABMT6RSWSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJTGYZTONJYGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

If you would need an example which would give you access to the code and
server console. I will need some time to set it up, so please let me know
pt., 16 sie 2024, 16:42 użytkownik Demonix @.***>
napisał:

I could, but the example will require you to login to the site with
discord and contact me.
Is it possible for you?
pt., 16 sie 2024, 16:41 użytkownik Wondermarin @.***>
napisał:

Could you please provide a link to an example where this error can be
reproduced?
—
Reply to this email directly, view it on GitHub
https://github.com/Wondermarin/react-color-palette/issues/80#issuecomment-2293637580,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVVGIOYSMDV5RMPSSALB223ZRYFQZAVCNFSM6AAAAABMT6RSWSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJTGYZTONJYGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

I think it's unsafe. Which version of Next.js are you using, and in what context does it occur?

I'm using 14.2.5. It happens only on pages with the react-color-palette
component, when the user opens the page (with an "use client";) DIRECTLY,
navigating to it from another page doesn't cause the error. Only a refresh
or direct open.
pt., 16 sie 2024, 17:15 użytkownik Wondermarin @.***>
napisał:

I think it's unsafe. Which version of Next.js are you using, and in what
context does it occur?
—
Reply to this email directly, view it on GitHub
https://github.com/Wondermarin/react-color-palette/issues/80#issuecomment-2293695663,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVVGIO43LZKNGTGRBH35LXTZRYJP3AVCNFSM6AAAAABMT6RSWSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJTGY4TKNRWGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

I tried to reproduce your issue, but I couldn't. Could you provide a code example that triggers the error using CodeSandbox?

Do you maybe have some example which I could modify to what I got?
pt., 16 sie 2024, 23:30 użytkownik Wondermarin @.***>
napisał:

I tried to reproduce your issue, but I couldn't. Could you provide a code
example that triggers the error using CodeSandbox
https://codesandbox.io/?
—
Reply to this email directly, view it on GitHub
https://github.com/Wondermarin/react-color-palette/issues/80#issuecomment-2294337963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVVGIO2BBMEKOZHAHYY64ILZRZVNXAVCNFSM6AAAAABMT6RSWSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJUGMZTOOJWGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

https://codesandbox.io/p/devbox/billowing-haze-vqhhyy

Hi Wondermarin, sorry that it took this long but I didn't find time.  I will make a contribution which will fix this issue.

Please provide a link to an example where your issue can be reproduced. Even when passing an empty string to useColor as an argument, I still couldn't replicate your error.

The error is triggered when you build. On my own project it errors in runtime and doesn't crash. On the sandbox it doesn't even let you build.
https://codesandbox.io/p/devbox/billowing-haze-forked-l5tyf3

Hi! Did you have time to look into it yet?

Hello! Your issue is related to Next.js and SSR. Next.js tries to pre-render your component on the server, even if you explicitly specify the "use client" directive. I can suggest two solutions for you:

Disable SSR for the component where the library is used.

color-picker.tsx
"use client";

import { ColorPicker, useColor } from "react-color-palette";

export default function MyColorPicker() {
  const [color, setColor] = useColor("red");

  return (
    <ColorPicker color={color} onChange={setColor} />
  );
}

page.tsx
import dynamic from "next/dynamic";

const ColorPicker = dynamic(() => import("../components/color-picker"), {
  ssr: false,
});

export default function Page() {
  return (
    <ColorPicker />
  );
}

Pass a default value to useColor (one that doesn't need to be converted by the library). This value will be rendered on the server, and then you can change it to the necessary value using useEffect (since in this hook we can call browser APIs), so that it gets rendered on the client side.

color-picker.tsx
"use client";

import { ColorPicker, useColor, ColorService } from "react-color-palette";

export default function MyColorPicker() {
  const [color, setColor] = useColor("#000000");

  useEffect(() => {
    setColor(ColorService.convert("hex", "red"));
  }, [setColor]);

  return (
    <ColorPicker color={color} onChange={setColor} />
  );
}

page.tsx
import ColorPicker from "../components/color-picker";

export default function Page() {
  return (
    <ColorPicker />
  );
}

In the future, I'll work on improving SSR support in the library, but for now, these are all the solutions I can offer you.


Database seeding through text failed

Describe the bug

Database seeding through text failed
Steps to reproduce

New a resource using template<EMAIL_ADDRESS>or<EMAIL_ADDRESS>and seeding with text.
Check the tables after seeding.

Result

No init-sql pod.

Expected behavior

Environment

Walrus version: main 42f6b1e6cbcd105e9e99ea8badacace1a799c043
UI version: dev-2fca30f

Additional context
Seeding through url.

https://github.com/walrus-catalog/terraform-kubernetes-postgresql/releases/tag/v0.2.2
https://github.com/walrus-catalog/terraform-kubernetes-mysql/releases/tag/v0.2.2

Environment

Walrus version: main 918a699c606f64575b1ac86f58c93ae899c141c0
UI version: dev-8062a50

Test Result:

<EMAIL_ADDRESS>pass
<EMAIL_ADDRESS>pass


[WIP] make worker registration a streaming call

What changes are proposed in this pull request?
Please outline the changes and how this PR fixes the issue.
Why are the changes needed?
Please clarify why the changes are needed. For instance,

If you propose a new API, clarify the use case for a new API.
If you fix a bug, describe the bug.

Does this PR introduce any user facing changes?
Please list the user-facing changes introduced by your change, including

change in user-facing APIs
addition or removal of property keys
webui

Codecov Report

Merging #14012 (298b2c1) into master (449d1ae) will decrease coverage by 18.79%.
The diff coverage is 53.07%.

@@              Coverage Diff              @@
##             master   #14012       +/-   ##
=============================================
- Coverage     36.29%   17.50%   -18.80%
+ Complexity     7469     2703     -4766
=============================================
  Files          1415     1419        +4
  Lines         81972    82350      +378
  Branches       9922     9967       +45
=============================================
- Hits          29750    14412    -15338
- Misses        49663    66670    +17007
+ Partials       2559     1268     -1291

Impacted Files
Coverage Δ

...va/alluxio/master/block/meta/MasterWorkerInfo.java
40.15% <0.00%> (-4.65%)
:arrow_down:

...va/alluxio/master/block/meta/StaticWorkerMeta.java
100.00% <ø> (ø)

...ava/alluxio/master/block/meta/WorkerUsageMeta.java
59.37% <ø> (ø)

.../java/alluxio/stress/CachingBlockMasterClient.java
0.00% <ø> (ø)

...a/alluxio/stress/cli/RpcBenchPreparationUtils.java
0.00% <ø> (ø)

.../alluxio/stress/cli/StreamRegisterWorkerBench.java
0.00% <0.00%> (ø)

.../java/alluxio/master/block/DefaultBlockMaster.java
36.29% <30.47%> (-5.24%)
:arrow_down:

.../server/common/src/main/java/alluxio/RpcUtils.java
30.76% <66.66%> (ø)

...ain/java/alluxio/worker/block/BlockMasterSync.java
64.17% <69.23%> (-1.40%)
:arrow_down:

.../master/block/BlockMasterWorkerServiceHandler.java
66.20% <71.42%> (+4.08%)
:arrow_up:

... and 568 more

Continue to review full report at Codecov.

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

Closed. Moved to https://github.com/Alluxio/alluxio/pull/14223


fix(client/windows): set MTU even if IPv6 is disabled

Refs #6547, this fixes a similar error message but it's not the same exact issue.
When IPv6 is disabled on a system, our call to set the MTU was failing. This patch allows some of the MTU-related syscalls to fail with a warning log.
To replicate the issue, run this command to set a registry value to disable IPv6, then reboot the system:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" /v DisabledComponents /t REG_DWORD /d 255 /f

@thomaseizinger I asked ChatGPT if we can disable IPv6 without rebooting (I assume rebooting the CI runners is a non-starter) and it suggested this command netsh interface ipv6 set interface "Ethernet" disable
We'd just have to discover what the name of the runners' network interface is, and substitute it for "Ethernet".

@thomaseizinger I asked ChatGPT if we can disable IPv6 without rebooting (I assume rebooting the CI runners is a non-starter) and it suggested this command netsh interface ipv6 set interface "Ethernet" disable
We'd just have to discover what the name of the runners' network interface is, and substitute it for "Ethernet".
Edit: It gave me a solution to that, too. I'll look into it

Oh, i didn't read your description well enough and missed the reboot part 🤦♂
That obviously makes this a lot more complicated. Not sure if it is worth the effort!

@thomaseizinger I asked ChatGPT if we can disable IPv6 without rebooting (I assume rebooting the CI runners is a non-starter) and it suggested this command netsh interface ipv6 set interface "Ethernet" disable

Does that make sense? We are talking about IPv6 on our tunnel interface here, right? That one won't exist before we create it and we try to set the MTU when we create it.
I think this bug happens because the entire IPv6 stack is disabled, right? So disabling IPv6 on another interface won't help. If we can't do that without rebooting, then I think we might be out of luck here in terms of a regression test.

You're right, disabling IPv6 on another interface doesn't do anything. I'll have to skip over the regression test for now.


Zoom webhook

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
New Notification
🔖 Feature description
Zoom is a global enterprise IM.
Refer to the access document: https://support.zoom.us/hc/en-us/articles/4418193782029
✔ Solution
.
❓ Alternatives
No response
📝 Additional Context
No response

You can already use webhooks with uptime kuma.

Thanks for your comment.
Zoom Webhook have their own API format, and uptime Webhook are not compatible.

Hi @jinpy666  , Are you sure webhook is not compatible? When I reviewed the document, i saw that you can provide all of these. If you can tell me with examples, I can make improvements for this.

Zoom Webhook have their own API format, and uptime Webhook are not compatible.

@jinpy666
I think this was resolved by https://github.com/louislam/uptime-kuma/pull/3088 which was merged into the upcoming 1.23 release
=> Could you close this issue?

Thanks, it looks like custom Webhooks will solve this problem, but this feature is not yet available in 1.22.1.

Could you close this issue then? (Otherwise this will become one of the zombie-issues even after 1.23)

Thank you, everyone.


Change alphagov refs to govuk-one-login where appropriate

First pass at changing the seal to run here. This will be changed depending the seal teams changes later, but for now this might work

Apologies, pushed to the wrong place


Observe API

This represents a sneak peek of the future of the Observe API. Up until now, our SDKs have been coupled to our instrumenting compiler. Our goal with Observe is to extend the API to handle all sorts of observability data from your application or existing observability libraries. There will be some follow ups in the near future on this.
Here are the APIs I have implemented in this demo:

dylibso_observe.metric(i32, i32, i32)
dylibso_observe.log(i32, i32)
dylibso_observe.span_enter(i32, i32)
dylibso_observe.span_exit()
dylibso_observe.span_tags(i32, i32)

Testing
# with manual instrumentation only
cargo run --example=datadog test/kitchensink.c.wasm
# with manual and automatic instrumentation
cargo run --example=datadog test/kitchensink.c.instr.wasm

metric(i32, i32, i32)
This is for allowing the guest to write metrics such as statsd or dogstatsd metrics. The first param is the format (1 for statsd) and it also takes a pointer and length to a string in statsd form. Here is some example C code.
void write_stat(char stat[]) {
  // get our pointers and length
  uintptr_t ptr = (uintptr_t)stat;
  uint64_t uint64_ptr = (uint64_t)ptr;
  uint64_t uint64_length = (uint64_t)(strlen(stat));
  // call the host function
  metric((uint64_t)1, uint64_ptr, uint64_length);
}

// usage, increment vowels.count metric by 1
write_stat("vowels.count:1|c");

log(i32, i32, i32)
This allows you to write log messages, we could also support reading these from stdin and out, but this gives you a direct way to do it. The level maps to rust's log level enum values for error, warn, debug, info, etc.
void write_log(int level, char msg[]) {
  // get our pointers and length
  uintptr_t ptr = (uintptr_t)stat;
  uint64_t uint64_ptr = (uint64_t)ptr;
  uint64_t uint64_length = (uint64_t)(strlen(msg));
  // call the host function
  statsd((uint64_t)level, uint64_ptr, uint64_length);
}

// usage, write a log at Error level
write_log(1, "An error happened here\n");

span_enter(i32, i32) and span_exit and span_tags(i32, i32)
These APIs allow you to do custom spans. Our normal API functions for the compiler are instrument_enter and instrument_exit. These mostly re-use the implementation of those, so you can use these in an automatically instrumented module if you want. Call span_tags inside of any span to annotate it with tags.
void custom_span_enter(char name[]) {
  uintptr_t ptr = (uintptr_t)name;
  uint64_t uint64_ptr = (uint64_t)ptr;
  uint64_t uint64_length = (uint64_t)(strlen(name));

  span_enter(uint64_ptr, uint64_length);
}

void custom_span_exit() { span_exit(); }

// usage, call span_enter with the name of the function, call the function, then call span_exit.
custom_span_enter("myFunctionName");
myFunctionName();
custom_span_exit();

Rust
In theory, each language could have a small wrapper around these host functions to make them idiomatic to the language. I wrote an example of the rust library. it exposes these host functions but takes normal rust string slices and log level types. It also exposes a macro instrument which will automatically instrument the function with the span_enter and exit calls. I've got these crates working but deciding where those guest code should live:
use log::Level;
use observe_api::{log, span_enter, span_exit, metric, span_tags, MetricFormat};
use observe_instrument::instrument;

#[instrument]
fn log_something(msg: &str) {
    metric(MetricFormat::Statsd, "worlds.helloed:1|c");
    log(Level::Warn, msg);
}

#[instrument]
fn run() {
    log_something("Hello World 1");
    log_something("Hello World 2");
    log_something("Hello World 3");
}

#[instrument]
fn main() {
    span_tags(vec!["user_id:123", "world:hello"]);
    run();
}

@G4Vi

dylibso_observe.metric(i32, i32, i32) : Would it be better to have a function to set the metric format or do developers use multiple formats at the same time? I'm not sure if this might be used so often that the overhead of a third parameter is significant. I'm guessing worrying that is premature optimization.

I think it depends what you mean by overhead. This API will largely be hidden from people. They'll probably be using their normal statsd or prometheus clients and just using a custom dylibso "exporter" or something. It does raise a quesiton about granularity though, might make since to have flavored functions. Like metric_statsd, metric_prometheus, etc.
I was aiming for lower surface area in terms of number of host functions but open to arguments for a more granular API. Might be worth me writing down a list of what all we'd plan to support in the future.

Given that this more the doubles the instrument api, should we consider how we want to handle 64 bit wasm? Just 32 bit support is probably fine for now, but any function that takes a pointer will need 64 bit variants. We could either always use a i64 for pointers or have separate 32 bit and 64 bit instrument functions?

Also something I tabled instead of deciding on. Should we just default to 64 bit? What are the consequences to only supporting 64 bit? Does it fallback gracefully in the 32 bit wasm case? I can't recall exactly how it works. I'd prefer to support one API into the future if possible though.

I think it depends what you mean by overhead

I just meant the overhead of passing another parameter to the functions. If the metric code for the different format is mostly format dependent, multiple functions sound reasonable, especially if we are supporting <5 formats.

What are the consequences to only supporting 64 bit?

Only supporting 64 bit is cumbersome for JS as I believe BigInt is needed to pass an i64 param to wasm https://github.com/WebAssembly/JS-BigInt-integration/issues/12. Otherwise, just the potential overhead of the unused 32 bits in most cases. Some care may be needed in the 32 bit pointer to unsigned 64 bit integer conversion to do it all as unsigned to avoid sign extension into the high bits of the 64 bit integer.

Okay, we decided to switch to 64 bit pointers and leave the format parameter in metric


broken checked binding handler behavior when used against array attributes?

The checked binding handler is not working for me against array attributes.  Obviously, this code has been in production for ages, so perhaps I'm simply missing something, but I really cannot see how this could possibly be working correctly for others.
Let's walk through the set() for the checked binding handler.  This function is called with a jQuery selection of the bound input elements and the incoming attribute value from the model.
      set: function($element, value) {
        if ($element.length > 1) {
          $element = $element.filter('[value="'+ value +'"]');
        }

This is an immediate problem, because value is an array of values here, so we've effectively emptied $element with this statement.
        // Default as loosely-typed boolean:
        var checked = !!value;

Now this check to see if the $element is a radio input will throw an exception because we're attempting to toLowerCase() an undefined value.   isRadio() is reproduced below.
        if (this.isRadio($element)) {
          // Radio button: match checked state to radio value.
          checked = (value == $element.val());

Next we check to see if value is an array and then look for $element's value therein.  This doesn't work, of course, because $element is empty.  Even if it remained a list of jQuery elements, this operation wouldn’t work correctly because jQuery will only return the first selected element’s val() and underscore's contains() is expecting to operate upon a single value.
        } else if (isArray(value)) {
          // Checkbox array: match checked state to checkbox value in array contents.
          checked = _.contains(value, $element.val());
        }

        // Set checked property to element:
        $element.prop('checked', checked);
      },

That $element is still empty, so the checked property cannot be set correctly in any event!
Here is isRadio() for completeness:
      // Is radio button: avoids '.is(":radio");' check for basic Zepto compatibility.
      isRadio: function($element) {
        return $element.attr('type').toLowerCase() === 'radio';
      }
    }),

Also, it seems that inputs (even radio inputs) aren't properly deselected when the model changes -- this is some kinda 1.5-way binding.  And when I deselect all checkbox elements, they are completely removed from the view.  Go figure.


Display wrong Maturity date for the lending trade

Borrower repays the trade at the same day with the open date. It show Maturity data is the same day with the open date.

We use udpateAt field for Maturity Date of Closed Contract. May be updateAt incorrect

NO, Maturity Date = Open Date + term


Terminal command manager

This branch is cut off of the py3 branch (#27)

README.md references sending pickled messages which is no longer true.

cleaned up the readme

@llllllllll this looks reasonable to me.  Some high-level comments that could be addressed in the future, but don't necessarily block this PR.

The model of having the tracer tell the command manager to drive the tracer feels strange to me.  It means that when I call next_command in the tracer, I have no way to determine how many messages were received or what happened in the elapsed time.  I think a more straightforward design would be to have the command manager just receive messages from the frontend and translate them into the tracer's API.

w/r/t the terminal manager specifically, it'd be awesome to use pygments and/or some fancier terminal controls to make this feel more like an application rather than a program that prints a lot of stuff (I just watched thomas ballinger's PyCon talk about this).

Using this for a bit in sticky mode, I was confused by the fact that the watch list and any displayed stdout gets printed before re-painting the current line.  On multiple occasions, I stepped over a print and thought it hadn't printed, only to scroll up and see that the print was drowned out by the rest of the file.  Simply swapping the order of printing probably isn't the right answer here either, because if you print a big expression it will drown out the sticky print.  Some sort of columnar layout and/or designated std{out,err} location is probably the optimal solution here.

I totally agree that there is room to update the terminal command manager to use curses and do more fun stuff. I think that I will treat these as feature requests and add them in the future when I have time. While it might not be the best interface, it works now so that is a plus. Regarding the order, I am just not suppressing the prints so it is printing when the execution happens.


Add /npm command using NPM Registry API

Command Name
/npm
Public API Resource
https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md
Description
The bot will query on the NPM Registry API and return defails about packages registered on the NPM. The api endpoint can be found here https://registry.npmjs.org
Parameters:

Required - package name:  The package's name that the user wants to get its details
Optional - package version: Specific package version or latest

Should Have Features:

The bot should accept both parameters, hit the endpoint and get the data requested

Could Have Features:

The user can opt in / opt out the fields that he wants to be returned from the bot.
eg user wants to get only author and repository fields  from the search

Implementation Details

Add a new javascript file in the commands folder
Use axios fetch the data from your public API
Format the data in a readable way and send it to the user
Use the discord.js docs to get started

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I am back with a fresh idea ❤ Any other suggestions are welcome ^_^ Can I be assigned this?

Please assign it to me.

Great idea! @alexandrosyiangou :)
@Sheikh566 Sorry, alexandro created this issue and will be assigned to it

Well done @alexandrosyiangou!
I reviewed your pr #81 and labeled it with the hacktoberfest-accepted label.
Great contribution ❤


scan problem V2

I built the v2 microscope and installed everything correctly, the scan function doesn't work 75% of the time, I'm also trying to get it to work, is there any news?

actually the problem appears when I change the zoom

I think that's a clients-side software bug, where the zoom does not account for resolution and position (under the hood, it sets the number of steps to skip between stop positions, reversed, so a high zoom has no skipped steps, and a low zoom has several, which creates a zoom effect in the full scanned image). This causes problems when the number of skipped steps is too high (zoom too low) and it exceeds the full scan bounds, I think. I have a fix locally, I'll publish it shortly.

In the readme, I mentioned that V2 has a stability issue - after repeated use it stops working. I made a V3, but it had a noise issue on one of the PDIC lines, so I'm currently working on V4 (slowly, I have other projects taking my time too).

@pieroantonio I pushed a zoom fix to LSMclient.py, see if it solves the issue. I've blown through all my formerly working OPUs (overloaded the lasers and bent the VCM support wires) so I can't verify the scan quality on actual images until a new batch arrives from aliexpress.

I'm a microscopist specializing in SEM/TEM and AFM, and I'm really excited about your project—it has tremendous potential! While I'm not an expert in electronics, I can help with the microscopy and Python aspects. Thanks for the recent client update; everything's working smoothly now.
To further enhance the system, have you considered using a Blu-ray pickup? It offers four times the resolution. I'd love to collaborate on designing a new cover and maybe even mechanizing the setup for better sample scanning. Let's make this awesome!

I'm a microscopist specializing in SEM/TEM and AFM, and I'm really excited about your project—it has tremendous potential! While I'm not an expert in electronics, I can help with the microscopy and Python aspects. Thanks for the recent client update; everything's working smoothly now.
To further enhance the system, have you considered using a Blu-ray pickup? It offers four times the resolution. I'd love to collaborate on designing a new cover and maybe even mechanizing the setup for better sample scanning. Let's make this awesome!

I settled on the HOP-150x at the start since was both dirt cheap and had a pinout available. The idea was that once I had the rest of the system working, I could upgrade the OPU, without adding chaos at the start of the project with an unknown variable. I think if V4 works out, I'll swap out the OPU for a blu-ray one.
Currently, using a blu-ray pickup likely wouldn't result in better image quality, especially for V2's PCB design, since it has a high noise floor, and the PWM frequency would drop to handle the increased step count for higher resolutions, which would add judder.
I have a solution for this in mind, which is to use a two-part system to set the X and Y offsets, first having a rough 256-step digital potentiometer to set the scan bounds/area, then a high-frequency PWM signal with a step count matched to the target resolution scanning in the selected area.
Another improvement is APC (automatic power control iirc) for the laser, again to reduce noise in the image.
Also using a larger PCB footprint - to make the PCB fit in the enclosure, I had to cram a lot into a small space, and I believe that's the cause behind the noise and stability issues (degraded signal integrity). To solve this I have an idea for a modified enclosure where the PCB is larger (2x width) and lies flat on one side of it, and the top OPU's cable is routed over the hinge to plug in instead of getting in the way when changing samples.
One idea I've been tinkering with is video-rate scanning - I've gotten poor-quality scans down to as low as 12 milliseconds per image, with decent-quality results at around 25? This requires a lot of software tuning to account for hysteresis (VCM overshooting and having a high settling time when moving at high speeds, not sure if hysteresis is the right term), and it's open-loop since I have no way to measure VCM position in real time. When doing fast scans that way, the resolution can be unlocked by using DMA for the ADC and sampling down to match the target resolution. It can do 500x500 scans in the same time as 200x200.

Above is what that 12ms scan of a CD looks like.
Another small one is to add automatic focus while scanning, which would allow imaging more topographically-varying samples.
The final improvement is the hardest one to implement, but would enable a lot of things. The idea is to replace the two VCMs (sample holder and scanner) with a single custom one that can move in X, Y and Z, similar to the OIS (Optical Image Stabilization) hardware in phone cameras. This would allow normal microscope slides to be scanned, since all the moving parts would be held above the sample and used to image it. In addition, it could theoretically allow the integration of a hall-effect sensor or two, to measure VCM position, which would enable ultra-fast scanning (video-rate) without warping or other accuracy loss.
My biggest limiter is funding to buy and test parts (always choosing the cheapest shipping options from aliexpress and JLCPCB leads to a lot of waiting), so adding those features is going to take a few months.
In terms of things that can be worked on in the meantime without new hardware, the biggest one is actually code refactoring/beautifying/cleaning. The project started out on a breadboard, and it shows in the code with how it's built. It's a pretty unreadable less for both the client software and the STM32's. I've been meaning to do a massive clean-up to remove hardcoded resolutions and such in the client, better commenting, etc. And a near-total rewrite of the STM32's code to allow for easier modification and expansion. Right now it's just one massive mess.

I would love to see some of the images you've been able to scan and the settings to do so if possible, they can tell me a lot about noise levels and artifacts.

I'm currently trying to polish up the C code for the STM32, maybe port over some features from V3 and take the X and Y PWM res from 4096 to 8192. Hope I can keep the noise floor similar. Should also set that stuff as configurable options from the GUI too.

Hi @NilanEkanayake ,
I’ve been really impressed by the progress on your project - great work! If you’re open to it, would you mind sharing the latest versions? I’d love the chance to explore it further and see if there’s any way I can contribute or build on what you’ve done.

Hi @NilanEkanayake ,
I’ve been really impressed by the progress on your project - great work! If you’re open to it, would you mind sharing the latest versions? I’d love the chance to explore it further and see if there’s any way I can contribute or build on what you’ve done.

Sure. It has its fair share of issues though, mostly from me trying to pack too much into too small of a footprint without a lot of knowledge on preserving signal integrity and heat dissipation. The overheating issue from V2 should be fixed though. In return there's extra noise on one of the ADC lines, that I haven't managed to fix.
I've been slowly drawing up plans for a totally remade version, but it might take a few months as I'm mostly working on a different project at the moment.
I'll upload the files for V3 into a folder on this github though, so you can take a look. The big idea behind V3 was using a buffed-up MCU with an HRTIM to allow for much higher resolutions and zoom, but the ADC issue prevented that wholesale. The code won't be as clean as what's already there (not a high bar), and you might need to do some debugging. I've been mostly working on improving the codebase for V2 (was able to reduce the noise a lot), but I haven't ported it to V3 yet.

@0mnitron I added V3, but as mentioned above, it's not a huge improvement - more of a side-grade.
ADC5 in the stm32 code is the problematic one. Might be fixable by dumping programmable gain and setting the ADC input to not route through the internal op-amps (can be done in software/cube IDE). That way you can use ADC1 as the input instead of ADC5. However, that would only fix the issue if the root problem is with the MCU. I noticed the noise is tied to PWM_X iirc, which is odd given it's routed on the opposite side of the board.  Also, to help ADC sampling speed and noise, you can use oversampling + a bit shift in the stm32 code's IOC. Make sure that the PDICRead() function and general ADC settings are working as expected too. I had been fiddling with disabling ADC5 and doubling the result of one of the other ADCs, and I think I removed that part but it might still be hanging around somewhere.

I'm still working on code cleanup for V2 (better organization, new serial parsing method, etc.), and it's looking a lot better already, but the UI in the client is a bit cramped now from adding new features.
When I get the chance to finish that, I'll commit it as well.

@NilanEkanayake  Thank you for uploading everything and for all the extra information you shared. I really appreciate it!
Also, did you consider perhaps uploading schematics in their original form? I believe it could benefit the project.
If I saw correctly, it looks like you used EasyEDA. If you’re using the online version, you can easily export the project by right-clicking on the Project folder, selecting Manage Project, and then choosing Download. This should create a .zip file containing sch and pcb .json files. That .zip file is really useful because it also enables easier conversion to other programs like KiCAD.

@0mnitron I added the exported projects for V1-3. If you see any issues with them, let me know!


2.4 - Upgrade golang.org/x/crypto, pickup OpenSSL fix

pickup OpenSSL base image fix, upgrade  to v0.0.0-20211202192323-5770296d904e
Signed-off-by: Subbarao Meduri<EMAIL_ADDRESS>

/retest


Nonce calculation issue with WalletConnect

I experienced a lot of Nonce of the Transaction is too low issue, when using WalletConnect with Gnosis.
It seems the wallet calculates the nonce for TX with and without using WalletConnect separately.
If there are normal TX in between WalletConnect TXs, then the WalletConnnect TX nonce will still be based on the previous WalletConnect TX.

@zhangzhongnan928 is there a testnet version of Gnosis available?
We figure out the nonce based on the number of transactions for that wallet, including pending transactions so it shouldn't matter whether it is done via WalletConnect or not.
Do you have private transactions enabled (Settings > Advanced > Private ETH transactions > Ethermine/Eden)? [^1]
[^1] Nonce for private transactions looks like a bug we should fix because we didn't include pending transactions posted to those nodes

Do you have private transactions enabled (Settings > Advanced > Private ETH transactions > Ethermine/Eden)? [^1]

no, I didn't have it enabled.

Just now, when I trying to put through the latest 3 TXs
https://etherscan.io/address/0xbc8dafeaca658ae0857c80d8aa6de4d487577c63
the nonce is "locked" at 1860, which should be 1879

@zhangzhongnan928 I tried against https://example.walletconnect.org and looks like the nonce is passed to AlphaWallet through WalletConnect, so maybe Gnosis generated it or their WalletConnect library did. Are you able to report the problem to them? Have you experienced this with other wallets + WalletConnect + Gnosis?
On our side, I think we'll add a button like "Set Nonce to "1879" to this screen (or re-use that existing button):

Not sure we should override it automatically because the dapp might be doing it intentionally? eg. it's a utility that lets user cancel transactions? The heuristics to figure out the edge cases can cause more bugs.

On our side, I think we'll add a button like "Set Nonce to "1879" to this
screen (or re-use that existing button):

This should work
On Fri, Dec 17, 2021 at 5:56 PM Hwee-Boon Yar @.***>
wrote:

@zhangzhongnan928 https://github.com/zhangzhongnan928 I tried against
https://example.walletconnect.org and looks like the nonce is passed to
AlphaWallet through WalletConnect, so maybe Gnosis generated it or their
WalletConnect library did. Are you able to report the problem to them? Have
you experienced this with other wallets + WalletConnect + Gnosis?
On our side, I think we'll add a button like "Set Nonce to "1879" to this
screen (or re-use that existing button):
[image: 145928475-085560f5-5eca-4460-ab6b-df6fa49e41f0]
https://user-images.githubusercontent.com/56189/146502302-f1aa8695-fe74-4085-ac77-4ee1dda9cfaa.PNG
Not sure we should override it automatically because the dapp might be
doing it intentionally? eg. it's a utility that lets user cancel
transactions? The heuristics to figure out the edge cases can cause more
bugs.
—
Reply to this email directly, view it on GitHub
https://github.com/AlphaWallet/alpha-wallet-ios/issues/3541#issuecomment-996482120,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIB23V2RZW6XI5ECVR2627DURLNLTANCNFSM5J7MW4PQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Update name of the buttons in instruction

According to the contribution guidelines you should fix all bugs in the develop branch.


0.0.3

Can one of the admins verify this patch?

LGTM

add to whitelist

add to whitelist (really this time)

FYI, I would like to merge the release back to the master such that the master is always ahead.

Jenkins is failing because apparently no build has been triggered from September and some dependencies are missing...


Introduce the optional use of a samplesheet to simplify the input/channel path names

Perhaps it might be a good idea to ask the user to specify a samplesheet in a csv/tsv format which we can use to parse out the values for library, sampleID etc.
Sub-tasks

[x] Create a utility function to simply rename each sample as per the derived pattern based on this samplesheet.
[x] Allow users to specify the SRA ids
[ ] #33

The final changes for accomodating the CSV/TSV file for data values would be covered as part of #33


Feature/1207482759615129 create vesting precompile

vest: Vests the caller's vested funds.

Selector: 0x458efde3
Returns: bool

vestOther: Vests the vested funds of a target account.

Selector: 0x055e60c8
Returns: bool

vestedTransfer: Creates a vested transfer to a target account.

Selector: 0xcef3705f
Parameters:

address target: Address of the target account.

uint256 locked: Amount to be locked.

uint256 perBlock: Amount released per block.

uint32 startingBlock: Block number when vesting starts.

Returns: bool

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1207482759615129

Could we also add it to the Krest runtime, too?

Added


PyCall fails with matplotlib.pyplot on Mac OSX with Anaconda?

With PATH=/Users/pmota/anaconda/bin: on my Mac,
@pyimport matplotlib.pyplot as plt
gives
signal (6): Abort trap: 6
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Abort trap: 6
With PATH=/Users/pmota/Library/Enthought/Canopy_64bit/User/bin:
@pyimport matplotlib.pyplot as plt
gives
ERROR: PyError (:PyImport_ImportModule) <type 'exceptions.ImportError'>
ImportError('No module named matplotlib.pyplot',)
in pyerr_check at /Users/pmota/.julia/v0.3/PyCall/src/exception.jl:58
in pyimport at /Users/pmota/.julia/v0.3/PyCall/src/PyCall.jl:91
which is strange because the modules exist in Canopy.
The system was working fine, I think that things went wrong with a recent update of Anaconda...

Canopy won't work (#42).

I just tried updating to the latest Anaconda on my laptop (OSX 10.10.3) and it works fine.  What version of Julia are you using?
Maybe by having both Anaconda and Canopy on your system you have messed up the paths somehow so that the two are fighting with each other?

I sorted out what the problem was: I have a series of libraries that I recently installed into "/Users/pmota/local/lib" (my username is pmota) and exported DYLD_LIBRARY_PATH=/Users/pmota/local/lib in my .profile file. One of the libraries is openblas, and it was conflicting with Julia's openblas lib. So, instead of calling julia directly I created a small shell script:
#!/bin/sh
export DYLD_LIBRARY_PATH=/Applications/Juno.app/Contents/Resources/app/julia/lib/julia:$DYLD_LIBRARY_PATH"
exec "/Applications/Juno.app/Contents/Resources/app/julia/bin/julia" "$@"
and then things seemed to work fine until I called PyPlot. However, changing the script to
#!/bin/sh
unset DYLD_LIBRARY_PATH
exec "/Applications/Juno.app/Contents/Resources/app/julia/bin/julia" "$@"
works all the time. Don't ask me why...

Forgot to mention that PyPlot is awesome.

Great, thanks!

(Probably, both NumPy and Julia are using OpenBLAS, and they are stepping on each others' toes.)


Break out Markdown module, fix a bug

@Trevoke as an overarching answer to the question - this is not a good long term fix or intended to be :)

thanks for the review @Trevoke !

Cheers! Good small break from building a poker game.. :)


build: checkout branch that ci ran on

This will be needed for maintenance branches.

Coverage remained the same at 100.0% when pulling 910fae5b4047e4799ea1ed224f4d4ba5d29b9570 on build-release-fix into 3339a9085b768cf662b6be22eb66b4e041fabfc9 on main.

:tada: This PR is included in version 1.2.72 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


1.33.0

Pull Request Test Coverage Report for Build 853

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 62.282%

Totals

Change from base Build 848:
0.0%

Covered Lines:
1823

Relevant Lines:
2927

💛  - Coveralls


Add support for additional macaroon restrictions such as requester's IP

There's some low-hanging fruit for locking down macaroons to specific IP addresses using ClientIPAddrCaveat provided by the go-macaroon-bakery. It would be good to implement this in macaroons/auth.go and then in the delegation utility alluded to in #283.

I can take this while waiting for feedback on other PRs :)

Thanks @flaurida, this is already being implemented in #313 by @mrwhythat.

Ah ok thanks for the clarification, how about this one instead then?
https://github.com/lightningnetwork/lnd/issues/60

Fixed by #313,
Closing.


"Grub failed to install to the following devices do you want to continue anyway? If you do your computer may not start up properly."

I suspect this issue is related to having both Windows/Ubuntu-via-WSL 2 running (maybe?):
I'm on a Windows 10 machine that has WSL 2 installed (Ubuntu 20.04). I was updating/reinstalling Docker per instructions [(https://docs.docker.com/engine/install/ubuntu/)] through the Ubuntu terminal and after the sudo apt update && sudo apt upgrade command, was prompted with the following:

The grub-pc package is being upgraded. This menu allows you to select which devices you'd like grub-install to be automatically run for, if any.
Running grub-install automatically is recommended in most situations, to prevent the installed GRUB core image from getting out of sync with GRUB modules or grub.cfg.
If you're unsure which drive is designated as boot drive by your BIOS, it is often a good idea to install GRUB to all of them.
Note: it is possible to install GRUB to partition boot records as well, and some appropriate partitions are offered here. However, this forces GRUB to use the blocklist mechanism, which makes it less reliable, and therefore is not recommended.
GRUB install devices:
[*] /dev/sda (274877 MB; ???)
[*] /dev/sdb (274877 MB; ???)
[*] /dev/sdb (274877 MB; ???)
[*] /dev/sdd (274877 MB; ???)
[*] /dev/sdd (274877 MB; ???)

I follow the suggestions and select all 5 devices, but then am blocked by this message:

Grub failed to install to the following devices do you want to continue anyway? If you do your computer may not start up properly.

That last sentence has me terrified. What to do here?
Environment
Windows build number: Microsoft Windows [Version 10.0.20206.1000]
Your Distribution version:   20.04
Whether the issue is on WSL 2 and/or WSL 1:  I'm using WSL 2:
> Linux version 4.19.104-microsoft-standard (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Wed Feb 19 06:37:35 UTC 2020

Steps to reproduce

WSL logs:
Expected behavior

Actual behavior

Don't worry. Grub is a boot loader for the real Ubuntu on metal while WSL2 is a lightweight virtual machine and doesn't even need it to boot.
There are plenty of messages that you can safely ignore in WSL2. They are shown because the distro thinks they are running in a real PC.

Okay, thanks that's what I suspected; as WSL2 is decoupled from the
physical metal, but I wanted to double check before doing anything
potentially irreversible.  Thanks so much.
On Sun, Sep 13, 2020 at 7:50 AM onomatopellan<EMAIL_ADDRESS>wrote:

Don't worry. Grub is a boot loader for the real Ubuntu on metal while WSL2
is a lightweight virtual machine and doesn't even need it to boot.
There are plenty of messages that you can safely ignore in WSL2. They are
shown because the distro thinks they are running in a real PC.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/WSL/issues/5910#issuecomment-691661466, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXGFVNDNHS2B4GAXHJV6Z3SFSWX3ANCNFSM4RJVL2AQ
.


Create post-build event for copying required extension files

Copy ViewportViewExtension.dll from C:\..\REPO_LOCATION\DynamoViewport\src\ViewportViewExtension\ViewportViewExtension\bin\x64\DebugOrRelease to C:\REPO_LOCATION\Dynamo\bin\AnyCPU\Debug
Copy Viewport_ViewExtensionDefinition.xml from C:\..\REPO_LOCATION\DynamoViewport\src\ViewportViewExtension\ViewportViewExtension\Viewport_ViewExtensionDefinition.xml to C:\REPO_LOCATION\Dynamo\bin\AnyCPU\Debug

Currently all required files are copied to the ViewportBuild folder and must be manually placed.  This can be automated further.

b32e51c6eb99d610bb41b96f7fd5002be457f1fd


[wifi_info_flutter] Edit sample wifi_info_flutter plugin

Description
I've edited the sample of wifi_info_flutter plugin that not suitable with the plugin.
Thanks.
Related Issues

[x] Sample on readme is not suitable with the plugin

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

@googlebot I signed it!

Merging since the tree is currently green


Azure Batch package create (Timeout)

Problem Description
When calling the following through powershell there appears to be a 15 second timeout on uploading of the package. I have a 30Mb package to upload and cannot finish in time.
az batch application package create      --resource-group $resourceGroupName      --name $batchAccountName      --application-name $applicationName      --package-file $zipFileName      --version-name $packageVersionName      --debug
`

@dpwatrous might have some insight here

Thanks for the report - we'll see if we can reproduce it on our end. +@wiboris


Make paper handout / business card to share at Sprints

Or a more environmentally friendly option?

Meeting notes:
There is a challenge of doing this in person. The virtual environment is easier to get folks to just tab over to it. In person, people are more involved in their project and they're not as likely to post in the moment. The strategy may be different.
The goal for this was reminding people to search after the event. Something they can stick next to their computer, and have a visual reminder that Sprinty exists. Maybe a sticker or decal would achieve that

No progress. But will prioritize for August.

Employed some help from Gemini. Here are some potential sticker/decal text options.

Drive folder for collateral: https://drive.google.com/drive/u/0/folders/1rslkJZmrqjvL00QxAjZQnKZXqIs0T2x-

@shiratamara ask Cori about potential budget for printing materials to bring to sprints.

With feedback from the team and help from Cori, an image for a sticker that invites people to search for and submit resources was created. As of 8/23/24, Cori is working on printing the sticker so its ready for the Dreamforce in September and the Chicago Sprint in November.

Will check with Cori post Sprint. Assume all went well after she ordered the sticker.


Attempting the RazorPagesMovie tutorial

Hello,
On this page,
https://docs.microsoft.com/nl-nl/aspnet/core/tutorials/razor-pages/razor-pages-start?view=aspnetcore-3.1
I have built the RazorPagesMovie Project, but the Project contents are different from the displayed image:
https://docs.microsoft.com/nl-nl/aspnet/core/tutorials/razor-pages/razor-pages-start/_static/se2.2.png?view=aspnetcore-3.1
I don't see the Pages folder
I have this Project Explorer contents:
http://nedcom.nl/Projects/RazorPagesMovie/RazorPagesMovie_SolutionExplorer.jpg
Do I have a wrong project type or is something else at hand?

Documentdetails
⚠ Dit gedeelte niet bewerken. Het is vereist om problemen te koppelen tussen docs.microsoft.com en GitHub.

ID: a25bf940-8977-fec4-461b-542a9f550fc8
Version Independent ID: 5492c641-af15-64b8-beaa-ddf511be73e6
Content: Tutorial: Get started with Razor Pages in ASP.NET Core
Content Source: aspnetcore/tutorials/razor-pages/razor-pages-start.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Start over, you created the wrong project.

I had the same problem and fixed it by updating Visual Studio 2019 (see Help -> Check for Updates)

@KeithDoran  good tip, thanks for posting.


Make properties case insensitive to prevent duplicate keys

This PR fixes the scenario of adding duplicate properties (type, name, apiVersion) from these lines. This happens when a swagger spec contains Type (capital T) property for example, by making the dictionary case insensitive, we are now able to detect duplicates and overwrite them.

@leni-msft - mind taking a look?

@jorgecotillo Could you run npm run regenerate to see any unexpected changes?


Add container class on ActionableItem

Add prop to ActionableItem
Add UT
Improve UTs for the ActionableItem

Codecov Report

Merging #1049 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1049   +/-   ##
=======================================
  Coverage   99.82%   99.82%
=======================================
  Files         314      314
  Lines        7781     7781
  Branches     1892     1892
=======================================
  Hits         7767     7767
  Misses         14       14

Impacted Files
Coverage Δ

src/components/actionable-item/ActionableItem.tsx
100% <ø> (ø)
: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 6704514...f5f37e8. Read the comment docs.


Added pause timeline button for scenes within the editor

I think its useful to give the user possbility to stop game animations within the editor by setting editor time_scale to zero. Its useful when there is a lot of tool script or dynamic shaders within the scene and you want to pause and look at them at one moment. So I've just added a small button to do it. Its visible in both 2D and 3D editors.

Close #16397.

I think its explanation should be more descriptive than just "Pause Timeline".

Does this close https://github.com/godotengine/godot/issues/16397?

Pause Timeline

Pause Scene Timeline ? or Pause Editor Timeline ?

Does this work on particles? If so, this would close #16397.

Yeah, it will

Pause Scene Timeline ? or Pause Editor Timeline ?

I can see some people think it only affects animation-related stuff at first, while in reality it pauses everything.

@YeldhamDev What do you suggest ?

To be honest, I am not convinced about the usefulness of this. This take a significant space on the toolbar for something which has a pretty limited use case.
Also, for animations, I think this is confusing, as you now have two different ways to visually stop the animations, while they do not work the same way.
However, if we really want that, I think the use case is too limited to have in on the toolbar, and it should be moved to a menu entry (maybe in the view menu ?) with a keyboard shortcut.

View is not a good place for this, its not related to changing of the view.. What about pushing it to the Editor->Timeline submenu ?

Pushed to 4.0.

Closed, since I've lost interest in the promotion of it and don't want to waste time to resurrection.

@Chaosus is there a possibility to have this in 3.2.x ? It would help with a problem I reported here https://github.com/godotengine/godot/issues/39758
Currently is hard to use the IDE when it has animations (of any kind) playing automatically. My laptop is burning right now due to this, because it uses a lot of CPU/GPU resources (more than 25%) when idle and no other software running.
Having this switch, would help a lot.

@itsjavi In any case, it's too late to have a salvaged version of this PR merged into 3.2.2. It could make it into 3.2.3 though.

Note that 3.2.2 will feature batching when using the GLES2 renderer, which should speed up rendering considerably when using that renderer.

I am also getting the same performance issue in that version (3.2.2 RC3).


Allow sendmsg to accept a preallocated Vec

Currently sendmsg allocates a new vector for cmsg_buffer every time it is called. It would be nice if it could accept a mutable reference to Vec instead so it can reuse existing storage instead or &mut [u8], perhaps as an option?

Hi, it would be nice to avoid heap allocations here, but if we allow users to pass a pre-allocated cmsg buffer, then users have to ensure that:

The buffer is zero-initialized
The buffer is sufficient in size

Or it will be unsafe.

The buffer is zero-initialized

Cannot remember why I said this is needed, I think we do not need to satisfy this condition.


Updates to auth

check for duplicate usernames in form
show login and register errors in form
save wallet address on first connect
add logout button

complete in #14


Trying to implement composite types postgress: unsupported type X of column #7 ("url")

Hello again.
I'm trying to run the following query:

    // Make a simple query to return the given parameter
    let rows = sqlx::query!(r#"
    SELECT * FROM pc.rakuten_catalog
    "#)
        .fetch_all(&pool)
        .await?;

    println!("rows {:?}", rows);

But I get
error: unsupported type rakuten_url of column #7 ("url")

I tried:
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize, sqlx::Type)]
#[yaserde()]
#[sqlx(type_name = "pc.rakuten_url")]
pub struct Url {
    #[yaserde(rename = "productImage")]
    pub product_image: String,

    #[yaserde(rename = "buy")]
    pub buy: String,
}

But sqlx still can't detect my type, what am I missing?

See #1004.

Thanks!
This example didn't work:
SELECT url as "url: " FROM pc.rakuten_catalog

I get columns may not have wildcard overrides in query!()orquery_as!()`, but this one did:
SELECT url as "url: Url" FROM pc.rakuten_catalog

Right, _ only works for query_as! where the type is inferred based on the output struct's field type.


[FR] Feature to add metrics per: multi process/ multi thread

Kindly could you take in consideration to add for multi threading and multi process additional metrics or to change the existing ones for frontend/backend?
Now is reporting the limit/current for frontend/backend with values that are not relevant due to the fact that after the reload of haproxy there are 2 processes handling the load.

the exporter included inside haproxy >= v2.0 does include that

Ok, thank you @wdauchy


Add a short hint regarding #657 to HackingOnMull.rst

I just run into the same issue that was described in #657 and the solution mentioned there worked for me. So I added a short hint to HackingOnMull.rst.

Thanks a lot @ea1111!


feat(menu): first widget version

So it works(tm).

After a bit of tuning I was even able to get the bootstrap rendering to be fine. I first thought that we would hit a wall because of the react div wrapping but we are still ok.
As for the APIs: menu, multipleChoiceList (or refinementList is we rename it).
It does seems that they could all be the same widget. We only have three behaviors:

menu: refinementList with only one selectable item at a time
refinementList + multiple selectable items + AND
refinementList + multiple selectable items + AND

We could merge both widgets into a single widget.
But we still need to express the hierarchical menu feature.
So having already a menu widget seems the easiest rather than trying to bend the multipleChoiceList API into something understanding the hierarchical menu. cc @redox ?

I also implemented:

rootClass (menu, multipleChoiceList)
itemClass (menu, multipleChoiceList)
singleRefine option (multipleChoiceList), allows you to build radio based refinement list. I think we need to switch to refinementList now :). Not sure we need this one, since this is the behavior of menu. But a lil bit different needs maybe.


Shows Device Unknown error for Alienware 13 R3

Pops up a window with this msg.
Device unknown: no controller available.
Device found: 187c:0529

The controller for that Alienware has not been made yet. Feel free to make a PR for it (you can adapt one of the existing controllers).

Support for this would be awesome. Thanks.


Add new Katas and other improvements (upgrade Beam version, package, formatting, conventions, styles)

Add more Katas:

Side Input
Side Output
BinaryCombineFn Lambda Java Kata
Composite Transform
Branching
TextIO Read
Built-in IOs

Update Beam version to v2.13.0
Update the task descriptions: formatting, conventions, styles and references to Beam Programming Guide
Add packages for all Java katas
Modify the TestPipeline declaration to be 'final transient'
Other minor improvements and fixes

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

R: @pabloem

@pabloem, do you have any suggestion on how to resolve the license header check for txt file? Should I include it as exclusion in the rat plugin configuration?

Thanks @henryken - yes, you should add it to the exclusion list in the plugin config. : )

@pabloem, I've excluded the txt file in the plugin config. Would you be able to help me review it?


Is it possible to use mesosphere-hdfs for hadoop?

Hi,
We have a mesosphere cluster running on EC2 with hdfs service installed. I was able to issue "hadoop jar" command to start a mapreduce job. And it looks like the installation comes with full CDH5 distributions.
This makes us thinking if it is possible to run hadoop mapreduce job with this setting. If this is doable, what is the right practice to setup?
Thanks,
Jingzhou

Glad to hear it's working for you @JingzhouLuo! MR-1 should work. If you want to run MR-2 (Yarn), I suggest checking out Myriad (www.github.com/mesos/myriad) which runs on top of HDFS.


[Analytics] Adds how to capture GraphQL queries with Chrome DevTools

Can we replace assets/images/analytics/analytics-tab.png with this new image?


Assigning Custom IP address to ServiceProfile

Hello There,
Does this Library provide the below functionality??
https://stackoverflow.com/questions/58034784/nsnetservice-assign-ip-address-using-c-sharp

This library supports Multicast DNS and Service Discovery.  I do not know anything about the NSNetService.


Support proxies out of the box (also: potential problems with header overwrites in download handler)

I'm trying to use scrapy-playwright with firefox and proxies and it's not easy.
In Playwright-Python and Node as well just passing proxy config to server is not enough because authorization headers are missing on request, so I need to set extra headers with page.
setting proxy for firefox in playwright (without scrapy)
Looks like this in pure playwright (no scrapy yet)
import asyncio
import logging
import os
import re
import sys

from playwright.async_api import async_playwright
from w3lib.http import basic_auth_header

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

async def handle_request(request):
    logger.debug(f"Browser request: <"
                      f"{request.method} {request.url}>")

async def handle_response(response):
    # Log responses, just so you know what's going on when Scrapy
    # seems to be inactive
    msg = f"Browser crawled ({response.status}): "
    logger.debug(msg + response.url)
    body = await response.body()
    logger.debug(body)

async def main():
    url = 'https://httpbin.org/headers'
    CRAWLERA_APIKEY = os.environ.get('CRAWLERA_APIKEY')
    CRAWLERA_URL = os.environ.get('CRAWLERA_HOST')

    proxy_auth = basic_auth_header(CRAWLERA_APIKEY, '')
    proxy_settings = {
        "proxy": {
            "server": CRAWLERA_URL,
            "username": CRAWLERA_APIKEY,
            "password": ''
        },
        "ignore_https_errors": True
    }

    DEFAULT_HEADERS = {
        'Proxy-Authorization': proxy_auth.decode(),
        "X-Crawlera-Profile": "pass",
        "X-Crawlera-Cookies": "disable",
    }
    async with async_playwright() as p:
        browser_type = p.firefox
        timeout = 90000
        msg = f"starting rendering page with timeout {timeout}ms"
        logger.info(msg)
        # Launching new browser
        browser = await browser_type.launch()
        context = await browser.new_context(**proxy_settings)
        page = await context.new_page()

        # XXX try to run it with/without this line
        # it gives 407 without it, 200 with
        await page.set_extra_http_headers(DEFAULT_HEADERS)

        page.on('request', handle_request)
        page.on('response', handle_response)
        await page.goto(url, timeout=timeout)

asyncio.run(main())

Without setting extra headers I get this:
python proxies.py
2021-10-15 12:41:19,819 - __main__ - INFO - starting rendering page with timeout 90000ms
2021-10-15 12:41:21,123 - __main__ - DEBUG - Browser request: <GET https://httpbin.org/headers>
2021-10-15 12:41:21,707 - __main__ - DEBUG - Browser crawled (407): https://httpbin.org/headers
2021-10-15 12:41:21,713 - __main__ - DEBUG - b''

with setting extra headers I get good response and I can see traffic in my proxy logs
python proxies.py
2021-10-15 12:42:28,019 - __main__ - INFO - starting rendering page with timeout 90000ms
2021-10-15 12:42:29,549 - __main__ - DEBUG - Browser request: <GET https://httpbin.org/headers>
2021-10-15 12:42:30,594 - __main__ - DEBUG - Browser crawled (200): https://httpbin.org/headers
2021-10-15 12:42:30,597 - __main__ - DEBUG - b'{\n  "headers": {\n    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", \n    "Accept-Encoding": "gzip, deflate, br", \n    "Accept-Language": "en-US,en;q=0.5", \n    "Host": "httpbin.org", \n    "Sec-Fetch-Dest": "document", \n    "Sec-Fetch-Mode": "navigate", \n    "Sec-Fetch-Site": "cross-site", \n    "Upgrade-Insecure-Requests": "1", \n    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0", \n    "X-Amzn-Trace-Id": "Root=1-61695b16-097385cb043d01b63d71eb58"\n  }\n}\n'

setting proxy for scrapy-playwright
Now I'm trying to do the same thing in scrapy-playwright, and I run into problems.
I cannot easily set extra headers now. I can set event handlers, but request event handler according to docs does not allow modifying request object. Setting extra headers need to be done before page.go() and after context created, there is no easy way to do it in spider object now, unless I'm missing something. If I am missing something let me know.
To bypass this I subclassed downloader handler.
from scrapy import Request
from scrapy_playwright.handler import ScrapyPlaywrightDownloadHandler

from properties.settings import DEFAULT_PLAYWRIGHT_PROXY_HEADERS

class SetHeadersDownloadHandler(ScrapyPlaywrightDownloadHandler):
    async def _create_page(self, request: Request):
        page = await super()._create_page(request)
        await page.set_extra_http_headers(DEFAULT_PLAYWRIGHT_PROXY_HEADERS)
        return page

and defined it in settings. This is a hack as create_page is not meant to be modified, but it works for setting authorization. Still I get 407.
The only way I can make it work is by disabling scrapy-playwright route handler, so I comment out these lines here: https://github.com/scrapy-plugins/scrapy-playwright/blob/master/scrapy_playwright/handler.py#L151
between 151 and 161.
Now I get proper result, spider gets 200 responses, no 407 in logs and traffic going via proxy.
sugestions

add support for proxy setting built in scrapy-playwright. To set proxy properly for different browsers users could just set PLAYWRIGHT_PROXY_HOST, PLAYWRIGHT_PROXY_USERNAME etc and scrapy-playwright will do all it needs inside download handler. I tested with firefox, but I know in chrome you may need to pass different settings to context, different browsers will have different arguments. This will be a pain to set up for most users, doing it in scrapy-playwright will make things easy for people.
find out why await page.unroute and page.set_extra_http_headers in handler seems to interfere with each other, I don't really understand it well, I see in my log output from spider that request is made with authorization header but still proxy is responding with 407 response, need to go to make_request_handler and go step by step find out whats wrong here. I'll try to do it next week and publish my findings.

Scrapy spider code:
import logging
import os

import scrapy
from playwright.async_api import Response, Request

logger = logging.getLogger(__name__)

async def handle_response(response: Response):
    logger.info(response.url + " " + str(response.status))
    logger.info(response.headers)
    return

async def handle_request(request: Request):
    logger.info(request.headers)

CRAWLERA_APIKEY = os.environ.get('CRAWLERA_APIKEY')
CRAWLERA_URL = os.environ.get('CRAWLERA_HOST')

class SomeSpider(scrapy.Spider):
    name = 'example'
    start_urls = [
        "http://httpbin.org/headers"
    ]
    custom_settings = {
        "DOWNLOAD_HANDLERS": {
            "http": "some_project.downloader.SetHeadersDownloadHandler",
            "https": "some_project.downloader.SetHeadersDownloadHandler"
        },
        "PLAYWRIGHT_CONTEXTS": {
            1: {
                "ignore_https_errors": True,
                "proxy": {
                    "server": CRAWLERA_URL,
                    "username": CRAWLERA_APIKEY,
                    "password": "",
                }
            }
        }
    }
    default_meta = {
        "playwright": True,
        "playwright_context": 1,
        "playwright_page_event_handlers": {
            "response": handle_response,
            "request": handle_request
        }
    }

    def start_requests(self):
        for x in self.start_urls:
            yield scrapy.Request(
                x, meta=self.default_meta
            )

    def parse(self, response):
        for url in ["http://httpbin.org/get", "http://httpbin.org/ip"]:
            yield scrapy.Request(url, callback=self.hello,
                                 meta=self.default_meta)

    def hello(self, response):
        logger.debug(response.body)

I don't know exactly which upstream changes were made or when, but SPM has been working for some time with the instructions at https://github.com/scrapy-plugins/scrapy-playwright#proxy-support.
Thanks again for the research Paweł!


Implement DataCountSection and ExceptionSection parsing

Add the decoding/encoding of sections 12 and 13 (DataCountSection and ExceptionSection).
Here we can find the reference implementation in V8

https://github.com/WebAssembly/bulk-memory-operations/blob/master/proposals/bulk-memory-operations/Overview.md

This prevents us to parse the binarry of FFMPEG compiled to WASM, link to come.

Example wasm ffmpeg


Page documentation

Hi what happen with the documentation page, i can't see the part of selections in the new documentation please XD

All documentation for v6 is here: https://github.com/tannerlinsley/react-table/tree/v6/ and all of the v6 examples are here: https://github.com/tannerlinsley/react-table/tree/master/archives/v6-examples

ok thanks


ingress target provider bug

When I install ingress target provider, I need to install nginx first. However, Before nginx is ready, we call the ingress. So, there is an error:"  P (Ingress Target): failed to apply ingress: Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": failed to call webhook: Post "https://nginx-ingress-ingress-nginx-controller-admission.default.svc:443/networking/v1/ingresses?timeout=10s\": no endpoints available for service "nginx-ingress-ingress-nginx-controller-admission", traceId:<PHONE_NUMBER>0000000000000000000000" instance=symphony-api-85cf46d654-4qpkn scope=coa.runtime type=log ver=unknown"
We need to use some strategy to solve this problem.

Sometimes toolchain will report the deployment ready status earlier than the deployment is ready. We can consider to extend target provider to add a validation check.
Customized validation can be done via Campaign right now.
Or converting instance/target creation to run campaign at background.


online reviews

Hey, I'm having this issue with start review, I forget to switch/checkout the pr before start review which results in Not in PR branch. Expected X, got Y.
Not sure if auto_switch option would be the right workaround for this problem, or enabling without swiching branch would be better, what do you think?
Thanks

Thanks @tami5 Im working on a new review implementation which does not depend on local files. This should solve your problems and lower the barrier to use Octo for PR reviews. Stay tuned!

Implemented in #94, please give it a try :)

Sure thing, I'll test them out tom