Add a keepalive timeout on the locket client

With this change we add a keepalive timeout to the locket gRPC client. We also make the keepalive "Time" property part of the locket client config, so both of them can be changed. This change brings great improvements to the locket client's ability to reconnect to another server faster under network delays.
More info in the Diego issue: https://github.com/cloudfoundry/diego-release/issues/627/
PR in the Diego repo for the changes in the jobs config: https://github.com/cloudfoundry/diego-release/pull/675

Just making sure I understand this fully + why there's no default in locket itself:
If config values are omitted entirely from a locket client, the behavior will be unchanged from current (10s default interval applied by grpc, and infinite timeout). If clients add this config, the behaviors will be changed to what was desired in diego-release/#627. Correct?

@geofffranks Your assumption is partially right. If someone does not configure the client, the interval will be 10s and the timeout will be 22s. The value for the default timeout was proposed by @ameowlia and seems reasonable to me as well. With this approach, we leave the door open for users of the locket client to configure it how they want. As to any downsides, from what I know, there should be none.

@geofffranks Your assumption is partially right. If someone does not configure the client, the interval will be 10s and the timeout will be 22s.

But this is only because of the defaults set in diego-release's jobs' spec files, correct? If something like tps or policy-server-asg-syncer connected to locket without specifying this in their configs, it would get the GRPC defaults (10s + infinity) which were the same as before this patch, right?

Yes, I think this would happen, but to be honest I have not tested this. Will do it tomorrow

So I tested it with the tps_watcher job. Both the timeout and keepalive time were 0 when set in the gRPC client. But I am not sure it matters. As seen here https://github.com/grpc/grpc-go/blob/v1.54.0/dialoptions.go#L471, if the time is less than 10s, it still set's it to 10. As to the timeout, I think 0 just means infinity again. So yes, even though both params are 0, It will most probably behave the way it used to before.


server::status_server::tests::test_change_log_level failed

Latest build: https://internal.pingcap.net/idc-jenkins/job/tikv_ghpr_test/37603/display/redirect

Yet another case failure: https://internal.pingcap.net/idc-jenkins/job/tikv_ghpr_test/38023/display/redirect

This issue has become out-of-date. Given that no further feedback regarding this issue has been reported, it can be safely closed.


[Question] What values to be passed in [bounds] to make a perfect square

I tried the default value provided for [bounds] attribute as [bounds]="{x:{latitude:-0.00321,longitude:-0.0052},y:{latitude:0.00321,longitude:0.0052}}" but this does not creates a perfect square. Need more information how this bounds value works. Or how can I overlay a perfect square with zoom enabled.

Using the x,y bounds is a way to say how far away to spread apart from the latitude,longitude in four direction. I think if you wanted perfectly square, all four direction would have to have the same number.
Some references
The demo code that applied bounds
https://github.com/AckerApple/agm-overlays/blob/master/example/src/app.template.ts#L32
The demo page has a rectangle on it using those default bounds coords. It would be square if all four numbers were the same in opposite directions:
https://ackerapple.github.io/agm-overlays/
The demo code uses this json demo to draw the markers:
https://github.com/AckerApple/agm-overlays/blob/master/example/src/points.ts#L31
https://github.com/AckerApple/agm-overlays/blob/master/example/src/points.ts#L31

In the code given above([bounds]="{x:{latitude:-0.00321,longitude:-0.0052},y:{latitude:0.00321,longitude:0.0052}}"), the numbers are already in opposite direction(same negative and positive value), but it does not create exact square.

I’m on my cell phone and on the go but my guess if you didn’t want the default RECTANGLE then you may need numbers like:
[bounds]="{x:{latitude:-0.00321,longitude:-0.00321},y:{latitude:0.00321,longitude:0.00321}}"
A square, as you may know, must have equal sides

This is the output I get with the given values: [bounds]="{x:{latitude:-0.00321,longitude:-0.00321},y:{latitude:0.00321,longitude:0.00321}}"

I couldn't figure out how to make it perfectly square. Sorry, out of time.
Not to self or anyone who wants to attempt fixing:
The two main parts of code that communicate to google map libraries about bounds can be found in two places

https://github.com/AckerApple/agm-overlays/blob/master/src/AgmOverlay.component.ts#L166
https://github.com/AckerApple/agm-overlays/blob/master/src/AgmOverlay.component.ts#L221

Hi @fsaiyedOB, although it seems that we are on a square plane, there are curves in how the latitude and longitude are plotted for this reason you do not get the square.
I send you an image, you would have to investigate a little more about your problem but the truth I do not understand your goal because you want to draw something if there are tools that already do that giving a size and an origin, greetings.

@fsaiyedOB you view this guide, this documentation create figure square (use Agm => Directives/AgmRectangle), you can compare it with the Google API to understand what I say

@havo07 Thanks for the guide. I'm able to draw a square with agm-rectangle directive. But here what I want to achieve is a perfect circle with equal radius all the sides using CSS and inside that circle, I've to draw four equal quadrants which I tried using pure CSS inside agm-overlay, which I'm not able to achieve using agm-rectangle. Following is the image representing my requirement.

As you may see this is not a perfect circle using the given bound values.

@faizansaiyed I think in code we add feature to accept [bounds] as alternate type of LatLngBounds directly, so whatever shape is will be overlay drew according to the bounds.
Extra type handled here, and also accept value as LatLngBounds

Add changes in existing with the help of typeof check to directly assign bounds

I'm sure we'll get desired output from this approach.
@AckerApple Need your suggestion, what do you say about it?

If you can make a PR for go ahead
I haven’t had the need for map work in a while and i am slammed
We use multiple branches so find the branch we develop in, fork it, fix it, and PR it


xml comments/javadocs

I'd like to get started helping this project since I utilize it so heavily. I've noticed myself only using it one way though, and I think it's because the methods aren't well documented. Would this be something beneficial that I could help with?

I second this.
I only understood how to use the NPoco::Database.Update<Poco>(Poco, Expression<Func<Poco, object>>) method when I read the issue 379.
I'm also willing to help.

So change in plan... I just got engaged and found out I won't have as much free time. but I'm programming our wedding announcement website and using MySql and therefore depending on the functional aspect of this more intensely so I'll start learning the software better to be able to provide explanations when I have the time.

Congratulations :) weddings do take up a lot of time but there’s always
lots of unexpected ways to get a computer involved :)
On Sun, 24 Dec 2017 at 00:59, Edward Lichtman<EMAIL_ADDRESS>wrote:

So change in plan... I just got engaged and found out I won't have as much
free time. but I'm programming our wedding announcement website and using
MySql and therefore depending on the functional aspect of this more
intensely so I'll start learning the software better to be able to provide
explanations when I have the time.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/schotime/NPoco/issues/442#issuecomment-353758282, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AF7BPZN9o9RTu1HXFqx4uAafVFplI1gdks5tDaHegaJpZM4QvPZ3
.

if XML comment this Project will be better.


Publishing of package for openSUSE Leap 15.4

Hello
we'd like to provide openh264 through a dedicated cisco repository to openSUSE Leap and Tumbleweed users.
This effort is part of the simplified multimedia access tracked at:
https://code.opensuse.org/leap/features/issue/22
In order to comply with the license rpms would have to be distributed by Cisco.
So far it seems that Fedora does that by redirectinig requests to http://ciscobinary.openh264.org/
Example:
https://codecs.fedoraproject.org/openh264/36/x86_64/os/Packages/o/openh264-2.1.1-3.fc36.x86_64.rpm
The actual download of the rpm file is redirected to http://ciscobinary.openh264.org/openh264-2.1.1-3.fc36.x86_64.rpm
Packages for openSUSE are build in this project https://build.opensuse.org/project/show/multimedia:libs:cisco-openh264
Binaries for Leap 15.4 (one Release per year, 15.5 will be in june 2023) and Tumbleweed (version less)
https://build.opensuse.org/package/binaries/multimedia:libs:cisco-openh264/openh264/openSUSE_Leap_15.4
https://build.opensuse.org/package/binaries/multimedia:libs:cisco-openh264/openh264/openSUSE_Tumbleweed
Click on the "Go to Download repository" for a one-off publish that I've set up (can be removed any time). Rsync can be done directly from the build-service download repository to http://ciscobinary.openh264.org/.
Users would then consume it through a different repository which would be available on the system (but disabled by default) which would redirected rpm download requests to the ciscobinary.openh264.org hosts. Same as fedora.
How can we get onboard as well? Our (SUSE) TAM tried to communicate this with Cisco via a partner communication channel but we had not much luck.
Thank you very much in advance!
An update from 21.3.2021: bvardham looped in rtalekar and irfshai2 into the email conversation.

@xiaotiansf if its any help, the GStreamer plugins sources for the OpenH264 packages are available here: https://build.opensuse.org/project/show/multimedia:libs:cisco-openh264

@ddemaio I guess @huili2 @sijchen can help you on the issue.

@huili2 @sijchen any pointers or hints that we could follow? Thank you!

Just for sake of tracking I did receive feedback from sijchen, they'll reach out to us once they have some free cycles, which is not the case at the moment.

(I did update description with required information)

I'll investigate! :)

@lkocman -- Do you have a list of requirements for third-party package maintainers?

Hello @justaugustus
the current package maintainer on our side is Neal Gompa you an see it here https://build.opensuse.org/package/users/multimedia:libs:cisco-openh264/openh264.
There is no particular set of requirements other than responsiveness.
I think the packaging side on our side is solved, we just need to rsync results over to somewhere from where it can be consumed by users. So no the packaging side, but simply how to rsync already built artifacts to http://ciscobinary.openh264.org
Requirements for that task on Cisco side would be a Linux sysadmin with admin access to host ciscobinary.openh264.org

the current package maintainer on our side is Neal Gompa.

Hi! I'm the maintainer of OpenH264 for the SUSE Linux family of distributions. I also work with the folks who maintain OpenH264 for the Fedora Linux distribution (@kalev and @wtay).
From Cisco's side, we just need the RPMs mirrored over so that we can get our download redirector and mirror service to point to them.

