s390x enablement tracker

I think right now this is probably just porting some code from e.g. https://github.com/coreos/coreos-installer around setting up partitions etc. to enable install to-disk.
What also clearly needs to happen here is fixes for https://github.com/osbuild/bootc-image-builder
(Which also leads into the overlap with Anaconda problem)

Add the s390x architecture in image.go of bootc-image-builder

Yep, I filed https://github.com/osbuild/bootc-image-builder/issues/460 as that code is in a distinct project.

After updating the base image to include bootupd on s390x, I got the following error.
device/disk (org.osbuild.loopback): loop0 acquired (locked: False)
mount/part2 (org.osbuild.xfs): mounting /dev/loop0p2 -> /store/tmp/buildroot-tmp-fcpd6h9i/mounts/
mount/part1 (org.osbuild.ext4): mounting /dev/loop0p1 -> /store/tmp/buildroot-tmp-fcpd6h9i/mounts/boot
mount/part3 (org.osbuild.fat): mounting /dev/loop0p3 -> /store/tmp/buildroot-tmp-fcpd6h9i/mounts/boot/efi
Host kernel does not have SELinux support, but target enables it by default; this is less well tested.  See https://github.com/containers/bootc/issues/419
Installing image: docker://localhost/centos-stream-9-bootc:latest
Initializing ostree layout
Initializing sysroot
ostree/deploy/default initialized as OSTree stateroot
Deploying container image...Error: Config file '/lib/s390-tools/zipl.conf': Cannot build automenu: no IPL entries available
Looking for components in '/lib/s390-tools'
Using config file '/lib/s390-tools/zipl.conf'
done
ERROR Installing to filesystem: Creating ostree deployment: Performing deployment: Final bootloader swap: Child process exited with code 1
Traceback (most recent call last):
  File "/run/osbuild/bin/org.osbuild.bootc.install-to-filesystem", line 53, in <module>
    r = main(args["options"], args["inputs"], args["paths"])
  File "/run/osbuild/bin/org.osbuild.bootc.install-to-filesystem", line 48, in main
    subprocess.run(pargs, env=env, check=True)
  File "/usr/lib64/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bootc', 'install', 'to-filesystem', '--source-imgref', 'containers-storage:[overlay@/run/osbuild/containers/storage+/run/containers/storage]f276b7c877e9e130a787dc53a31fdc714edc95456a4fc10e67ff57c1a8038133', '--skip-fetch-check', '--generic-image', '--karg', 'rw', '--karg', 'console=tty0', '--karg', 'console=ttyS0', '--target-imgref', 'localhost/centos-stream-9-bootc:latest', '/run/osbuild/mounts']' returned non-zero exit status 1.

The error occurs  during executing zipl at
https://github.com/containers/bootc/blob/f152bfe8da47c3bfbafca33c2142d10611375fa3/lib/src/install.rs#L1184
using the ostree library.
https://github.com/ostreedev/ostree/blob/ac6ba4392285d4f30a937fddf2963b879fe129bd/src/libostree/ostree-bootloader-zipl.c#L477-L478
I guess we need to generate a proper zipf.conf here.
@cgwalters do we need to generate zipl.conf before calling initialize_ostree_root_from_self in bootc? Or, can we use the ostree libbary to genearte zipl.conf. I don't see such generation code in _ostree_bootloader_zipl_write_config.
https://github.com/ostreedev/ostree/blob/ac6ba4392285d4f30a937fddf2963b879fe129bd/src/libostree/ostree-bootloader-zipl.c#L101-L115
crate::bootloader::install_via_bootupd is called after initialize_ostree_root_from_self.
https://github.com/containers/bootc/blob/f152bfe8da47c3bfbafca33c2142d10611375fa3/lib/src/install.rs#L1194
It looks like bootupd does no-op for s390x. https://github.com/coreos/bootupd/pull/556
I also think we need a zipl_helper script for loop device like this.
https://github.com/openstack/diskimage-builder/blob/ac180b9ac61b7c8577fe0d489a33b0dd805d8acb/diskimage_builder/elements/zipl/finalise.d/50-zipl#L29-L52

I further read the source code, and I think that zipl needs to recognize the BLS config file at
/store/tmp/buildroot-tmp-ctk6b4of/mounts/boot/loader/entries/ostree-1.conf

See https://github.com/coreos/coreos-assembler/blob/43a9c80e1f548269d71d6d586f0d5754c60f6144/src/create_disk.sh#L511
We need to match some of the logic there.  Now zipl is somewhat special so far in the ostree/bootc architecture because it basically always acts like a UKI, rolling the bootloader,kernel,initrd together and hence crosses the domain of bootupd and bootc.
Going a bit forward I'd like to merge bootupd into this project https://github.com/coreos/bootupd/issues/432 which would help a bit in making coordinated changes.

@cgwalters thank you for the information.
I managed to create a QCOW2 disk using bootc. To work around the issues I reported above, I need to prepare a wrapper script for zipl, and update centos-bootc image to include it. I don't think this is a good solution, but I just confirmed that the created image works as expected on an s390x machine.
Next, I will investigate what changes are necessary in the bootc and bootupd source code to support zipl.

I further read the source code, and I think that zipl needs to recognize the BLS config file at
/store/tmp/buildroot-tmp-ctk6b4of/mounts/boot/loader/entries/ostree-1.conf

This is also related to https://github.com/ostreedev/ostree/pull/3104 perhaps?
This is quite a complex thing going on as osbuild (as used by bootc-image-builder) is also doing its own container stuff, then we have podman, and we also have bubblewrap involved here.

I managed to create a QCOW2 disk using bootc. To work around the issues I reported above, I need to prepare a wrapper script for zipl, and update centos-bootc image to include it. I don't think this is a good solution, but I just confirmed that the created image works as expected on an s390x machine.

Can you post that script?
Also, did you try a direct bootc install to-disk?

@cgwalters sorry for the late reply. I was on vacation.
My script is this one.
https://gist.github.com/yoheiueda/c328ca7eccf313dd03292aeca71fbd02
I directly put this script in the centos bootc base image, and replaced with the original zipl binary in it.
This script bind-mounts /run/osbuild/mounts/boot to /boot, and also temporarily installs a helper script at /run/osbuild/mounts/s390-tools/zipl_helper.blkext. The target disk is
A helper script is called for disk device types that are not natively supported by zipl.
https://github.com/ibm-s390-linux/s390-tools/blob/0e3034c0f699cb311c0f63d0bb475a816f5fba91/zipl/src/disk.c#L359-L384
In the case of osbuild installation, the target disk type is loop, and the disk type of its partition is blkext, so a helper script named zipl_helper.blkext will be called.
This work around needs to update the centos bootc base image, so I don't think it is an appropriate solution for permanent fix, but I just confirmed that QCOW2 image generated with this workaroud, so I now believe there is not other blockers for s390x.

This is also related to https://github.com/ostreedev/ostree/pull/3104 perhaps?
Yes, I think so.

https://github.com/ostreedev/ostree/blob/8f559e94b775b96adbf2bdd2462266bce3c42185/src/libostree/ostree-bootloader-zipl.c#L480-L503
If target_deployment is set and /boot is appropriately mounted, bind-mounting of /run/osbuild/mounts/boot  is not necessary. But, it looks like  target_deployment is set to NULL, and zipl is directly executed.

Also, did you try a direct bootc install to-disk?

I have only tried install-to-filesystem via bootc-image-builder. I will try a direct bootc install to-disk next.

A helper script is called for disk device types that are not natively supported by zipl.
https://github.com/ibm-s390-linux/s390-tools/blob/0e3034c0f699cb311c0f63d0bb475a816f5fba91/zipl/src/disk.c#L359-L384

Ahhh of course. This is the big difference between what we were doing in coreos-assembler using qemu (providing a native dasd disk to the build) vs what bib (and bootc can do) with loopback. Hmm...that said, it looks like osbuild's zipl stage isn't doing anything too special here?

If target_deployment is set and /boot is appropriately mounted, bind-mounting of /run/osbuild/mounts/boot is not necessary. But, it looks like target_deployment is set to NULL, and zipl is directly executed.

I think that may be one of the bugs here.

@cgwalters
The osbuild's zipl stage explicitly set parameters targetbase, targettype, targettype, targetblocksize and targetoffset. In this case, the helper script is not necessary. The helper script is used to identify these values when the parameters are not specified.
So, is it an option to use the osbuild's zipl stage instead of ostree by generating a s390x-specific manifest by bootc?
Regarding bootc install to-disk, I needed to modify the code to prepare partitions for s390x.
https://github.com/containers/bootc/blob/01f8d768aff03b3b584320b1d6cb95547e5ae446/lib/src/install/baseline.rs#L234
Then, I got the following error. I guess the cause of the error is that BLS configs under /boot/loader/entries are not visible from zipl. In this case, I didn't use my zipl wrapper script here.
sudo podman run --rm --privileged --pid=host -v /var/lib/containers:/var/lib/containers -v /dev:/dev -v $PWD/output:/output --security-opt label=type:unconfined_t localhost/centos-stream-9-bootc:latest env RUST_LOG=debug bootc install to-disk --skip-fetch-check --via-loopback --wipe /output/disk.img

Error: Config file '/lib/s390-tools/zipl.conf': Cannot build automenu: no IPL entries available
Looking for components in '/lib/s390-tools'
Using config file '/lib/s390-tools/zipl.conf'
done
DEBUG exec: "losetup" "-d" "/dev/loop0"
ERROR Installing to disk: Creating ostree deployment: Performing deployment: Final bootloader swap: Child process exited with code 1

In the case of bootc install to-disk, this command should work as a standalone tool, so use of osbuild's zipl stage may not be an option.
As you mentioned earlier, if bootupd code is integrated into bootc, we can directly add zipl support in bootc. I think this is a best option, but it will take some time?

The osbuild's zipl stage explicitly set parameters targetbase, targettype, targettype, targetblocksize and targetoffset. In this case, the helper script is not necessary. The helper script is used to identify these values when the parameters are not specified.

