Faster boot times and Reproducible builds

This pull request has 2 intermingled functional changes. Reducing the time from power on to splash screen and a method for producing deterministic reproducible builds. The main reason these changes are intermingled is because both required the reduction of build dependencies. Specific reproducible steps could be pulled out into its own, but this felt like unnecessary and time consuming work.
Faster boot times don’t need much explanation. I measure the pi0 board booting in 15 seconds instead of 45 in release 0.6.0. The image size is 27262976 bytes total (compared to the previous release at 35652096 bytes, an 8MB of savings).
Having a SeedSigner OS reproducible build allows creation of the image to be compiled and assembled deterministically. This makes it possible for multiple people to compile the same source code into identical binaries. This also means sole trust in SeedSigner the person (or any other SeedSigner contributors) isn’t needed for the image that most people run on thier SeedSigner. This trust can be distributed through others attesting they to can produce the same image byte for byte. Also for those who compile the image themselves, they have a way to verify the image produced is identical to the one released.
Here is a breakdown of configuration and script changes made to accomplish these 2 larger functional goals.

Update buildroot sub module to more modern version (2023.02). I didn’t want to do a deep dependency dive on an older version and then later upgrade.
Use buildroot fork controlled by seedsigner account. This patched fork forces use of python 3.10.10 and does the python build in a reproducible way.
Remove python-qrcode external package because it’s now a buildroot standard package.
Update build.sh script to replace --keep-alive and --skip-build with --no-op option. The --no-op option is the new default that performs no action but keeps the docker container running indefinitely.
Update build.sh script to allow checkout of a specific app commit and defaults to the dev branch.
Update docker-compose to pull specific apt packages
Update README
Other minor cleanup items

This PR replaces #45 and #34.
Written instructions for how to create reproducible builds:
https://gist.github.com/newtonick/2df134a84fd04398bd925a000e979112
Known issues with this PR:

USB Keyboard does not work in Pi4 dev build
Mdev does not work in Pi4 and Pi4 dev builds

My reproducible build testing results. All builds done with amd64 architecture. I will update this table as I complete builds.

Build Script Options
Image File Name
sha256  Output

--pi0 --app-commit-id=9c36f5c
seedsigner_os.9c36f5c.pi0.img
29e41c ... 28b036

--pi2 --app-commit-id=9c36f5c
seedsigner_os.9c36f5c.pi2.img
2f470d ... 85e6a9

Success on M1 Pro!!!

2hrs 38min
Note on macOS it's shasum -a 256 [file]

Your gist is such detailed work that I think I learned more about building seedsigner-os in this one document than I have in the past.  I love the alternate methods and explanations.  I'll note that I recall a discussion like: "Maybe a pre-release and docs for public scrutiny aren't necessary upfront?" and "Maybe not a show-stopper if pi2 and pi4 boards are not supported right away?"... and then you went on to slay them both... all reproducible, all exactly the same file sizes, Wow!
As of your gist at "Revisions=24"...
I've attempted a proof-read from top to bottom: minor typos:

"others attesting they to can produce" becomes "others attesting they too can produce"
"You should now have an shell session open" becomes "You should now have a shell session open"
"You'll need to clone to app repo first" becomes "You'll need to clone the app repo first"
"This will produce a produce a list" becomes "This will produce a list"
header "install Docker and my recommend configurations" becomes "install Docker and my recommended configurations"

I've followed the instructions, cutting and pasting from your gist, w/o major problems:

pi0, pi02w and pi2 built w/ "You want more?" instructions (last 2 w/ modified build.sh commandlines).
pi4 built from same container, except w/ "Still not satisfied?" instructions and modified make commandline.
There was visible error-output in the find...-delete command:
find: cannot delete ‘/opt/rootfs-overlay/opt’: Directory not empty
... but it did do it's job -- only src/ remained.
Because I had just built for pi2 and output/ was there, I had to rm -rf /output inside the container, then run the two make commands again, modifying the first for pi4.
Afterwards, I did cp /output/images/seedsigner-os.img /images/ and renamed it to be more appropriate for my pi4 build.
the "Bonus Round" commands all worked. For a quick comparison, the sha256 hash of my rootfs.md5.chk file is
e9745263f0d149a50b109c29f230092cdefe74a9e15ef5c33dca663c6fdb5edb.
...but I did get a single line of diff output after comparing. Yours has:
d41d8cd98f00b204e9800998ecf8427e  ./dev/console while mine does not; all others are same in rootfs for the pi0 image. (might your's have been from a previous build?)
each build ran in just under 40m on Ubuntu/x86_64 system w/ 4-core-Xeon and 16GB RAM -- via user-space docker.
I did NOT try the docker compose up one-liner (because I don't have docker-compose).

Reproduced images for all supported boards appear to match your sha256 hashes; as for this attestation:
$ sha256sum ./images/*
f99d1b27b77264319fbc747c9b3e47c617445002826b248ae2cb8ce9b9be20bc  ./images/seedsigner_os.9c36f5c.pi02w.img
29e41cccf0ca93705901bacd5d605da884f9b8315cfd978910698c2f8e28b036  ./images/seedsigner_os.9c36f5c.pi0.img
2f470dfca0491d97696ccdd9c45104cb1bab0af52a8405e85ef7fbc7cf85e6a9  ./images/seedsigner_os.9c36f5c.pi2.img
d295148e754f48504f559daf50ac92ed8ca2b94b2b22bfbd214cd49146ee4c5c  ./images/seedsigner_os.9c36f5c.pi4.img

The images for the pi0, pi2, and pi4 all boot fast and succeed the "I/O test" (w/ camera_rotation=0 as expected).

pi0 splash at ~15s, main menu at ~26s
pi2 splash at ~11s, main menu at ~20s
pi4 splash at ~16s, main menu at ~23s
I did NOT test the pi02w image.

Notes for running in a LunaNode VPS:
Why do the reproducible build in a Virtual Machine(VM)?
The build should be straightforward on a Linux OS but is potentially hopeless on Windows. Windows users are much better off avoiding the Windows complications altogether and building instead on a brand new Ubuntu VM that starts pristine and will be discarded as soon as the build is done.
Why LunaNode?

It's a very easy UI to spin up a new virtual machine (VM).
aws is overkill and too complicated for this kind of simple task.
They have a free trial for new users (almost definitely sufficient for our build).
Can initially fund an account with as little as $5 (that's way more than enough to do the build)
Accepts Lightning!

Create LunaNode instance:

Create an account w/email addr
Use their free trial or fund account with $5 in Lightning via their btcpay server
Click "Create VM" in the left nav menu
Select region: Toronto (only option available)
Hostname: anything you want (e.g. "seedsigner_builder")
Plan: Select the "Compute Optimized" instance category and choose at least "c.2".
Image: Ubuntu-22.04

Once it's created:

click into the new instance details
go to the "CPU" tab
Enable "Pay for CPU utilization above baseline performance?"
go to the "General" tab
note its External IP
note the password in "Initial login details".

ssh into VM
From a local terminal: ssh ubuntu@[server's public ip] and use the password from above when prompted.
Install Docker
Once inside the new VM, install Docker via the convenience script: https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script
(if the script fails with "Unable to acquire the dpkg frontend lock", just wait a minute or two; the new VM is still running its initial setup steps)
Or if you want more control, you can do a manual install:
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
Configure Docker permissions
The convenience script recommends a follow-up step to take care of this part:
sudo apt-get install -y uidmap
dockerd-rootless-setuptool.sh install

Or you can do it manually:
Steps 1-4: https://docs.docker.com/engine/install/linux-postinstall/
Confirm your Docker setup
docker run hello-world
Build SeedSigner-OS image
(follow @newtonick's notes from there; shouldn't need any modifications now that we're in a totally standard Ubuntu VM)
Build time on a c.2 image: (still working)
Copying the resulting .img off the VM
??
Shouldn't be necessary if the hashes match; you can be confident that downloading the release image from the SeedSigner github repo is identical to building it yourself.
Delete the LunaNode VM instance
In the LunaNode "Virtual Machines" page, click on your instance, and then click the red "Delete" button at the top right and follow the instructions.

the hash matches on my Ubuntu LTS 20.04 VM. fantastic work, @newtonick !

"others attesting they to can produce" becomes "others attesting they too can produce"
"You should now have an shell session open" becomes "You should now have a shell session open"
"You'll need to clone to app repo first" becomes "You'll need to clone the app repo first"
"This will produce a produce a list" becomes "This will produce a list"
header "install Docker and my recommend configurations" becomes "install Docker and my recommended configurations"

Thank you for these, I have applied these updates to the gist.

Your gist is such detailed work that I think I learned more about building seedsigner-os in this one document than I have in the past. I love the alternate methods and explanations. I'll note that I recall a discussion like: "Maybe a pre-release and docs for public scrutiny aren't necessary upfront?" and "Maybe not a show-stopper if pi2 and pi4 boards are not supported right away?"... and then you went on to slay them both... all reproducible, all exactly the same file sizes, Wow!
As of your gist at "Revisions=24"...
I've attempted a proof-read from top to bottom: minor typos:

"others attesting they to can produce" becomes "others attesting they too can produce"
"You should now have an shell session open" becomes "You should now have a shell session open"
"You'll need to clone to app repo first" becomes "You'll need to clone the app repo first"
"This will produce a produce a list" becomes "This will produce a list"
header "install Docker and my recommend configurations" becomes "install Docker and my recommended configurations"

I've followed the instructions, cutting and pasting from your gist, w/o major problems:

pi0, pi02w and pi2 built w/ "You want more?" instructions (last 2 w/ modified build.sh commandlines).
pi4 built from same container, except w/ "Still not satisfied?" instructions and modified make commandline.
There was visible error-output in the find...-delete command:
find: cannot delete ‘/opt/rootfs-overlay/opt’: Directory not empty
... but it did do it's job -- only src/ remained.
Because I had just built for pi2 and output/ was there, I had to rm -rf /output inside the container, then run the two make commands again, modifying the first for pi4.
Afterwards, I did cp /output/images/seedsigner-os.img /images/ and renamed it to be more appropriate for my pi4 build.
the "Bonus Round" commands all worked. For a quick comparison, the sha256 hash of my rootfs.md5.chk file is
e9745263f0d149a50b109c29f230092cdefe74a9e15ef5c33dca663c6fdb5edb.
...but I did get a single line of diff output after comparing. Yours has:
d41d8cd98f00b204e9800998ecf8427e  ./dev/console while mine does not; all others are same in rootfs for the pi0 image. (might your's have been from a previous build?)
each build ran in just under 40m on Ubuntu/x86_64 system w/ 4-core-Xeon and 16GB RAM -- via user-space docker.
I did NOT try the docker compose up one-liner (because I don't have docker-compose).

Reproduced images for all supported boards appear to match your sha256 hashes; as for this attestation:
$ sha256sum ./images/*
f99d1b27b77264319fbc747c9b3e47c617445002826b248ae2cb8ce9b9be20bc  ./images/seedsigner_os.9c36f5c.pi02w.img
29e41cccf0ca93705901bacd5d605da884f9b8315cfd978910698c2f8e28b036  ./images/seedsigner_os.9c36f5c.pi0.img
2f470dfca0491d97696ccdd9c45104cb1bab0af52a8405e85ef7fbc7cf85e6a9  ./images/seedsigner_os.9c36f5c.pi2.img
d295148e754f48504f559daf50ac92ed8ca2b94b2b22bfbd214cd49146ee4c5c  ./images/seedsigner_os.9c36f5c.pi4.img

The images for the pi0, pi2, and pi4 all boot fast and succeed the "I/O test" (w/ camera_rotation=0 as expected).

pi0 splash at ~15s, main menu at ~26s
pi2 splash at ~11s, main menu at ~20s
pi4 splash at ~16s, main menu at ~23s
I did NOT test the pi02w image.

Great comments and feedback. Thank you for the thorough testing!

Worked in my seedsigner Debian 11 lxd container for the pi0 image:
Took about 1 1/2 hours with 2 CPUs assigned (nearly all the time at 99%). Disk space needed for Debian and image build: about 14GB

Worked also in my Windows 10 (WSL2/Ubuntu Terminal) for the pi0 image with the one-liner command (now less than 40 minutes with 6 CPU cores):

@jahangir13 maybe my mistake was trying to have Docker Desktop in Windows run the Docker service for WSL2.
I'll see if I can go back and stay purely in Ubuntu/WSL2.

@jahangir13 maybe my mistake was trying to have Docker Desktop in Windows run the Docker service for WSL2.
I'll see if I can go back and stay purely in Ubuntu/WSL2.

Yes, exactly. I just opened the Ubuntu Terminal (I did not start Docker Desktop at all). Then installed docker stuff in the Terminal (so in Ubuntu). I now also give up with Powershell for now,

I also discovered that when Docker Desktop had the WSL2 integration enabled, it was slamming my loud HDD zzt-zzt-zzt-zzt nonstop. For hours. Likely forever.
As soon as I stopped Docker Desktop, all those read/writes stopped. When I disabled the WSL2 integration and Docker Desktop restarted, it left my HDD in peace.

Another confirmation, via twitter (yes, weight it accordingly)
https://twitter.com/4moonsettler/status/1682057433298894852

Big f'n ACK.
I'm satisfied that it works on enough platforms. Documentation and step-by-step guidance (esp for Windows) still needed, but recommend that be done in follow up PRs (and can be submitted by more contributors to distribute the workload).

I've finally succeeded with the one-liner method, for pi2-dev.  sha256sum looks like:
b7f738035f4794b0f8b50afd07a25d980345868690864830ea3867ab05dfca00  ../seedsigner-os/images/seedsigner_os.9c36f5c.pi2-dev.img
ACK

On the VPS topic, just another example of building on VPS. Here is a Linode VPS script I have used to build a test SeedSigner OS image. It's 100% command line through Linodes command line client. I'm sharing it because it's an example of building the SeedSigner OS image without docker.
Create Linode VPS
export LINODE_TMP_ROOT_PASSWD=$(head /dev/urandom | LC_ALL=C tr -dc A-Za-z0-9 | head -c 20)
echo "Linode Root Password: ${LINODE_TMP_ROOT_PASSWD}"
export LINODE_TMP_SSH_AUTH_KEY=$(cat ~/.ssh/id_ed25519.pub)

linode-cli linodes create \
 --type g6-dedicated-8 \
 --region us-east \
 --image linode/debian11 \
 --root_pass ${LINODE_TMP_ROOT_PASSWD} \
 --authorized_keys "${LINODE_TMP_SSH_AUTH_KEY}" \
 --label seedsigner-os

export LINODE_SEEDSIGNER_OS_IP=$(linode-cli linodes ls --label seedsigner-os --json | jq -r '.[0].ipv4[0]')

Connect via SSH to VPS once server is provisioned and starts sshd service
ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" root@${LINODE_SEEDSIGNER_OS_IP}

Install Docker, Docker Compose and then Build the SeedSigner OS Image on VPS
apt update -qq
apt install  -qq -y ca-certificates curl gnupg

# Add Docker’s official GPG key:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

# Use the following command to set up the repository:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker Engine and Docker Compose.
apt update -qq
sudo apt-get install -y docker-ce docker-ce-cli docker-compose-plugin

# Build SeedSigner OS Image
git clone --recursive https://github.com/SeedSigner/seedsigner-os.git
cd seedsigner-os
git fetch origin pull/51/head:pr_51
git checkout pr_51
git submodule update
DOCKER_DEFAULT_PLATFORM="linux/amd64" SS_ARGS="--pi0 --app-commit-id=9c36f5c" docker compose up --force-recreate --build
uptime
exit

Delete Linode VPS when done
export LINODE_SEEDSIGNER_OS_ID=$(linode-cli linodes ls --label seedsigner-os --json | jq -r '.[0].id')
linode-cli linodes delete ${LINODE_SEEDSIGNER_OS_ID}

Output, last few lines for reference
42 minutes of uptime to build in this one example
seedsigner-os-build-images-1  | /opt/buildroot
seedsigner-os-build-images-1  | 29e41cccf0ca93705901bacd5d605da884f9b8315cfd978910698c2f8e28b036  /opt/../images/seedsigner_os.9c36f5c.pi0.img
seedsigner-os-build-images-1 exited with code 0
root@localhost:~/seedsigner-os# uptime
 21:06:08 up 42 min,  1 users,  load average: 3.77, 4.89, 4.32
root@localhost:~/seedsigner-os# exit
logout
Connection to <IP_ADDRESS> closed.
user@machine ~ % export LINODE_SEEDSIGNER_OS_ID=$(linode-cli linodes ls --label seedsigner-os --json | jq -r '.[0].id')
linode-cli linodes delete ${LINODE_SEEDSIGNER_OS_ID}

This is amazing! If only all open source projects had this type of thorough documentation for their repro builds. Amazing work @newtonick

Windows Success using docker desktop !! (via the single line command )
The pi02w hash matches !
f99d1b27b77264319fbc747c9b3e47c617445002826b248ae2cb8ce9b9be20bc

As I was running the following command ./build.sh --pi0 --app-commit-id=9c36f5c I noticed in the very numerous text that was scrolling through the terminal that there was a connection to http://mirrors.tripadvisor.com/gnu/mpc/mpc-1.2.1.tar.gz in there (see last lines of screenshot below). Why is there a connection to tripadvisor.com?!

http://mirrors.tripadvisor.com/gnu/mpc/mpc-1.2.1.tar.gz

They provide a GNU mirror server (as you also could do).
These can be seen in this list: https://www.gnu.org/prep/ftp.en.html
And depending on your location and network state it selects one from the list:

http://mirrors.tripadvisor.com/gnu/mpc/mpc-1.2.1.tar.gz

They provide a GNU mirror server (as you also could do). These can be seen in this list: https://www.gnu.org/prep/ftp.en.html
And depending on your location and network state it selects one from the list:
At least this is my understanding ;)

That is VERY interesting. Never thought a company like TripAdvisor would provide a GNU mirror. Is there any benefit to them to do that or would it just be something they do because they believe in the project?

Feedback on this PR. The instructions are great but there is one small detail missing for those of us that are not very familiar with Docker: how do you pull or transfer the image that's created after ./build.sh --pi0 --app-commit-id=9c36f5c  from the Docker container to the host? Is this even necessary or can you flash from within Docker container?


Align socket API with libuv

This pull request aims to align the libudx socket API with the UDP API of libuv. Some of the current differences became especially notable when aligning the libudx bindings with the filesystem bindings, both for React Native.

I've limited this to the socket API as it seems like there's still some work to do on the streams API before aligning it with libuv makes sense.

@mafintosh Is there a reason for the choice of const char *buf, size_t buf_len instead of uv_buf_t?

no, only that the lifecycle has to be very explicit docs wise if we use uv_buf_t (ie do you need to keep that reference alive or is it copying the pointers internally)

libuv takes the simple approach and always passes uv_buf_t by value. It's a tiny struct after all.

Ya that works

libuv takes the simple approach and always passes uv_buf_t by value

Drive-by comment from a libuv developer: the libuv library does not normally pass uv_buf_t by value. It nearly always takes in a pointer to an array of them which is ABI-compatible with the underlying syscall (for example, pwritev).

I missed that, thanks so much for the clarification! 🙏

I don't know enough about C to answer my next question: Is passing a single struct with a sizeof() n any different from passing two or more arguments with a combined sizeof() n? Won't the resulting stack frame have the exact same size?
If so, I'd guess that passing a uv_buf_t would be equivalent to passing a char * plus a size_t.

Some ABI (notably Win64) pass a struct by pointer, regardless of the size. Most have a cutoff of 1-2 qwords where they will use memory instead of registers. Some (notably x86) always use memory for argument passing. Generally the platform ABI is attempting to pick whichever is assumed to be fastest.

That's super useful information, thanks!

@mafintosh This is good to go from my end.


make test-hooks-sample-warning functional again

These changes are now subsumed by https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/411.


Use _CalendarGregorian as the backing calendar for struct Calendar

Fix precision issues around nanoseconds calculation.

Update test expectations.

Lessen the chance of overflowing func add(:) by using Double

We eventually convert to Double before return anyways.

Disable TestDateComponentsDiscreteConformance.testRandomSamples temporarily for 32-bit platforms

This test triggers code path that has wrong assumption on Calendar API's return value, and overflows when the input dates are distant from each other. Disable it for now. Will track the fix in 123262305
Resolves 123318367

@swift-ci please test


The distribution zip is missing variable.js

It contains only .qext and its size is only 1KB. Probably, the build script didn't work properly.

Adding it manually doesn't help either. Console shows: Uncaught SyntaxError: Unexpected token <

Ended up using this commit: https://github.com/erikwett/qsVariable/blob/2336f25ca0c444adb7671b79d7e95381277fe9d1/dist/variable.zip

Should be OK now

It works now. Thank you for the super-fast resolution :)
Very well made extension. Appreciate your work @erikwett  !


read stderr on a different thread

Closes #8528.

It seems to be gone out moved, is it this one? https://docs.rs/cargo-semverver/0.34.0/src/cargo/util/read2.rs.html#12-75
I'm not sure it's worth the portability cost, speaking of "perfect is the enemy of the good". Even if it was possible to implement it in a portable way, doesn't it make parsing the message stream harder or slower?

Found it in https://github.com/rust-lang/cargo/blob/master/crates/cargo-util/src/read2.rs.

I do think it’s worth it: the code in cargo has been battle-tested and
should be bug free
On Monday, 19 April 2021, Laurențiu Nicola @.***> wrote:

Found it in https://github.com/rust-lang/cargo/blob/master/crates/
cargo-util/src/read2.rs.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/pull/8590#issuecomment-822767530,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3M2QM7HHONJ5JFK52UDTJSH2DANCNFSM43GONAGA
.

I'll try to handle this now

Yes, thanks! I brought the function into stdx and managed to call it but was unable to map a bunch of Vecs into a line-by-line iterator.
Will keep an eye on the fix.

I think we can bring exec_with_streaming into RA too:
https://github.com/rust-lang/cargo/blob/58a961314437258065e23cb6316dfc121d96fb71/crates/cargo-util/src/process_builder.rs#L231

yeah, doing exactly that: https://github.com/rust-analyzer/rust-analyzer/pull/8600/files#diff-70e86436492ed0d5d999230e198d7c0ab2bf889a2f4d727dd4dee0df8d0a615fR7

#8600 uses I/O Completion ports


Is there a way to block programs like lucky patcher?

So I have implemented react-native-billing for android and it works very fine. But some of my friend just warned me that lucky patcher breaks it and buys things without really paying. Well I see that so I can manually block it but, is there a other way to stop it with codes?
Here is my codes, what I should add there?
 try {
            await InAppBilling.open();
            InAppBilling.purchase(this.state.bronzemembership).then((x) => {
                if(x) {
                    InAppBilling.consumePurchase(this.state.bronzemembership).then((x) => {
                        if(x) {
                            this.buyPremium(1)
                        }
                        else{

                        }
                    })
                }
                else{
                }
            }).
            catch(() => ToastAndroid.show("You have canceled your purchase", ToastAndroid.SHORT))

        } catch (err) {
            alert(err);
            this.setState({ error: JSON.stringify(err) });
            await InAppBilling.close();
        }

Hi there!
It would probably require some native code, since Lucky Patcher patches the native-side of the APK, not the JS-code. See for example: https://stackoverflow.com/questions/13445598/lucky-patcher-how-can-i-protect-from-it
One way could also be to implement a server-side check (probably more reliable): https://stackoverflow.com/questions/33850864/how-to-verify-purchase-for-android-app-in-server-side-google-play-in-app-billin
But, both of these methods are strictly out-of-scope for this library, and it is something you would have to implement.
I recommend doing a cost/benefit-analysis of how big a problem you think this will actually be, versus how much work you think it would be to develop counter-measures. My guess is, it will not be worth your time to defend against a few unreliable customers. They are not the kind who would pay for in-app purchases in the first place.

Yeah I guess best way to just monitor these things daily and block those people who does it. Because I can just compare in my back-end see who bought something and compare in google if it was real purchase.
Thanks for explaining nicely, anyways maybe it will be helping other people.


BUG GroupedDropdownFIeld does not validate selected value

See #3921 for temporary fix.
During a rewrite of FormField validation this field was broken and made unusable, thus this temporary fix was merged to allow it to be used, although without working validation. A full solution should include a reimplementation of DropdownField::validate for GroupedDropdownField

PR here: #4223

Fixed with https://github.com/silverstripe/silverstripe-framework/pull/4223


Feature Request (or Guidance Request): Frame-by-Frame Processing with ONNX Export in Flash Linear Attention Model

Feature request
I am working with flash linear attention (FLA) model and aiming to process data in a frame-by-frame manner with [batch, frame, feature] input format. Additionally, I am looking to export the model to ONNX for broader deployment options. However, I'm not entirely familiar with all aspects of the repository, so it’s possible that I might have missed some existing functionality or best practices for achieving this.
Motivation
To use the FLA models in other applications, I would need to process data on a frame-by-frame basis while maintaining states across frames (for real-time applications). I’ve also found ONNX compatibility interesting for deployment but am unsure if the current implementation of the FLA model fully supports this export with state preservation between frames.
Your contribution
Here is a quick script that shows what I'm looking into.
import torch

batch_size, num_heads, seq_len, hidden_size = 6, 4, 128, 256
device, dtype = 'cuda', torch.float32
RWKV6 = fla.layers.RWKV6Attention(hidden_size=hidden_size, num_heads=num_heads).to(device=device, dtype=dtype)

x = torch.randn(batch_size, seq_len, hidden_size).to(device=device, dtype=dtype)
y, *_ = RWKV6(x)

from fla.models.utils import Cache
data = torch.randn(batch_size, seq_len, hidden_size).to(device=device, dtype=dtype)
initial_cache = Cache(seen_tokens=0)

past_key_values = initial_cache  # Use initialized cache as starting states
outputs_frame_by_frame = []

for frame_idx in range(seq_len):
    frame_data = data[:, frame_idx:frame_idx+1, :]  # Shape: [batch, 1, feature]
    frame_output, _, past_key_values = RWKV6(
        frame_data,
        past_key_values=past_key_values,
        use_cache=True
    )
    past_key_values = past_key_values  # Update the cache for the next frame
    outputs_frame_by_frame.append(frame_output)

final_output_frame_by_frame = torch.cat(outputs_frame_by_frame, dim=1)  # Shape: [batch, total_frames, hidden_size]

final_output_all_at_once, _, _ = RWKV6(
    data,
    past_key_values=None,  # Start with the same initialized states
    use_cache=False
)

difference = torch.abs(final_output_frame_by_frame - final_output_all_at_once)
max_difference = torch.max(difference)
mean_difference = torch.mean(difference)

print(f"Max difference: {max_difference.item()}")
print(f"Mean difference: {mean_difference.item()}")

@LarocheC Hello, if u do need to use fla in a frame-by-frame manner, the above code is ok for me. I think the above logic is essentially what the hf api model.generate involves.
Pay careful attention to past_key_values  management and you may need to preallocate the storage for all the outputs for faster decoding.
Regarding ONNX, I'm not familiar with this before 😢 . Are u interested in making any PRs for it? fla models are entirely compatible with hf-style.

Hi @yzhangcs
Thank you for the response and the guidance!
I’m unfamiliar with the model.generate API, but before I proceed, I’ll try to use it to reproduce the frame-by-frame processing you suggested.
Regarding ONNX, I do have some experience converting RNN models to ONNX and handling states externally (which is necessary for real-time applications), so I’ll look into whether a similar approach could be applied here for the FLA model.
Do you think this would be a relevant feature for the repository? I’d be open to exploring it further if it could add value.
Thanks again for your help!

@LarocheC your contributions are welcome if you are interested in!
You can add scripts here.


Add rake image_optim

Add a toolkit to run image optimization.
How to use
Prerequisites

Ruby
Check if you have Ruby: ruby -v
If not, try https://github.com/rbenv/rbenv
Bundler. Needs Ruby.
Check if you have Bundler: bundle version
If not, run gem install bundler
Ruby gems. Needs Bundler.
To install all required Ruby gems, change directory to the _jekyll directory and install dependencies listed in the Gemfile with Bundler: cd _jekyll && bundle install.

Usage
Change directory to the _jekyll directory:
cd _jekyll

To run optimization for the images you've just added or modified but have not yet committed:
rake image_optim

To run optimization recursively for any other images using path, use path argument. Note, that you are running rake commands from the _jekyll directory, that's why your path should start from ../ to get to the root of the project:
rake image_optim path=../help/path/to/image/or/dir

@devops-devdocs import the pr

@devops-devdocs imported this pull request


Shortcuts don't work properly while using Python Notebook

Issue Type: Bug
Dear developers, unfortunately when I'm working on some Python Notebooks ("file.ipynb") I have troubles using all shortcuts. From cmd+O to open files, ctrl+tab to switch notebooks, shift+cmd+P to command palette, and many others. Sometimes the shortcut works, but really few times. Usually I try several times the shortcut and nothing happen.
VS Code version: Code 1.50.1 (d2e414d9e4239a252d1ab117bd7067f125afd80a, 2020-10-13T14:53:05.704Z)
OS version: Darwin x64 17.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz (4 x 2400)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_renderer: disabled_off_okvideo_decode: disabled_softwarewebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
2, 2, 3

Memory (System)
4.00GB (0.02GB free)

Process Argv
--crash-reporter-id 3cd63675-bb48-4f5c-8fb6-ebf2ed913c56

Screen Reader
no

VM
0%

Extensions (10)

Extension
Author (truncated)
Version

theme-monokai-pro-vscode
mon
1.1.17

python
ms-
2020.9.114305

cpptools
ms-
1.1.0-insiders2

java
red
0.69.0

vscodeintellicode
Vis
1.2.10

vscode-java-debug
vsc
0.29.0

vscode-java-dependency
vsc
0.14.0

vscode-java-pack
vsc
0.10.0

vscode-java-test
vsc
0.25.0

vscode-maven
vsc
0.25.0

/extPython

/extPython

Sorry? I don't get it, what do you mean?

@ellizonn I was calling our bot to label this issue as "caused-by-extension". This is an issue with the Python extension which provides notebook experience for now, please file against them. Thanks!

@ellizonn I was calling our bot to label this issue as "caused-by-extension". This is an issue with the Python extension which provides notebook experience for now, please file against them. Thanks!

Thanks to you!


feat: Add an OpenAPI specification endpoint

Description
Discussed in #1780

[x I have read and understand the CONTRIBUTING.md document in this repository

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Existing test suite passes locally with my changes
[ ] I have made corresponding changes to the documentation

@jacobsfletch So far, I managed to almost fully document the REST API for collections. Before I proceed, I have a couple of questions.

Does the project use any automatic formatting tool? If not, what is the preferred code style?
What kind of tests do you expect this to have? Does simply invoking the specification endpoint suffice? I believe that comparing the result to a predefined specification would not be very helpful. Maybe invoking a 3rd party validator on the result would be enough.
Where in the docs should I mention this?

@Teyras this is amazing!! At first glance it's looking great. After seeing the code though I do think this would be better suited as a plugin. This is all achievable in a plugin format, everything from opening the endpoint and handling the operation. As a plugin, your going to have a lot more freedom to ship new ideas (like whether to support OpenAPI 3.0 or 3.1). This also makes your tests and docs are entirely independent of Payload. What do you think about this?

I'm open to the idea, but I believe I'd still need the changes from https://github.com/payloadcms/payload/commit/252922c62d25337b3247e28cfce10ae6ff08e1fe (I don't think the code needs to be in an openapi.ts file though - pretty much anything importable from the module works).

Yep this makes sense. By the looks of it that change is not specific to OpenAPI, you just need an abstracted entityToJSONSchema function to use. In that case we could make that change to Payload core as needed.
For custom endpoints, we'd just require the hard-coded schema for each endpoint to be passed through the plugin.

I'm open to the idea, but I believe I'd still need the changes from 252922c (I don't think the code needs to be in an openapi.ts file though - pretty much anything importable from the module works).

Yep this makes sense. By the looks of it that change is not specific to OpenAPI, you just need an abstracted entityToJSONSchema function to use. In that case we could make that change to Payload core as needed.

Perfect, if you tell me an appropriate location for that function, I can make a PR.

For custom endpoints, we'd just require the hard-coded schema for each endpoint to be passed through the plugin.

Exactly - that sounds a fair bit less convenient than colocating the hard-coded schema with the registration of the custom endpoint.

that sounds a fair bit less convenient than colocating the hard-coded schema with the registration of the custom endpoint.

I think you could generate some generic API schema by reading the endpoints config, but I don't think there'd be a way to describe those custom endpoints well enough solely based on their config.

that sounds a fair bit less convenient than colocating the hard-coded schema with the registration of the custom endpoint.

I think you could generate some generic API schema by reading the endpoints config, but I don't think there'd be a way to describe those custom endpoints well enough solely based on their config.

Yes, that could be a good way to remind plugin users to document their custom endpoints.
How about the module for entityToJSONSchema, where should I move it?


Add acceptance test for CVP testing

What type of PR is this?

Uncomment only one  /kind line, and delete the rest.
For example, > /kind bug would simply become: /kind bug

/kind bug
/kind cleanup
/kind failing-test

/kind enhancement

/kind documentation
/kind code-refactoring

What does this PR do / why do we need it:
In order to run tests within the CVP pipeline (GITOPS-2466/GITOPS-2775), we need to add a small set of kuttl tests checking the basic functionality of the operator. This test checks:

Status of Deployments in the openshift-gitops namespace.
Status of the StatefulSet in the openshift-gitops namespace.
Status of the Services in the openshift-gitops namespace.
Status of the Routes in the openshift-gitops namespace.

Have you updated the necessary documentation?

[ ] Documentation update is required by this PR.
[ ] Documentation has been updated.

Test acceptance criteria:

[ ] Unit Test
[X] E2E Test

How to test changes / Special notes to the reviewer:
You can try this test by running this command from the root directory of the repo:
kubectl kuttl test ./test/openshift/e2e/acceptance --config ./test/openshift/e2e/sequential/kuttl-test.yaml --test 1-001_validate_openshift_gitops

/retest

/retest

/retest

/retest

/test v4.8-kuttl-parallel

/test v4.9-kuttl-parallel

/retest

@bluengo we do not need to make change to the kuttl tests in gitops operator in GitHub. CVP tests are only run in CPaaS downstream.

/test all

/retest

/retest

/test all

/test v4.12-kuttl-sequential

Closing this, please reopen if required


add dummy commit

I created this PR to trigger CLA bot :)
Please delete later.

Yay! we can close this one! Thank you @jprendes!


esm-browser.js causes process is not defined

Reproduction
https://jsfiddle.net/as2n8e7o/
Steps to reproduce the bug
Import pinia.esm-browser.js as module in browser. See my reproduce link.
Expected behavior
Pinia imported correctly
Actual behavior
Browser console says Uncaught ReferenceError: process is not defined
Additional information
No response

It should indeed be replaced with "development". Note the browser version should be avoided in production as it's way bigger due to including devtools


[Question] How ListenerAdapter works with this Lib?

Hey I searched and didnt found an way to register Listener for something like if Member join or leave.
Thanks for your help and time
Greetings
Justin

Hi,
There are three ways to register Listeners in Aluna.

The clean spring way is to make a class extend/implement ListenerAdapter or CoroutineEventListener and annotate it with, for example, @Component so that it is part of the Spring Context. Aluna will then register it for you during startup.
The second way is to use Spring events as shown here: OnEventHandler. For this to work it is crucial that aluna.discord.publish-events is set to true. Also, make sure to check the other possible settings here as for bigger bots a lot of events are triggered which leads to higher memory usage.
The third method is more manual: Injecting the ShardManager and then calling addEventListener. I would not recommend this, as depending on where you do this, the bot may already be connected, and you will lose events until you add your listener.

Examples of the member join event:
//With ListenerAdapter()
@Component
class EventLogListener : ListenerAdapter() {
    override fun onGuildMemberJoin(event: GuildMemberJoinEvent) {
        TODO("Add you code here")
    }
}

//With CoroutineEventListener
@Component
class CoEventLogListener : CoroutineEventListener {
    override suspend fun onEvent(event: GenericEvent) {
       when (event) {
            is GuildMemberJoinEvent -> onGuildMemberJoin(event)
            else -> {}
        }
    }

    private suspend fun onGuildMemberJoin(event: GuildMemberJoinEvent) {
        TODO("Add you code here")
    }
}

//With Spring events
@Component
class EventHandler {

    /*
    If aluna.discord.publish-events: true, all JDA events are published as Spring events.
    */
    @EventListener
    fun onGuildMemberJoin(event: GuildMemberJoinEvent) {
        TODO("Add you code here")
    }
}


MockMode for scripts

https://github.com/shiftdevices/bitbox-base-internal/issues/271
Because:

During development and integration tests, the scripts 'bbb-config.sh'
and 'bbb-cmd.sh' fail as not the whole environment is available.
Previously, a different development version of these scripts was kept,
but that is hard to maintain over time.
By extending the real scripts with a MockMode (set by the environment
variable MOCKMODE), they can be called for testing purposes while
still doing all input validation and sanity checks.

This commit:

extends the two scripts with the functionality to call them in MockMode
removes the development copies in /middleware/integration_test

The error SCRIPT_NOT_RUN_AS_SUPERUSER is thrown on purpose to have the exact same conditions as when running on the Base.
If that is not what is expected for integration testing, I can remove that constraint.

Offline decision: do not echo SCRIPT_NOT_RUN_AS_SUPERUSER in MockMode

Disabled the need for superuser execution in MockMode.
$ ./bbb-config.sh enable tor
./bbb-config.sh: needs to be run as superuser.
SCRIPT_NOT_RUN_AS_SUPERUSER

$ MOCKMODE=1 ./bbb-config.sh enable tor
MOCK MODE enabled
OK: enable -- TOR

$ MOCKMODE=1 ./bbb-cmd.sh setup datadir
MOCK MODE enabled
OK: SETUP -- DATADIR --

Added new error code: SCRIPT_INCLUDES_NOT_FOUND
Long text:

ERR: includes directory /opt/shift/scripts/include/ not found, must run on BitBox Base system. Run in MockMode for testing.

Added new error code: SCRIPT_INCLUDES_NOT_FOUND

Can/should this be added to the middleware Error handling as well?

If it's not too big of a hassle it would be good, as it indicates that there is something seriously wrong with the environment and the script will break in unexpected ways if the includes are not available.

Rebased on master, merging now


Cross browser test

Desktop

[x] Chrome
[ ] Safari
[x] Firefox
[ ] Edge

Phone

[ ] Chrome
[ ] Safari
[ ] Samsung

Works in FF but note that aspect ratio wasn't supported in ff until June 1, 2021ish.


Move mocha tests in components package from <component_name>/test to <component_name>/src/test

Currently, most of the tests in components package is under <component_name>/test. They should be moved to <component_name>/src/test.
This is so that we can run these tests in vscode. As per the entry for "Debug Current Test" in .vscode/launch.json, it looks for tsconfig.json in <current_dir>../../tsconfig.json. So, it ends up looking for the tsconfig.json in packages/components.

I believe such move was done.


luci-base: Bug in resolve_firstchild results in 403 Forbidden

A bug in resolve_firstchild means it may return a page the user hasn't access to causing 403 Forbidden, A patch which fixes the bug is included at the bottom.
The following can reproduce the problem:

Create a user such as test in the openwrt shell, and set the password (the script below expects "test"):

echo "test::0:0:99999:7:::" >> /etc/shadow
echo "test:x:1047:100:Test user:/tmp:/bin/false" >> /etc/passwd
passwd test

Add a login section to rpcd for the user:

uci batch <<EOF
add rpcd login
set<EMAIL_ADDRESS>set<EMAIL_ADDRESS>add_list<EMAIL_ADDRESS>add_list<EMAIL_ADDRESS>commit rpcd
EOF

Add a menu item:

cat > /usr/share/luci/menu.d/test-acl.json <<EOF
{
	"admin/system/test-acl": {
		"title": "Test ACL",
		"order": 100,
		"action": {
			"type": "template",
			"path": "test_acl"
		}
	}
}
EOF

Add a page template:

cat > /usr/share/ucode/luci/template/test_acl.ut <<EOF
{% include('header') %}

Hello World

{% include('footer') %}
EOF

Run the following function with the hostname/IP address as the argument:

run_test() {
        hostname=$1
        tmpfile=$(mktemp)
	cookiefile=$(mktemp)

	curl --silent --cookie-jar $cookiefile --location --data-urlencode "luci_username=test" --data-urlencode "luci_password=test"  "http://$hostname/cgi-bin/luci/" > $tmpfile

	if ! grep "Hello World" $tmpfile >/dev/null; then
		echo "Test FAILED"
	else
		echo "Test PASSED"
	fi

	rm "$tmpfile"
	rm "$cookiefile"
}

run_test <IP_ADDRESS>

Actual behavior:
Test FAILED
Expected behavior:
Test PASSED
Additional Information:
OpenWrt version information from system /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r27041-7686ce4a91'
DISTRIB_TARGET='x86/64'
DISTRIB_ARCH='x86_64'
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r27041-7686ce4a91'
DISTRIB_TAINTS=''

Patch
--- /usr/share/ucode/luci/dispatcher.uc.orig	2024-07-30 19:31:27.890643889 +0000
+++ /usr/share/ucode/luci/dispatcher.uc	2024-07-30 19:31:39.122534632 +0000
@@ -582,7 +582,7 @@
 			session = is_authenticated(node.auth);

 		let cacl = child.depends?.acl;
-		let login = login_allowed || child.auth?.login;
+		let login = !session && (login_allowed || child.auth?.login);

 		if (login || check_acl_depends(cacl, session?.acls?.["access-group"]) != null) {
 			if (child.title && type(child.action) == "object") {

Another user posted a question about the the same problem in the forum last year:
Luci JS: How to Prevent the Root URL from Opening an ACL-Restricted Item

Fixed, thanks!


Duplicated output in rspec results

Not sure if this is related to #58 or not
With the latest 5.0.0 release, I'm getting duplicated rspec output - if I pin my Gemfile to 4.0.0, this doesn't happen at all.
Example of output:
centos7 executed in 0.02 seconds
      should be installed
      should be installed
    Service "jenkins"
    Service "jenkins"

centos7 07:24:13$ /bin/sh -c systemctl\ --plain\ list-dependencies\ multi-user.target\ \|\ grep\ \'\\\(\^\\\|\ \\\)jenkins.service\$\'
jenkins.service

centos7 executed in 0.03 seconds
      should be enabled
      should be enabled

centos7 07:24:13$ /bin/sh -c systemctl\ is-active\ jenkins
  tive
▽
centos7 executed in 0.02 seconds
      should be running
      should be running
    File "/var/lib/jenkins/jobs/SEED_generate_jobs"
    File "/var/lib/jenkins/jobs/SEED_generate_jobs"

centos7 07:24:13$ /bin/sh -c test\ -d\ /var/lib/jenkins/jobs/SEED_generate_jobs

centos7 executed in 0.02 seconds
      should be a directory
      should be a directory

Finished in 10 minutes 1 second (files took 49.03 seconds to load)
6 examples, 0 failures

Finished in 10 minutes 1 second (files took 49.03 seconds to load)
6 examples, 0 failures

Gemfile:
source "https://rubygems.org"

group :test do
  gem "rake"
  gem "puppet", ENV['PUPPET_VERSION'] || '~> 3.6.0'
  gem "puppet-lint"
  gem "puppet-lint-indent-check"
  gem "rspec", '< 3.2.0'
  gem "rspec-puppet", :git => 'https://github.com/rodjek/rspec-puppet.git'
  gem "puppet-syntax"
  gem "puppetlabs_spec_helper"
  gem "hiera-puppet-helper", :git => 'https://github.com/bobtfish/hiera-puppet-helper.git'
end

group :development do
  gem "travis"
  gem "travis-lint"
  gem "beaker", :git => "https://github.com/puppetlabs/beaker.git",
  gem "beaker-rspec"
  gem "docker-api"
  gem "vagrant-wrapper"
  gem "puppet-blacksmith"
  gem "guard-rake"
end

Is this perhaps related to the change to using serverspec > 2.x ? That appears to be the main difference when comparing the Gemfile.lock when the beaker-rspec gem is pinned to version 4.0.0
    beaker-rspec (4.0.0)
      beaker (~> 2.0)
      rspec
      serverspec (~> 1.0)
      specinfra (~> 1.0)

vs
    beaker-rspec (5.0.2)
      beaker (~> 2.0)
      rspec
      serverspec (~> 2)
      specinfra (~> 2)

Moving bugs to Jira tracker.
Follow up here: https://tickets.puppetlabs.com/browse/BKR-290


Docs update getting started

:tada: This PR is included in version 7.0.0-beta.4 :tada:
The release is available on:

v7.0.0-beta.4
GitHub release

Your semantic-release bot :package::rocket:


URL to get position

If possible what is the URL to get the current position?
thx
MTania’s

GET /shade?id=<shadeid>  This will return all of the shade information.  Or you can listen for the shadeState socket.

Perfect. Thx!!!


Download Chapters Broken

DownloadChapter(chapter.url, file) will always return a 2 page pdf.
Naruto 0.pdf

i have just looked into this and it seems that a lot of the site media has been moved behind Cloudfare, so it blocks downloading the images. I don't think there is anyway around this.

https://stackoverflow.com/questions/36948573/download-files-from-website-with-cloudflare-using-python
Found this on stackoverflow, i'm going to try it and i let you know

https://stackoverflow.com/questions/36948573/download-files-from-website-with-cloudflare-using-python
Found this on stackoverflow, i'm going to try it and i let you know

Ok, i tried but it seems that did not work :(

Ok, i tried but it seems that did not work :(

My new pull request should fix that problem. The get request has to have the correct header information for cloud flare to allow it.

I haven't looked at the code yet but Manganelo all of a sudden has Cloudfare warnings over all their Manga..

Not sure what that is about. However I tried the code it worked as intended. Didn't change the code very much, just added a new header and method in the API class.


Cannot compile markup 0.7.2+uutf 1.0.0

Hi,
markup.ml is a very cool library, but it seems not to be support the latest version of uutf. I failed installing markup 0.7.2+uutf 1.0.0 (by using opam):
bash-3.2$ opam install uutf.1.0.0
opam install uutf.1.0.0
The following actions will be performed:
  ↗  upgrade   uutf   0.9.4 to 1.0.0
  ↻  recompile markup 0.7.2                   [uses uutf]
===== ↻  1   ↗  1 =====
Do you want to continue ? [Y/n] y

=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  🐫
[uutf] Archive in cache

=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  🐫
⊘  removed   markup.0.7.2
⊘  removed   uutf.0.9.4
∗  installed uutf.1.0.0
[ERROR] The compilation of markup failed at "make build".
Processing  4/4: [markup: ocamlfind remove]
#=== ERROR while installing markup.0.7.2 ======================================#
# opam-version 1.2.2
# os           darwin
# command      make build
# path         /Users/akabe/.opam/4.03.0/build/markup.0.7.2
# compiler     4.03.0
# exit-code    2
# env-file     /Users/akabe/.opam/4.03.0/build/markup.0.7.2/markup-72623-2c871f.env
# stdout-file  /Users/akabe/.opam/4.03.0/build/markup.0.7.2/markup-72623-2c871f.out
# stderr-file  /Users/akabe/.opam/4.03.0/build/markup.0.7.2/markup-72623-2c871f.err
### stdout ###
# [...]
# ocamlbuild -use-ocamlfind -j 0 -no-links -cflags -g,-w,+A-4-9-44-45-48,-warn-error,+A-3,-bin-annot,-safe-string markup.cma markup.cmxa
# ocamlfind ocamldep -package uutf -modules src/markup.mli > src/markup.mli.depends
# ocamlfind ocamldep -package uutf -modules src/kstream.mli > src/kstream.mli.depends
# ocamlfind ocamldep -package uutf -modules src/common.ml > src/common.ml.depends
# ocamlfind ocamlc -c -g -w +A-4-9-44-45-48 -warn-error +A-3 -bin-annot -safe-string -package uutf -I src -I test -I doc -I test/performance -I test/pages -I test/js_of_ocaml -I test/dependency -o src/common.cmo src/common.ml
# + ocamlfind ocamlc -c -g -w +A-4-9-44-45-48 -warn-error +A-3 -bin-annot -safe-string -package uutf -I src -I test -I doc -I test/performance -I test/pages -I test/js_of_ocaml -I test/dependency -o src/common.cmo src/common.ml
# File "src/common.ml", line 137, characters 21-22:
# Error: This expression has type int but an expression was expected of type
#          Uchar.t
# Command exited with code 2.
### stderr ###
# make: *** [build] Error 10

=-=- Error report -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  🐫
The following actions failed
  ∗  install markup 0.7.2
The following changes have been performed
  ⊘  remove  markup 0.7.2
  ↗  upgrade uutf   0.9.4 to 1.0.0

The former state can be restored with:
    opam switch import "~/.opam/4.03.0/backup/state-20161030052313.export"

Building markup 0.7.2+uutf 0.9.4 succeeded.

@akabe thanks. Will update the existing opam files to require uutf < 1.0.0, and also make a new release of Markup.ml that supports uutf 1.0.0 shortly afterwards.

Not sure what is going on here. This should have been done in https://github.com/ocaml/opam-repository/commit/10aec7d8b928ebc52c6f4bf8b361ff323a1c8efe. @akabe did you opam update ?

This should have been done in ocaml/opam-repository@10aec7d. @akabe did you opam update ?

Well it seems a few releases went through afterwards without me noticing.

Hmmm. It seems that if I take the simple approach, the next Markup.ml release will only be compatible with OCaml >= 4.01, as this is a constraint in Uutf 1.0.0. I suppose this is not a great crime.

Well it seems a few releases went through afterwards without me noticing.

But all the markup releases seem to have been covered correctly. But shouldn't the constraint have been < 1.0.0?

But all the markup releases seem to have been covered correctly.

Indeed, I overlooked the patch.

But shouldn't the constraint have been < 1.0.0?

<= 0.9.4 should be fine. If I try to install markup here it tries to downgrade uutf. I don't know.

@aantron Thanks for the patch!
@dbuenzli I remove testing opam repository (for debugging config files of my packages) and opam update, then constraint uutf <= 0.94 works successfully. Thanks.

Markup 0.7.3, compatible with Uutf 1.0.0, is now installable from OPAM (after opam update, of course): https://github.com/ocaml/opam-repository/pull/7966. Thanks again for opening this issue.


Rich presence doesn't work with Linux

Posting this for anyone else that encounters this problem. I installed and successfully set up the script on Kubuntu 22.10 with python 3.10.7 and ensured Discord rich presence was enabled.
If you have discord installed as a snap, rich presence will not work with most programs. This is not a problem with the script, it is a problem with snap. Uninstall discord as a snap snap remove discord and reinstall it as a deb or the equivalent for your distro.
Below is the error I received.
[28-11-2022 12:36:00 PM] [INFO] [WoodwardMC/35B9D] Signing into Plex
[28-11-2022 12:36:01 PM] [INFO] [WoodwardMC/35B9D] Signed in as Plex user "MatthewWoodward"
[28-11-2022 12:36:02 PM] [INFO] [WoodwardMC/35B9D] Connecting to Plex Media Server "WoodwardMC"
[28-11-2022 12:36:32 PM] [INFO] [WoodwardMC/35B9D] Connected to Plex Media Server "WoodwardMC"
[28-11-2022 12:36:32 PM] [INFO] [WoodwardMC/35B9D] Listening for alerts from user "MatthewWoodward"
[28-11-2022 12:36:40 PM] [DEBUG] [WoodwardMC/35B9D] Received alert: {'sessionKey': '36', 'clientIdentifier': 'X', 'guid': '', 'ratingKey': '103937', 'url': '', 'key': '/library/metadata/103937', 'viewOffset': 1135000, 'playQueueItemID': 322078, 'playQueueID': 5980, 'state': 'playing', 'transcodeSession': 'X'}
[28-11-2022 12:36:40 PM] [DEBUG] [WoodwardMC/35B9D] Searching sessions for session key 36
[28-11-2022 12:36:40 PM] [DEBUG] [WoodwardMC/35B9D] <Track:131071:Lithium>, Session Key: 38, Usernames: ['MatthewWoodward']
[28-11-2022 12:36:40 PM] [DEBUG] [WoodwardMC/35B9D] <Episode:103937:Ghost-Adventures-s16e07>, Session Key: 36, Usernames: ['Zac Woodward']
[28-11-2022 12:36:40 PM] [DEBUG] [WoodwardMC/35B9D] Session found
[28-11-2022 12:36:40 PM] [DEBUG] [WoodwardMC/35B9D] Username "Zac Woodward" doesn't match "MatthewWoodward", ignoring
[28-11-2022 12:36:41 PM] [DEBUG] [WoodwardMC/35B9D] Received alert: {'sessionKey': '38', 'clientIdentifier': 'X', 'guid': '', 'ratingKey': '131071', 'url': '', 'key': '/library/metadata/131071', 'viewOffset': 184893, 'playQueueItemID': 323665, 'playQueueID': 6043, 'state': 'playing'}
[28-11-2022 12:36:41 PM] [DEBUG] [WoodwardMC/35B9D] Searching sessions for session key 38
[28-11-2022 12:36:41 PM] [DEBUG] [WoodwardMC/35B9D] <Track:131071:Lithium>, Session Key: 38, Usernames: ['MatthewWoodward']
[28-11-2022 12:36:41 PM] [DEBUG] [WoodwardMC/35B9D] Session found
[28-11-2022 12:36:41 PM] [DEBUG] [WoodwardMC/35B9D] Username "MatthewWoodward" matches "MatthewWoodward", continuing
[28-11-2022 12:36:41 PM] [INFO] Connecting Discord IPC Pipe
[28-11-2022 12:36:41 PM] [ERROR] An unexpected error occured during a RPC handshake operation
Traceback (most recent call last):
  File "/home/matthew/Downloads/discord-rich-presence-plex-master/services/DiscordRpcService.py", line 34, in handshake
    self.pipeReader, self.pipeWriter = await asyncio.open_unix_connection(self.ipcPipe) # type: ignore
  File "/usr/lib/python3.10/asyncio/streams.py", line 97, in open_unix_connection
    transport, _ = await loop.create_unix_connection(
  File "/usr/lib/python3.10/asyncio/unix_events.py", line 254, in create_unix_connection
    await self.sock_connect(sock, path)
  File "/usr/lib/python3.10/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
  File "/usr/lib/python3.10/asyncio/selector_events.py", line 505, in _sock_connect
    sock.connect(address)
FileNotFoundError: [Errno 2] No such file or directory```

I'm getting this exact same error on a Ubuntu server installation with no UI.
Will this script simply not work unless you have a UI?
I followed the instructions to install discord without using snap, found here: https://linuxhint.com/install-discord-ubuntu22-04/
Both method 3 (deb) and method 4 (flatpak) don't make any difference, the error message in the script is the same.
Am I missing something?


Request to Add Tags or Create a Latest Version

Hi, Could you please consider adding tags or creating a release for the most recent version?
This would help users track changes more easily and integrate the library in a version-controlled manner.

I think this thing is very useful.


Bardic music missing

I'm not sure when this started happening, but it seems like if I create a bard character, they don't actually have bardic music in their radial. Gaining levels and resting doesn't seem to help. I have a somewhat old version of temple+ lying around and it happens there, too, so it doesn't seem like a recent issue. Also doesn't seem to be due to random stuff I've been working on.
The characters seem to have the condition/feat for bardic music, it's just not in the radial. Possibly the arguments to the condition are bad. I have an old save game with Zaxis. His music still works, and the sixth argument to his bardic music condition is non-zero. I'm unsure if that's actually a factor, though.

That is really strange.  Someone on the co8 forum reported something similar but it couldn't be reproduced (https://co8.org/community/threads/new-temple-available.13049/page-27).  Do you think you have the same issue and can you send me the save game?

Yeah, it seems like the same issue. Not sure what the problem is.
Save game is attached, I think.
music.zip

I couldn't load it.  I think it should have 4 files but there were only 2 in the zip.  Can you give ti another shot?

music.zip
Try this one.

Looks like you don't have any ranks in preform.  It takes 3 for the menu to get displayed.  I leveled up and maxed out perform and the menu was displayed for me.

Oh, of course. I wonder if that was what was going on with the other person.
I guess that's the issue with just wanting to get through character creation as fast as possible.


How I Do Make Friday Night Funkin' Logo In Haxe Try Drawing Example

how do make fnf logo?

Oops I needed other repo


Error code should be non-zero when pd start failed

Here when server start etcd failed, return from main function would exit with error code 0 which actually means command executed successfully.
if err != nil {
		log.Errorf("server start etcd failed - %v", errors.Trace(err))
		return
}

Besides I saw that signals SIGHUP, SIGINT, SIGTERM, SIGQUIT all exit with 0 in pd and tidb code which is a bad practice.

Thank you for your report, it will be fixed soon.

What code should we exit with when we get the signals to exit?

@tennix suggests: 130 for SIGINT, a non-zero value for SIGTERM and SIGQUIT. As for SIGHUP, it is often used to reload configurations, maybe we should reserve it for future improvements.
cc @siddontang

The default signal for kill is SIGTERM, which is for graceful shutdown.

Yes, SIGTERM is usually used to graceful shutdown. Wikipedia has more details about POSIX signals https://en.wikipedia.org/wiki/Unix_signal#POSIX_signals

Can we close this now?

For SIGTERM, exit with 0, and for other signal, exit with 1.


The necessary changes alongside with the hybrid model for the fast light sim

In the standard_g4_dunevd10kt.fcl, the PDFastSimArExternal and PDFastSimXeExternal are merged to be PDFastSimExternal because of the current usage of the merged library for the hybrid model for the fast light simulation. PhotonVisibilityService: @local::dune10kt_vd_1x8x14_photonvisibilityservice_ArXe is added in the service to allow the usage of the library.
In the standard_g4_dunevd10kt_1x8x6_3view.fcl and standard_g4_dunevd10kt_1x8x6_3view_30deg.fcl, the light simulation in the non-active volume part is disabled.

Hi Laura, I have adjusted the workflow_detsim_dunevd10kt.fcl as you requested. =))

Hi @lpaulucc, I would like to ask for one clarification. You suggested to comment out the External Ar and Xe only at very first beginning, which I believe is sipmAr(Xe)OnlyExt, and then you suggested to remove the sipmAr(Xe)10ppmExt as well. Are we truly removing all light sim in external part?

So the problem is that the library that is going into dune pardata is merged for Ar and Xe. Do you have the Ar only and Xe only libraries for the hybrid model? If you include those, we could maintain the light generation outside the FC for the 1x8x14 geo just including a different library as input. Otherwise, you wouldn't be able to trust the simulation there.

Hi @lpaulucc and @donnanaples, I made the modifications as requested and tested the fhicl in detsim stage and it run successfully.


Added links about backpressure

Some people listening to the episode may be encountering the concept of backpressure for the first time, so I've added links to some articles explaining it.
Also, visual evidence that "God's own backpressure" is not a new phrase for Bryan. :smile:

Thank you for this; contact me if you'd like some OxF stickers!


On iOS networkChanged events don't accurately reflect the right state

In vNext branch, the networkChanged events should be fired if Wifi or Bluetooth HW gets enabled or disabled. Based on manual testing, the event isn't fired according to what one would expect when toggling Wifi or Bluetooth using the iOS "Control Center" (the menu that can be swiped from the bottom of the screen).

@tobybrad: Here is a clip from the specification at thaliMobileNativeWrapper.js that I'd need to be able to test on iOS devices (see the MUST statement):
/**
 * Provides a notification when the network's state changes as well as when our
 * use of the network changes, specifically when discovery or
 * advertising/listening starts and stops. This event MUST fire with the current
 * network state when the first subscription to the event is received.
 *
 * @public
 * @event networkChangedNonTCP
 * @type {Object}
 * @property {module:thaliMobileNative~networkChanged} networkChangedValue
 */

@tobybrad mentioned in Slack that the issue in the description was not yet fixed, but only the referred MUST part from the specification so reopening this.

@baydet I'm assigning this to you to make sure we don't repeat this error in the new code.


Remove middleware hard dependency on FreeRTOS logging

I was just going to talk to you about this tomorrow haha

I was just going to talk to you about this tomorrow haha

Cool now you can review/approve it ...:D

Looks good. We should make sure we put in the config values needed for customers to use FreeRTOS logging or Azure Logging like we discussed.

I have created issue to track this request.
https://github.com/Azure/azure-iot-middleware-freertos/issues/101


Don't create timelapse folder unless timelapse is enabled

Don't create folder in home dir by default.
Otherwise when user sets timelapse.base_dir, this also enabled timelapse.

Hello! I apologize for the delay.
I agree that it is better to create directories only with laps mode enabled.
Please send PR to the development branch.
Thx

Changed target branch.


Tooltip doesn't disapear after mouse moves away

Describe the bug
If a tooltip is added to an element, after hovering over the element the tooltip appears correctly. However, after moving the mouse away, the tooltip stays visible and in some cases it can cover other elements of the UI. After clicking the mouse anywhere, the tooltip disappears.
Occurred on Windows 10, build 19045.4651
To Reproduce

Create a StackPanel with some content
Set ToolTip.Tip="Some text" on the stackpanel
Start the application, hover the mouse over the stackpanel - tooltip should appear
Move the mouse away from the stackpanel - the tooltip should stay on
Click the mouse anywhere - the tooltip should disappear

Expected behavior
The tooltip should disappear after moving the mouse away from the element, without the need to click the mouse button
Avalonia version
11.1.2
OS
Windows
Additional context

At the moment of the screenshot, the mouse was already outside of the stackpanel for several seconds

Can you please try latest nightly builds? It should have been fixed by #16564.

I confirm, works as expected on the nightly build. Thank you


export to android error with  64-bit Godot engine

export to android with  64-bit Godot , works only 32-bit
Godot version:

all 64-bit Godot  version with and without mono
the 32-bit version export well
OS/device including version:

Windows OS , Nvidia 740M
Issue description:

Steps to reproduce:
create a project
try to export to android with 64-bit Godot
Minimal reproduction project:

the

What is the error...?

Works for me.

@catafest Do you still experience this issue with Godot 3.1 or the master branch?


Version 4.27.0 has not been published on registry.terraform.io

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.7.5
on darwin_arm64

provider registry.terraform.io/cloudflare/cloudflare v4.26.0

Affected resource(s)

cloudflare/cloudflare provider

Terraform configuration files
The issue is provider-related.

Link to debug output
Not applicable
Panic output
No response
Expected output
Install the latest release without errors.
Actual output
Initializing provider plugins...
- Finding cloudflare/cloudflare versions matching "4.27.0"...
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider cloudflare/cloudflare: no available releases match the given constraints 4.27.0
╵

Steps to reproduce

Pin the cloudflare/cloudflare provider in versions.tf to 4.27.0 (the latest release).
Run terraform init -upgarde

Additional factoids
No response
References
No response

@jacobbednarz How is this a HashiCorp issue when other providers publish just fine, and there's no active incident with Terraform Registy?
As you can see, the last version you published is 4.26.0: https://registry.terraform.io/providers/cloudflare/cloudflare/latest

the latest version we have published and pushed to the hashicorp pipeline is v4.27.0


make client/v2/BatchPoints precision match models/Points

Currently client/v2/BatchPoints enforces precisions that are valid golang time.Duration units (ns, us, ms, s, m, or h). Furthermore, it will accept a precision string like "0s" (since "10s" is a valid time.Duration). However, models/Points.PrecisionString, which is ultimately used by the client to generate the line protocol data for writing points, requires one of ns, u, ms, s, m, or h. Otherwise it silently ignores the precision and generates a nanosecond precision timestamp. The two sets of units are the same except for microseconds (us vs u).
I swapped out the calls to time.ParseDuration in favor of explicitly checking for the valid values. It now accepts "u" (seemingly the definitive unit name for microseconds) as well as "us" (since some code might use the client with this value, even though it doesn't work correctly). I threw in "µ" and "µs" since these are valid elsewhere in the API. I moved tests of NewBatchPoints and BatchPoints.SetPrecision to a separate, exhaustive, test.

[x] Rebased/mergable
[x] Tests pass
[ ] CHANGELOG.md updated
[x] Sign CLA

Since you're clearly not interested in even discussing this patch, let's just close it.


[C++][Parquet] Implement a LevelDecoder class (like Impala) which dispatches to RLE or BIT_PACKED decoding as appropriate

This class extends the RleDecoder class.
Reporter: Deepak Majeti / @majetideepak
Assignee: Deepak Majeti](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=mdeepak) / @majetideepak
Note: This issue was originally created as PARQUET-462. Please see the migration documentation for further details.

Wes McKinney / @wesm:
The methods for reading the definition and repetition levels would invoke common code, so there should not be code duplication.

Deepak Majeti / @majetideepak:
The main idea is to prevent code duplication between Definition and Repetition Levels.
The Levels class will have a single get() implementation that returns a level value. Since the Levels are RLE encoded as of now, I plan to extend the RleDecoder class.
I can also add a pointer to your int16_t* buffer and necessary set/get methods.
Are you planning to incorporate a parallel algorithm for RLE decoding ? If not, we can just use the existing get() method to populate the int16_t* buffer or expand the get() implementation to return a batch of levels.
Will this scheme work in the context of PARQUET-435 ?

Wes McKinney / @wesm:
Have a look at the patch for PARQUET-435 and let me know your thoughts. Thanks

Wes McKinney / @wesm:
Sounds good. I'm going to work on PARQUET-435 as soon as we get caught up on the current patch queue.

Deepak Majeti / @majetideepak:
Issue resolved by pull request 30
https://github.com/apache/parquet-cpp/pull/30

Deepak Majeti / @majetideepak:
The code duplication will happen during the initialization of the level decoders. I will wait until you finish PARQUET-435 to get an idea of the API and see if this is more or less useful.

Wes McKinney / @wesm:
Could you explain this in more detail, especially in the context of PARQUET-435? My plan there was to add ColumnReader methods that decode arrays of repetition levels into preallocated int16_t* buffer.


Add linear probing to stringToIndex

See #190
StringHash is not unique, so use linear probing to resolve colliding hashes.

Nice 🍰


New errors on load using neovim 4.4

FYI, I am checking out d3db1836d8e528cd1701fc6f3cdcacddd5e467ae to avoid the errors
Error detected while processing /Users/xxxxx/.local/share/nvim/plugged/better-escape.vim/autoload/better_escape.vim:
line   47:
E475: Invalid argument: msg, level = 'msg') abort
line   48:
E121: Undefined variable: a:level
E15: Invalid expression: a:level ==# 'err'
line   51:
E121: Undefined variable: a:msg
line   52:
E121: Undefined variable: a:level
E15: Invalid expression: a:level ==# 'err'
line   55:
E193: :endfunction not inside a function
Press ENTER or type command to continue

Duplicate of https://github.com/jdhao/better-escape.vim/issues/7. I guess you need to update your neovim version to latest (0.5).
BTW, nvim version 0.5 will be released today. Time to consider updating 😃

My bad, I didn't look at the closed issues. Thanks, yep will update once its released.


Every new process window is not focused after updater

When the updater is finished all following windows that are popping up (e.g. game selection) are not focused and are going in the background.

Update: It seems that this is only happening when I install the launcher and run it for the first time

I Think this is fixed some time ago, since i cant reproduce it anymore.


Create a testnet genesis config

Made with BSC BUSDs instead of TFTs. If there's a TFT contract on testnet, it should be easy to reconfigure.
https://github.com/threefoldtech/threefold_hub/pull/33

can be safely closed now https://github.com/threefoldtech/threefold_hub/tree/development/docs/deployment

where is the testnet genesis ?


math element with style attribute containing border or padding causes SVG output failure

A <math> element with a style attribute that has a border or padding specified causes the <g> element that does the transformation to flip the fonts over to be lost.
A test case is
<math style="border:1px solid blue"><mi>x</mi></math>

==> In Testsuite
MathMLToDisplay/General/GenAttribs/issue930.html


[RFE] Upgrade to a newer LTS or stable Linux Kernel

Current situation
Currently, the alpha/beta/stable branches have the same LTS Linux Kernel: 6.6.y.
Impact
we should be able have at least the alpha/main branch with a newer stable kernel to be able to prevent sudden lot of work when a new LTS appears and fix any issues gradually.
Testing all the branches with the same kernel might not show transient or hard to reproduce issues.
Ideal future situation
According to today's https://www.kernel.org/, the latest stable is 6.10.y (a good target to move to).

Upgrading to 6.10.y is currently blocked by the zfs support, as the last zfs release only supports Linux kernel up to 6.9 -> see https://github.com/openzfs/zfs/releases/tag/zfs-2.2.5

I think this is bad timing for a kernel upgrade. 6.10 is not declared an LTS yet, and once you merge a kernel into alpha, it will end up in stable a couple of months later. Flatcar stable users like stability.


load_template_to_dataframe silently drops columns

If they are all NA, see here

The reason why that happened is because pandas infers that NA should be considered an empty value and when we filter to remove empty data, these columns are removed. If you for example had used no_data, the columns would have been retained.
What do we actually want to do here? Keep the column but with empty values? We can also change the values that pandas infers as "empty" and remove NA, N/A, na as these are all commonly seen in metadata mapping files.

I think we need to ignore the columns that have no column name and/or
only spaces as input in either the name and the values.

If I understand correctly, what we want to do is to ignore/remove:

unnamed columns.
columns where all values are an empty string.

So in general we don't want to infer empty values through pandas.
On (Jan-02-15|14:30), Antonio Gonzalez wrote:

I think we need to ignore the columns that have no column name and/or
only spaces as input in either the name and the values.

Reply to this email directly or view it on GitHub:
https://github.com/biocore/qiita/issues/740#issuecomment-68568782

I think that sounds reasonable.

Do we want to raise warnings of some sort?
On (Jan-02-15|15:01), Antonio Gonzalez wrote:

I think that sounds reasonable.

Reply to this email directly or view it on GitHub:
https://github.com/biocore/qiita/issues/740#issuecomment-68571171

Also sounds reasonable, perhaps just a warning saying that the prep
template was added but X of columns where ignored due to being empty.


fix: Include license files in published crates

Both the Apache-2.0 and MIT licenses require that redistributed sources contain a copy of the original license text. This is currently not the case for async-generic as published on crates.io. I'm packaging it for Fedora Linux as a new dependency of sequoia-keystore, and having license files is one of the prerequisites.
This PR just adds symbolic links to the macros subdirectory, which should be enough to have cargo publish include the files (unless you run cargo publish on an OS that does not support symbolic links, i.e. Windows).
It would be great if you could publish a new release with this change applied. 🙏🏼

@decathorpe thank you for catching this. Merging now and will release momentarily.

Great, thank you!


Set Debug=False

@krallin : OK?

Per @krallin: we need to ensure ALLOWED_HOSTS is set. I'll do that later today, and test before merging.


Reset-pin no longer needed

I needed more pins on my WeemosD1 and set out to free up some, discovered that the Reset-pin for the RFID-reader is no longer needed as it´s now done in software:
https://github.com/miguelbalboa/rfid/pull/275/files

I was aware of that, but did not test it through. Made changes, and tested it. Thanks for the heads up. :+1:

Nice!
Note quite sure how to reference code in an issue, but this should perhaps also be updated?
`
The following table shows the typical pin layout used:
|
  | | Signal        | MFRC522       | WeMos D1 mini  | NodeMcu | Generic      |
  | |---------------|:-------------:|:--------------:| :------:|:------------:|
  | | RST/Reset     | RST           | D3 [1]         | D3 [1]  | GPIO-0 [1]   |
`

Yes, it's updated now. Thank you.

Sorry for reviving the dead - I'm using a TTGO TDISPLAY where the RST pin is not made available in pinout. It's used to control the TFT I believe.
I'm trying to figure out how to bypass the need for the RST pin. Here's my code:
MFRC522 mfrc522(SS_PIN, UINT8_MAX);  // Create MFRC522 instance
Unfortunately, no luck.
The RC522 works when I hook it to a different ESP32 where the RST is available.
Any help would be greatly appreciated!


Save all team data in a database instead of Json files

Integrates more nicely with Heroku, which resets the project directory when a new push is released, thus losing any data in Json files every time, also opens up more possibilities for a Web dashboard of some sort

Done


[BACKOFFICE] [Bugs] Product Templates - Categories - Product attributes tab issues

Product templates :
Can't create/edit product templates

Categories :
Had data in category table but can't found anything

Try create new category but still found nothing

Data still present in category table

Product attributes tab:
Still retrieving multiple product attributes from the database, but only a few can be retrieved into the dropdown menu.

Category Mapping tab:

I have obtained the updated source and confirmed that all issues have been resolved. The ticket has been closed.


Unify syncing of child manager and provider attributes

Various provider plugins use a mixture of Provider and multiple Manager classes to group inventory and operations into logical (hopefully) groupings.
The "worst case" for complexity is something like OpenStack which can have a Provider and a "parent" CloudManager which has multiple "child managers"
             Provider
          /            \
InfraManager       CloudManager
                    /         \
        NetworkManager  StorageManager::CinderManager

There are a lot of attributes that have to be kept in sync (e.g. zone_id, provider_region), a lot of delegates like authentications to the parent manager or the provider, and callbacks to create and update the child managers.
For the most part these are "copied&pasted" in the various classes, e.g. Amazon, Google, and Openstack
A lot of the callbacks are variations of before/after_save, before_validation, and before_update.
Each of these are slightly different, and there can be bugs in these differences, e.g. delegating zone but not zone_id https://github.com/ManageIQ/manageiq-providers-openstack/blob/master/app/models/manageiq/providers/openstack/network_manager.rb#L28
If we could unify the logic of keeping child managers in sync in a Mixin we can remove a lot of slightly different code.

👍 We are pretty good about only updating the parent ems and it trickling to the children. I haven't found any outliers.
👎 We are not using inverse_of and since we use foreign_key we have different objects for the parent and child.
👎 We have lots of reload to combat the different object issue, but those make it difficult to fix the problem since they exacerbate the problem.
👍 We use zone delegation from child to parent because of these. I'm pretty sure we can drop them, at least for the attributes that should be duplicated between the two.
status: I've plugged most of the inverse_of issues and am seeing the zone_id flow between the two classes. There is a rogue reload that I have to track down to fix that.
The way we update the children is pretty consistent. I thought we'd have more work to do there. but I'm double checking these.

Looks to be related to #20961

@agrare I remember we discussed this a little while ago. (probably februrary)
Off the top of your head, do you remember if we are done with this?
(I saw that #20961 also got hit with stale and came back here)


Webview: Autofocus processing was blocked because a document already has a focused element.

I recently noticed that the cursor is no longer being positioned to my autofocused elements. Opening the console, I see this message: "[Embedded Page] Autofocus processing was blocked because a document already has a focused element." Since I know that autofocus used to work, I went back through previous versions of VSCode. It seems to work up through July 2020 (version 1.48.2), but breaks in August 2020 (version 1.49.3). I tested with the latest Insiders build to make sure that this hasn't already been fixed.
What makes this issues extra strange is that it is (usually) not present when there is an image on the page. I don't know anything about HTML rendering, so this is a wild guess, but I'm thinking that whatever is holding focus and causes the message to appear, releases it by the time the image is retrieved and rendered? Most images will cause the issue to disappear, but some of them don't.

Version: 1.53.0-insider (user setup)
Commit: e17aea136d32fdb06d9b32184b04ccd36bb51e9c
Date: 2021-01-12T08:23:24.929Z
Electron: 11.1.0
Chrome: 87.0.4280.88
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041
Steps to Reproduce:

Download the vscode extension samples: (https://github.com/microsoft/vscode-extension-samples.git)
Modify the html in the cat coding webview sample to have a <textarea> with autofocus
Remove the image tag (<img src="${catGifPath}" width="300" />)
Run the cat coding webview
Note that cursor is not placed in the textarea. Open console to see message

Does this issue occur when all extensions are disabled?: Yes

The error I see with iframe based webviews:
Blocked autofocusing on a <textarea> element in a cross-origin subframe.

This is a Chrome limitation on iframes that you will need to workaround. Even if we could fix this for desktop VS Code, it would still not work when VS Code is run on the webview
Instead of using autofocus, try calling .focus on the element instead

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###

###deshyah'sTimeLog###


Turn off the marker for line plots

Description
Provide option to hide the marker for Line chart.
As I am using excelize to draw a Line chart but it shows the marker by default.
I have tried to find an option to turn it off but found nothing.

Steps to reproduce the issue:

Use the following code to add chart:

	if err = f.AddChart("M1", `{"type":"line","series":[
		{"name":"Sheet1!$B$1","categories":"Sheet1!$A$2:$A$257","values":"Sheet1!$B$2:$B$257"},{"name":"Sheet1!$E$1","categories":"Sheet1!$A$2:$A$257","values":"Sheet1!$E$2:$E$257"},{"name":"Sheet1!$F$1","categories":"Sheet1!$A$2:$A$257","values":"Sheet1!$F$2:$F$257"}],"title":{"name":"xD values"}, "dimension":{"width":1024,"height":768}}`); err != nil {
		return err
	}

Use SaveAs function to save the XLSX file
Open the output XLSX file and check the plot

Describe the results you received:
Lines in the plot has markers
Describe the results you expected:
Lines in the plot doesn't have the markers (markers = None)
Output of go version:
go version go1.14.4 windows/amd64

Excelize version or commit ID:
0feb819d4c08ab52e806214b23d673001bd9fe3e
(v2.2.0)

Environment details (OS, Microsoft Excel™ version, physical, etc.):
Windows 10 x64 2004
Excel 2016

I have been able to turn off the marker temporarily by the following modification. This can be added to formatSet as an option or might be more options related to the marker can be added as well. I don't have the full overview of the project so hope this can provide a hint for the feature.
diff --git "a/.\\drawing.go" "b/.\\drawing.go.patched.go"
index 7c09d4d..cfdc0d4 100644
--- "a/.\\drawing.go"
+++ "b/.\\drawing.go.patched.go"
@@ -864,7 +864,8 @@ func (f *File) drawChartSeriesMarker(i int, formatSet *formatChart) *cMarker {
                        },
                }
        }
-       chartSeriesMarker := map[string]*cMarker{Scatter: marker}
+       lineMarker := &cMarker{Symbol: &attrValString{Val: stringPtr("none")}}
+       chartSeriesMarker := map[string]*cMarker{Scatter: marker, Line: lineMarker}
        return chartSeriesMarker[formatSet.Type]
 }

can this feature be provided recently?

@danny-wang I'll add setting marker for chart support this week.

Hi @huybuidev, @danny-wang I'll add a setting marker for chart support, please use the master branch code, and this feature will be released in the next version.


project is structure is ready

what is added new

[ ] project is setup based on webpack
[ ] Index.html file is set as a template using the HTML Webpack Plugin.
[ ]  index.js file is set an array of some simple to do tasks (array of objects) contains three keys: description, completed, index.
[ ] an array function is used to iterate thru array and populate the list item for each task
[ ] On the page load it renders the dynamically created list of tasks
[ ] CSS is loaded by webpack

Hi @MMhaidari,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
You have submitted a project, that is invalid because the project lacks a descriptive README file. Here is a link to the recommended template for assistance
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Dynamic wait in WinAppDriver

Hi !!
I have been trying to implement dynamic wait as below with no success.
WebDriverWait wait = new WebDriverWait(session, TimeSpan.FromSeconds(maxWaitTimeInSeconds));
wait.Until(ExpectedConditions.ElementExists(By.Name("something")));
The problem here is it seems like the "By" locator is not implemented in WinAppDriver which is present in "OpenQA.Selenium" namespace.
without which im not sure how to implement explicit wait using WinAppDriver.
The below code works since we are passing the element to it and not the locator but the below condition is only if the element is already present and it just wait for the element to be enabled.
WebDriverWait wait = new WebDriverWait(session, TimeSpan.FromSeconds(maxWaitTimeInSeconds));
wait.Until(ExpectedConditions.ElementToBeClickable(element));
Is there anything i am missing here or is this still something to be implemented in WinAppDriver.

@vikrampvr  I am doing like this if that helps...Here is my click wrapper implementation
do
		{
		WebElement element =  ((WindowsDriver) webDriver).findElement(by, using);
		try {
				if ( element != null ) {
					element.click();
					Thread.sleep(500);
					return;
				}

			} catch (Exception e) {
				logger.debug("Couldnt find element using byType " +by + " locator " + using + " because of exception" + e.getMessage());
				attempt++;
				try {

					Thread.sleep(500);
				} catch (InterruptedException e1) {
					logger.debug("Exception while sleeping " + e.getMessage());
				}

			}
		} while (attempt < 5 );
		throw new WebDriverException("Couldnt find element using byType " +by + " locator " + using );

Hi @shankarkc ,
Can you open a ticket on the appium dotnet driver issue page here
, they will be better able to assist you on this, as this appears to be outside WinAppDriver's scope.

@vikrampvr - here's how I accomplished this in C# for a login workflow scenario.  After you login the code waits for the main window...
        loginWindow.FindElementByAccessibilityId("Submit").Click();

        var wait = new DefaultWait<WindowsDriver<WindowsElement>>(_session)
        {
            Timeout = TimeSpan.FromSeconds(60),
            PollingInterval = TimeSpan.FromSeconds(1)
        };
        wait.IgnoreExceptionTypes(typeof(InvalidOperationException));

        WindowsElement mainWindow = null;

        wait.Until(driver =>
        {
            driver.SwitchTo().Window(driver.WindowHandles[0]);

            mainWindow = driver.FindElementByAccessibilityId("MainWindow");

            return mainWindow != null;
        });

...not sure if this is best approach, but it works better than Thread.Sleep() IMHO since I cannot control how long it might actually take for the login process to complete and the main window to finally open.

Thanks @shankarkc and @brett-burkhart
As suggested by @hassanuz i have been following the dotnet driver development in Appium. And there seem to be issues in implementing implicit wait and page loads....seems like they are still working on it.
Also implementing PageObjects in appium with C# seems to be having many issues. Not sure if anyone using WinAppdriver tried to implement page objects.

I'm facing the same issue, any news on that?

Hi @aloula.,
This seems to be an issue with the appium dotnet driver bindings - we encourage you to open a new issue here, so that they have visibility into this.
Thanks

Hi @aloula.,
This seems to be an issue with the appium dotnet driver bindings - we encourage you to open a new issue here, so that they have visibility into this.
Thanks

Thanks @hassanuz

Can someone provide an example of a dynamic wait in WinAppDriver using java?

`public static WebElement waitForElement(String eleName, int timeout) throws InterruptedException {
int timeWaited = 0;
do {
timeWaited += 1;
Thread.sleep(1000);
try {
if(Session.findElementByName(eleName) != null)
return Session.findElementByName(eleName);
}catch(NoSuchElementException e) {
		}catch(Exception e) {
			return null;
		}
	}while(timeWaited < timeout);
	return null;
}`

public static WebElement waitForElement(String eleName, int timeout) throws InterruptedException {     	int timeWaited = 0;     	do {     		timeWaited += 1;     		Thread.sleep(1000);     		try { 	    		if(VistaJobBillingSession.findElementByName(eleName) != null) 	    			return VistaJobBillingSession.findElementByName(eleName);     		}catch(NoSuchElementException e) {     		}catch(Exception e) {     			return null;     		}     	}while(timeWaited < timeout); 		return null;     }

Facing below error : (unable to wait for element in opened window after app launch by entering login credentials with load spinner).
Error mesg :
**org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters**
Tried waits as below but  nothing worked :
1)WebDriverWait wait = new WebDriverWait(session,40);
wait.until(ExpectedConditions.visibilityOf(session.findElementById("2A.5116A.4.B.F00D.1")));

session= new WindowsDriver(new URL(WindowsApplicationDriverUrl), cap);
session.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

3)capabilities properties : cap.setCapability("ms:waitForAppLaunch", "25");


🎨 Ability to use SVG files for author/logo image

Would it be possible to add the ability to use SVG in place of png/jpeg. Or is there a way that i can implement this myself?
execute of template failed: template: partials/author.html:6:39: executing "partials/author.html" at <$authorImage.Fill>: error calling Fill: this method is only available for raster images. To determine if an image is SVG, you can do {{ if eq .MediaType.SubType "svg" }}{{ end }}

yeah. Noticing this as well.
validated with v2.40.0:
~/docker/hugoweb/themes (wpl_main)$ git submodule update --remote
Submodule path 'blowfish': checked out 'dc1ff0f998871fed05fb7a2b956cd3f1245c2643'
~/docker/hugoweb/themes (wpl_main)$ cd blowfish
~/docker/hugoweb/themes/blowfish ((v2.40.0))$ cd ../..; _local/starthugo.sh

[00:00:00] INFO: Starting LocalServer for wplhugo.example.com
[00:00:00] INFO: environment: production
[00:00:00] INFO: Binding to: http://wplhugo.example.com:80
[00:00:00] INFO: Flags:  --navigateToChanged --cleanDestinationDir --templateMetrics --templateMetricsHints --logLevel debug  --verbose --enableGitInfo --printMemoryUsage --printPathWarnings  --debug --noHTTPCache --buildDrafts --buildExpired --buildFuture
Watching for changes in ~/docker/hugoweb/{archetypes,assets,content,data,layouts,static,themes}
Watching for config changes in ~/docker/hugoweb/config/_default,~/docker/hugoweb/config/production,~/docker/hugoweb/themes/blowfish/config.toml,~/docker/hugoweb/themes/blowfish/config/_default
Start building sites …
hugo v0.117.0-b2f0696cad918fb61420a6aff173eb36662b406e+extended darwin/amd64 BuildDate=2023-08-07T12:49:48Z VendorInfo=gohugoio

...<snip>...

ERROR render of "section" failed: "~/docker/hugoweb/themes/blowfish/layouts/_default/list.html:67:9": execute of template failed: template: _default/list.html:67:9: executing "main" at <partial "article-link/simple.html" .>: error calling partial: "~/docker/hugoweb/themes/blowfish/layouts/partials/article-link/simple.html:51:16": execute of template failed: template: partials/article-link/simple.html:51:16: executing "partials/article-link/simple.html" at <.Resize>: error calling Resize: this method is only available for raster images. To determine if an image is SVG, you can do {{ if eq .MediaType.SubType "svg" }}{{ end }}

...<snip>...

ERROR render of "home" failed: "~/docker/hugoweb/themes/blowfish/layouts/index.html:4:7": execute of template failed: template: index.html:4:7: executing "main" at <partial $partial .>: error calling partial: "~/docker/hugoweb/themes/blowfish/layouts/partials/home/background.html:60:7": execute of template failed: template: partials/home/background.html:60:7: executing "partials/home/background.html" at <partial "recent-articles/main.html" .>: error calling partial: ~/docker/hugoweb/themes/blowfish/layouts/partials/recent-articles/main.html:12:5": execute of template failed: template: partials/recent-articles/main.html:12:5: executing "partials/recent-articles/main.html" at <partial "recent-articles/cardview-fullwidth.html" .>: error calling partial: "~/docker/hugoweb/themes/blowfish/layouts/partials/recent-articles/cardview-fullwidth.html:9:7": execute of template failed: template: partials/recent-articles/cardview-fullwidth.html:9:7: executing "partials/recent-articles/cardview-fullwidth.html" at <partial "article-link/card.html" .>: error calling partial: "~/docker/hugoweb/themes/blowfish/layouts/partials/article-link/card.html:24:16": execute of template failed: template: partials/article-link/card.html:24:16: executing "partials/article-link/card.html" at <.Resize>: error calling Resize: this method is only available for raster images. To determine if an image is SVG, you can do {{ if eq .MediaType.SubType "svg" }}{{ end }}

...<snip>...

INFO  build: running step render duration 842.873783ms

as of An SVG image MAY be specified
in config/_default/params.yaml for  defaultBackgroundImage
however an SVG  MAY NOT  be specified for defaultFeaturedImage


Add support for large integers

[WIP]: Adds support for large 2^53+ integers via bignumber.js as proposed in #35.
Not sure this is the best way of doing it – been thinking about a way to hook certain types or define custom ones, similiar to the mechanic msgpack uses – which I'll attempt to explore as well.
Closes #35

Why not use indutny/bn.js?

Why not use indutny/bn.js?

I might, after I have explored what else I had in mind, and once I get to the benchmarks on this one, if this one happens. With a type hook system this won't even be necessary, because people would be able to choose their own way of parsing types, if need be.

So... it's been a while, but I got around to trying out that idea I had, which is basically a middleware-style way of adding support for other types, i.e.:
var assert = require('assert')
var Bencode = require('./index')
var BigNumber = require('bignumber.js')
// OR var BigNumber = require('bn.js')

// The current API still works as before,
// but can't have any new types added to it globally,
// to avoid trashing other things using it (in deduplicated bundles, for example)
Bencode.encode({ something: 'with a value' })
Bencode.decode( buffer )

// Create a new instance of Bencode (which uses it's own set of encoder/decoder),
var bignumBencode = new Bencode()

// Register a type check, encode & decode function for a new type
bignumBencode.use('bignumber', 'number', {
  check: function (value) { return value instanceof BigNumber },
  encode: function (buffers, data) {
    buffers.push(new Buffer('i' + data.toString(10) + 'e'))
  },
  decode: function () {
    var end = this.find(0x65)
    var number = this.data.toString('ascii', this.position + 1, end)
    this.position += end + 1 - this.position
    return new BigNumber(number, 10)
  }
})

// Profit
var value = new BigNumber('1234567890123456789', 10)
var encoded = bignumBencode.encode(value)
var decoded = bignumBencode.decode(encoded)

assert.deepEqual( value, decoded )

It has added some complexity, but the benchmarks surprisingly still show pretty much the same numbers, if not even better ones. I still need to add tests for this though.
What do you think?

"Branch protection options saved"