Hello ,
We've just had a meeting with Cisco regarding providing easy access to the openh264 codec to the openSUSE users.
The outcome is that Cisco will help us with the redistribution side by utilizing the ciscobinary.openh264.org host. There seems to be more space for collaboration that could lead to the usage of OBS in some more of Cisco's open-source-related processes.
We seem to found the right people for the job, and the rest of the discussion will happen in the email thread with selected people.
Big thanks to all the attendes and especially to Cisco for being supportive.
Document used for introduction to the issue
https://etherpad.opensuse.org/p/openh264-summary
--
Best regards
Lubos Kocman
on behalf of openSUSE Release Team

Hello team,
I'd like to propose the issue for Leap 15.5 Beta (mid Feb 2023).
https://en.opensuse.org/openSUSE:Roadmap
If finding engineering resources might be an issue, therefore we could try the Fedora way where the rpms are exchanged over the email. I did send an email request to the same group who participated in the last meeting.
If we have a point of contact, I can ensure that we email the binary rpms in a timely manner.
Lubos

Following can be used to easily rsync the rpms
(if you have issues with delay you can use e.g. rsync -avh instead)
# from rsync-o-o
rsync -rlptyH rsync://rsync.opensuse.org/opensuse-full-really-everything-including-repositories/opensuse/repositories/multimedia:/libs:/cisco-openh264/  .

# or from a local mirror
rsync -rlptyH ftp5.gwdg.de::pub/opensuse/repositories/multimedia:/libs:/cisco-openh264  --delay-updates --delete-delay -hi --stats  .

Bernhard limited the visibility of directory via http, therefore users won't be able to access it just by webbrowser. rsync above still works
# chmod 750 /srv/ftp/pub/opensuse/repositories/multimedia\:/libs\:/cisco-openh264/

The zypper update command fails after this change, should I wait for a fix?

The zypper update command fails after this change, should I wait for a fix?

The repo is not supposed to be available.

Ok, thanks for the clarification.

I've ensured that preventing of httpd access is being periodically checked and enfroced rsync from this particular location is still possible
pontifex2 (download.o.o):~ # cat /etc/cron.d/cisco-openh264-check
# Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
#PATH=/sbin:/usr/sbin:/bin:/usr/bin
# Send Emails to
<EMAIL_ADDRESS># Variables
WITHLOCK_DIR="/home/mirror/var/run/withlock"
# https://github.com/cisco/openh264/issues/3480
*/5 * * * *                     mirror  chmod 750 /srv/{ftp,ftp-stage}/pub/opensuse/repositories/multimedia\:/libs\:/cisco-openh264/

pontifex2 (download.o.o):~ # ls -lad /srv/{ftp,ftp-stage}/pub/opensuse/repositories/multimedia\:/libs\:/cisco-openh264/
drwxr-x--- 10 mirror stage 4096 Oct 19 16:33 /srv/ftp/pub/opensuse/repositories/multimedia:/libs:/cisco-openh264/
drwxr-x--- 10 mirror stage 4096 Oct 19 16:33 /srv/ftp-stage/pub/opensuse/repositories/multimedia:/libs:/cisco-openh264/

Thanks for the update.

Hello team!
let me share some great news! @detiber was able to publish binaries on the cisco infra, so the ball is now on openSUSE side.
I've captured contentof files from the extracted archive, together with our agreement at
https://en.opensuse.org/OpenH264
Next step is that we'll setup a repository including the gpg key that will point to these remote files (or will involve redirect tbd in next days).
Lubos

One of the best New Years Gifts ever.  Thank you for the update and the hard work.  I'll try to spread the word around.

Indeed, such a wonderful news!

Hello team!
we were discussing the publishing part on yesterday's Release call ahttps://etherpad.opensuse.org/p/ReleaseEngineering-meeting
and this is the worfklow on our side what we came up with
https://github.com/openSUSE/openSUSE-release-tools/pull/2911
The outcome was that if the openh264 repository is enabled by default, then the data needs to be re-built in official openSUSE:* namespace (Comes with extra validation). The positive implication is that we can sing package with the distribution key just like Fedora does that.
All of the maintainers have insight to the "restriced" openSUSE project https://build.opensuse.org/project/show/openSUSE:Factory:openh264
I did accidnetally  copy-paste of read-only permissions from openSUSE: namespace to multimedia:libs:cisco-openh264 (where the development happens), which I rolled back  few seconds afterwards, so I'm sorry if @justaugustus @detiber @Conan-Kudo if you were surprised by the email notifications about revoking maintainer permissions. Permisions are as they were before.
I will unfortunatelly need to make one more publish request Cisco as these rebuilt rpms will be now signed by the official openSUSE key.
I believe the ticket can be closed with this comment. As we have now established pipeline.
Thank you very much for co-operation @detiber @justaugustus @Conan-Kudo !


1.0.2 Crafting recipies which uses items that take durability damage

Issue description:
When auto crafting items which use an item with durability(e.g. IC2 plates), the crafter recreates the tool so that the metadata matches the one in the crafting pattern.
What happens:
New tools are created for each crafting operation
What you expected to happen:
The tool is used until it runs out of durability
Steps to reproduce:
1.Install Refined Storage and IC2.
2.Creating crafting setup which created IC2 plates from a full durability hammer.
3.Request 2 or more of that craft.
(4.If you recreate the pattern with the slightly damaged tool the crafter uses that tool)
Version (Make sure you are on the latest version before reporting):

Minecraft: 1.10.2
Forge:2088
Refined Storage:1.0.2
-IC2 2.6.61-ex110
Does this issue occur on a server? [yes/no]
yes

If a (crash)log is relevant for this issue, link it here:

Not a bug... autocrafting always takes the identical item as specified in the pattern. To automate IC2 stuff, use a rolling machine.

While this may be true of IC2, that was merely an example of one such tool. Another example, which probably would have been better to pick in the first place, is the extra utilities 2 glass cutter. This has no alternative machine that I know of so the only way auto crafting could be possible is if the crafter supports tools.

For the glass cutter, I'm sure there are blocks from other mods (like the ExU User) that simulate player actions. With a processing pattern, this is trivial to automate.

It's not used in-world in this case, it's used to cut ender pearls in the crafting grid (using up durability).

@raoulvdberge It would be neat if you could fix this. I assume you can make tools lose one point of durability whenever autocrafting is done.

Crafting with items that use durability, such as Actually Additions’ knife, Immersive Engineering’s hammer, IC2’s cutter, EU2’s glass cutter, etc. does not work properly; items don’t lose durability as they should.
Is this not on your to-do list? Lots of items that are necessary to auto-craft use durability, so I'd assume that this would be one of the high-priority issues.

@raoulvdberge Crafting with items that use durability, such as Actually Additions’ knife, Immersive Engineering’s hammer, IC2’s cutter, EU2’s glass cutter, etc. does not work properly; items don’t lose durability as they should.
Is this not on your to-do list? Lots of items that are necessary to auto-craft use durability, so I'd assume that this would be one of the high-priority issues.

@PapiDimmi that used to be a working feature I have no clue where it went wrong, nor do I have the time to fix things right now.

@way2muchnoise Aw, all right. I hope it’ll be fixed in the future.


Upgrade go to 1.18

We're currently using go 1.17 which was released a year ago and is no longer supported
1.18 was released 5 months ago and is battle tested, in contrast to 1.19 which was released a week ago.
Also ran go mod tidy

Could you update okteto/golang-ci to 1.18.0

Could you update okteto/golang-ci to 1.18.0

it doesn't exist in this branch. updated in the others that I found it at.


alpha.cuelang.org: eval mode bug compared to cmd/cue eval

What page were you looking at?
https://alpha.cuelang.org/
What version of the site were you looking at?
https://github.com/cue-lang/cuelang.org/commit/1e6f47bd284028b01d965424ca4bb79ce0a42631
What did you do?
https://alpha.cuelang.org/play/?id=fSLRGVwyGVz#w=function&i=cue&f=eval&o=cue
What did you expect?
No error in the RHS, instead the CUE value:
v: {
    x!: string
}

What did you see instead?
v.x: field is required but not present:
    -:2:5

in the RHS

For context, cue eval doesn't error in this case, making the playground inconsistent.

Apologies, I totally missed adding that to the original report. Thanks for fixing it up.


[WIP] Update documentation

What: Updates the styles and content of the documentation. Attempts to start fixing #5 and #26

Why: We need complete documentation, and it should look nice

How: I updated the PageSections component, updated the /basics page, updated the translations for documentation to be stubbed out, and updated styles.

I'd really love to get other people (@kentcdodds @jonmajorc and anyone else) to comment and contribute. The current documentation needs a fair amount of work to fit the format it appears that @kentcdodds wants it to look like. This PR is half copywriting, but I think if we get enough here maybe we can merge with stubs so others can help write that stuff.

Codecov Report

Merging #46 into master will increase coverage by 2.42%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
+ Coverage   95.52%   97.94%   +2.42%
==========================================
  Files          30       37       +7
  Lines         134      146      +12
  Branches       11       11
==========================================
+ Hits          128      143      +15
+ Misses          6        3       -3

Impacted Files
Coverage Δ

styles/base.js
100% <ø> (ø)
:arrow_up:

styles/global-styles.js
100% <ø> (ø)
:arrow_up:

components/page-sections.js
100% <100%> (+20%)
:arrow_up:

translations/en/basics/core-concepts.js
100% <100%> (ø)

translations/en/advanced/existing-css.js
100% <100%> (ø)
:arrow_up:

translations/en/basics/react-native.js
100% <100%> (ø)

pages/basics.js
100% <100%> (ø)
:arrow_up:

translations/en/basics/getting-started.js
100% <100%> (ø)

translations/en/basics/install.js
100% <100%> (ø)

translations/en/basics/animation.js
100% <100%> (ø)

... and 11 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 69ed6e8...2f37940. Read the comment docs.

Just pushed more changes to close #47.