OK. Of those...do you understand where targetoffset comes from? I looked through the code but I don't understand that.

So, is it an option to use the osbuild's zipl stage instead of ostree by generating a s390x-specific manifest by bootc?

We have a logistical problem in that so far, osbuild is something designed for build-time only; we don't ship it onto the end system. IOW it doesn't exist by default in a bootc container. That doesn't mean it can't, but it would be a big change to add it.
There's a larger picture problem around code sharing between osbuild, anaconda, bootc (and for that matter, a wide array of other tools in this space, some distro specific, others more generic like Kiwi etc.)
Looking at that osbuild stage, in the end it's just parsing some bootloader configs and invoking zipl mostly, and we already have all that code here too, right?

Regarding bootc install to-disk, I needed to modify the code to prepare partitions for s390x.

Can you send a patch for that? Even if it's not all complete, nothing stops us from merging it now.

Then, I got the following error. I guess the cause of the error is that BLS configs under /boot/loader/entries are not visible from zipl.

Hmm, yes. There's a whole lot of namespacing and mounts going on here. It's just complex since zipl so far is the only case where we need to run code to update the bootloader.

As you mentioned earlier, if bootupd code is integrated into bootc, we can directly add zipl support in bootc. I think this is a best option, but it will take some time?

I don't think we need to block on merging bootupd; it would help a bit, but it's not the core problem here.

OK. Of those...do you understand where targetoffset comes from? I looked through the code but I don't understand that.

According to this page, targetoffset needs to be set to 2048 when the first partition is the boot partition.
https://bugs.launchpad.net/diskimage-builder/+bug/1730641

MBR consumes 512 Byte. Due to the alignment the next (1MiB -512 Bytes) are unused. The first partition starts at 1 MiB which is block 2048 ((1024 * 1024)B / 512 Bytes per Block).
-> zipls targetoffset should be set to 2048 when the first partition is the boot partition.

Currently, I specify the whole disk (/dev/loop0) to targetbase, and its first partition (/dev/loop0p1) is /boot, so we need to specify targetoffset=2048. If I directly specify the first partition (/dev/loop0p1) to targetbase, do I need to specify targetoffset=0? I will confirm it later.

Looking at that osbuild stage, in the end it's just parsing some bootloader configs and invoking zipl mostly, and we already have all that code here too, right?

zipl has a mechanism to find kernel and ramdisk paths using BLS info under /boot/loader/entries/, but the mechanism is only used when the command line options (targetbase, targetoffset, ...) are not specified if I remember correctly. When the target options are specified, the options --image, --ramdisk, and --parameters are also needed to be specified directly.
So, I think we may need to copy the code that searchs BLS info from https://github.com/coreos/coreos-installer/blob/main/src/s390x/zipl.rs to identify kernel and ramdisk paths.

Regarding bootc install to-disk, I needed to modify the code to prepare partitions for s390x.

Can you send a patch for that? Even if it's not all complete, nothing stops us from merging it now.

Sure. I currently did quick dirty hacks to suppress errors on s390x. I'll prepare a cleaner patch to fix the errors.

I managed to run bootc install to-disk. I updated my zipl wrapper script to calculate an targetoffset of /boot partition.
https://gist.github.com/yoheiueda/c328ca7eccf313dd03292aeca71fbd02

@cgwalters

Regarding bootc install to-disk, I needed to modify the code to prepare partitions for s390x.

Can you send a patch for that? Even if it's not all complete, nothing stops us from merging it now.

I raised a PR for this issue. https://github.com/containers/bootc/pull/623

@cgwalters I raised an PR to run zipl with correct options on a loop device. https://github.com/containers/bootc/pull/665

@cgwalters I created an PR to enable s390x. https://github.com/containers/bootc/pull/705

Great! So...I think we can keep https://github.com/osbuild/bootc-image-builder/issues/460 open to track the bib work.
The remaining bits I think are probably just to turn on ppc64le/s390x on the builds of quay.io/centos-bootc/bootc-image-builder which should likely be tracked there too.
OK to close this one?

Yes. It is OK to close this one. Thank you very much for your support!
I'll submit a PR to bootc-image-builder soon.


Migrate canopy-height transformer to use new template-lidar-plot template as starting point

Task to do
Use template-lidar-plot template repo as the basis for the canopy height transformer
Reason
Much less code to maintain and standardization of plot-level transformers
Result
Updated canopy-height transformer

@Chris-Schnaufer does this mean to move the code from this repo https://github.com/AgPipeline/transformer-las2height?

https://github.com/AgPipeline/template-canopy-height

Ignore the above it's here.
https://github.com/ua-diag-pipeline/template-canopy-height


New use type construct

This is an experimental PR to test the change made in https://github.com/ocaml-ppx/ppxlib/pull/495
In particular I would like to confirm that thanks to the change, I can now remove the special coverage off attributes and maintain the same level of coverage.
This is using an unreleased preview packages that combines ongoing changes from ppxlib, published here

Outdated, subsumed by #6


Add compas logo to the documentation and change colors to fit to be better reconized

Add the CoMPAS logo for more recognition of the project

The logo can be found here:
https://artwork.lfenergy.org/projects/compas/
This can be applied to the architecture page and the contribution page.
Maybe change the background color to a logo color?

Maybe change the menu background color to a logo color?


Add intro/outro pages

Manually added intro/outro pages
Includes code for initial auto generation (not incorporated into workflow as there was a manual step for intro)

Could be waxier as I've included code in the ci folder that we don't actually have in a workflow. This is because there is one manual step for the intro files. The initial auto generation code will be helpful if we make changes so I want it somewhere

Do we need to use notebooks for the intro and outro? Would markdown files be possible, or are we relying on some feature of the notebooks to support the embedding of videos and slides? Using notebooks creates havoc with the process_notebooks script as it has mangled all the READMEs and created student versions of the intro/outro notebooks. Alternatively, if these are supposed to be generated dynamically as part of book creation, they shouldn't be committed to avoid this problem.
Also, if you don't want the file generation to happen as part of the book building workflow, you either need to consolidate everything into the generate_book script or update the workflow to also run the generate_intro_outro script.

I'm fixing the readme generation now so should be fine. I don't want file generation as part of the book building process - these will just be manual for now. We want to add intro/outro notebooks to the readme so they need to be saved and yes we use ipywidget tabs for video embedding

To be clear, the reason I want to commit intro/outro files is so I can have them in the readme so the next step is fixing that

Have added readme generation fixes


Add a new string and if statement

Added a new string to Strings.xml and different languages xml. Added an if statement in InsertActivity.kt to check foodName is not empty. Because of this user cannot add empty foodName in a list.

It's all good, thank you so much for your great work!


v1.0.0 Pre-release Discussion

The release candidate branch is available for testing and review.
Please feel free to check it out and give feedback here.

RC.2 seems good to me, been sitting on it for a while and I think we're ready for release. Speak now or forever hold your peace.

Releases will be postponed for now. There is no rush currently for an API freeze.


Improve completion of parameters for attributes

PR Summary

Fixes: https://github.com/PowerShell/PowerShell/issues/12771
Fixes issue where tab completion for attribute parameters only works for the first parameter due to the comma(s) required for the following parameters.
PR Context
If you are using an attribute like [Parameter()] you need to remember the full list of parameters because tab completion/intellisense doesn't work unless you are writing the first parameter.

PR Checklist

[X] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[X] Summarized changes
[X] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[X] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[X] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[X] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[X] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[X] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[ ] I have considered the user experience from a tooling perspective and enumerated concerns in the summary. This may include:

Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode (which runs in a different PS Host).
Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.
Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).
Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