Looking soooo great! Merged. Some things could be improved, but it's easier to do those iteratively. So excited!

🎉
If you have improvements in mind can you open an issue or make comments someplace we can find them easily? Thanks!


build: fix function build after merge issue - again

Describe your changes

Issue ticket number and link
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[ ] I have performed a self-review of my own code
[ ] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[ ] I have referenced the ticket number above
[ ] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

I ran (then cancelled) the build pipeline against this branch to ensure it parsed correctly this time.
https://dev.azure.com/planninginspectorate/back-office/_build/results?buildId=60054&view=results


Enabling Comet Lake-H (10875H) V/F Point Tuning

I've recently discovered PowerMonkey and the possibility to adjust V/F Curve, instead of using the legacy way of setting one offset voltage across all cores. After tinkering with PowerMonkey, I've had success with changing everything, but the aforementioned V/F curve. At first I thought my CPU doesn't support V/F curve, because PowerMonkey kept reporting that "number of reported V/F points: 0". However, my curiousity still prevailed and I kept researching this topic further.
This led me to find out about CoreVfPointOffsetMode. A variable in the BIOS that allows to select Core Voltage & Frequency Point Offset between Legacy and Selection modes. Dumping the BIOS IFR and doing a quick string search confirmed that by default I am forced to use the 'legacy' mode and that my BIOS hides away 15 V/F points:
0x2BC20 		One Of: VF Point Offset Mode, VarStoreInfo (VarOffset/VarName): 0x24E, VarStore: 0x11, QuestionId: 0x306, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 14 16 15 16 06 03 11 00 4E 02 10 10 00 01 00}
0x2BC31 			One Of Option: Legacy, Value (8 bit): 0x0 (default) {09 07 4E 16 30 00 00}
0x2BC38 			One Of Option: Selection, Value (8 bit): 0x1 {09 07 4F 16 00 00 01}
0x2BC3F 		End One Of {29 02}
0x2BC41 		Suppress If {0A 82}
0x2BC43 			QuestionId: 0x306 equals value 0x1 {12 06 06 03 01 00}
0x2BC49 			Numeric: Core Voltage Offset, VarStoreInfo (VarOffset/VarName): 0x1BD, VarStore: 0x11, QuestionId: 0x307, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 18 16 19 16 07 03 11 00 BD 01 10 11 00 00 E8 03 01 00}
0x2BC5D 				Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BC64 			End {29 02}
0x2BC66 			One Of: Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x1BF, VarStore: 0x11, QuestionId: 0x308, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 50 16 63 16 08 03 11 00 BF 01 10 10 00 01 00}
0x2BC77 				One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BC7E 				One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BC85 			End One Of {29 02}
0x2BC87 		End If {29 02}
0x2BC89 		Suppress If {0A 82}
0x2BC8B 			QuestionId: 0x306 equals value 0x0 {12 06 06 03 00 00}
0x2BC91 			Suppress If {0A 82}
0x2BC93 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BC97 					8 Bit Unsigned Int: 0x1 {42 03 01}
0x2BC9A 					Less Than {33 02}
0x2BC9C 				End {29 02}
0x2BC9E 				Numeric: VF Point 1 Offset, VarStoreInfo (VarOffset/VarName): 0x250, VarStore: 0x11, QuestionId: 0x309, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 1A 16 1B 16 09 03 11 00 50 02 10 11 00 00 E8 03 01 00}
0x2BCB2 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BCB9 				End {29 02}
0x2BCBB 				One Of: VF Point 1 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x26E, VarStore: 0x11, QuestionId: 0x30A, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 51 16 63 16 0A 03 11 00 6E 02 10 10 00 01 00}
0x2BCCC 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BCD3 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BCDA 				End One Of {29 02}
0x2BCDC 				Text: Statement.Prompt: VF Point 1 Ratio, TextTwo: N/A {03 08 F4 15 2A 05 F5 15}
0x2BCE4 			End If {29 02}
0x2BCE6 			Suppress If {0A 82}
0x2BCE8 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BCEC 					8 Bit Unsigned Int: 0x2 {42 03 02}
0x2BCEF 					Less Than {33 02}
0x2BCF1 				End {29 02}
0x2BCF3 				Numeric: VF Point 2 Offset, VarStoreInfo (VarOffset/VarName): 0x252, VarStore: 0x11, QuestionId: 0x30B, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 1C 16 1D 16 0B 03 11 00 52 02 10 11 00 00 E8 03 01 00}
0x2BD07 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BD0E 				End {29 02}
0x2BD10 				One Of: VF Point 2 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x26F, VarStore: 0x11, QuestionId: 0x30C, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 52 16 63 16 0C 03 11 00 6F 02 10 10 00 01 00}
0x2BD21 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BD28 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BD2F 				End One Of {29 02}
0x2BD31 				Text: Statement.Prompt: VF Point 2 Ratio, TextTwo: N/A {03 08 F6 15 2A 05 F7 15}
0x2BD39 			End If {29 02}
0x2BD3B 			Suppress If {0A 82}
0x2BD3D 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BD41 					8 Bit Unsigned Int: 0x3 {42 03 03}
0x2BD44 					Less Than {33 02}
0x2BD46 				End {29 02}
0x2BD48 				Numeric: VF Point 3 Offset, VarStoreInfo (VarOffset/VarName): 0x254, VarStore: 0x11, QuestionId: 0x30D, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 1E 16 1F 16 0D 03 11 00 54 02 10 11 00 00 E8 03 01 00}
0x2BD5C 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BD63 				End {29 02}
0x2BD65 				One Of: VF Point 3 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x270, VarStore: 0x11, QuestionId: 0x30E, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 53 16 63 16 0E 03 11 00 70 02 10 10 00 01 00}
0x2BD76 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BD7D 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BD84 				End One Of {29 02}
0x2BD86 				Text: Statement.Prompt: VF Point 3 Ratio, TextTwo: N/A {03 08 F8 15 2A 05 F9 15}
0x2BD8E 			End If {29 02}
0x2BD90 			Suppress If {0A 82}
0x2BD92 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BD96 					8 Bit Unsigned Int: 0x4 {42 03 04}
0x2BD99 					Less Than {33 02}
0x2BD9B 				End {29 02}
0x2BD9D 				Numeric: VF Point 4 Offset, VarStoreInfo (VarOffset/VarName): 0x256, VarStore: 0x11, QuestionId: 0x30F, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 20 16 21 16 0F 03 11 00 56 02 10 11 00 00 E8 03 01 00}
0x2BDB1 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BDB8 				End {29 02}
0x2BDBA 				One Of: VF Point 4 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x271, VarStore: 0x11, QuestionId: 0x310, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 54 16 63 16 10 03 11 00 71 02 10 10 00 01 00}
0x2BDCB 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BDD2 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BDD9 				End One Of {29 02}
0x2BDDB 				Text: Statement.Prompt: VF Point 4 Ratio, TextTwo: N/A {03 08 FA 15 2A 05 FB 15}
0x2BDE3 			End If {29 02}
0x2BDE5 			Suppress If {0A 82}
0x2BDE7 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BDEB 					8 Bit Unsigned Int: 0x5 {42 03 05}
0x2BDEE 					Less Than {33 02}
0x2BDF0 				End {29 02}
0x2BDF2 				Numeric: VF Point 5 Offset, VarStoreInfo (VarOffset/VarName): 0x258, VarStore: 0x11, QuestionId: 0x311, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 22 16 23 16 11 03 11 00 58 02 10 11 00 00 E8 03 01 00}
0x2BE06 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BE0D 				End {29 02}
0x2BE0F 				One Of: VF Point 5 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x272, VarStore: 0x11, QuestionId: 0x312, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 55 16 63 16 12 03 11 00 72 02 10 10 00 01 00}
0x2BE20 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BE27 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BE2E 				End One Of {29 02}
0x2BE30 				Text: Statement.Prompt: VF Point 5 Ratio, TextTwo: N/A {03 08 FC 15 2A 05 FD 15}
0x2BE38 			End If {29 02}
0x2BE3A 			Suppress If {0A 82}
0x2BE3C 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BE40 					8 Bit Unsigned Int: 0x6 {42 03 06}
0x2BE43 					Less Than {33 02}
0x2BE45 				End {29 02}
0x2BE47 				Numeric: VF Point 6 Offset, VarStoreInfo (VarOffset/VarName): 0x25A, VarStore: 0x11, QuestionId: 0x313, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 24 16 25 16 13 03 11 00 5A 02 10 11 00 00 E8 03 01 00}
0x2BE5B 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BE62 				End {29 02}
0x2BE64 				One Of: VF Point 6 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x273, VarStore: 0x11, QuestionId: 0x314, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 56 16 63 16 14 03 11 00 73 02 10 10 00 01 00}
0x2BE75 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BE7C 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BE83 				End One Of {29 02}
0x2BE85 				Text: Statement.Prompt: VF Point 6 Ratio, TextTwo: N/A {03 08 FE 15 2A 05 FF 15}
0x2BE8D 			End If {29 02}
0x2BE8F 			Suppress If {0A 82}
0x2BE91 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BE95 					8 Bit Unsigned Int: 0x7 {42 03 07}
0x2BE98 					Less Than {33 02}
0x2BE9A 				End {29 02}
0x2BE9C 				Numeric: VF Point 7 Offset, VarStoreInfo (VarOffset/VarName): 0x25C, VarStore: 0x11, QuestionId: 0x315, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 26 16 27 16 15 03 11 00 5C 02 10 11 00 00 E8 03 01 00}
0x2BEB0 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BEB7 				End {29 02}
0x2BEB9 				One Of: VF Point 7 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x274, VarStore: 0x11, QuestionId: 0x316, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 57 16 63 16 16 03 11 00 74 02 10 10 00 01 00}
0x2BECA 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BED1 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BED8 				End One Of {29 02}
0x2BEDA 				Text: Statement.Prompt: VF Point 7 Ratio, TextTwo: N/A {03 08 00 16 2A 05 01 16}
0x2BEE2 			End If {29 02}
0x2BEE4 			Suppress If {0A 82}
0x2BEE6 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BEEA 					8 Bit Unsigned Int: 0x8 {42 03 08}
0x2BEED 					Less Than {33 02}
0x2BEEF 				End {29 02}
0x2BEF1 				Numeric: VF Point 8 Offset, VarStoreInfo (VarOffset/VarName): 0x25E, VarStore: 0x11, QuestionId: 0x317, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 28 16 29 16 17 03 11 00 5E 02 10 11 00 00 E8 03 01 00}
0x2BF05 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BF0C 				End {29 02}
0x2BF0E 				One Of: VF Point 8 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x275, VarStore: 0x11, QuestionId: 0x318, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 58 16 63 16 18 03 11 00 75 02 10 10 00 01 00}
0x2BF1F 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BF26 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BF2D 				End One Of {29 02}
0x2BF2F 				Text: Statement.Prompt: VF Point 8 Ratio, TextTwo: N/A {03 08 02 16 2A 05 03 16}
0x2BF37 			End If {29 02}
0x2BF39 			Suppress If {0A 82}
0x2BF3B 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BF3F 					8 Bit Unsigned Int: 0x9 {42 03 09}
0x2BF42 					Less Than {33 02}
0x2BF44 				End {29 02}
0x2BF46 				Numeric: VF Point 9 Offset, VarStoreInfo (VarOffset/VarName): 0x260, VarStore: 0x11, QuestionId: 0x319, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 2A 16 2B 16 19 03 11 00 60 02 10 11 00 00 E8 03 01 00}
0x2BF5A 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BF61 				End {29 02}
0x2BF63 				One Of: VF Point 9 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x276, VarStore: 0x11, QuestionId: 0x31A, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 59 16 63 16 1A 03 11 00 76 02 10 10 00 01 00}
0x2BF74 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BF7B 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BF82 				End One Of {29 02}
0x2BF84 				Text: Statement.Prompt: VF Point 9 Ratio, TextTwo: N/A {03 08 04 16 2A 05 05 16}
0x2BF8C 			End If {29 02}
0x2BF8E 			Suppress If {0A 82}
0x2BF90 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BF94 					8 Bit Unsigned Int: 0xA {42 03 0A}
0x2BF97 					Less Than {33 02}
0x2BF99 				End {29 02}
0x2BF9B 				Numeric: VF Point 10 Offset, VarStoreInfo (VarOffset/VarName): 0x262, VarStore: 0x11, QuestionId: 0x31B, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 2C 16 2D 16 1B 03 11 00 62 02 10 11 00 00 E8 03 01 00}
0x2BFAF 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2BFB6 				End {29 02}
0x2BFB8 				One Of: VF Point 10 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x277, VarStore: 0x11, QuestionId: 0x31C, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5A 16 63 16 1C 03 11 00 77 02 10 10 00 01 00}
0x2BFC9 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2BFD0 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2BFD7 				End One Of {29 02}
0x2BFD9 				Text: Statement.Prompt: VF Point 10 Ratio, TextTwo: N/A {03 08 06 16 2A 05 07 16}
0x2BFE1 			End If {29 02}
0x2BFE3 			Suppress If {0A 82}
0x2BFE5 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2BFE9 					8 Bit Unsigned Int: 0xB {42 03 0B}
0x2BFEC 					Less Than {33 02}
0x2BFEE 				End {29 02}
0x2BFF0 				Numeric: VF Point 11 Offset, VarStoreInfo (VarOffset/VarName): 0x264, VarStore: 0x11, QuestionId: 0x31D, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 2E 16 2F 16 1D 03 11 00 64 02 10 11 00 00 E8 03 01 00}
0x2C004 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2C00B 				End {29 02}
0x2C00D 				One Of: VF Point 11 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x278, VarStore: 0x11, QuestionId: 0x31E, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5B 16 63 16 1E 03 11 00 78 02 10 10 00 01 00}
0x2C01E 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2C025 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2C02C 				End One Of {29 02}
0x2C02E 				Text: Statement.Prompt: VF Point 11 Ratio, TextTwo: N/A {03 08 08 16 2A 05 09 16}
0x2C036 			End If {29 02}
0x2C038 			Suppress If {0A 82}
0x2C03A 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2C03E 					8 Bit Unsigned Int: 0xC {42 03 0C}
0x2C041 					Less Than {33 02}
0x2C043 				End {29 02}
0x2C045 				Numeric: VF Point 12 Offset, VarStoreInfo (VarOffset/VarName): 0x266, VarStore: 0x11, QuestionId: 0x31F, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 30 16 31 16 1F 03 11 00 66 02 10 11 00 00 E8 03 01 00}
0x2C059 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2C060 				End {29 02}
0x2C062 				One Of: VF Point 12 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x279, VarStore: 0x11, QuestionId: 0x320, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5C 16 63 16 20 03 11 00 79 02 10 10 00 01 00}
0x2C073 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2C07A 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2C081 				End One Of {29 02}
0x2C083 				Text: Statement.Prompt: VF Point 12 Ratio, TextTwo: N/A {03 08 0A 16 2A 05 0B 16}
0x2C08B 			End If {29 02}
0x2C08D 			Suppress If {0A 82}
0x2C08F 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2C093 					8 Bit Unsigned Int: 0xD {42 03 0D}
0x2C096 					Less Than {33 02}
0x2C098 				End {29 02}
0x2C09A 				Numeric: VF Point 13 Offset, VarStoreInfo (VarOffset/VarName): 0x268, VarStore: 0x11, QuestionId: 0x321, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 32 16 33 16 21 03 11 00 68 02 10 11 00 00 E8 03 01 00}
0x2C0AE 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2C0B5 				End {29 02}
0x2C0B7 				One Of: VF Point 13 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x27A, VarStore: 0x11, QuestionId: 0x322, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5D 16 63 16 22 03 11 00 7A 02 10 10 00 01 00}
0x2C0C8 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2C0CF 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2C0D6 				End One Of {29 02}
0x2C0D8 				Text: Statement.Prompt: VF Point 13 Ratio, TextTwo: N/A {03 08 0C 16 2A 05 0D 16}
0x2C0E0 			End If {29 02}
0x2C0E2 			Suppress If {0A 82}
0x2C0E4 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2C0E8 					8 Bit Unsigned Int: 0xE {42 03 0E}
0x2C0EB 					Less Than {33 02}
0x2C0ED 				End {29 02}
0x2C0EF 				Numeric: VF Point 14 Offset, VarStoreInfo (VarOffset/VarName): 0x26A, VarStore: 0x11, QuestionId: 0x323, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 34 16 35 16 23 03 11 00 6A 02 10 11 00 00 E8 03 01 00}
0x2C103 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2C10A 				End {29 02}
0x2C10C 				One Of: VF Point 14 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x27B, VarStore: 0x11, QuestionId: 0x324, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5E 16 63 16 24 03 11 00 7B 02 10 10 00 01 00}
0x2C11D 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2C124 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2C12B 				End One Of {29 02}
0x2C12D 				Text: Statement.Prompt: VF Point 14 Ratio, TextTwo: N/A {03 08 0E 16 2A 05 0F 16}
0x2C135 			End If {29 02}
0x2C137 			Suppress If {0A 82}
0x2C139 				Question Ref1: QuestionId: 0xEF8 {40 84 F8 0E}
0x2C13D 					8 Bit Unsigned Int: 0xF {42 03 0F}
0x2C140 					Less Than {33 02}
0x2C142 				End {29 02}
0x2C144 				Numeric: VF Point 15 Offset, VarStoreInfo (VarOffset/VarName): 0x26C, VarStore: 0x11, QuestionId: 0x325, Size: 2, Min: 0x0, Max 0x3E8, Step: 0x1 {07 94 36 16 37 16 25 03 11 00 6C 02 10 11 00 00 E8 03 01 00}
0x2C158 					Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x2C15F 				End {29 02}
0x2C161 				One Of: VF Point 15 Offset Prefix, VarStoreInfo (VarOffset/VarName): 0x27C, VarStore: 0x11, QuestionId: 0x326, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5F 16 63 16 26 03 11 00 7C 02 10 10 00 01 00}
0x2C172 					One Of Option: +, Value (8 bit): 0x0 (default) {09 07 DD 03 30 00 00}
0x2C179 					One Of Option: -, Value (8 bit): 0x1 {09 07 DE 03 00 00 01}
0x2C180 				End One Of {29 02}
0x2C182 				Text: Statement.Prompt: VF Point 15 Ratio, TextTwo: N/A {03 08 10 16 2A 05 11 16}
0x2C18A 			End If {29 02}
0x2C18C 		End If {29 02}

This is probably why PowerMonkey reports that "number of reported V/F points: 0". Now my real question is - can't we edit this CoreVfPointOffsetMode using PowerMonkey and enable V/F Point Curve instead of legacy mode? I could use modified grub to overwrite UEFI varstores and enable this behaviour, but that would be, in my opinion, way riskier, than taking a temporary approach such as using PowerMonkey EFI.

Unfortunately, it is not possible to enable V/F point voltage programming if the CPU does not expose it. If PowerMonkey reports number of V/F points as 0, that means CPU itself reports 0 points (you can see it in the code how the number is obtained - by querying overclocking mailbox). The only one exception would be if firmware locks the overclocking mailbox ("OC lock"), in which case restriction is firmware and not hardware imposed.
If I remember correctly, locked models of CML-H did not have VF points exposed, sorry. IFR in the firmware contains settings for all supported models of the CPU, including HX editions, which is why you see those settings.
You can try programming the values directly by poking the NVRAM regs, but it is not likely that it will work, as firmware would use the same mailbox to do that.

So if I understood correctly, if the "OC Lock" is disabled, meaning I can adjust voltages with tools like ThrottleStop, and PowerMonkey still reports number of V/F points as 0 - it's because my CML-H model doesn't expose VF points and there's nothing I can really do about it :? If so, that's a pity Q.Q
I can confirm that variable frequencies on my system supports variable voltages using ThrottleStop. For example, locking the CPU to 4.3GHz (all core) and applying -150mV system is stable, yet if I just downclock from 4.3GHz to 3.6GHz with same undervolt applied - the system will crash. This is what led me to discover PowerMonkey and existence of VF curve in the first place.
Guess, I'll just write software to create ThrottleStop presets which would allow me to apply variable voltages for different (locked) frequencies. It would have been cool to have it all automatic :/