I'd expect follow works but it doesn't:
function bar { [parameter(Position,<Tab>

I'd expect follow works but it doesn't:
function bar { [parameter(Position,<Tab>

Agreed, that would be nice but I don't know how I would implement that.
Incomplete input like [ValidateSet( doesn't get any ASTs of type AttributeAst and the completionContext doesn't contain the tokens that would otherwise let me know about an attribute.
Do I update completionContext to also include the tokens? Do I parse the input again to get the tokens? Use regex to determine if the text looks like an attribute?

Agreed, that would be nice but I don't know how I would implement that.
Incomplete input like [ValidateSet( doesn't get any ASTs of type AttributeAst and the completionContext doesn't contain the tokens that would otherwise let me know about an attribute.
Do I update completionContext to also include the tokens? Do I parse the input again to get the tokens? Use regex to determine if the text looks like an attribute?

Agreed, that would be nice but I don't know how I would implement that.

Yes, it would be nice. I don't know if even that is possible (all we have is an ErrorAst). It would be a sad limitation. If so this could be addressed by prediction feature (not in the PR).
Perhaps @daxian-dbw and @rjmholt could advice something.

Agreed, that would be nice but I don't know how I would implement that.

Yes, it would be nice. I don't know if even that is possible (all we have is an ErrorAst). It would be a sad limitation. If so this could be addressed by prediction feature (not in the PR).
Perhaps @daxian-dbw and @rjmholt could advice something.

Agreed, that would be nice but I don't know how I would implement that.
Incomplete input like [ValidateSet( doesn't get any ASTs of type AttributeAst and the completionContext doesn't contain the tokens that would otherwise let me know about an attribute.
Do I update completionContext to also include the tokens? Do I parse the input again to get the tokens? Use regex to determine if the text looks like an attribute?

Definitely better in a separate PR.
I don't have a total picture of how to achieve this, but:

Regex should not be used -- the tokeniser is built for this purpose
The completer should probably have as much information as exists in order to generate good completions. This includes tokens.
You may encounter complexity with composite tokens, which are ones that in my opinion the tokeniser doesn't handle very well. But you should still have enough information in the token string to do the right thing given enough determination.

I believe the current token is available here:
https://github.com/PowerShell/PowerShell/blob/c909541b7797b60462188a4abe9592a8763c1fbb/src/System.Management.Automation/engine/CommandCompletion/CompletionAnalysis.cs#L22-L24
and the full token array is available here:
https://github.com/PowerShell/PowerShell/blob/c909541b7797b60462188a4abe9592a8763c1fbb/src/System.Management.Automation/engine/CommandCompletion/CompletionAnalysis.cs#L62
It should be possible to search backward through the token array if need be.
If the token up to that point isn't available, I don't think there's a way of piercing through the tokeniser abstraction to see the raw input currently, but the right way to do that would be to expose it as a token anyway.

Agreed, that would be nice but I don't know how I would implement that.
Incomplete input like [ValidateSet( doesn't get any ASTs of type AttributeAst and the completionContext doesn't contain the tokens that would otherwise let me know about an attribute.
Do I update completionContext to also include the tokens? Do I parse the input again to get the tokens? Use regex to determine if the text looks like an attribute?

Definitely better in a separate PR.
I don't have a total picture of how to achieve this, but:

Regex should not be used -- the tokeniser is built for this purpose
The completer should probably have as much information as exists in order to generate good completions. This includes tokens.
You may encounter complexity with composite tokens, which are ones that in my opinion the tokeniser doesn't handle very well. But you should still have enough information in the token string to do the right thing given enough determination.

I believe the current token is available here:
https://github.com/PowerShell/PowerShell/blob/c909541b7797b60462188a4abe9592a8763c1fbb/src/System.Management.Automation/engine/CommandCompletion/CompletionAnalysis.cs#L22-L24
and the full token array is available here:
https://github.com/PowerShell/PowerShell/blob/c909541b7797b60462188a4abe9592a8763c1fbb/src/System.Management.Automation/engine/CommandCompletion/CompletionAnalysis.cs#L62
It should be possible to search backward through the token array if need be.
If the token up to that point isn't available, I don't think there's a way of piercing through the tokeniser abstraction to see the raw input currently, but the right way to do that would be to expose it as a token anyway.

@MartinGC94 Thanks for your contribution!

@MartinGC94 Thanks for your contribution!


exoscale: destroy the SSH keypair when removing the machine

Otherwise, when recreating a machine with the same name, we would get an
error about this SSH keypair already existing.
To avoid any confusion, let's say that machine will handle all keypairs
and the user cannot provide its own. Therefore, move the keypairs into
their own "namespace" and remove the option to specify a keypair.
This is also what is done by Digital Ocean.
First commit is totally unrelated but I didn't want to do a PR just for it.

Updated for both comments. Integration tests are successful.

LGTM

Thanks!

yw!


NOISSUE: update readme

Add dep into base-image, because make all in run-test.py failed.

Sorry, but we can't add instructions to README which disclosure private repositories. Also I'm pretty sure we don't depend on dep for a while now.


[DDW-1081] Adjust Stake pool logic for ranking color

This PR adjusts the Stake pool logic for ranking color to account for the total number of stake pools.
Screenshots
Before

After

Testing Checklist

Slack QA thread
[ ] The color of the thumbnails should be related to the total number of Stake Pools, e.g. 100 out of 300 should still be greenish.

Review Checklist
Basics

[ ] PR has been assigned and has appropriate labels (feature/bug/chore, release-x.x.x)
[ ] PR is updated to the most recent version of the target branch (and there are no conflicts)
[ ] PR has a good description that summarizes all changes and shows some screenshots or animated GIFs of important UI changes
[ ] CHANGELOG entry has been added to the top of the appropriate section (Features, Fixes, Chores) and is linked to the correct PR on GitHub
[ ] Automated tests: All acceptance and unit tests are passing (yarn test)
[ ] Manual tests (minimum tests should cover newly added feature/fix): App works correctly in development build (yarn dev)
[ ] Manual tests (minimum tests should cover newly added feature/fix): App works correctly in production build (yarn package / CI builds)
[ ] There are no flow errors or warnings (yarn flow:test)
[ ] There are no lint errors or warnings (yarn lint)
[ ] There are no prettier errors or warnings (yarn prettier:check)
[ ] There are no missing translations (running yarn manage:translations produces no changes)
[ ] Text changes are proofread and approved (Jane Wild / Amy Reeve)
[ ] Japanese text changes are proofread and approved (Junko Oda)
[ ] UI changes look good in all themes (Alexander Rukin)
[ ] Storybook works and no stories are broken (yarn storybook)
[ ] In case of dependency changes yarn.lock file is updated

Code Quality

[ ] Important parts of the code are properly commented and documented
[ ] Code is properly typed with flow
[ ] React components are split-up enough to avoid unnecessary re-renderings
[ ] Any code that only works in main process is neatly separated from components

Testing

[ ] New feature/change is covered by acceptance tests
[ ] New feature/change is manually tested and approved by QA team
[ ] All existing acceptance tests are still up-to-date
[ ] New feature/change is covered by Daedalus Testing scenario
[ ] All existing Daedalus Testing scenarios are still up-to-date

After Review

[ ] Merge the PR
[ ] Delete the source branch
[ ] Move the ticket to done column on the YouTrack board
[ ] Update Slack QA thread by marking it with a green checkmark

@daniloprates Logic is awesome now but there are few problems.

@tomothespian great catch! It's fixed.

@tomothespian can you please re-test? Thanks!


TaggedPosts not showing recent posts

Whenever I make use of the taggedPosts method, I don't seem to always get the most recent posts of a hashtag. It's not a well known hashtag, but its a hash tag that is used by a writing community and I'm trying to track those posts. I do get results, but they're not always the most recent, am I missing something in the parameters? The parameters listed don't seem to have anything of relevance here.

Would you mind sharing the tag you're trying to track?

@sanmai sure, writeblrcafe


status.rs: Make json output more verbose

Currently if the status response has no status code, json output contains only a text field which gives no real information about the cause of the problem. The patch adds field with more detailed information when the status response contains some details.

Yes, I have. Currently it looks like this:
{
  "total": 77,
  "successful": 36,
  "unknown": 0,
  "unsupported": 0,
  "timeouts": 0,
  "redirects": 0,
  "excludes": 39,
  "errors": 2,
  "cached": 0,
  "success_map": {},
  "fail_map": {
    "./themes/dasharo/layouts/partials/essentials/style.html": [
      {
        "url": "https://use.fontawesome.com/",
        "status": {
          "text": "Failed: Network error",
          "code": 404
        }
      },
      {
        "url": "https://expired.badssl.com/",
        "status": {
          "text": "Failed: Network error",
          "details": "error:0A000086:SSL routines:tls_post_process_server_certificate:certificate verify failed:../ssl/statem/statem_clnt.c:1883: (certificate has expired)"
        }
      }
    ]
  },
  "suggestion_map": {},
  "excluded_map": {},
  "duration_secs": 3,
  "detailed_stats": false
}

And this is how it looks without this patch (latest stable):
{
  "total": 77,
  "successful": 36,
  "unknown": 0,
  "unsupported": 0,
  "timeouts": 0,
  "redirects": 0,
  "excludes": 39,
  "errors": 2,
  "cached": 0,
  "success_map": {},
  "fail_map": {
    "./themes/dasharo/layouts/partials/essentials/style.html": [
      {
        "url": "https://use.fontawesome.com/",
        "status": {
          "text": "Failed: Network error",
          "code": 404
        }
      },
      {
        "url": "https://expired.badssl.com/",
        "status": {
          "text": "Failed: Network error"
        }
      }
    ]
  },
  "suggestion_map": {},
  "excluded_map": {},
  "duration_secs": 3,
  "detailed_stats": false
}

Can it be added as an integration test, similar to this?

I'll try to do this in a moment.

@mre Test added in the ca14655.

Looking great! Thanks a lot @Asiderr 😃


Simplify GetServiceCodes code

I'm not sure why you are looping and not just using a copy constructor. There are actually several places where the code could be simplified, but this is one obvious one.

Thanks @MusicMonkey5555


feat: [DCS-220] add count_usa_phone and percent_usa_phone functions

Fixes/Implements
Description
Validity function for count_usa_phone and percent_usa_phone
Type of change
Delete irrelevant options.

[ ] 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)
[ ] This change requires a documentation update

How Has This Been Tested?

[x] Locally Tested
[ ] Needs Testing From Production

Missing test cases for configuration parser @ashank2603
please add it in tests/core/configuration/test_configuration_v1.py


empty-elements support?

I would like to have support for parsing empty-elements
example:

https://www.w3.org/TR/xml/#dt-empty

empty-elements should be:


Add trees as points

New layer? Existing vegetation layer?

Possible thing to research: Render indivudal trees in a natural=tree_row


[Private API] Webhooks for 'message send errors' not working for failed messages

No content

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @tneot01 in #general.

How to reproduce:
1) Setup webhook
2) Create chat with number: +4749252525
3) Send iMessage to phonenumber: +4749252525
4) Repeat step 3 (it will produce error 0 as response, but in the logs in BB server, it clearly states the message failed)

I believe i fixed this


App Detail graphs for GitLab apps only display one node

Describe the bug
A wego GitLab app somehow loses its child nodes - or more likely never gets them, which results in only one node being displayed on the graph.
What is the severity of the bug
| severity/Minor | Weave Gitops functionality is broken, but there is a workaround |
To Reproduce
Steps to reproduce the behavior:

Add a GitLab app to the wego ui
Click on the app
Frown as you see only one node displayed on the graph

Expected behavior
I would expect GitLab apps to appear in the same way that GitHub apps do, with multiple nodes.
Screenshots

Context
Check the result of getApplication, and how it is processed through ReconciliationGraph and DirectedGraph

Cannot reproduce.


⚠ LabBricks has degraded performance

In 8f008bd, LabBricks (https://labbricks.com) experienced degraded performance:

HTTP code: 523
Response time: 3156 ms

Resolved: LabBricks performance has improved in b54d406 after 30 minutes.


Thorium: add version 117.0.5938.157

Closes #12072

[x] I have read the Contributing Guide.

/verify

/verify

Shouldn't another package be added for avx2 version?

It's already done in the Versions bucket. https://github.com/ScoopInstaller/Versions/pull/1438#issuecomment-1783386643


Using partial_eval_jaxpr to simulate yield points

Hi all,
I've been trying to use https://github.com/google/jax/blob/master/jax/interpreters/partial_eval.py#L576 to simulate a yield point.
The idea was to define a new primitive yield_p, which is just the identity function, but during partial evaluation, always treat its output as unknown regardless of the input.
From the documentation in the link, I'm guessing that partial_eval should be able to "split" my jaxpr in half, where the first half computes everything up to the yield_p, and the second half computes everything after.
However, below is my minimal attempt for the above idea, and reproduces a weird behavior that I wasn't able to figure out what partial_eval_jaxpr is doing.
import jax.core as core
import jax.interpreters.partial_eval as pe
from jax import source_info_util
from jax import make_jaxpr
import jax.numpy as np

yield_p = core.Primitive("yield_prim")
yield_p.def_impl(lambda x: x)
yield_p.def_abstract_eval(lambda x: x)
def do_yield(x):
  return yield_p.bind(x)

def yield_p_partial_eval_rule(trace: pe.JaxprTrace, tracer: pe.JaxprTracer,
                              **params):
  tracer = trace.instantiate_const(tracer)
  out_aval = yield_p.abstract_eval(tracer.aval, **params)
  source = source_info_util.current()
  out_tracer = pe.JaxprTracer(trace, pe.PartialVal.unknown(out_aval), None)
  out_tracer.recipe = pe.new_eqn_recipe([tracer], [out_tracer], yield_p, params,
                                        source)
  return out_tracer
pe.custom_partial_eval_rules[yield_p] = yield_p_partial_eval_rule

def f1(x):
  return do_yield(x) * 2

def f2(x):
  return do_yield(np.sin(x)) * 2

def test_yield_func(f):
  print('-----' + f.__name__ + "-----")
  jaxpr = make_jaxpr(f)(1.)
  (jaxpr_known, jaxpr_unknown,
   out_unknowns) = pe.partial_eval_jaxpr(jaxpr, [False], True, None)

  print("jaxpr:", jaxpr)
  print("jaxpr_known:", jaxpr_known)
  print("jaxpr_unknown:", jaxpr_unknown)
  print("out_unknowns:", out_unknowns)
  print("")

test_yield_func(f1)
test_yield_func(f2)

As above, I have overwritten pe.custom_partial_eval_rules for yield_p to always produce unknown PartialVal.
I have defined two simple functions f1 and f2, where the only difference is f2 does some computation before passing to yield.
The weird part is in the output:
-----f1-----
jaxpr: { lambda  ; a.
  let b = yield_prim a
      c = mul b 2.0
  in (c,) }
jaxpr_known: { lambda  ; a.
  let
  in (*, a) }
jaxpr_unknown: { lambda  ; a b.
  let c = yield_prim b
      d = mul c 2.0
  in (d,) }
out_unknowns: [True]

-----f2-----
jaxpr: { lambda  ; a.
  let b = sin a
      c = yield_prim b
      d = mul c 2.0
  in (d,) }
jaxpr_known: { lambda  ; a.
  let b = sin a
      c = yield_prim b
      d = mul c 2.0
  in (*, d) }
jaxpr_unknown: { lambda  ; a b.
  let
  in (b,) }
out_unknowns: [True]

It turns out that jaxpr_known is empty for f1, which is what I expected. But jaxpr_known is the full jaxpr of f2, which got me very confused.
I'm thinking there're three ways to explain this behavior:

partial_eval_jaxpr doesn't really look at the output of custom partial eval rules to determine which part of jaxpr is known vs unknown; instead it only looks at dependencies of the unknowns of the input. This appears to be what the docstring says -- which is fine, but quite different from my understanding of partial evaluation (*which could be wrong). However, this is odd since for f1 it decided to treat the entire jaxpr as unknown, and seems to have not ignored my custom rule.
partial_eval_jaxpr was intended to look at the outputs of custom partial eval, but something might be buggy internally with JAX.
Something is wrong with my implementation.

Currently, seems like 3) is most likely what happened; so I'd be very appreciated for a JAX expert to look at why this happens. Or maybe teach me what I missed? Many thanks in advance!

To add, this seems somewhat related to #1660, which provides yield_p similar to what I desire. Maybe the fact that it is much more complicated than using partial_eval implies that partial_eval is not intended to be abused this way :)

This is a very interesting case, but it's also something that the current implementation is not really prepared to handle, because it is based entirely on data dependencies. To construct jaxpr_unknown it will start executing your program with the sole input marked as known. Because the output of jnp.sin is also known, it does not get emitted into the trace and the system does not bother marking the result as participating in the partial eval, because it is assumed that a known value can never give rise to an unknown value. This last bit is important, because form that point on, the result of jnp.sin is indistinguishable from any value your function might have closed over. In particular, the input to yield_p is not marked as participating in partial_eval, so yield_p can be even ran using its impl rule.
To sum up, I don't think this is a bug, beacuse the partial_eval used to be designed with data dependencies in mind, and in this world you can never have an unknown value pop up out of nowhere. But we could try to change it (especially with the recent omnistaging changes) such that it would be able to handle the use-case you've suggested. WDYT @mattjj?

@apaszke
Thanks for the explanation! That clarifies a lot.
Let me echo  back my guess on why for f1 the entire jaxpr is unknown: the yield_p is not marked as participating in the partial eval, therefore it's output value, which is an unknown, just propagates and partial eval decided that everything is unknown?
Anyways, after looking at #1660 I'm more curious about the progress on tagging as that should properly implement a yield point, which provides a cleaner API than what I was trying to do. But I do think that approach have a problem similar in vein, since implementations in both #1660 and #1803 both require "plumbing" a scope variable, which carries around the top level dependency to make sure subexpressions are staged properly.

Yeah f1 worked only because yield_p is applied to the function argument. The arguments are always marked as participating in partial eval, but when you run an op on known arguments the outputs will not be marked as participating. I hacked together a prototype (really only a few lines changed) that would avoid dropping this info and it does produce the right output for me now. Unfortunately it seems to be failing some tests, so it might not be that straightforward...

cc @sharadmv; this user might want to use Oryx!

Hi @jekbradbury thanks for pointing out that library! It indeed looks very interesting and I may potentially make use of it.
Since I see that Oryx provides reap/plant functions which are equivalent to collect/inject transforms you gave in #1660, is the plan that these functions will be moved to Oryx permanently?
Also, it seems like reap/plant ignores tagged value's intermediate gradient information, and back in #1660 you mentioned it was a design choice that was not clear what is the best. Were you able to progress onto a newer design, and might share some new insight? Thanks!

This was an interesting discussion, but I'll close the issue for the sake of keeping our repo tidy. Feel free to post on our discussions forum if you have any further questions!


added code of conduct to nav bar

What did you do?

Added the Galaxy Code of Conduct to the nav bar

Why did you make this change?
We needed to make it more prominent
Have you tested locally?
(please check all three to move your PR forward!)

[x] I have tested the changes locally and they appear as I desire them to.
[x] I have tested the links and they work correctly.
[x] I have checked that the images match my expectations.

How to test the changes?
Instructions for manual testing are as follows:

Run npm run develop

Add a screenshot if applicable

Looks good. I merge. Thanks @Chinonyemildred


Features/main page design2

resolved #55
resolved #56
resolved #57
to resolve #66

Good work. However it is a bit messy so I can help clean up the look of the page

The available tests are all passing with this version as well. Well done!


Endpoints for the frontend

Closes #24
Closes #17
Get: http://localhost:8000/api/questions/1/ : Returns the questions including a 'selected' attribute (True if this option has been previously selected)
Post: http://localhost:8000/api/questions/1/: Enter an entry for the patient:
The body needs to contain these:
return ('is_in_isolation' not in body
or 'data_accepted' not in body
or 'station' not in body
or 'room_name' not in body
or 'bed_number' not in body
or 'barthel_index' not in body
or 'expanded_barthel_index' not in body
or 'mini_mental_status' not in body
or 'selected_care_services' not in body)
The format of the selected_care_services should equal the result returned by the corresponding get request of the same route.
Post: http://localhost:8000/api/calculate/: Calculates the minutes calculated for a patient based on the data provided.
The data send is the same as for the upper Post Request.
Example Data to include in the body for the Post requests:
        const postData = {
            is_in_isolation: false,
            data_accepted: true,
            station: 1,
            room_name: 'Testraum',
            bed_number: 1,
            barthel_index: 20,
            expanded_barthel_index: 20,
            mini_mental_status: 20,
            selected_care_services: [{"id": 1, "field_id__name": "Allgemeine Pflege", "field_id__short": "A", "category_id__name": "K\u00f6rperpflege", "name": "A-koerperpflege-1-1", "severity": 1, "description": "Alle Patienten, die nicht A2, A3 oder A4 zugeordnet werden.", "selected": true}, {"id": 2, "field_id__name": "Allgemeine Pflege", "field_id__short": "A", "category_id__name": "K\u00f6rperpflege", "name": "A-koerperpflege-2-1", "severity": 2, "description": "Hilfe bei \u00fcberwiegend selbst\u00e4ndiger K\u00f6rperpflege", "selected": false},],
        }

In my view everything looks good. I had a problem with the creation of migrations, where I explicitly have to state that i want to create the migrations for the backend (good knows why). Other than that, I fixed some typos.
We should also consider some API documention (e.g. swagger) to document API routes, but in the meantime we could maybe write those in the Readme or a different markdown file?
We should also await approval from someone from the frontend team that these are the things they need.


Feature/t misrael/2022 04 13 preview

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[x] No refresh required for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[x] Check this box if any of the following apply to the PR so that label "WaitForARMFeedback" will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[x] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@ArcturusZhang
You Make some good points here, and we have created to tasks to test using the common-types you suggested, change some variable names, and remove the readonly property from"AccountPropertiesForPatchRequest"
As I mentioned, this PR consists of a hotfix that we need approved as soon as possible that is causing customer requests to fail.
Here is a link to the ICM with the issue we are fixing.


Open a folder by passing it into arguments

Just a feature request:
fff path/to/folder # should open the folder

done
https://github.com/dylanaraps/fff/commit/8bf3b005305a00a7286b578cd1b4819a722d1c3c


[V850] Missing instructions for V850E1 firmware opcodes

Describe the bug
Using Ghidra build 20201124 (9.3DEV).
A couple of screenshots explain this fairly well I reckon :)
I'm looking at a V850E1/CA2 (Jupiter) processor firmware. The section shown below is just the interrupt vector table found at offset 0x0 in the firmware. Right at 0x0, radare2 gets the jr's and ld.hu's right. I can provide snippets from GNU's v850 objdump which corroborate that this opcode should be jr.
Ghidra does not seem to recognize that opcode at all:

To Reproduce
Steps to reproduce the behavior:

Load V850E1 file with opcode 80 07 d0 c8.
Incorrect instruction for that opcode in Listing window.

Expected behavior
jr other instructions correctly identified as r2's v850/v850.gnu and/or GNU's binutils v850-objdump.
Environment (please complete the following information):

OS: macOS 10.15
Java Version: 11
Ghidra Version: 0.9.3DEV build 20201124

/cc'ing @Aleckaj @mumbel @esaulenka @GhidorahRex since I noticed the great discussion on PR https://github.com/NationalSecurityAgency/ghidra/pull/1430, kudos for including this arch! I hope someone can pinpoint what's missing in here, happy to clip some examples/snippets for testing if you need so.

@brainstorm  To me it looks like something might have referenced those addresses and ghidra thought it was data.  I would clear the ddw and try manually disassembling.

Indeed, thanks @mumbel and sorry for the noise!


Can't create user accounts

I've used the quick install script in .homeinstall to create my installation
I've ran through the checks and configured my DB
when I try to submit the registration form (on /register ) it hangs for a bit while the page is loading, then reloads the same form.

What gives? Could it be a database timeout?
It leaves the password filled in (as opposed to a bad attempt using mismatched passwords or not checking the 'over 13' flag).
I was concerned the db credentials could be incorrect, but changing them just meant the server wouldn't load at all.
I created dbfail.out however it is not being logged to (even after being CHOWN'd to www-data).

Note: I've tried creating an account with both the administration email address and other non-administrative email addresses.

I'm running Hubzilla on Debian 9 with a MySQL DB.

Registration works fine for me. I suspect it is something related to the .homeinstall script but this script was provided by a community member and I'll have to track him/her down and get them to take a look.

I had some progress - I deactivated the DNS check on new account email properties.
The script still hangs for a good 20+ seconds on new account registration, but eventually it navigates past.

Do you see a message that the email is not valid?
If yes try to
cd /var/www/html
util/config system.do_not_check_dns 1

(Just yesterday I had the same issue after using .homeinstall on a fresh Raspi with Raspian Stretch)

I had to wait quite patently for the pages to load on the raspi 3 at the first configuration steps and the registration.
But the installation worked. (And the performance is ok on other pages.)

Just curious...
Did you use selfHOST or http://freedns.afraid.org/dynamic/update.php?Uasdflkadflk 8fq9834pqfj in hubzilla-config.txt?
Did the script show any error messages?


Xamarin Android PDF Displays, But Does Not Download

Can be any PDF
Configuration:

Assuming Android Native Browser
Android 6.0.1 Marshmallow
v1.5 through 1.8:

Steps to reproduce the problem:

I am following the example given here:
Everything works fine, except for the download button. Once clicked, does nothing.  Has anyone been able to get the download button to work within an Android application?

What is the expected behavior? PDF Download to Physical Device from with Android Application.  Works fine in Chrome.
What went wrong? Nothing happens when download button clicked.

This sounds like a browser/platform issue rather than a PDF.js library one; closing since this issue doesn't seem like something that can/should be fixed here?


A new helper method in Decorator class to resolve types for type references decorators

…r type references decorators. Failed tests with Error message: Internal error: local types are not yet initialized. Do not try to resolve types inside . The error is thrown by ModelFile.getLocalType method. Inside the _resolveArguemntType method the call that lead to the error is modelFile.getType(argument.type.name)

Closes #<#797>

As requested by @sanketshevkar I created this draft pull request to allow him to dig up into this.
Changes

A new helper method in Decorator class to resolve types for type references decorators >
Failed tests with Error message: Internal error: local types are not yet initialized. Do not try to resolve types inside . The error is thrown by ModelFile.getLocalType method. Inside the _resolveArguemntType method the call that lead to the error is modelFile.getType(argument.type.name)

Flags

Screenshots or Video

Related Issues

Issue #798
Pull Request #

Author Checklist

[ ] Ensure you provide a DCO sign-off for your commits using the --signoff option of git commit.
[ ] Vital features and changes captured in unit and/or integration tests
[ ] Commits messages follow AP format
[ ] Extend the documentation, if necessary
[ ] Merging to main from fork:branchname

Regarding this comment from the issue.
Yes, you're findings seem correct to me. For this, I think we can use this in the validate method.
@mttrbrts @dselman will this be a good approach?


Add crate: CRATE

Please add these two crates to category: GPU Computing
wgpu-rs is used by emu (which is already on are-we-learning-yet - thank you). However, I believe wgpu-rs deserves its own mention. It supports some GPUs and others are work in progress: https://github.com/gfx-rs/wgpu#supported-platforms.
It contains of three crates:
1.:

crate wgpu
https://github.com/gfx-rs/wgpu-rs
https://crates.io/crates/wgpu
https://docs.rs/wgpu

and 3.:

one GitHub for both crates: https://github.com/gfx-rs/wgpu, which is an "active mirror" of https://hg.mozilla.org/mozilla-central/file/tip/gfx/wgpu.
first crate: wgpu-core:
-- https://crates.io/crates/wgpu-core
-- https://docs.rs/wgpu-core/
second crate: wgpu-types:
-- https://crates.io/crates/wgpu-types
-- https://docs.rs/wgpu-types/

I've added a wgpu link to the GPU Computing topic in PR #78 , although I left out the sub--crates, since it seems relatively easy to find those off of the existing documentation in the wgpu crate. Please feel free to have a look and make/suggest any updates


Possibility to get the data from other market?

I really appreciate the great work from you. Thanks a lot.
Just one question, is it possible to get other market data (e.g., German market) through this API?

Hello, glad you're enjoying it.
It should be possible,  here we specify the market to query the data from, try replacing that value with something like "germany", and let me know how it goes,
If that works I'll try finding the full list of markets and add it to the API.

Hi, It works! I changed the country string in the URL as well.
Thanks!

Great news, I will add this feature to the master branch in the future, cheers


ValidationError when using fromJson and boolean

I have Model class defined as following:
class Person extends Model  {

  static get jsonSchema() {
    return {
      type: 'object',

      properties: {
        id: { type: 'integer' },
        customFlag: { type: 'boolean' },
      }
    };
  }

and JSON prepared for creating instance
const person = {
    id: 100,
    customFlag: 1
};

When I create instance of this class using Person.fromJson(person) objection gives me ValidationError: customFlag: should be boolean
Is this intended behaviour? Are 1 and 0 not considered as boolean types?

Boolean is a boolean. Number is a number.


Map Samsung Internet icon to Samsung Internet Beta package (#142)

There is an icon for Samsung internet beta already.

Thanks for your interest in contributing! As @arun54321 has mentioned, there’s already an icon for Samsung Internet Browser Beta in Lawnicons. For this reason, I’m afraid I’ll have to close this pull request.


Provide istioctl via homebrew

Describe the feature request
It would be good to have a homebrew formula available for istioctl which takes care of installing, updating the istioctl binaries.
Describe alternatives you've considered
Currently, the only way to install istioctl on macOS is to download the binary and copy it to a directory which is available via the PATH variable.
Additional context
N/A

seems a good feature to have it handy :). @esnible / @mbanikazemi could you look into this?

To contribute to Homebrew we will need to follow the instructions at https://github.com/Homebrew/homebrew-core/blob/master/CONTRIBUTING.md#add-a-new-formula-for-foo-version-234-from-url .  This means getting a PR approved for https://github.com/Homebrew/homebrew-core .

@linsun can I try it out, I recently made brew packages for https://github.com/StackExchange/dnscontrol.

Awesome, thanks @murarisumit pls keep us posted.

I can help here from brew side, I made an attempt before, but we need to build it not in docker using something like go build.

@igas It is easy to build the command line.  Just clone and make istioctl.  The tests also get run.  I can help with any questions about how to build or where to get pre-built binaries.

istioctl is available via homebrew now.

I tried brew install/reinstall/uninstall istioctl and it all appears to work well.
FYI - there was a discussion in the past regarding brew packaging, and pulling down of the yaml files required to install istio into your cluster using istioctl:
https://groups.google.com/forum/#!topic/istio-dev/fnlk9G37auU

Works on my end as well. Thanks for the fast solution.

@rvennam I see that version issue is there, as it is on discussion page.
Will try and look how to populate that info during build, meanwhile if anyone has pointers about how to do that, it would be really helpful.

@murarisumit istioctl version is baked into the binary.  The script bin/get_workspace_status.sh uses the environment variables VERSION and BUILD_GIT_REVISION to create some flags, then bin/gobuild.sh uses the -ldflags to bake them in.
The recipe should set BUILD_GIT_REVISION to the GIT revision of https://github.com/istio/istio .  I don't know if the VERSION appears in the source code.  If not perhaps use the branch -- if Homebrew is using the release-1.0.5 branch, then set VERSION to 1.0.5 or release-1.0.5.

@esnible thanks for help, really helpful pointers. H
omebrew generally discourages to build from git repo or they prefer from source archive. As I see here https://github.com/istio/istio/blob/master/bin/get_workspace_status.sh#L17, it doesn't check for environment variables and directly gets it from git repo. Pardon me for naive-ness, if I have missed something here.
Thanks to your reference, found ISTIO_VERSION variable which is read from environment and directly updates the version file. Got this putting ISTIO_VERSION variable in environment
 $ > istioctl version
Version: 1.0.5
GitRevision: unknown
User<EMAIL_ADDRESS>Hub: docker.io/istio
GolangVersion: go1.11.4
BuildStatus: Modified


Please someone wrap CannySegmentationLevelSetImageFilter for c#

Thank you so much 👍 Will the method be available in c# for me if I add the json file and build it normally? Or do I have to add somethin so any cmake file?

I'd recommend checking out this PR locally, re-running CMake, then building. The new class should then be available in all languages.

Did you miss SetIsoSurfaceValue()?

Thanks for giving it a try. I added the two requested items.
We initially passed on adding the "IsoSurfaceValue" parameter to all the LevelSet filters because it's trivial to just shift the input image by a constant so that the desired iso-value is zero.
Do you think the added SetIsoSurfaceValue method adds significantly to the utility?

Thank you so much so far 👍 . Unfortunately the IsoSurfaceValue it is not that trivial for me and I am misunderstanding something totally wrong.
If I dont set the IsoSurfaceValue explicitly to something else than 0.0 my guess is not growing. In my oppinion it is not clear how to setup the input images/parameters correctly. The CannySeg doc says:  For a binary image you will want to set your isosurface value halfway between your on and off values (i.e. for 0's and 1's, use an isosurface value of 0.5) . For me is not clear if this relates to the seed-image or maybe to the feature image greyvalues in the area of the seed?
I use the following parameters:

 ItkImage featureImage = SimpleITK.ReadImage("C:/feature.png", PixelIDValueEnum.sitkFloat64); ItkImage seedImage = SimpleITK.ReadImage("C:/seed.png", PixelIDValueEnum.sitkFloat64); CannySegmentationLevelSetImageFilter caLevSet = new CannySegmentationLevelSetImageFilter(); caLevSet.SetAdvectionScaling(0.5); caLevSet.SetPropagationScaling(4.5); caLevSet.SetCurvatureScaling(3); caLevSet.SetMaximumRMSError(0.05); caLevSet.SetNumberOfIterations(2000); caLevSet.SetThreshold(7); caLevSet.SetVariance(1); caLevSet.SetIsoSurfaceValue(127.5); caLevSet.ReverseExpansionDirectionOn(); ItkImage output = caLevSet.Execute(seedImage, featureImage); output = SimpleITK.Cast(output, PixelIDValueEnum.sitkUInt8);
Apparently I do something wrong because the seed should grow with positive advection and propagation. Instead I have to reverse expansion direction.
Best regards :)

The first thing I would try to do is reproduce the ITK example in simpleITK:
https://github.com/InsightSoftwareConsortium/ITK/blob/master/Examples/Segmentation/CannySegmentationLevelSetImageFilter.cxx
You can even add this example in a sub-directory of the Examples directory and create a PR.

Doing that I tried to generate the input first. This comes from thresholdsegmentation, but I had no succes so far. Nevertheless,  I think the GetCannyImage() method doesn't work. I get following error if I try to view the methods output:
{"Exception thrown in SimpleITK Show: c:\git\simpleitk\simpleitk-build\itk-prefix\include\itk-4.13\itkImageFileWriter.hxx:290:\nitk::ERROR: ImageFileWriter(0000015039A30D30): Largest possible region does not fully contain requested paste IO regionPaste IO region: ImageIORegion (0000004D191FA3C0)\n  Dimension: 2\n  Index: 0 0 \n  Size: 0 0 \nLargest possible region: ImageRegion (0000004D191FA4B0)\n  Dimension: 2\n  Index: [0, 0]\n  Size: [0, 0]\n"}
using the following code:
ItkImage output = caLevSet.Execute(seedImage, oriImage);             ItkImage canny = caLevSet.GetCannyImage();             SimpleITK.Show(canny);
According to this it seems to me that GetCannyImage() doesn't update the pipeline?
best regards :)

Thanks for reporting this issue. This may be an issue with ITK, I'll have to investigate.

The first thing I would try to do is reproduce the ITK example in simpleITK:
https://github.com/InsightSoftwareConsortium/ITK/blob/master/Examples/Segmentation/CannySegmentationLevelSetImageFilter.cxx
You can even add this example in a sub-directory of the Examples directory and create a PR.

I ported the example. When iterating 15 times, the output looks pretty similar to the outputs documented in ITK software guide. But when iterating to convergence(about 60 iterations) the result looks definetly not like in ITK's documentation. https://github.com/pettaa123/SimpleITK/tree/CannySegExample

This is with C# code? Can you share your code?
There are quite a large number of steps and parameters in this example, its quite easy for a small difference to occur when re-implementing it.

If everything went well you can see the used code in here https://github.com/pettaa123/SimpleITK/tree/CannySegExample

The one difference I spotted was the C# example used float64/double while the ITK example used float. Aside from that as long as the initial level set looks is the same the test case looks good to me.
These level set have been tricky to reproduce the examples before.

Ok, can you tell me where to get the ventricle seed from for the testing advice in cmakelist. So far only Brainprotondensityslice is already given

I tried it with float32, the convergence result looks same as with float64
My used inputdata

outputdata

I see a list of seeds under the ShapeDetectionLevelSet section in the software guide. In Table 4.4.
It looks like your levelest is shrinking in stead of expanding. Try multiplying by "-1" and/or toggling ReverseExpansionDirection.

I have implemented the example in python. The advection term should be negative ten (-10): InsightSoftwareConsortium/ITK#774

I think the issue regarding the getcannyimage method is still unsolved?


Invalid data at path...

Hi, i'm using qrCode in symfony 5 and  i have this exception (Invalid data at path...) when execute $result = $writer->write($qrCode, $logo, $label). I think can't create png file. Any idea?
Thanks!

Any solution?

Hi , I had the same problem and the reason was the $logo parameter.
As a first step try without logo and without label with $result = $writer->write ($qrCode, NULL, NULL);


0.1.10 of Lt-TernJS

New release of TernJs plugin which fix it on recent LightTable.
{:name "TernJS",
:version "0.1.10",
:author "Eric Pritchett",
:source "https://github.com/mortalapeman/LT-TernJS",
:desc
"Provides intelligent auto-complete, inline docs and jump to definition for JavaScript files in Light Table.",
:behaviors "ternjs.behaviors",
:dependencies {:Javascript "0.0.1"}}

@Armaklan can you submit a pull request for this?

Done.

@Armaklan thanks!


Add pagination to sermons page

Instead of having all of the sermons on one page, limit the number shown and add next and previous links at the bottom.

Instead of pagination, we should organize the page by sermon series.


[Sub Task] Adjust spacing of UI in the StakingConfirmation popup, specifically the airdrop container info

I think this one is fine and doesn't need any work doing to it.


Multi-gpu pre-training

Dear Yuan, thank you for releasing the source code for your great project. It looks like the current code only supports pre-training on a single GPU (e.g., missing DDP data sampler) while your paper indicates that the released models were pre-trained on 4 GPUs.
If possible, could you please update the code to support the multi-gpu pre-training?
Thank you.

hi there,
Could you elaborate this?
The code is the actual code we used to train on 4 GPUs (of a single node). We used torch.nn.DataParallel
https://github.com/YuanGongND/cav-mae/blob/6cb02fe785f1f8cd3529376074652db08733c674/src/traintest_cavmae.py#L43-L44
Just because we used 4 GPUs, the losses on each GPU are added, and if you run on single GPU, the result will be slightly different.
https://github.com/YuanGongND/cav-mae/blob/6cb02fe785f1f8cd3529376074652db08733c674/src/traintest_cavmae.py#L93-L94
-Yuan

Thank you for the quick reply and pointing out the part using multi-GPUs. I mistakenly assumed that you are using thetorch.nn.parallel.DistributedDataParallel module, which requires more steps. Sorry for the inconvenience caused.

You actually made a great point. torch.nn.DataParallel is the easiest but the least effcient way for parallelization. DistributedDataParallel and more advanced methods (FSDP) are (much) more efficient. Given the fact that CAV-MAE pretraining is sensitive to the batch size, it would be nice to explore the best way to parallelize the model training.
Having that said, due to the contrastive loss, gradient accumulation won't be a feasible solution with a trivial solution.
-Yuan

The code in this repo honestly reflects what we did in the paper. I did polish the code before the release to make it more clear, but as you can see in https://github.com/YuanGongND/cav-mae/tree/master/egs/audioset/training_logs, the results are almost exactly same with (or better than) that stated in the paper.


More consistent processing of images

Is your feature request related to a problem? Please describe.
When media is moved using another app, for example simple gallery pro, aves does not detect the change
Describe the solution you'd like
I want Aves to react to file changes. From a user's perspective, if an image is in a folder it should be visible in Aves as well.
Describe alternatives you've considered
.
Additional context
One way to test this is by creating a large folder with many pictures and also having a .nomedia file. Then remove the .nomedia file using a file explorer and take note of whether aves detects the newly available media. Note that manually triggering a rescan still does not detect the images, which it really should. It can only detect the images if I restart my device.

Aves already reacts to media updates from the Media Store. The Media Store is the database of media maintained by the Android OS. In the old days, the Media Store wasn't always reactive, but with modern Android versions it's fine.
With large amounts of media files, the Media Store may take some time to index them. That's normal, nothing is instantaneous.
Another reason for discrepancy between file storage and Media Store state is misbehaving apps. These apps create or move media files around without registering/updating them correctly with the Media Store.
In any case, one principle of Aves is that it collaborates with the system media management. It's not trying to be clever by bypassing it and monitoring storage itself.


(feat) allow hummingbot autostart scripts

Before submitting this PR, please make sure:

[ ] Your code builds clean without any errors or warnings
[ ] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:
This PR address the issue #6031.
Now you can pass the parameter --config-file-name={script_name}.py and the script is going to start.
The decision of using the parameter --config-file-name is because the log file in a script is the same as the name of the strategy.
Another solution can include adding another parameter like is_script but at this moment is redundant.
Tests performed by the developer:
Autostart the script example format_status_example.py
Tips for QA testing:
This video shows how it works: https://drive.google.com/file/d/14dyf39I5ZNlqdGc67V7a25BUpWRl3znV/view

In behalf of Foundation team we merged this PR to development for the upcoming Hummingbot version 1.13.0


Fix heading line spacing and padding

All headings (Heading-2XL, Heading-3XL, etc) have a line height that is too high.

Reduce it to about 1.2, so it looks like this.

On page headings the space between the H1, H2 and body are all the same.

Reduce the space between the H1 and H2 to 0 and the space between the h2 and body to 3rem.

Apply to all pages.

I can take on this task. Can someone assign this issue to me? Thanks!

Assigned!


Update pureconfig to version 0.12.1.

Description
Pureconfig isn't available for Scala 2.13 prior to 2.1.3. See https://mvnrepository.com/artifact/com.lihaoyi/fastparse.
Related issue and scope
Ref #4741
See dev-list discussion on Scala 2.13 here<EMAIL_ADDRESS>Checklist:

[X] I signed an Apache CLA.
[X] I reviewed the style guides and followed the recommendations (Travis CI will check :).

This'll be a bit more involved. Semantics seem to have changed. On the good note: Config seems to be only loaded once from the filesystem now. Things are cached after that.

Codecov Report

Merging #4736 into master will decrease coverage by 5.31%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #4736      +/-   ##
=========================================
- Coverage   83.61%   78.3%   -5.32%
=========================================
  Files         198     198
  Lines        8830    8830
  Branches      619     611       -8
=========================================
- Hits         7383    6914     -469
- Misses       1447    1916     +469

Impacted Files
Coverage Δ

...che/openwhisk/core/yarn/YARNContainerFactory.scala
87.5% <ø> (ø)
:arrow_up:

...pache/openwhisk/core/entity/ConcurrencyLimit.scala
94.11% <ø> (+5.88%)
:arrow_up:

...org/apache/openwhisk/core/entity/MemoryLimit.scala
93.75% <ø> (ø)
:arrow_up:

...openwhisk/common/tracing/OpenTracingProvider.scala
21.15% <ø> (ø)
:arrow_up:

...whisk/connector/kafka/KafkaConsumerConnector.scala
59.15% <ø> (ø)
:arrow_up:

...abase/ArtifactWithFileStorageActivationStore.scala
91.66% <ø> (ø)
:arrow_up:

...a/org/apache/openwhisk/core/entity/TimeLimit.scala
95.65% <ø> (ø)
:arrow_up:

...sk/core/containerpool/logging/SplunkLogStore.scala
84.61% <ø> (ø)
:arrow_up:

.../containerpool/logging/ElasticSearchLogStore.scala
96.15% <ø> (ø)
:arrow_up:

...e/loadBalancer/ShardingContainerPoolBalancer.scala
88.7% <ø> (ø)
:arrow_up:

... and 83 more

Continue to review full report at Codecov.

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

@chetanmeh finally did it! This is ready to review now. I'll update the PR against the mesos actor to only bump to 0.11 as well.
0.12 is a different beast entirely.

@markusthoemmes Please hold this merge. We had to increase  compile memory for the tests "A LOT (from 1 to 3GB) and want to understand more what is going on.

@mhenke1 What were the symptoms you've seen? Stackoverflows?

@markusthoemmes I have openend a PR in your Fork against this branch with a Heap size related change while compiling the test cases. Please review.


Create Gatsby Site from starter

I am having many errors for creating a gatsby site from blog starter.  There are many errors and I cannot find out what is the cause.
eresolve-report.txt
could someone help me resolve this issues?

Same here, it throws error. By doing npm install, it stops showing error but then "gatsby develop" just runs endlessly. Such a wonderful template, I hope we can solve it!
eresolve-report.txt

Had the same issue. Did an npm update and it resolved the issue. @evewolfs, mine is also running endlessly but my site is still served at http://localhost:8000/. Is yours not?

@dwootton
I have the same issue, but my site is still served at localhost. However I still get this endless messages and the changes I make to the file is not applied in realtime. @sungik-choi any advise?

I don't have the time to maintain the library at the moment, so I'll be looking into the issue in May. If anyone can fix it, contributions are welcome.

@thedomcab @evewolfs @dwootton @pumpknman
I changed the package manager from npm to yarn. This seems to have fixed the problem, so I'd appreciate it if you could apply the new version.


Fix Audio e2e tests

Description

Audio e2e tests are currently flaky and depend on a data-testid attribute instead of actual text on the page. We should find out what is causing the Audio e2e tests to return errors, fix that, and restore the tests to use text on the page instead of the test attribute.
Also find out why for some reason these were passing locally for @obulat but failing in the workflow runner (and for others locally as well).
Screenshots

An example of the screen you can get using --debug option on playwright when running the audio e2e tests:

Resolution

[ ] 🙋 I would be interested in resolving this bug.

@obulat's #881 PR fixes this I think.


docs: add a note in pkg_tar#strip_prefix docs (v.0.8.0) about flattening

Hey folks, here is a very inconsequential PR which could save some time to new users.
From the perspective of someone who just started using rules_pkg, I was really confused to learn that if I don't want to flatten the files structure I have to use the undocumented strip_prefix = "." magic trick.
While there is an ongoing discussion over https://github.com/bazelbuild/rules_pkg/issues/354 on this precise issue, I feel that it would save a lot a time for new users stumbling across this problem by having a quick note in the existing docs, while the conversation continues over there.

It would be more useful to correct the text in the code and regenerate the docs.
Of course, it's hard to regenerate 0.8.0 docs, so this change is still needed too.

@aiuto updated :)

Going to try to merge and then I will fix tests after.


crop-winter wheat-climate data&Relationship between LGP, cycle, ccd, DOY

Hello, the crop I have selected is winter wheat, because the growth phase of winter wheat is opposite to that of summer maize, soya bean and other crops, across the years, so I would like to ask if the input weather data is set to two years of data when simulating the maximum yield for winter wheat? For example, the monthly tif data set for July-December 2011 and January-June 2012 becomes npy data.Thank you for your answer.

Hello, I have another question.
1, What is the relationship between LGP, LGPt5 and DOY, the input parameter cycle and the ccd derived by NB2?
2, I would like to ask if the following understanding is wrong or correct:

The input cycle is the longest and shortest cycle of crop growth and is not the crop start calendar DOY when NB2 calculates the maximum obtainable yield under rainfed and irrigated conditions, right? For example, if you enter the crop cycle parameters 200 165 270 as average cycle, minimum cycle, and longest cycle in that order, "then the code calculates the crop yield from the 200th day of the year". Is this understanding wrong or correct
NB2 For irrigated conditions, compare LGPt5 to cycle, move the calculation calendar within the allowable portion of LGPt5 to calculate potential crop yields, and select the highest yielding crop start date DOY, which is ccd; for rainfed conditions, compare LGP to cycle, move the calculation calendar within the allowable portion of LGP to calculate potential crop yields, and select the yielding highest crop start date DOY, which is ccd. ccd and DOY are one and the same concept. Is this understanding wrong or correct?

The ccd I ran has a value of 365, so is the crop yield calculated from the 365th day of the year, or is it cumulative from the first day of the year to the 365th day of the year? Can you elaborate on the relationship between the concept of ccd and crop yield?

thanks for your answer!


Add support for AWS Signature Version 4 Signing to the RequestsWrapper

Motivation
Customer requests

It's late in EU, @FlorianVeaux gave offline approval to merge so I'm merging 🙂
In future we may introduce the concept of multiple named session objects


Add a black/dark option

It would be nice if there was a black/dark option cause the white is a little bright for me.

http://i.imgur.com/IMF2zXo.png
looks ok so far, really impressed with javafx, it is even possible to change the theme on the fly


OMK server links are not working

All the server link mentioned in https://github.com/posm/OpenMapKitServer#the-basics are not working.
ex:
http://ec2-18-219-198-14.us-east-2.compute.amazonaws.com/info -> 404 not found
Highly appreciate if you and mention the new urls

If you're getting a 404 then there is likely some error that occurred during setup/install

How do I troubleshoot this? When I am installing I did not get any error
message. I can't telnet port 3210 and home page is working fine.
This is my server URL
http://ec2-18-219-198-14.us-east-2.compute.amazonaws.com/. Really
appreciate if you can check this issue.
Kavindu Gimhan Zoysa,
SSE | WSO2,
BSc(Hons) | ENTC | UoM
GitHub https://github.com/KavinduZoysa LinkedIn
https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/ Medium
https://medium.com/@kavindugimhanzoysa
On Fri, 26 Jun 2020 at 01:20, Dan Joseph<EMAIL_ADDRESS>wrote:

If you're getting a 404 then there is likely some error that occurred
during setup/install
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/posm/OpenMapKitServer/issues/131#issuecomment-649782924,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGYFFJFCWDINXAQGYWM5LRLRYOS7DANCNFSM4OIVQHGA
.


Can't click on the items under the snackbar with margin

Steps to Reproduce
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final GlobalKey<ScaffoldMessengerState> scaffoldMessengerKey =
      GlobalKey<ScaffoldMessengerState>();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(useMaterial3: true),
      home: ScaffoldMessenger(
        key: scaffoldMessengerKey,
        child: Scaffold(
          appBar: AppBar(),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: [
                ElevatedButton(
                  onPressed: () {
                    scaffoldMessengerKey.currentState!.showSnackBar(
                      const SnackBar(
                        behavior: SnackBarBehavior.floating,
                        width: 300,
                        content: Text('Snackbar with width'),
                      ),
                    );
                  },
                  child: const Text('Show snackbar with width'),
                ),
                ElevatedButton(
                  onPressed: () {
                    scaffoldMessengerKey.currentState!.showSnackBar(
                      const SnackBar(
                        behavior: SnackBarBehavior.floating,
                        margin: EdgeInsets.fromLTRB(0, 0, 300, 0),
                        content: Text('Snackbar with margin'),
                      ),
                    );
                  },
                  child: const Text('Show snackbar with margin'),
                ),
                ElevatedButton(
                  onPressed: () {
                    print('onPressed');
                  },
                  child: const Text('Try press me'),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Expected results:
The button below the snackbar cannot be clicked when decreasing the size of the snackbar via the margin.
This works when you decrease the size with the width.
Actual results:
Be able to click on the button below the snackbar when decreasing the size of the snackbar via the margin.
This works when you decrease the size with the width.

Logs

[+10475 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 0
[ +105 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 1
[ +995 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 0
[ +171 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 1
[ +445 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 0
[ +114 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 1
[+1059 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 0
[ +149 ms] I/ViewRootImpl@1de61f0[MainActivity]( 4048): ViewPostIme pointer 1

Analyzing poc...
No issues found! (ran in 2.0s)

[✓] Flutter (Channel stable, 1.22.6, on macOS 11.2.3 20D91 darwin-x64, locale fr-FR)
    • Flutter version 1.22.6 at /Users/lsaudon/development/flutter
    • Framework revision 9b2d32b605 (il y a 8 semaines), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/lsaudon/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (1 available)
    • SM T500 (mobile) • R9WNB0YFZCJ • android-arm64 • Android 10 (API 29)

! Doctor found issues in 1 category.

I can reproduce this on latest stable channel. ScaffoldMesenger reproduce the issue as well.

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.2, on macOS 11.2.3 20D91 darwin-x64, locale en-AO)
    • Flutter version 2.0.2 at /Users/pedromassango/Code/flutter_stable
    • Framework revision 8962f6dc68 (6 days ago), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/pedromassango/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2020.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 54.0.3
    • Dart plugin version 203.7759

[✓] VS Code (version 1.54.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

! Doctor found issues in 1 category.

https://user-images.githubusercontent.com/25029876/111644627-4beaf900-8800-11eb-92c1-01d01858be5b.mov

Issue still persists on the latest stable and master channels.
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final GlobalKey<ScaffoldMessengerState> scaffoldMessengerKey =
      GlobalKey<ScaffoldMessengerState>();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ScaffoldMessenger(
        key: scaffoldMessengerKey,
        child: Scaffold(
          appBar: AppBar(),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: [
                ElevatedButton(
                  onPressed: () {
                    scaffoldMessengerKey.currentState!.showSnackBar(
                      const SnackBar(
                        behavior: SnackBarBehavior.floating,
                        width: 300,
                        content: Text('Snackbar with width'),
                      ),
                    );
                  },
                  child: const Text('Show snackbar with width'),
                ),
                ElevatedButton(
                  onPressed: () {
                    scaffoldMessengerKey.currentState!.showSnackBar(
                      const SnackBar(
                        behavior: SnackBarBehavior.floating,
                        margin: EdgeInsets.fromLTRB(0, 0, 300, 0),
                        content: Text('Snackbar with margin'),
                      ),
                    );
                  },
                  child: const Text('Show snackbar with margin'),
                ),
                ElevatedButton(
                  onPressed: () {
                    print('onPressed');
                  },
                  child: const Text('Try press me'),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Video
https://user-images.githubusercontent.com/50555895/168659160-1542ff39-fcd3-4345-958a-7c43d9c5caa1.mov

flutter doctor -v
[✓] Flutter (Channel master, 3.1.0-0.0.pre.733, on macOS 12.3.1 21E258 darwin-arm, locale en-US)
    • Flutter version 3.1.0-0.0.pre.733 at /Users/nabeelparkar/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c60936e5c9 (88 minutes ago), 2022-05-16 13:04:12 -0400
    • Engine revision aeab8402c6
    • Dart version 2.18.0 (build 2.18.0-117.0.dev)
    • DevTools version 2.13.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/nabeelparkar/Library/Android/sdk/
    • Platform android-32, build-tools 32.1.0-rc1
    • ANDROID_SDK_ROOT = /Users/nabeelparkar/Library/Android/sdk/
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 67.1.4
    • Dart plugin version 221.5591.52

[✓] VS Code (version 1.67.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.40.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.3.1 21E258 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Brave Browser <IP_ADDRESS>

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Probably related to this proposal as well: https://github.com/flutter/flutter/issues/92787
In my findings, I've seen that:

When using SnackBarBehaviour.fixed the rest of the Scaffold body can be interacted.
When using SnackBarBehaviour.floating (with a margin) the rest of the Scaffold body cannot be interacted.

@MindMayhem wrote a partial patch for this in https://github.com/flutter/flutter/pull/114810. If anyone is interested in continuing that work, I'm sure it would be appreciated.

@MindMayhem wrote a partial patch for this in #114810. If anyone is interested in continuing that work, I'm sure it would be appreciated.

I've been doing a pull request for a few weeks now.

Fixed by https://github.com/flutter/flutter/pull/127959


Add hook events

rubat moment

Do either of you have an actual use case for this or is this a "just because" proposition?

Logging


Pending transactions don't show up in Activities tab after sending one

It looks like TransactionDataCoordinator.delegate and TransactionDataCoordinator.delegate2 are not set anymore: https://github.com/AlphaWallet/alpha-wallet-ios/blob/1b53b96cfab93fa8aac5be1de8959e031a668cbb/AlphaWallet/Transactions/Coordinators/TransactionDataCoordinator.swift#L37
Looks like it's broken by bd1989196d7216edd7cbaca6e19670b88686f234 because most of the code in ActivitiesCoordinator was moved to ActivitiesService but this wasn't:
extension ActivitiesService: TransactionDataCoordinatorDelegate {
    func didUpdate(result: ResultResult<[TransactionInstance], TransactionError>.t, reloadImmediately: Bool) {
        switch result {
        case .success(let items):
            transactions = items
            reloadViewController(reloadImmediately: reloadImmediately)
        case .failure:
            break
        }
    }
}

Not sure if there's other code missing.

I would take a look at it again on Monday/Tues if Vlad hasn't by then.

@hboon i checked behaviour for sending transaction in test net, it works as expected. does it means that a new tx doesn't show in list at all for you? or it appears with delay?

also i am facing the next: the dates for activities list displays several times "for today section" is this is ok?

That should be ok for now

We can fix it separately unless the transactions are wrong

@hboon i checked behaviour for sending transaction in test net, it works as expected. does it means that a new tx doesn't show in list at all for you? or it appears with delay?

@vladyslav-iosdev they don’t appear as pending transactions first. After you look at this, can you do a quick pass and see if anything else is missing? Just in case.

@hboon seems like i am not able to reproduce it, after several attempts was not able to reproduce it. there shouldn't be any differences beetwen sending token on test or main Network right?

@hboon seems like i am not able to reproduce it, after several attempts was not able to reproduce it. there shouldn't be any differences beetwen sending token on test or main Network right?

@vladyslav-iosdev yes. No difference. Can you try disable the code that fetches new transaction? Does the pending transaction show up right away after you post a transaction? If you can reproduce it, let me check it again tomorrow to be sure. Don’t waste your time in case it’s just a problem on my side.

@vladyslav-iosdev I can reproduce this on Ropsten with a8fd2280a8988185f163844d754f4c394e257d71:
Modify the function at https://github.com/AlphaWallet/alpha-wallet-ios/blob/a8fd2280a8988185f163844d754f4c394e257d71/AlphaWallet/Transactions/Coordinators/TransactionDataCoordinator.swift#L124 to be:
private func handleUpdateItems(reloadImmediately: Bool) {
    let objects = transactionCollection.objects
    NSLog("xxx calling delegate and delegate2: \(delegate) and \(delegate2)")
    delegate?.didUpdate(result: .success(objects), reloadImmediately: reloadImmediately)
    delegate2?.didUpdate(result: .success(objects), reloadImmediately: reloadImmediately)
}

After sending ETH, I get:

xxx calling delegate and delegate2: nil and nil

And Activity tab doesn't show a "Sending ETH" row. After a while, the Activity tab shows "Sent ETH" for that new transaction. The Sending cell should immediately immediately

NSLog("xxx calling delegate and delegate2: \(delegate) and \(delegate2)")
these pointers are null because we get updates directly from TransactionCollection.swift via its Subscibable values.
from here
func subscribableFor(filter: TransactionsFilterStrategy) -> Subscribable<[TransactionInstance]>
func removeSubscription(subscription: Subscribable<[TransactionInstance]>)
func transaction(withTransactionId transactionId: String, server: RPCServer) -> TransactionInstance?

trying to reproduce it on my side

@hboon  i suppose that this issue could be in case of large wallet, when sorting takes a lot of time. Because with wallet i am trying to reproduce, its not reproducing

Hmm. Could you point me the the piece of code which creates the pending transaction and add to the database?

here is where is get created
https://github.com/AlphaWallet/alpha-wallet-ios/blob/1b53b96cfab93fa8aac5be1de8959e031a668cbb/AlphaWallet/Transactions/Coordinators/TransactionDataCoordinator.swift#L109
and via this method we add it to the DB
https://github.com/AlphaWallet/alpha-wallet-ios/blob/1b53b96cfab93fa8aac5be1de8959e031a668cbb/AlphaWallet/Transactions/Coordinators/TransactionDataCoordinator.swift#L110
and this method had called
https://github.com/AlphaWallet/alpha-wallet-ios/blob/1b53b96cfab93fa8aac5be1de8959e031a668cbb/AlphaWallet/Transactions/Storage/TransactionsStorage.swift#L208
and with this method we are listening for adding to the db
https://github.com/AlphaWallet/alpha-wallet-ios/blob/db59667b5b4f844fee94c4a1cc2cacb8970bcd13/AlphaWallet/Tokens/Types/TransactionCollection.swift#L97
https://github.com/AlphaWallet/alpha-wallet-ios/blob/db59667b5b4f844fee94c4a1cc2cacb8970bcd13/AlphaWallet/Tokens/Types/TransactionCollection.swift#L120

Thanks. I’ll take a look again and try.

@hboon btw transaction doesn't appear on token screen in activity tap, or it doesn't appear on all activities tab?

I only checked the “main” Activities tab

@vladyslav-iosdev sorry, I get it now. It's added when the progress dialog is closed. I probably broke it when I was trying to look into it. Will see if there's a way to improve it in #3061, but not a bug. Thanks for checking.


Add in Relive.cc as another external link (Creates videos of activities)

Great stuff - thanks!

@lamby any chance you could do a release of the extension to the Chrome Web Store along with the other fixes I provided in #57 ?

Sure thing:

Thankyou 😄