Yes, unfortunately - when CPU reports 0 V/F points even with OC Mailbox unlocked, that means that only legacy voltage adjustment is possible (when OC Mailbox is locked, even legacy voltage adjustment will not work).
You can try to mitigate the issue of too big undervolt as you proposed, but nowadays CPUs are actually in charge of SpeedStep management with OS only "hinting" to the CPU what it wants. Especially in the recent generateions, HWP control makes adjustments much faster than one would be able to do from the driver-side like in the Core 2 days.
This means, no matter how fast your software is - there will be a chance that it reacts too slowly to correct the undervolt when cpu freq drops to idle. Remember, talking to OC mailbox and setting the undervolt offset also takes time. BUT, not wanting to sound pessimistic - maybe it can be done fast enough to prevent catastrophic undervolt.
Please let me know if you are successful. For this to even make remote sense, I'd advise to do it in the kernel mode (as a driver) - so that latency is as low as possible. But, ofc, you'd need to take care not to sample too often or you'll prevent the CPU package from going into the lowest power modes.

It seems you thought of me making software that would do undervolting in real-time. That would be awesome, but I know that's not really possible due to the latency issues you just mentioned. It's also the reason why I was looking for a way to enable the V/F curve.
My idea was way more simple and effective it seems, seemingly that it actually works.
The idea was to use ThrottleStop to generate a 'ThrottleStop.ini' file with all the 'wanted' Power Limits and Undervolt settings pre-applied. For example, one pre-configured .ini file with settings that would force my CPU to 4.3GHz and -150mV and another configuration file that would restore everything back to 'safe' defaults, then store the configs inside a 'Config' folder. The software would generate windows shortcut links on desktop for said config files, so that the end-user could just double-click it and apply it on the fly.
So if I'm gaming and I want best CPU performance possible, I just double click it and it will apply the said config (preset). Once done gaming - you double-click the 'safe' config shortcut link and it will apply that. The only issue I encountered was the order ThrottleStop uses to apply everything. It seems to reduce FREQUENCIES first then VOLTAGES. This led to crashes when reverting to the 'safe' configs, so I fixed it by using WinRing0 CLI tool to drop voltages first to safe ranges before applying the ThrottleStop config.

Ah! Yes, sure this would work. Maybe you can check with UncleWebb maybe he can add the behavior you want for your case (when modifying V/F data to take into account whether the voltage or frequency shall change first depending on the direction).
I think it would anyway make sense to do something like:
if(vf_new.voltage > vf_current.voltage) {
  set_voltage();
  pause();
  set_frequency();
} else {
  set_frequency();
  pause();
  set_voltage();
}

This way one avoids the risk of CPU operating in danger zone.


Two-level Rust bindings for compile-time type resolution and FFI dispatch

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


[RHDS] Installer error code "Cannot access developers.redhat.com, please check your internet connection."

During installation of Red Hat Development Suite on Wintel desktop behind corpo firewall I get below error code .
Cannot access developers.redhat.com, please check your internet connection.
How to pass forward proxy to the installer ?

To make Installer working behind proxy there should be variable HTTPS_PROXY in user environment which sets up URL to proxy server. URL examples for none auth proxy:
http(s)://servername.com:3128
http(s)://<IP_ADDRESS>:3128
For auth proxy:
http(s)://username:password@servername.com:3128
http(s)://username:password@<IP_ADDRESS>:3128
If you use email as username then replace @ with %40:
http(s)://username%40server.com:password@servername.com:3128
http(s)://username%40server.com:password@<IP_ADDRESS>:3128
Additional details are here https://github.com/request/request#controlling-proxy-behaviour-using-environment-variables.

@dgolovin
This procedure will work on condition that recursive DNS is available for local request.
What if it is not ?
BR
NJ


View calculation tree in dashboard

dashboard have to be able to show the calculation tree for a score.
This may require new accesses to information in knowledge.
this require recursive accesses to database in order to build a tree

Done the connection with dump file and showed the grafics and data.
Sent email with grafics and data showed in Metabase.

Integrate the jump file in Dashboard done by Felipe and showed the grafics and data.


cookie consent banner breaks sites with digital experiences

example: a-toi.ca
https://user-images.githubusercontent.com/35935196/190869660-48caec7c-b2b4-40c0-920d-04e5694f7b06.mov
We will need to investigate and determine if this bug is due to the individual site's implementation (is there anything a-toi.ca can do differently?) or if there is a bug in the framework

cookie consent banner breaks sites with digital experiences #1115
Problem description:
Pages with animation content are affected when accepting/rejecting cookies.
Technical description:
Cookie consent banner includes an anchor tag that redirects the users to the root path. This redirection includes query parameters that include service response if cookie was accepted or not. Based on this response user is redirected to href domain/cookies?cookies=true or domain/cookies?cookies=false where cookie selection saved in cookies and then user will be redirected back to root path. This action is triggered when accepts or rejects all cookies in banner modal that is loaded on the page for the first time. It is important to mention that if cookie is found this cookie banner consent won’t load.
Root Cause:
Page animations are cut/interrupted because cookies consent requires to redirect to another page as design under cookies controller.
app/controllers/cookies_controller.rb
class CookiesController < ApplicationController
	  def index
	    cookies[:cookies_accepted] = params[:cookies].presence

	    redirect_back fallback_location: root_path
	  end
	end

Workaround:
A proposed workaround is to modify the anchor tag to include target=”_self” which launch redirection to main page and will cause a reload of the page (see video). It is important to mention that redirection causes reload with other clients.

violet_rails/db/migrate/20220824121504_add_cookies_consent_ui_to_subdomain.rb
COOKIE_CONSENT_UI =
  "

We Value Your Privacy

        We use cookies to enhance your browsing experience, serve personalized ads or content, and analyze our traffic. By clicking \"Accept All\", you consent to our use of cookies.

      Accept All
      Reject All

"

Other solutions:

[Violet Framework change] Save cookies with a function. This will require code refactoring so a function can be triggered on client side to save the cookies locally.
[Animation change] Client can change the animation so state can be saved to keep animating after cookie refresh. In case for a-toi.ca as they implemented their animation with gsap they would have to save the animation and monitor the cookie banner so animation can continue when redirected back.

@gerodrig adding the target=”_self” looks like the easiest/cheapest change to make.
Do you want to test it out on the system?

I fixed this for a-toi.ca by upgrading to the newer consent controls that use button tags instead of a tags:
            <button id="accept-button" class="cookie-consent-button" data-value="true">Accept All</button>
            <button id="reject-button" class="cookie-consent-button" data-value="false">Reject All</button>


Upgrade customer postgres DBs

In order to help our customers keep their systems secure and compliant, we want to get all customers to be using up-to-date versions of Postgres.
Acceptance Criteria

[ ] WHEN I run scans of customer DBs THEN I see no findings indicating unsupported/insecure Postgres versions were found

Implementation sketch

Make newest version of postgres available in a plan
Announce the change to customers and give them directions on how to migrate
NTH: Ping customers periodically who haven't upgraded

Re-opening as this has yet to be resolved. More particularly, we need the BOSH and CCDB instances updated to address a POA&M.

@mogul or @sharms -- Is there prior work on this about what the difficulties were in getting RDS instances to update through AWS maintenance?

Not that I recall but this is a level of detail below where I was floating when I was on the team.

Suggest time-boxing (4 hours max) this work as a research task.

Reach out to @pburkholder to pair on this issue.


Exceptions

Getting this error:
[2016-08-11 19:51:12,750][  worker-0][   ERROR][L 125] A wild exception appeared!
Traceback (most recent call last):
File "worker.py", line 103, in run
password=config.ACCOUNTS[self.worker_no][1],
File "C:\Python27\lib\site-packages\pgoapi\pgoapi.py", line 164, in login
response = self.app_simulation_login()
File "C:\Python27\lib\site-packages\pgoapi\pgoapi.py", line 141, in app_simulation_login
response = request.call()
File "C:\Python27\lib\site-packages\pgoapi\pgoapi.py", line 210, in call
request.activate_signature(lib_path)
File "C:\Python27\lib\site-packages\pgoapi\rpc_api.py", line 85, in activate_signature
self.signature_lib = ctypes.cdll.LoadLibrary(lib_path)
File "C:\Python27\lib\ctypes_init.py", line 440, in LoadLibrary
return self.dlltype(name)
File "C:\Python27\lib\ctypes_init.py", line 362, in init
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
Already ENCRYPT_PATH = 'encrypt64bit.dll' and tryed the 32 version
my config.py file
coding: utf-8
from datetime import datetime
DB_ENGINE = 'sqlite:///db.sqlite'
ENCRYPT_PATH = 'encrypt64bit.dll'
MAP_START = (12.3456, 14.5)
MAP_END = (13.4567, 15.321)
GRID = (1, 1)
CYCLES_PER_WORKER = 3
SCAN_RADIUS = 70  # metres
SCAN_DELAY = 10  # seconds
ACCOUNTS = [
('xxxxx', 'xxxxx', 'ptc'),
]
GOOGLE_MAPS_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
By the way pokemon go map works fine on my 64 bits system
Thank you

try making the path ./encrypt64bit.dll

same output

I assume that ./encrypt64bit.dll did the trick.


Fix a grammatical error  on line 75

Fixed a grammatical error and rearranged the sentence to ensure clarity

Why:
Closes #24410

What's being changed (if available, include any code snippets, screenshots, or gifs):

Point number 3 here is rewritten to be grammatically correct
Check off the following:

[x] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

@adityaraute Thank you for opening a PR and linking it to your issue! ✨
I'll get this triaged for review! :zap:


Feature suggestion: Add custom list template to Express list block

The express list block should have a listing template in the default templates (e.g. kind of like a blog article) in addition to the current table view layout.

Yeah, agreed.


Bump version to 3.5.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Regulator support for gpio-leds

Issue
I have some LEDs that are controlled using GPIOs connected to mosfet gates because the LEDs are connected to a dedicated fixed power regulator.
I can't seem to find a way to automatically turn on the regulator when using the LEDs in my application.
Describe the solution you'd like
It seems that "vin-supply" is what I need, but it appears not implemented for gpio-leds.
Actually in my case "supply-gpios" is probably better as the LEDs are the only consumers of the regulator.
Describe alternatives you've considered
The alternative is to control the enable pin of the regulator before using the LEDs (using an inferred binding in /zephyr,user perhaps), but as we have an application for two different HW setups (with only one setup using the regulator) this would require some ugly #ifdef constructions.
Are there other solutions already available?

My apologies. I forgot to underline that I need the regulator turned off when the LEDs are not used due to power restrictions.

My apologies. I forgot to underline that I need the regulator turned off when the LEDs are not used due to power restrictions.

I would likely write a custom LED driver for that, then. The driver could keep track of LEDs being on and turn off the regulator once the last LED is turned off. The LED driver itself could utilize the regulator API for controlling the regulator.

Thanks for the suggestion @henrikbrixandersen. Could you perhaps direct me to a sample where the regulator API is currently used? I'm trying to look for "vin-supply"/"vin_supply" without any result.

Thanks for the suggestion @henrikbrixandersen. Could you perhaps direct me to a sample where the regulator API is currently used? I'm trying to look for "vin-supply"/"vin_supply" without any result.

I don't think we have any in-tree users of https://github.com/zephyrproject-rtos/zephyr/blob/main/include/zephyr/drivers/regulator.h except for the tests in https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/drivers/regulator/fixed


GetAnswerAsync method does not give follow up prompts data.

Hi,
I want to use or display qna maker follow up prompts in bot but the getAnswerAsync method does not return follow up question data. How to get that data.
Please help
thanks in advance

I'm not sure which article this issue refers to. Have you had a chance to read the Use QnA Maker to answer questions? Please reopen this issue with more information if that does not answer your question.


Clean up development manifest-builds tags

Description
We currently have thousands of tags in the manifest-builds repo that were created for doing development builds.  These are the tags for actual (CoreOS or Flatcar) released versions:
manifest-builds$ git for-each-ref --format '%(refname:short)' refs/tags | grep '^v[0-9]' | wc -l
460

And these are the non-released versions:
manifest-builds$ git for-each-ref --format '%(refname:short)' refs/tags | grep -v '^v[0-9]' | wc -l
2996

These versions are created whenever we run a Jenkins build, be it a nightly build or a development build to try out a change.
Impact
This repo gets checked out during Jenkins jobs and having over three thousand tags to check out clobbers the output (repo prints one line per tag).
Desired outcome
We should clean-up old dev tags. I'd go with anything older than 15 days, as this is how long we keep other dev artifacts. I tried coming up with a one liner to do this, but doing it in bash is pretty horrible as it involves line-by-line processing, which is not great to do in bash. A python script could be quite straightforward, I think.

Totally agree. It is not only an issue of manifest-builds, but also other repos.
Anything older than 15 days sounds ok.
Not sure about how to implement.

Totally agree. It is not only an issue of manifest-builds, but also other repos.
Anything older than 15 days sounds ok.
Not sure about how to implement.

This could be a github action running once a week.

This could be a github action running once a week.

Agreed this could be implemented via Github Actions. This could be low-hanging fruit.

With the new CI, we don't use anymore this repo. Let's close this :)


Sense broken - Update for sensor.energy_usage fails

Home Assistant release with the issue:
0.65.6
Last working Home Assistant release (if known):
N/A
Operating environment (Hass.io/Docker/Windows/etc.):
pip3 install on Debian 9
Component/platform:
https://www.home-assistant.io/components/sensor.sense/
Description of problem:
Component fails to load
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
- platform: sense
  email: !secret sense_email
  password: !secret sense_password
  monitored_conditions:
    - active_usage
    - daily_usage
    - weekly_usage
    - monthly_usage
    - yearly_usage

Traceback (if applicable):
2018-03-26 20:02:12 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.energy_usage fails
Traceback (most recent call last):
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_socket.py", line 81, in recv
    bytes_ = sock.recv(bufsize)
  File "/usr/lib/python3.5/ssl.py", line 922, in recv
    return self.read(buflen)
  File "/usr/lib/python3.5/ssl.py", line 799, in read
    return self._sslobj.read(len, buffer)
  File "/usr/lib/python3.5/ssl.py", line 585, in read
    v = self._sslobj.read(len)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
    yield from self.async_device_update()
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/helpers/entity.py", line 327, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/components/sensor/sense.py", line 142, in update
    self.update_sensor()
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/util/__init__.py", line 319, in wrapper
    result = method(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/components/sensor/sense.py", line 84, in update_active
    data.get_realtime()
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/sense_energy/sense_api.py", line 56, in get_realtime
    result = json.loads(ws.recv())
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 300, in recv
    opcode, data = self.recv_data()
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 317, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 330, in recv_data_frame
    frame = self.recv_frame()
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 364, in recv_frame
    return self.frame_buffer.recv_frame()
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_abnf.py", line 361, in recv_frame
    self.recv_header()
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_abnf.py", line 309, in recv_header
    header = self.recv_strict(2)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_abnf.py", line 396, in recv_strict
    bytes_ = self.recv(min(16384, shortage))
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 434, in _recv
    return recv(self.sock, bufsize)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_socket.py", line 84, in recv
    raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: The read operation timed out

Additional information:
Can access the main website and API without issue so (most likely) not a network problem.  Also I don't get the traceback every time I restart HA (but the component never loads).

Bounced HA and a different (though similar) error this time:
2018-03-26 21:00:13 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.energy_usage fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
    yield from self.async_device_update()
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/helpers/entity.py", line 327, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/components/sensor/sense.py", line 142, in update
    self.update_sensor()
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/util/__init__.py", line 319, in wrapper
    result = method(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/components/sensor/sense.py", line 84, in update_active
    data.get_realtime()
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/sense_energy/sense_api.py", line 54, in get_realtime
    timeout=WSS_TIMEOUT)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 494, in create_connection
    websock.connect(url, **options)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_core.py", line 217, in connect
    options.pop('socket', None))
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_http.py", line 76, in connect
    sock = _ssl_socket(sock, options.sslopt, hostname)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_http.py", line 191, in _ssl_socket
    sock = _wrap_sni_socket(sock, sslopt, hostname, check_hostname)
  File "/root/.homeassistant/deps/lib/python3.5/site-packages/websocket/_http.py", line 168, in _wrap_sni_socket
    server_hostname=hostname,
  File "/usr/lib/python3.5/ssl.py", line 385, in wrap_socket
    _context=self)
  File "/usr/lib/python3.5/ssl.py", line 760, in __init__
    self.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 996, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 641, in do_handshake
    self._sslobj.do_handshake()
socket.timeout: _ssl.c:704: The handshake operation timed out

This has resolved itself at some point.  API issues at the time?  Who know, anyway it's working as expect so I'll close this and open a new one if the problem re-surfaces.


⚠ main has degraded performance

In 44af074, main ($MAIN_API_URL) experienced degraded performance:

HTTP code: 200
Response time: 26423 ms

Resolved: main performance has improved in e6f32b2.


PIP-264: Enhanced OTel-based metric system

All content has been relocated as a PR based on the new process for PIPs: https://github.com/apache/pulsar/pull/21080

Still in discussion / review phases be several members of the community

The PIP which is a PR now was merged, hence closing. We'll follow up with a link to a parent issue detailing the execution plan so everyone interesting can follow up on it.

Execution plan and implementation will be tracked through https://github.com/apache/pulsar/issues/21121


Usage example for AsyncContextThread

I put together a "repro" for an issue I was having with AsyncContextThread but in the process of doing so discovered that my "issue" wasn't related to AsyncContextThread. In any case, the project with the example is at https://github.com/easel/AsyncContextThreadExample.
@StephenCleary if you have a second to look at https://github.com/easel/AsyncContextThreadExample/blob/master/AsyncContextThreadExample/Service1.cs in particular and vet it for "correctness", I'd be much appreciative. If it's useful, I can add in some more docs and such and we can link to it from the main readme as well. Let me know.

A couple of points:

OnStart should create the AsyncContextThread, not the constructor. Win32 services are kind of weird that way; most of what normally goes into the constructor should actually be in OnStart.
isRunning is not threadsafe. I recommend using a CancellationToken instead; new up a CancellationTokenSource in OnStart, pass the CancellationToken to AsyncMain, and cancel that source in OnStop.

@StephenCleary how does passing the cancellation token to AsyncMain work to replace isRunning?

A CancellationToken not only allows polling but also permits immediately responding to cancellation requests. Also, it's threadsafe, whereas a Boolean is not.


java.lang.OutOfMemoryError: Requested array size exceeds VM limit

Hi
I am processing 3GB XML using databricks utility through pyspark.  Job is getting failed with the below error. can you please let me know the recommendations to overcome with the  below error while processing data frame.
File "oozie_xml_pyspark_job.py", line 21, in
df = sqlContext.read.format('com.databricks.spark.xml').options(rowTag=rowTag).load(hdfsPath)
File "/nyl/hadoop/diskc/hadoop/yarn/local/usercache/hdpdevedmingest/appcache/application_1499712243940_3836/container_e178_1499712243940_3836_01_000001/pyspark.zip/pyspark/sql/readwriter.py", line 137, in load
File "/nyl/hadoop/diskc/hadoop/yarn/local/usercache/hdpdevedmingest/appcache/application_1499712243940_3836/container_e178_1499712243940_3836_01_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 813, in call
File "/nyl/hadoop/diskc/hadoop/yarn/local/usercache/hdpdevedmingest/appcache/application_1499712243940_3836/container_e178_1499712243940_3836_01_000001/pyspark.zip/pyspark/sql/utils.py", line 45, in deco
File "/nyl/hadoop/diskc/hadoop/yarn/local/usercache/hdpdevedmingest/appcache/application_1499712243940_3836/container_e178_1499712243940_3836_01_000001/py4j-0.9-src.zip/py4j/protocol.py", line 308, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o44.load.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 27, ha20t5003dn.tech.hdp.newyorklife.com): java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:135)
at java.io.DataOutputStream.write(DataOutputStream.java:88)
at com.databricks.spark.xml.XmlRecordReader.readUntilMatch(XmlInputFormat.scala:130)
at com.databricks.spark.xml.XmlRecordReader.next(XmlInputFormat.scala:99)
at com.databricks.spark.xml.XmlRecordReader.nextKeyValue(XmlInputFormat.scala:84)
at org.apache.spark.rdd.NewHadoopRDD$$anon$1.hasNext(NewHadoopRDD.scala:168)
at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:39)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
at scala.collection.AbstractIterator.foldLeft(Iterator.scala:1157)
at scala.collection.TraversableOnce$class.aggregate(TraversableOnce.scala:201)
at scala.collection.AbstractIterator.aggregate(Iterator.scala:1157)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$24.apply(RDD.scala:1142)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$24.apply(RDD.scala:1142)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$25.apply(RDD.scala:1143)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$25.apply(RDD.scala:1143)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$22.apply(RDD.scala:717)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$22.apply(RDD.scala:717)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:313)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:277)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:313)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:277)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1433)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1421)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1420)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1420)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:801)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:801)
at scala.Option.foreach(Option.scala:236)
at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:801)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1642)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1601)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1590)
at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:622)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1856)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1976)
at org.apache.spark.rdd.RDD$$anonfun$reduce$1.apply(RDD.scala:1032)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:111)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:323)
at org.apache.spark.rdd.RDD.reduce(RDD.scala:1014)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1.apply(RDD.scala:1157)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:111)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:323)
at org.apache.spark.rdd.RDD.treeAggregate(RDD.scala:1134)
at com.databricks.spark.xml.util.InferSchema$.infer(InferSchema.scala:60)
at com.databricks.spark.xml.XmlRelation$$anonfun$1.apply(XmlRelation.scala:52)
at com.databricks.spark.xml.XmlRelation$$anonfun$1.apply(XmlRelation.scala:52)
at scala.Option.getOrElse(Option.scala:120)
at com.databricks.spark.xml.XmlRelation.(XmlRelation.scala:51)
at com.databricks.spark.xml.DefaultSource.createRelation(DefaultSource.scala:89)
at com.databricks.spark.xml.DefaultSource.createRelation(DefaultSource.scala:43)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:158)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381)
at py4j.Gateway.invoke(Gateway.java:259)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:209)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:135)
at java.io.DataOutputStream.write(DataOutputStream.java:88)
at com.databricks.spark.xml.XmlRecordReader.readUntilMatch(XmlInputFormat.scala:130)
at com.databricks.spark.xml.XmlRecordReader.next(XmlInputFormat.scala:99)
at com.databricks.spark.xml.XmlRecordReader.nextKeyValue(XmlInputFormat.scala:84)
at org.apache.spark.rdd.NewHadoopRDD$$anon$1.hasNext(NewHadoopRDD.scala:168)
at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:39)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
at scala.collection.AbstractIterator.foldLeft(Iterator.scala:1157)
at scala.collection.TraversableOnce$class.aggregate(TraversableOnce.scala:201)
at scala.collection.AbstractIterator.aggregate(Iterator.scala:1157)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$24.apply(RDD.scala:1142)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$24.apply(RDD.scala:1142)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$25.apply(RDD.scala:1143)
at org.apache.spark.rdd.RDD$$anonfun$treeAggregate$1$$anonfun$25.apply(RDD.scala:1143)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$22.apply(RDD.scala:717)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$22.apply(RDD.scala:717)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:313)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:277)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:313)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:277)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)

Dose maybe the XML file have a single or few huge records?

XML having huge xml elements with nested structure under single root tag.
example:

blah
.
.
.

On Wed, Jul 26, 2017 at 1:31 AM, Hyukjin Kwon<EMAIL_ADDRESS>wrote:

Dose maybe the XML file have a single or few huge records?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/databricks/spark-xml/issues/263#issuecomment-317952127,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJyDIq3WxfKk35VVxbEwBUhgh4NSGdJtks5sRs8ygaJpZM4OeN5v
.

Few huge records will probably cause OOM as at least each record should be able to be loaded and parsed in single JVM. I think you should set the rootTag for the narrower elements.

I don't think we can fix this essentially within this library. I will close this for now. Will probably try to look around these codes and see if there are some places where I can optimize this soon.

How to set rootTag for narrower elements
On Jul 26, 2017 8:46 PM, "Hyukjin Kwon"<EMAIL_ADDRESS>wrote:

Few huge records will probably cause OOM as at least each record should be
able to be loaded and parsed in single JVM. I think you should set the
rootTag for the narrower elements.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/databricks/spark-xml/issues/263#issuecomment-318224238,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJyDIjDjmHdjxG9wXO__hOucRzoRvl-qks5sR93vgaJpZM4OeN5v
.

For example, setting A instead of ROOT above. Will probably think about this problem too.

As per my requirement I should store all the elements as such it present in
XML. Because under root I have a keyvalue  for all nested sections. Current
data bricks utility doesn't support to add key element to all nested
sections to identify the records for same key.
On Jul 26, 2017 9:23 PM, "Hyukjin Kwon"<EMAIL_ADDRESS>wrote:

For example, setting A instead of ROOT above. Will probably think about
this problem too.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/databricks/spark-xml/issues/263#issuecomment-318229754,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJyDIqx33nZFi5KhkNi3F_XBvSy8UruJks5sR-aIgaJpZM4OeN5v
.

I have the same issue.does it get solved?

No. I have move forward without this saprk-xml utility.  I wrote Xquery
specs to transform data into user acceptable format and loaded into hive.
On Nov 26, 2017 9:30 PM, "yechao2016"<EMAIL_ADDRESS>wrote:

I have the same issue.does it get solved?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/databricks/spark-xml/issues/263#issuecomment-347063251,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJyDIojTG4AbBmlE45A-IfCVqtWHDtS3ks5s6h7dgaJpZM4OeN5v
.

@HyukjinKwon one of our customers has brought this issue up.
Support case 00089557 .
Yes they are reading larger xml files / records.
Not sure if there is a workaround.
Thanks!

I can take support for this library @Tagar . But any customer-facing info should be internal.
I don't think there is a workaround here - the caller is asking it to read huge XML records and needs to have enough memory to do so. Add memory or reevaluate whether the rowTag can be some smaller subset of the XML.

Thank you @srowen - I sent email on this with more details.

@Tagar reminds me that the error is actually "Requested array size exceeds VM limit", which actually indicates an array growing too large. So this is actually about a single row tag that is extremely large, more than 2^31 - 1 characters. That's hard to handle without some moderate surgery throughout the code; we'd have to return potentially arrays of smaller strings and adapt everything downstream from the XmlInputFormat to parse XML broken across strings. It seems possible but would be some non-trivial surgery.


Outdated endpoints

See https://github.com/cosmos/testnets/tree/master/public#endpoints

Thanks @ivanproskuryakov !
The state-sync-01 and state-sync-02 nodes should work just fine, let us know if the inventory file doesn't work for you as-is.


Add new tool transform-split-values

Closes #20
Usage:
$ transform-split-values -h
usage: transform-split-values [-h] [-t INPUT_TSV] [-s SAMPLE_NAME]
                              [-o OUTPUT_TSV]
                              input_vcf format_field
                              {ref,alt,sum,min,max,mean,median,stdev,ref_ratio,alt_ratio}
                              [{ref,alt,sum,min,max,mean,median,stdev,ref_ratio,alt_ratio} ...]

positional arguments:
  input_vcf             The VCF file from which to extract information. Multi-
                        allelic sites must be decomposed.
  format_field          The multi-value format field to report.
  {ref,alt,sum,min,max,mean,median,stdev,ref_ratio,alt_ratio}
                        The operation to execute on the chosen genotype field.
                        ref: Extract the first value in a R-number field (the
                        reference value). alt: Extract the second value in a
                        R-number field (the alt value). sum: Calculate the sum
                        of all the numbers in the field. min: Calculate the
                        minimum of all the numbers in the field. max:
                        Calculate the maximum of all the numbers in the field.
                        mean: Calculate the mean of all the numbers in the
                        field. median: Calculate the median of all the numbers
                        in the field. stdev: Calculate the standard deviation
                        of all the numbers in the field. ref_ratio: The first
                        value in a R-number field divided by the sum of all
                        the numbers (the reference ratio). alt_ratio: The
                        second value in a R-number field divided by the sum of
                        all the numbers (the alt ratio).

optional arguments:
  -h, --help            show this help message and exit
  -t INPUT_TSV, --input_tsv INPUT_TSV
                        A TSV report file to add information to. Required
                        columns are CHROM, POS, REF, ALT. These are used to
                        match each TSV entry to a VCF entry. Must be tab-
                        delimited.
  -s SAMPLE_NAME, --sample-name SAMPLE_NAME
                        If the input_vcf contains multiple samples, the name
                        of the sample to extract information for.
  -o OUTPUT_TSV, --output-tsv OUTPUT_TSV
                        Path to write the output report TSV file. If not
                        provided, the output TSV will be written next to the
                        input VCF with a .tsv file ending.

Nice!


Add SVG support

At first I didn't see the point of doing this-- SVGs are vector images, so they never need to be resized. That said, apparently there's nothing wrong with putting an SVG in a source tag, which allows us to use art direction and serve up different images to different screen sizes.
It'll need a new srcset format (which will be just a link to the SVG file). We won't give it to imagemagick for processing, we'll just copy it from the source directory to the output format.

This would be helpful for one of my pages which has nice small SVGs for browsers which support it but PNGs for those which don't for whatever reason. SVG images could still be optimized - strip extraneous tags and comments and whatnot from the generated file, while keeping the original source pristine

It appears that Imagemagick does understand SVGs and can create PNGs from them, so that part can be done. Optimizing SVGs would require another dependency, and I'm not sure that falls in the scope of this plugin.
Pull requests are certainly welcome here!

https://github.com/vlastavesely/svgmin/blob/master/svgmin#L17

According to the readme, that script requires the user to have inkscape installed; I really don't want to add that dependency to this project. I think you'd be better off with a dedicated SVG optimization plugin, which feeds into this plugin. Then you'd get the best of both worlds!
I'm super busy with other projects right now so I'm not sure when I can get to adding this functionality, but it's on my list and I'll get to it when I can. Thanks for yall's patience!

According to the readme, that script requires the user to have inkscape installed; I really don't want to add that dependency to this project.

Inkscape is only used for normalising the SVG. The code for minifying the XML is pure ruby and looks to be some regexy majic.
TBH, built-in SVG miniying is not needed.
What I came to this project for was a simple egenrator that genereated the images in a picture tag, ordered by file size, so the browser could pick the best one for it.
For example, if I had cartoon.svg, it would convert it into formats, like:

jpg
png
webp

it would then order them and the original by size, eg:

svg
webp
jpg
png

it would then put them into a picture tag, with a configurable fallback.
<picture>
  <source srcset="cartoon.svg" type="image/svg+xml">
  <source srcset="cartoon.webp" type="image/webp">
  <source srcset="cartoon.jpg" type="image/jpeg">
  <source srcset="cartoon.png" type="image/png">
  <img src="cartoon.png">
</picture>

I got better than that, with auto-resizing, caching, config and more.
The only thing that is missing, is just converting SVGs to the other formats. That's all that needs to happen, and as Imagemagick understands SVGs, it should be easy.

I'm super busy with other projects right now so I'm not sure when I can get to adding this functionality, but it's on my list and I'll get to it when I can. Thanks for yall's patience!

that's OK, I'll give it a go myself tomorrow.


Document the process for releasing a new methodology version

Any manual steps that have to be executed in order to release a new version of the methodology need to be documented for future teams that support the CEJST.

@KameronKerger can you put the mock for previous versions page on this issue?

First step of this is to generate a versioning architectural document with both the backend and frontend components, and I will schedule a meeting with the group to gather feedback.


extract stats before and after QC

not needed as in gen R they didn't redraw everything. looked good when looking at it


feat(docusaurus-theme-common): classify Chinese tag into alphabet

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[x] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[x] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

The Chinese tags in blog tag list page would be categoried into the first word, e.g. 测(from 测试), and 开(from 开发), which leads to the problem of managing tags, since there are too many Chinese characters rather than just 26 in English.
Research
There are a few of solutions to force the Chinese tag to be categoried into English alphebet, e.g. rearrange the doms on the frontend. But indeed, the best choice is to enhance the prior function of getTagLetter in packages/docusaurus-theme-common/src/utils/tagsUtils.ts, since it's just where the job works, i.e. converting the input string to be the first letter.
Solution
I got one copy of Chinese map (pinyin -> character) from the project of simple-pinyin (if it's illegal please tell me since I do not know licence relative well), and transformed into the reversed shape (character -> pinyin), so that we can do one step furtuer (pinyin -> alphebet).
I did think about the extensible problem, since it would be costly if we added the otherwise unnecessary step to check whether a tag is Chinese. Hence, I added one parameter of lang in order to compat with other potential languages.
Result

Notes

packages/docusaurus-theme-common/src/utils/pinyin/src/index.ts provides the interface to get leading pinyin from a Chinese word, which is integrated with docusaurus-theme-common.
packages/docusaurus-theme-common/src/utils/pinyin/src/genMap/* are for generating the target map, which is individual with the main processs.
Now there is 6743 Chinese charaters (check at packages/docusaurus-theme-common/src/utils/pinyin/data/pinyin.json), which covers the majority of tagging scenarios, and it's quite easy to be extended (e.g. 繁體字).

Test Plan

Test links

No test links to be shared, except a sample at: https://markshawn2020.github.io/keeps-learning/blog/tags.
And the unit-test is at: packages/docusaurus-theme-common/src/utils/__tests__/ChineseWord2Pinyin.ts.
Related issues/PRs

None.

Hi—sorry, I don't really want to take this. It's a hassle for the team to maintain (despite me being Chinese), and it bloats the bundle size for everybody. You are free to implement this solution in userland through swizzling. Thank you for taking interest in this!
Once we make theme enhancements more ergonomic (tracked in #4530), you can consider publishing this as a community theme.

I tried sizzling but it only provides the ability to customize UI layer, so I do suggest exposing more functional-hooks, just like what the remark/rehype plugin does.

theme-common is theme-side—while remark/rehype is server-side. If you could do it at server-side (by exposing some kind of metadata) then great; but here you are still doing it in a UI layer, just abstracting it into a hook.

Yep,  just abstracting it into a hook, and indeed we really do not care too much which side the code would be running.

First, thanks for your real-time work yesterday  @Josh-Cena .
By the way, could you please provide me a best-practice on how to develop and deploy my own site based on docusaurus, when I had to customize some implementations individually?
There seems to be two optional solutions for me:

keep working on a self-dev branch based on main, customizetheme-common or any other packages in depth, and build my website under a new-created workspace naming my-website, which has a similar project strucuture with webstie but only not contents

pros: easier to customize themes, run-time logics, or to develop a plugin
cons: harder to keep pace with the main branch, especially when I wanna issue a new PR

keep working on the starter branch, which hides all the packages under its node_modules

pros: better for focusing only on docs and blogs with a cleaner project structure
cons: harder to customize the underlying framework


Make pytorch model compatible with TorchScript/torch.jit.save

Changes a few bits of syntax that the TorchScript compiler doesn't support:

vararg expansion in view and reshape. Both of these support being passed a list instead.
Mixing int and float in a ternary
TorchScript assumes that the module's forward function will return a single Tensor or it raises a Expected Tensor but got Tuple error on deserialization. To accomplish this, but otherwise make minimal changes to the structure of the code I assign the loss result to an attribute which can be accessed from the calling context.

Also added a small python script for demonstrating how to save the model.

Unrelated and would do it in seperate PR, but would you consider a .gitignore or something like:
data/
__pycache__/
run
stories*.bin
*.pt

ok i see, i'll take it thanks


new "optionals platform" for testing optional EOSIO components in CI

Change Description

Create a new "optionals platform" that will be used to build and test optional components of EOSIO. At the moment, nothing new is in this platform compared to our normal builds. This platform will be leveraged shortly for TPM & rodeos though.
A platform is used for this purpose instead of a new pipeline so that we ensure optional components are built and tested upfront on each PR. Compare to something like the script build pipeline which can go unchecked since it's not part of the main pipeline. Also, we can't include optional functionality in pinned builds because pinned builds get baked in to our binaries. So, we're left with the only option being somewhere in the unpinned group, and I didn't feel like adding this to either all or a single existing unpinned build(s) was appropriate.
The actual platform used for the "optional platform" is not meant to particularly matter. At the moment I've used Debian 10 as it tends to scrape the bottom of our requirements more so than other platforms (e.g. having Boost 1.67), so I considered it an interesting addition from a diversity standpoint. But this is fine to change around now or in the future.
Pipeline generation scripts really want a version for a platform though. I just called it version "NA" because I really wanted this platform to not convey a rigid identity of a platform (and didn't want to hack up the pipeline generation scripts).
⚠ Users who which to leverage this platform for new tests will need to be very mindful of non-parallelizable tests. We will likely be unable to support different non-parallelizable tests between normal and optional builds. See #9719 for more reasons why. This may be most interesting for rodeos -- it may mean the tests can only be done over a unix socket (so that we can include the tests in the parallelizeable test set).
Change Type
Select ONE:

[ ] Documentation

[ ] Stability bug fix

[ ] Other

[ ] Other - special case

Testing Changes
Select ANY that apply:

[ ] New Tests

[ ] Existing Tests

[ ] Test Framework

[x] CI System

[ ] Other

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

I think this work deserves its own pipeline. Maybe something like eosio-extras, eosio-components, or even eosio-optionals (but I think "optional" is a funny name for a required check).

A platform is used for this purpose instead of a new pipeline so that we ensure optional components are built and tested upfront on each PR. Compare to something like the script build pipeline which can go unchecked since it's not part of the main pipeline.

We can definitely make the new pipeline a required check for pull requests. I don't remember why the eosio-build-scripts pipeline is not a required check. Probably because they take too long to run, but maybe to conserve macOS agents, or maybe because the build scripts were supposed to be deleted. But this is not a limitation of Buildkite or GitHub.

Also, we can't include optional functionality in pinned builds because pinned builds get baked in to our binaries. So, we're left with the only option being somewhere in the unpinned group, and I didn't feel like adding this to either all or a single existing unpinned build(s) was appropriate.

This gives me more confidence this should be a separate pipeline. It feels very out-of-place in the eosio or eosio-build-unpinned pipelines. This is running a new test suite on a new platform, which in itself is fine, but we had to "trick" the pipeline upload script by feeding it nonsense values for the OS and version number, which feels jankity, and we still can only test half of what we want to. A new pipeline could have a pinned and unpinned step in the same build.
We could help you wire this up, as needed. Thoughts?

Wonderful! I am closing service item AUTO-1313 for this peer-review and opening story AUTO-1374 in its place to collaborate with you to build out an eosio-optional-component Buildkite pipeline that will trigger on pushes and merges, and will be a required check for all pull requests.

Wonderful! I am closing service item AUTO-1313 for this peer-review and opening story AUTO-1374 in its place to collaborate with you to build out an eosio-optional-component Buildkite pipeline that will trigger on pushes and merges, and will be a required check for all pull requests.

ETA please?