Zeebe Record indices are not created.

Describe the issue:
Hi, The issue I am facing is when installed in helm , though disable exporter is false in values.yaml, the zeebe record indices are not created in the ES. I checked this because I could not see process definitions and instances in the Operate. But I could see Operate Indices
Kindly advise which one to check.

Please use the issue template so we can help with the issue.

@Premfer I see that you closed the issue yesterday. Were you able to fix the issue you experienced? If not, I'd like to hear more about your experience so we can improve it in the future.

Hi @mary-grace I am uninstalling and reinstalling the camunda, so if still persists will create a new issue with issue template. Thanks


Flexget waking up every thread every 0.5 seconds in Deamon mode

Expected behaviour:
In Deamon mode, flexget should sleep between scheduled tasks. wake ups kick the CPUs out of power saving modes, and cause my computer to use a lot more power than it needs to.
Actual behaviour:
flexget wakes up 15.4 times a second in my setup. 1.2 ms/s of Usage. This is about 25% of the total wakeups on my system.
Steps to reproduce:

Step 1: ...
run flexget in deamon mode
use strace or powertop to see it wake up often

I'm pretty sure it comes from here
https://github.com/Flexget/Flexget/blob/83bc8dc86fd4760c4f059353975a24e04e681888/flexget/task_queue.py#L105
        while self._thread.is_alive():
            time.sleep(0.5)

I think the real fix would be to let the tread join, or wait, and just handle the KeyboardInterrupt without a busy loop. But I think the easier solution, and the one I'd like to see in the short term, is to just add a check for daemon mode here and join instead of waiting for a cnrl-c. Since in daemon mode it is impossible for a thread to get a cnrl-c, these wake ups are just wasted energy.
Something like this should work:
-if sys.version_info >= (3, 4):
+if sys.version_info >= (3, 4) or is_daemon:
self._thread.join()
Additional information:

Flexget Version:
2.6.2
Python Version:
Python 2.7.12
Installation method:
OS and version:
jrett@ender:~$ uname -a
Linux ender 4.4.0-47-generic #68-Ubuntu SMP Wed Oct 26 19:39:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Ubuntu 16.04.1 LTS

PowerTOP 2.8      Overview   Idle stats   Frequency stats   Device stats   Tunables
Summary: 208.0 wakeups/second,  0.0 GPU ops/seconds, 0.0 VFS ops/sec and 12.5% CPU use
            Usage       Events/s    Category       Description
          0.8 ms/s      50.3        Process        /home/jrett/flexget/bin/python /home/jrett/flexget/bin/flexget daemon start
        114.7 ms/s       1.7        Process        powertop
          0.9 ms/s      43.3        Process        Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versi
        130.4 µs/s      35.5        kWork          dbs_timer
          4.8 ms/s      10.4        Process        /usr/bin/python /usr/bin/deluged -d
        218.1 µs/s      12.1        Process        [rcu_sched]
        209.2 µs/s       6.9        Process        /usr/lib/plexmediaserver/Plex Media Server

Please reopen in feathub


What if the training pairs are without bbox?

            area[i, 0] = obj['bbox'][2]*obj['bbox'][3]

This method requires bbox during training. What if the training pairs are without bbox?
How can we calculate the area and loss of offset?

Hi, we use the area of one person's bounding box to normalize this person's offset during calculating the loss of the offset map.
You can use the maximum and minimum coordinates of the key points to estimate the size of the people. The selection of this normalization tool doesn't influence the performance.
By the way, we use the average of all keypoints belong to the same person as the center of this person. In the code, we can choose the center of the person's bounding box as the center of this person, which may cause confusion. The APs of the two choices are the same.

yes.
But what if there are only one joint rather than 17 joints like coco?
How should we set the code?
Thanks!
On Fri, 5 Mar 2021 at 9:33 PM, Gengzigang<EMAIL_ADDRESS>wrote:

Hi, we use the area of one person's bounding box to normalize this
person's offset during calculating the loss of the offset map.
You can use the maximum and minimum coordinates of the key points to
estimate the size of the people. The selection of this normalization tool
doesn't influence the performance.
By the way, we use the average of all keypoints belong to the same person
as the center of this person. In the code, we can choose the center of the
person's bounding box as the center of this person, which may cause
confusion. The APs of the two choices are the same.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/HRNet/HRNet-Bottom-Up-Pose-Estimation/issues/11#issuecomment-791421646,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANDWCHIIF2JBYRUGTEK2YOLTCDMRTANCNFSM4YU73IMA
.

Hi, we use the area of one person's bounding box to normalize this person's offset during calculating the loss of the offset map.
Alternatively, you can use the maximum and minimum coordinates of the key points to estimate the size of the people. The selection of this normalization tool doesn't influence the performance.
By the way, we use the average of all keypoints belong to the same person as the center of this person. In the code, we can choose the center of the person's bounding box as the center of this person, which may cause confusion. The APs of the two choices are the same.

For example, I just want to do head detection:

My concern is that this will change the way we calculate the loss.

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

Sorry I just got confused about this:

Do you mean we should just remove the offset loss?

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

Sorry I just got confused about this:

Do you mean we should just remove the offset loss?
Just use heatmap loss?

You can totally remove the offset regression part both in the training and post-processing.
In this method, the offset means the location offset between the keypoint location and the center point location. However, in your case, I do not know how to choose the center point. I am curious about how do you use the offset regression.

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

Sorry I just got confused about this:

Do you mean we should just remove the offset loss?
Just use heatmap loss?

You can totally remove the offset regression part both in the training and post-processing.
In this method, the offset means the location offset between the keypoint location and the center point location. However, in your case, I do not know how to choose the center point. I am curious about how do you use the offset regression.

Yes! That's the point! Because in my case, I only want to detect the head. And there are many images without the full body. So the center position should be the center of BBOX of head. Yet this center position is quite close to the key point of head.
So maybe removing them is a good choice.
Thank you again!

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

Sorry I just got confused about this:

Do you mean we should just remove the offset loss?
Just use heatmap loss?

You can totally remove the offset regression part both in the training and post-processing.
In this method, the offset means the location offset between the keypoint location and the center point location. However, in your case, I do not know how to choose the center point. I am curious about how do you use the offset regression.

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

Sorry I just got confused about this:

Do you mean we should just remove the offset loss?
Just use heatmap loss?

You can totally remove the offset regression part both in the training and post-processing.
In this method, the offset means the location offset between the keypoint location and the center point location. However, in your case, I do not know how to choose the center point. I am curious about how do you use the offset regression.

Yes! That's the point! Because in my case, I only want to detect the head. And there are many images without the full body. So the center position should be the center of BBOX of head. Yet this center position is quite close to the key point of head.
So maybe removing them is a good choice.
Thank you again!

Hi May I know is there a way to train the NN on a ~20 GB  GPU?
All current NNs are too big for my GPUs (2 Nvidia 2080).

The normalization tool should be designed for your project. You can use any length that reflects the size of the person, or you can directly regress the offsets without this normalization.

OK. I am trying the BBox generation based on the projection. But the BB is for the head rather than the whole body.
Thank you very much!

For your case, I think the heatmap is more suitable because you just need to detect the head keypoints and the heatmap can detect all the same kind of the keypoints precisely and efficiently.

Sorry I just got confused about this:

Do you mean we should just remove the offset loss?
Just use heatmap loss?

You can totally remove the offset regression part both in the training and post-processing.
In this method, the offset means the location offset between the keypoint location and the center point location. However, in your case, I do not know how to choose the center point. I am curious about how do you use the offset regression.

Hi~ Still get a little confused. Really sorry to bother you.
Seems like the method still need nonmaximum suppression to filter the Redundant BBox.
I have train the NN to predict only one point in the heatmap. How can we avoid the nonmaximum suppression which get BBox and offset involved? (In other words, we do not need to group the people, since there is only one point for each person.) Any suggestions?

Actually, https://openaccess.thecvf.com/content_CVPR_2019/html/Ribera_Locating_Objects_Without_Bounding_Boxes_CVPR_2019_paper.html
There is a paper quite close to my situation where they do obj detection without Bbox.
But I hope to use the heatmap to do so since I think this will provide a more stable result.


Per-configuration caching

Problem
cargo needlessly rebuilds all dependencies whenever some tool uses a different build configuration. For example, if one does cargo check ; cargo test ; cargo clippy ; cargo doc then all the dependencies (and the crate itself) would be rebuilt 4 times, while rebuilding them twice (once for check and clippy, and once for test and doc) would have sufficed.
Proposed Solution
Ideally, cargo would use a global cache outside the package for the results of compiling each dependency with each specific configuration. This would also make sccache mostly redundant. Since this would be so massively useful and still hasn't been done I can only assume there's a really good reason against it, so leave this one aside.
More simply, cargo would cache the results of compiling the current crate's dependencies (and for that matter, the crate itself) in a separate target sub-directory for each configuration (e.g., use a hash of all the configuration parameters, same one that is used today to decide whether the current target is a match for what is requested by each tool).
Notes
As a workaround, I invoke all my cargo commands through a Makefile, and prefix each one with ./with_configuration.sh NAME cargo ... where NAME identifies the configuration needed for that specific cargo command.
The with_configuration.sh file is a blunt instrument - one has to be careful to wrap all the relevant commands with it (though the script offers some protection against this), and specify the correct configuration name for each one (which the script does not enforce).
It is possible to make this script smarter (have it automatically pick the correct configuration name based on the name of the cargo command) but that would still be fragile (e.g., there are many tools, this will not consider the value of environment variables, etc.).
In general the right thing would be for cargo itself to directly allow for caching multiple versions of the built products according to their specific configuration.
#!/usr/bin/bash

# Execute a cargo command in a specific compilation configuration.
#
# Cargo has this delightful restriction that it only caches the built version of dependencies (and the current crate)
# for a specific compilation configurations. However, during development, one uses multiple configurations: one for
# `cargo check`, another for `cargo build` and `cargo test`, and yet another one for `cargo tarpaulin`. Each time one
# issues one of these commands, the results of compiling the dependencies and the crate itself using any other
# configuration is lost and the whole thing is rebuilt from scratch, which is needlessly slow.
#
# This script wraps around any cargo command and provides it with the cached copy of all the compiled results of the
# specific environment it wants. This still means one builds everything once per configuration but at least it is ONLY
# once.
#
# Typically you'd want at least a `base` configuration for `cargo build`, `cargo test` and `cargo doc`, a separate
# `check` configuration for `cargo check` and `cargo clippy`, and possibly a `tarpaulin` configuration for `cargo
# tarpaulin` coverage collection.
#
# This does mean that results will be stored in `.target.$NAME` instead of `target`, e.g. documentation will be
# generated into `.target.base/doc` instead of `target/doc`.
#
# This form of caching should really be a built-in feature of `cargo` itself.

NAME="$1"
shift

if [ -d target ]
then
    if [ -f target/NAME ]
    then
        OLD_NAME=`cat target/NAME`
        echo "Saving the abandoned target.$OLD_NAME" 1>&2
        mv target ".target.$OLD_NAME"
    else
        echo "Cowardly refusing to mess with an unnamed target directory" 1>&2
        exit 1
    fi
fi

if [ -f target ]
then
    rm -f target
fi

if [ -e ".target.$NAME" ]
then
    mv .target.$NAME target
else
    mkdir target
    echo "$NAME" > target/NAME
fi

function cleanup() {
    mv target .target.$NAME
    echo "Wrap all cargo commands with_configuration.sh!" > target
}

trap cleanup EXIT

"$@"

check, clippy, and doc should not be rebuilding your dependencies.  cargo test will, but that is because building and checking are two fundamentally different operations.  Can you say more about your project or setup that causes check and clippy to rebuild dependencies?

Sorry, I was (partially) wrong - I tested more carefully and it does seem that check, build, test and doc do play nicely with each other. However...
They all play badly with tarpaulin. So if I do check, build, test, doc - great, no extra recompilation. If I now do tarpaulin to see coverage, I get an new compilation of everything, and following that, doing any of check, build, test or doc will again recompile everything, which means the next time I want to look at coverage, it will recompile everything again, which is a royal PITA (at least for me).
Also, if one specifies RUSTFLAGS to only one of the commands (e.g., only for test but not for check) then again this will trigger recompilation which will forget the previous variant - so one has to be careful to specify the same flags for all these commands - this is what originally threw me off. Which still doesn't help with tarpaulin... BTW, I tried to figure out what is the exact set of flags it specifies so it could reuse the same dependencies when using --skip-clean but never found the correct incantation - e.g. RUSTFLAGS="-C link-dead-code -C debuginfo=2" didn't work.
So my point still stands, even if it less painful than I originally made it out to be; different tools (e.g. coverage) do compile with different options and cargo only caches the last variant, discarding the rest and rebuilding everything whenever a new variant is asked for.
Using the with_configuration.sh script as a band-aid allows me to have two condifurations - base for most everything and tarpaulin for coverage, which means I only need to compile all the dependencies twice instead of each time I switch between the tools. But as I described, this is a fragile solution better addressed within cargo itself.
Another benefit of direct cargo support would be the ability, at least in principle, to run tools in parallel for the same environment, e.g. clippy / doc and tarpaulin at the same time - something whic today is impossble as they require different compiled versions of everything.

Ah, yea, changing RUSTFLAGS will cause everything to be recompiled.  There are more details in #8716 as to why that happens.

I guess this is a duplicate of #8716 then...


iOS Extension for Adobe Experience v3

Related issues

Jira issue link: https://adjustcom.atlassian.net/browse/ADAPP-18812

Changes

Adds guides for the iOS Adobe Experience extension and a migration guide to help users migrate.
Required translations

Platform
ZH
JA
KO

iOS Adobe extension
:white_check_mark:
:x:
:x:

@Aditi3 I think this one is just about ready to review.

Migration guide
Documentation


Log CI-long-timeout label count query error

Adding a console.error so that this error gets logged.

Thanks!

Any ideas?

I believe the fix is this small change: https://github.com/carlocab/graphql-query-test/pull/2


how to add color?

rt ..i want add some key word  different color .thx ..

And how do you change the color using your plugin in the editor?

What are you trying to do? The “editor” is a text box. There is nothing about colour in it.

What are you trying to do? The “editor” is a text box. There is nothing about colour in it.

I'm trying to understand what is going for "|"
op2=>operation: Stuff|current
what is "current"?

current is the name of a flowstate -> check the configuration json, pointing to CSS properties. Keep in mind: this is a library to embed, not a ready to use app

current is the name of a flowstate -> check the configuration json, pointing to CSS properties. Keep in mind: this is a library to embed, not a ready to use app
not quite clear.
Can I have a link to study what you are talking about?

It is all on the page. When you define your option Json you add an element flowstate that contains key value pairs. They key is the name of the state, the part that goes behind the |, the value is the CSS definition. Look at the sample on the page. E.g. the state “invalid” defines the fill Color as #444444 which is a dark gray. The colours can either be expressed as colour names or hexcodes, as specified by CSS.
Copy the sample onto your own page and play with the values in the flowstate section of the options object. This should make it obvious.
Just to be clear: there isn’t a UI facility to change colours. This is a rendering library for developer use. You are of course free to build an UI to configure the content of the options object if you like

Maybe your question is more fundamental.... The flowstate variable is used to style (colour, font) a flow element. This allows to highlight parts of the flow.
Use cases:

documentation to visualise the path taken for certain conditions
interactive: walk through a flow (with some JS altering the flowstate variable on click)
running process: show current state and available as well as closed options

It is all on the page. When you define your option Json you add an element flowstate that contains key value pairs. They key is the name of the state, the part that goes behind the |, the value is the CSS definition. Look at the sample on the page. E.g. the state “invalid” defines the fill Color as #444444 which is a dark gray. The colours can either be expressed as colour names or hexcodes, as specified by CSS.
Copy the sample onto your own page and play with the values in the flowstate section of the options object. This should make it obvious.
Just to be clear: there isn’t a UI facility to change colours. This is a rendering library for developer use. You are of course free to build an UI to configure the content of the options object if you like

the fact is that I use flowchart.js in the framework of the typora editor program.
In this editor there is no possibility to transfer json to an object, you can only use css to change the values of the layout elements. At first I thought that the name goes for | there is a class selector, but CSS experiments did not lead to any results


Cursor not getting focus

Type: Bug
I can no longer create or make changes to any code in Visual Studio Code. I can't insert my cursor and type anything in the editor. It started about 2 weeks or so. I have tried different systems and get the same issue. I open VS Code, open a file, click into the editor window and the cursor is blinking but as if I am trying to select text to copy.
VS Code version: Code 1.71.2 (74b1f979648cc44d385a2286793c226e611f59e7, 2022-09-14T21:03:37.738Z)
OS version: Windows_NT x64 10.0.19044
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz (2 x 3000)

GPU Status
2d_canvas: unavailable_softwarecanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: disabled_softwaremultiple_raster_threads: disabled_offopengl: disabled_offrasterization: disabled_softwareraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: disabled_softwarevideo_encode: disabled_softwarevulkan: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_softwarewebgpu: disabled_off

Load (avg)
undefined

Memory (System)
16.00GB (7.45GB free)

Process Argv
--crash-reporter-id 8f61aa13-a229-402a-8a45-220cb6ed4058

Screen Reader
yes

VM
100%

Extensions (13)

Extension
Author (truncated)
Version

gitlens
eam
12.2.2

azure-virtual-machine-explorer
for
0.0.2

vscode-pull-request-github
Git
0.50.0

vscode-dotnet-runtime
ms-
1.5.0

python
ms-
2022.14.0

vscode-pylance
ms-
2022.9.20

jupyter
ms-
2022.8.1002431955

jupyter-keymap
ms-
1.0.0

jupyter-renderers
ms-
1.0.9

azure-account
ms-
0.11.1

powershell
ms-
2022.8.5

azurerm-vscode-tools
msa
0.15.7

vim
vsc
1.23.2

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411cf:30557515
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vscaac:30438847
vsclangdf:30486550
c4g48928:30535728
hb751961:30553087
dsvsc012:30540252
azure-dev_surveyone:30548225
i497e931:30553904
fc301958:30567733

Please trying running with --disable-extensions and let us know if you continue to experience this. I'm guessing this is most likely caused by the vim extension...

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

VIM was the issue, thank you so much.
Regards,
Rob
Robert J. Webster (he/him/his)
Senior IT Analyst
Virtual Desktops and Apps Service Line (VDASL)
Infrastructure Operations (IO)
IT Operations and Services (ITOPS), Office of Information and Technology (OIT)
(518) 210-3427
VA Service Desk<PHONE_NUMBER>
From: Connor Peet @.>
Sent: Tuesday, September 20, 2022 5:06 PM
To: microsoft/vscode @.>
Cc: Webster, Rob @.>; Author @.>
Subject: [EXTERNAL] Re: [microsoft/vscode] Cursor not getting focus (Issue #161342)
Please trying running with --disable-extensions and let us know if you continue to experience this. I'm guessing this is most likely caused by the vim extension...

Reply to this email directly, view it on GitHubhttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fvscode%2Fissues%2F161342%23issuecomment-1252911201&data=05|01||13ca2d17882243c3cb4508da9b4bde88|e95f1b23abaf45ee821db7ab251ab3bf|0|0|637993047404762797|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=coe2OaC%2Fp2DDpZjRdK16LxfWltzqTmQvxpWMDdJcoyQ%3D&reserved=0, or unsubscribehttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FARGCCT2OGWTHVAKZUBOUFIDV7IRJXANCNFSM6AAAAAAQRL66C4&data=05|01||13ca2d17882243c3cb4508da9b4bde88|e95f1b23abaf45ee821db7ab251ab3bf|0|0|637993047404919024|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=L8gNivuLsJZquNF9Xa8ZPkTI%2BWfEFZ03Dc8%2FioLzRCM%3D&reserved=0.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>


Swipe option to falsedisables all clicks within contained elements

Passing the swipe option as false disables all click events in the containing elements! For example, stopping the carousel and having an element with clickable buttons inside no longer works! How can i fix this?

This is very urgent as our project is due to go live soon and this is a show blocker!

#571

We are having the same issue.  Does anyone have the solve?

@jeffwilliamsdev There is a PR #571 fixing this but i haven't looked at the solution. We need the guys to merge if they agree with it.


add codecs for ed25519 public keys and signatures with different hash types

Closes #139

@Stebalien is this all good?

:thinking:

@alexmat2on https://github.com/libp2p/specs/pull/217?


How best to install rawpy on (32-bit) Raspberry Pi Zero / Raspbian?

Hi @letmaik , apologies for what's probably a dumb/simple question, but I'm struggling with the 'right' way to install rawpy on my 32-bit Raspberry Pi Zero.
If I sudo pip3 install rawpy I end up with:
Successfully installed rawpy-0.13.1

... which is way old. Is that just going with the latest wheel it can find for the Pi, or am I trying the wrong way? (I'm using pip
21.1.3).
(I note your comment on Issue #145 about building from source - which has been my practice thus far - but also a reference to seemingly fixing(?) this in Issue #34 ).
Ta for rawpy, BTW.

PyPI does not have Raspberry PI compatible wheels at all. What you're getting is the latest version of rawpy that had an sdist (.tar.gz source code) as part of its release. It then used that and compiles from source. The reason why newer releases don't have sdists anymore is that building from source typically won't work and leads to weird errors (esp. on Windows) and more bug reports. Ideally, I'd like to remove all sdists from older versions on PyPI, but I don't think messing with old releases is a good idea.
To be more concrete why sdists are a pain, the default policy of pip install is something like:

if the latest rawpy version has a compatible wheel, use it
otherwise, if the latest version has an sdist, build from source
otherwise, try to find an older version which either has a compatible wheel or an sdist and either use the wheel or build from source, whatever comes first

This means, any time I want to remove support for a certain platform (like Windows 32 bit), I simply don't produce wheels anymore and users who for some reason still use Python 32 bit will happily install the last supported version via the wheel. If an sdist was published as well, then pip would try to build it from source instead, and fail. This can be prevented with --prefer-binary when doing pip install but realistically no one would think of that because the error message from a failed source build is way too cryptic.
There is https://www.piwheels.org which builds non-standard Pi wheels that are not on PyPI, but they require an sdist for their automation.
Given that you just want an easy way to install without manual cloning etc. I think the following is the closest:
pip install cython numpy
pip install<EMAIL_ADDRESS>

Side note: I decided to remove all old sdists of rawpy as they keep causing trouble. I will try to improve the build script so that a separate install of cython and numpy won't be necessary, and then it should be useable enough with the install-from-git method if someone needs it.

Thanks!

pi@skycamuni:~/RAW $ sudo pip install cython numpy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting cython
Using cached https://www.piwheels.org/simple/cython/Cython-0.29.32-cp39-cp39-linux_armv7l.whl (5.0 MB)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (1.19.5)
Installing collected packages: cython
Successfully installed cython-0.29.32
pi@skycamuni:~/RAW $ pip install<EMAIL_ADDRESS>Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting<EMAIL_ADDRESS>Cloning https://github.com/letmaik/rawpy.git (to revision v0.16.0) to /tmp/pip-req-build-bjxf9hob
Running command git clone -q https://github.com/letmaik/rawpy.git /tmp/pip-req-build-bjxf9hob
Running command git checkout -q 5e510fbc5f7b75f99380bd71d83b3d3a7db06888
Running command git submodule update --init --recursive -q
fatal: unable to connect to github.com:
github.com[0: <IP_ADDRESS>]: errno=Connection timed out
fatal: clone of 'git://github.com/LibRaw/LibRaw.git' into submodule path '/tmp/pip-req-build-bjxf9hob/external/LibRaw' failed
Failed to clone 'external/LibRaw'. Retry scheduled
fatal: unable to connect to github.com:
github.com[0: <IP_ADDRESS>]: errno=Connection timed out
fatal: clone of 'git://github.com/LibRaw/LibRaw-cmake' into submodule path '/tmp/pip-req-build-bjxf9hob/external/LibRaw-cmake' failed
Failed to clone 'external/LibRaw-cmake'. Retry scheduled
fatal: unable to connect to github.com:
github.com[0: <IP_ADDRESS>]: errno=Connection timed out
fatal: clone of 'git://github.com/LibRaw/LibRaw-demosaic-pack-GPL2.git' into submodule path '/tmp/pip-req-build-bjxf9hob/external/LibRaw-demosaic-pack-GPL2' failed
Failed to clone 'external/LibRaw-demosaic-pack-GPL2'. Retry scheduled

For anyone stumbling across thiss in the future, I managed to get it working by doing the following:
sudo apt install libraw-dev
python3 -m pip install cython
python3 -m pip install<EMAIL_ADDRESS>

Hello again @letmaik .
I've tried all of the suggested ways of installing rawpy on Raspberry Pi OS Bookworm / Debian 12.4 without success.

installation-from-source-on-linuxmacos
Your suggestion above

A few variables have changed, including this is python 3.11.2, and I'm building into a virtual environment, but regardless of the process I try I still hit the same error:
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /home/pi/libraw/rawpy
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [20 lines of output]
      Traceback (most recent call last):
        File "/home/pi/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/pi/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/pi/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-qowkmkdr/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-qowkmkdr/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-qowkmkdr/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 480, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "/tmp/pip-build-env-qowkmkdr/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 11, in <module>
      ModuleNotFoundError: No module named 'numpy'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

I'm struggling to understand if the ModuleNotFoundError: No module named 'numpy' is the root cause or a red herring, given the earlier messages - and of course numpy is already installed:
pip3 show numpy
Name: numpy
Version: 1.26.3
<edit>
Location: /home/pi/venv/lib/python3.11/site-packages
Requires:
Required-by: imageio

Does anything in the above hint at the issue, or is there some other change perhaps related to 3.11 and/or 32-bit architectures? My hardware platform is the Pi Zero W, which is a 32-bit ARMv6 CPU.
- G.

https://github.com/letmaik/rawpy/issues/147#issuecomment-1897878889
I encountered the same error regarding "no module named 'numpy'" despite having numpy installed. The error seemed to go away after doing pip install wheel prior to pip install . or pip wheel . --verbose.
Also for my special case where libraw is installed in a separate $LOCAL_DIR, I had to ensure that all my PKG_CONFIG_PATH, LD_LIBRARY_PATH, and C_INCLUDE_PATHS were updated to point to $LOCAL_DIR.
export PKG_CONFIG_PATH="${LOCAL_DIR}/lib/pkgconfig:${PKG_CONFIG_PATH}"
export PKG_CONFIG_PATH="${LOCAL_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}"
export LD_LIBRARY_PATH="${LOCAL_DIR}/lib:${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="${LOCAL_DIR}/lib64:${LD_LIBRARY_PATH}"
export C_INCLUDE_PATH="${LOCAL_DIR}/include:${C_INCLUDE_PATH}"


Workaround for problem with pytest new release

Description

Until the bug in pytest-metadata is solved, the simples workaround will be to add py to test dependencies in tox
https://github.com/pytest-dev/pytest-metadata/issues/54
Type of change

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

References

closes #5265
How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change
[ ] example: I check if my changes works with both PySide and PyQt backends
as there are small differences between the two Qt bindings.

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

There is PR with mix fixed https://github.com/pytest-dev/pytest-metadata/pull/55. Maybe lets wait on a new release.

@Czaki since pytest-metadata has been fixed, should we close this?


Model loses all event listeners on setting new event dispatcher

All existing event listeners for a previously set dispatcher on the Model class are lost if a new event dispatcher is set on the Eloquent Model.
If the loss is intended then there should be at least one last event fired (sth like unsubscribed) or a static method on the class called to inform all listeners of the previous dispatcher about the change.
However imho setting a new dispatcher on the Model class should take over all previously set listeners, sth. like:
	public static function setEventDispatcher(Dispatcher $dispatcher)
	{
		if (static::$dispatcher && (static::$dispatcher != $dispatcher))
		{
			if ($dispatcher)
			{
				// copy the Model listeners to the new dispatcher
			}
			// or inform the model subclasses about the dispatcher change
		}

		static::$dispatcher = $dispatcher;
	}

Unit-test demonstrating the problem:
	public function testDispatcherChange()
	{
		$d1 = new Dispatcher;
		Model::setEventDispatcher($d1);

		$model1 = new ModelStub;
		$model1->exists = true;
		$model2 = new ModelStub;
		$model2->exists = true;

		$marker = false;

		ModelStub::deleting(function($m) use (&$marker) {
			$marker = true;
			return false;
		});

		$model1->delete();
		$this->assertTrue($marker);
		$marker = false;

		$d2 = new Dispatcher;
		Model::setEventDispatcher($d2);
		$model2->delete();
		$this->assertTrue($marker);
	}

The second assertion will always fail because the event handler is gone after setting the second dispatcher.

Events are registered with the dispatcher. I don't see how the current behavior would not be the expected behavior.

I disagree. Model classes and the app should be able to assume that their event listeners don't get silently removed in any case. It should be safe to assume that event listeners get called once they have been registered.
With the current implementation the caller who has set the event listener will never know if the listeners he has set got removed.
Btw. this would have fixed the phpunit problem described in #1181 for good as well.
Anyways, doesn't seem you want to fix this since the ticket already got closed. No point in discussing this any further.

silently removed in any case.

No, that's not how php works.


[Don't merge] Add test schema to webview example -- plist keys

This shows how I use xcconfig files to set configuration options in plists based on different schemes.
I thought @jdee would find it interesting.

Result of Integration 1
Duration: 5 minutes and 22 seconds
Result: Perfect build! All 179 tests passed. :+1:
Test Coverage: 58%

The idea here is that all the configuration parameters are in the xcconfig file.
The conditional Info.plist value, the app name, or nearly anything can be configured in one file.  This avoids #ifdefs or other conditional code.

I like the idea of using xcconfig files this way and avoiding conditional code, multiple Info.plist files, multiple Branch keys in a given file.
I notice that this changes the way the project behaves though. In this branch, it's set up so that the Release configuration use the live key, and the Debug configuration uses the test key. This is an improvement over commenting things out, but it removes something that was already present in the project. The version in the staging branch lets you choose the Branch environment based on build scheme rather than configuration. In particular it lets you debug with the live key and do release builds with the test key (e.g., for distribution on Crashlytics or TestFlight, something partners have specifically expressed an interest in). This was the reason for the other two configurations. The Test-Debug and Test-Release configurations selected the test Branch key (using a compilation flag) rather than the live one, which was used by Debug and Release. The second scheme used these configurations rather than the ones for the live key. To retain this flexibility, I think it makes sense to restore the other configurations but set them up so that the base configuration for each is:

Debug: LiveBranch.xcconfig
Release: LiveBranch.xcconfig
Test-Debug: TestBranch.xcconfig
Test-Release: TestBranch.xcconfig

And restore the WebViewExample-Test scheme to use Test-Debug and Test-Release.
I also notice that the path relative to the group is wrong for TestBranch.xcconfig, which is in the repo but shows up missing from the project.
I haven't worked much with xcconfig files before. I'd be happy to make these changes to get a chance to play with this.

I misspoke slightly. It appears that the schemes select the Branch environment as before, but now WebViewExample uses the Release configuration for all tasks, and WebViewExample-Test uses the Debug configuration. This probably isn't the best approach. I know this was offered as an illustration. I can submit a PR using xcconfig files to support the same behavior as is currently in the staging branch.
I like this approach, and I think it's something I'm likely to use in my own apps in the future, but now that I've taken a stab at it, I think it's more complicated than using conditional compilation (partly because of CocoaPods; it's not so complicated if you don't have to worry about including the CocoaPods xcconfig). Of course, this is sort of an advanced case. It may just be a question of documentation and perhaps automation.

You can set up as many build configs as you like, I was just lazy so I showed only two for the demo code.
I did this as more of an academic exercise because I thought you might find it helpful at some point and it's not an common way to set up projects, so maybe you haven't seen it before.
I'm not planning on merging this.

This is simply an example.


chore: move to turborepo and pnpm

Proposed changes
Move to Turborepo and pnpm. closes #709
Types of changes

[ ] 🐛 Bugfix (non-breaking change which fixes an issue)
[ ] ✨ New feature (non-breaking change which adds functionality or enhancements)
[ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] ✅ Tests (added tests for an existing feature)
[ ] 📚 Documentation Update (if none of the other choices apply)
[x] 🙌 Other (please, write a clear and concise description of the proposal in the section above)

Checklist

[x] 👀 I have read the CONTRIBUTING doc
[x] ✅ Lint and unit tests pass locally with my changes
[x] 🧪 I have added tests that prove my fix is effective or that my feature works
[x] 📚 I have added the necessary documentation (if appropriate)
[x] 🔀 Any dependent changes have been merged and published in downstream modules

Further comments

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (c15b72e) 100.00% compared to head (2323485) 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff            @@
##              main      #712   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          103       103
  Lines          904       904
  Branches       158       158
=========================================
  Hits           904       904

Impacted Files
Coverage Δ

packages/compiler/src/plugin.ts
100.00% <ø> (ø)

packages/react/src/MorfeoComponent.tsx
100.00% <ø> (ø)

packages/compiler/src/transformer.ts
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


lunarvim: pinning neovim to 0.9.2 for compatibility

Description of changes
This commit fixes the dependency package neovim to 0.9.2.
Though lunarvim version 1.4.0 supports neovim v0.9.0+ as said in
its documentation, it turns out that only v0.9.0 and v0.9.2 could
run properly without error.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Here are somethings for consideration before merging this.
What is the commit trying to do?
As reported in https://github.com/NixOS/nixpkgs/issues/312971, lunarvim stable releases (currently at 1.4.0) won't run correctly with latest neovim.
As suggested by the upstream developer from lunarvim, there are two solutions:

Using develop branch of lunarvim which is preferred if we use v0.10.0+ version of neovim.
Pinning neovim version to v0.9.5 and keep using release branch of lunarvim.

The problem of the first approach is that there might not be any guarantee that the latest lunarvim works with the latest neovim. And it in turn increases the maintenance burden should the in-compatibility occurs.
Therefore I opted for the second approach here, though it's worth noting that after testing lunarvim only works without error with neovim v0.9.0 or v0.9.2.
Why I pull in the tarball of a specific version of nixos/nixpkgs?
To pin the version of a dependency package, one can either use a overlay or override version and appropriate attributes of the dependency.
The first approach is discouraged by nixpkgs manual:

NOTE: DO NOT USE THIS in nixpkgs.

and meanwhile the second approach hits the error
       error: function 'legacyWrapper' called with unexpected argument 'neovim-unwrapped'

when I tried
neovim-pinned = neovim.override (neovim-previous: {
  neovim-unwrapped = neovim-previous.neovim-unwrapped.override (neovim-unwrapped-previous: {
    version = "0.9.5";
  });
});

whereas legacyWrapper is defined here and it limits the attributes I can use override for the underlying neovim-unwrapped package.
Therefore I have to manually pull in a specific version of nixos/nixpkgs tarball that contains neovim v0.9.2.

The fix here is not possible to merge, it doesn't scale. If every package referenced a previous versions of nixpkgs, you end up with 80k different evaluations. Either mark lunarvim as broken or use an unstable version (justified in this case IMO).
The error referenced in the issue seemed related to an nvim-treesitter incompatibility. Maybe you just need to change that ?

I haven't used lunarvim a lot recently. And the prior statement that these two versions are compatible could be false if I had tried with more programming languages. I will close this PR.
As for whether marking it as broken:
The problem is it works with some languages but not others. I'm inclined to mark it as broken but I prefer to get more inputs from other users.


Investigate verbatim latex code

See if using verbatim latex code can improve performance of PDF generation.

Worked great.  Order of magnitude performance increase.


Install on Pyodide/JupyterLite

It would be really cool to run leafmap on Pyodide and hence JupyterLite using micropip.
I gave it a try and found basically two issues with non-existing Python 3 source wheels (needed by micropip) for pycrs and pyshp on PyPI for which I've created these tickets (but there might be wheels for them hosted somewhere else): https://github.com/karimbahgat/PyCRS/issues/56 and https://github.com/GeospatialPython/pyshp/issues/217. And here-map-widget-for-jupyter can be installed, too, but still has some issue with the JupyterLab extension, as described on https://github.com/heremaps/here-map-widget-for-jupyter/issues/25. Folium can be installed in a somewhat complicated manner, see the notebook pyolite folium.ipynb on JupyterLite.
Not sure if anything else is needed... ;)

@deeplook Thanks a lot for looking into this. It would be super awesome to have leafmap run on JupyterLite. Are the source wheels required by micropip the same as the one hosted on PyPI? I just built the pyshp wheel and made it available at https://spatial.utk.edu/download/pyshp-2.1.3-py3-none-any.whl. However, it seems micropip failed to fetch the wheel. I also tried uploading the wheel to JupyterLite and installed it, but it failed as well. Any advice? @jtpio @martinRenou
await micropip.install('https://spatial.utk.edu/download/pyshp-2.1.3-py3-none-any.whl')

await micropip.install('pyshp-2.1.3-py3-none-any.whl')

I'm pretty new to this, too. The geojson package which is not preinstalled in JupyterLite can be installed with either of these lines (and the wheel was created in August 2019, see https://pypi.org/project/geojson/#files ;):
await micropip.install("https://files.pythonhosted.org/packages/e4/8d/9e28e9af95739e6d2d2f8d4bef0b3432da40b7c3588fbad4298c1be09e48/geojson-2.5.0-py2.py3-none-any.whl")

await micropip.install("geojson")

There is also this description for creating a Pyodide package, but I need to digest more of it...
And then, I read somewhere in the Pyodide issues on Github (I believe) that micropip will load the wheels using HTTP range requests, which maybe not all servers do support...

Yes it would be interesting to double check installing pyshp from another server.
The content type seems to be differing:
$ curl -i https://spatial.utk.edu/download/pyshp-2.1.3-py3-none-any.whl
HTTP/1.1 200 OK
Date: Wed, 23 Jun 2021 20:53:41 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips
Vary: User-Agent,Accept-Encoding
Last-Modified: Wed, 23 Jun 2021 17:05:46 GMT
ETag: "9190-5c571eaedc79d"
Accept-Ranges: bytes
Content-Length: 37264
Content-Type: application/x-troff-man

and
$ curl -i https://files.pythonhosted.org/packages/e4/8d/9e28e9af95739e6d2d2f8d4bef0b3432da40b7c3588fbad4298c1be09e48/geojson-2.5.0-py2.py3-none-any.whl
HTTP/2 200
last-modified: Wed, 26 Feb 2020 17:59:43 GMT
etag: "183b6f5ccb61818543f29c62a47eff16"
content-type: binary/octet-stream
server: UploadServer
cache-control: max-age=365000000, immutable, public
accept-ranges: bytes
date: Wed, 23 Jun 2021 20:55:48 GMT
age: 1251652
x-served-by: cache-sea4481-SEA, cache-hhn4082-HHN
x-cache: HIT, HIT
x-cache-hits: 1, 1
x-timer: S1624481749.825108,VS0,VE1
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-frame-options: deny
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-permitted-cross-domain-policies: none
x-robots-header: noindex
access-control-allow-methods: GET
access-control-allow-origin: *
content-length: 14839

There is also this https://github.com/pyodide/pyodide/issues/1653#issuecomment-869046830 in https://github.com/pyodide/pyodide/issues/1653 linking such installation issues with coors and specific browser versions.

@deeplook This is great to know. Should we wait for JupyterLite to incorporate the latest pyodide?

@giswqs @deeplook this PR updates to the latest (dev) version of Pyodide: https://github.com/jtpio/jupyterlite/pull/178
Would you be able to test on the RTD preview? https://jupyterlite--178.org.readthedocs.build/en/178/_static/lab/index.html

@jtpio Sorry, but I seem to wait forever to import micropip there.

Ah, probably something that changed in pyodide?

well, I got it to work with a custom leaflet map renderer in vscode: https://github.com/RandomFractals/vscode-leaflet#pyolite-notebook-example
only using Pyolite to load geoJSON tho :(

anyone get leafmap to install via pywheel or micro on jupyterlite.  this would be great to skip the binder builds.  I believe lot of new features are coming in pyodide that should make it easier.

@giswqs Meanwhile it is possible to run geopandas, shapely, fiona and gdal inside pyodide, which seems like providing a big step further in running more of leafmap inside the browser! See https://github.com/pyodide/pyodide/issues/1569 and https://github.com/pyodide/pyodide/pull/3213 (with a test using pyscript in the comments of the latter).

@deeplook This is awesome! I will look into it this weekend. PR is also welcome!

@deeplook this is great news. @giswqs leafmap would be awesome on pyscript, just in time as tje binmder builds are now heavy and take a while.
pyscript map hmtl file & demo:
https://github.com/ryanking13/geopandas-pyodide-test/blob/main/index.html
https://ryanking13.github.io/geopandas-pyodide-test/
@ryanking13 thanks for this poc.

Glad to hear that it was helpful :)
Feel free to ping me or open an issue in Pyodide if you have any help or find a bug in using geopandas in Pyodide.

I tried to install leafmap with piplite. It seems there are several dependencies that do not have a wheel, such as gdown, pycrs. Let me see if I can build the missing wheels.

I was able to build wheels for gdown and pycrs. However, the other three dependencies (tornado, pyzmq, and argon2-cffi-binders) do not have noarch wheels. piplite does not accept noarch wheels. Any advice?
await piplite.install('https://giswqs.github.io/py-wheels/gdown-4.5.3-py3-none-any.whl')
await piplite.install('https://giswqs.github.io/py-wheels/PyCRS-1.0.2-py3-none-any.whl')

tornado, pyzmq, and argon2-cffi-binders appear to be dependencies of notebook. I might need to create a leafmap-lite package without the notebook dependency.

I created a new package called leafmap-lite without the jupyterlab and ipysheet dependencies (they require tonado, which can't be installed in jupyterlite yet). Excited to see leafmap finally works with JupyterLite.
https://giswqs.github.io/leafmap-jupyterlite
import piplite
await piplite.install('leafmap-lite')
await piplite.install('leafmap', deps=False)

Really nice!

without the jupyterlab and ipysheet dependencies (they require tonado, which can't be installed in jupyterlite yet)

Is there any reason to depend on jupyterlab? Usually widgets don't need that dependency. For ipysheet probably the same could be done (trimming dependencies).

@jtpio Thank you for the suggestion. I have made jupyterlab and ipysheet as optional dependencies, now leafmap can be installed easily using piplite.
Try it out at https://demo.leafmap.org
%pip install -q leafmap

https://user-images.githubusercontent.com/5016453/203998312-e0a9d3b3-7f8f-43d9-b4f8-99cc1478601f.mp4


feat: support reuse opcua.Client

PR Checklist

If your build fails due to your commit message not passing the build checks, please review the guidelines here.

Please check if your PR fulfills the following requirements:

[x] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[x] I am not introducing a new dependency (add notes below if you are)
[ ] I have added unit tests for the new feature or bug fix (if not, why?)
[ ] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
[ ] I have opened a PR for the related docs change (if not, why?)

Testing Instructions

New Dependency Instructions (If applicable)

@ethan256 You should Sign-Off the commit. Just use the command: git commit -s -m "comments"

Please rebase your commits to single one.


fedimint-client secret derivation path in fedimint-CLI

See included markdown document.

@elsirion looks like module secrets currently have an assertion requiring their parent to have level 0. How best to proceed? Should we alter the derivation scheme, or remove the assertion?

Backport failed for releases/v0.2, because it was unable to cherry-pick the commit(s).
Please cherry-pick the changes locally and resolve any conflicts.
git fetch origin releases/v0.2
git worktree add -d .worktree/backport-3740-to-releases/v0.2 origin/releases/v0.2
cd .worktree/backport-3740-to-releases/v0.2
git switch --create backport-3740-to-releases/v0.2
git cherry-pick -x 8ec2e02e4a6c4ce068f1615f6aacb9be3222b882 4f1cf2e355f1d7fafb8d4b601e6a504d1445f4c9 64ff17e96c4b0fe016add37cce154fbb2d68c451

@okjodom @m1sterc001guy @elsirion Does the gateway need to be updated at all for this?

Does the GW implement backup+recovery rn?

Does the GW implement backup+recovery rn?

Yes https://github.com/fedimint/fedimint/blob/361a16f8ed03d0f931e801a1216fcc9be8c4d112/gateway/ln-gateway/src/rpc/rpc_server.rs#L42-L43

Update: these RPC calls are noops apparently. So I guess it isn't implemented. https://discord.com/channels/990354215060795454/1127969523203579944/1179519499574190101


Can't use sparse registry mirror

Steps to reproduce the bug with the above code
I'm having this config for the mirror of crates.io:
[source.crates-io]
replace-with = 'tuna'

[source.tuna]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"

[registries.tuna]
index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"

Actual Behaviour
cargo semver-checks check-release failed with:
Error: The repo at path /Users/inflation/.cargo/registry/index/mirrors.tuna.tsinghua.edu.cn-2eab394af869c8a2 is unusable due to having an invalid HEAD reference: reference 'refs/heads/master' not found; class=Reference (4); code=NotFound (-3)

Expected Behaviour
Checks normally
Generated System Information
Software version
cargo-semver-checks 0.22.1
Operating system
macOS 13.4.1 (Darwin 22.5.0)
Command-line
/Users/inflation/.cargo/bin/cargo-semver-checks semver-checks --bugreport

cargo version
> cargo -V
cargo 1.70.0 (ec8a8a0ca 2023-04-25)

Compile time information

Profile: release
Target triple: aarch64-apple-darwin
Family: unix
OS: macos
Architecture: aarch64
Pointer width: 64
Endian: little
CPU features: aes,crc,dit,dotprod,dpb,dpb2,fcma,fhm,flagm,fp16,frintts,jsconv,lor,lse,neon,paca,pacg,pan,pmuv3,ras,rcpc,rcpc2,rdm,sb,sha2,sha3,ssbs,v8.1a,v8.2a,v8.3a,v8.4a,vh
Host: aarch64-apple-darwin

Build Configuration
No response
Additional Context
No response

Interesting, thanks for the report! I've never used registry mirrors, is there somewhere I can read about what benefits they provide and in what circumstances they get used?
cargo-semver-checks uses the crates_index crate to interact with the crate index and the local cargo cache. So we support whatever that crate supports, and like I mentioned, I haven't looked at mirror functionality so I'm not sure whether this is supported or not.
The error message seems to indicate that, for this configuration, the underlying crates_index crate expected to find a git repo but did not. Is it possible this is due to a configuration error?
The underlying code in question is here:
https://github.com/frewsxcv/rust-crates-index/blob/cf65d090563692aa44777f47a3b3f45973cc890d/src/bare_index.rs#L138-L152
If you've double-checked your configuration and have found it correct, would you mind chatting with the crates_index maintainers in an issue there to see if mirrors are supported and if they require any special functionality to enable? cargo-semver-checks uses the documented crates_index::Index::new_cargo_default() way of accessing the index which loads config information (hence your error) so if this is indeed a bug, it appears to me that it's somewhere inside that call there and not in cargo-semver-checks itself.

Ah interesting. I'm not sure if this is a fundamental limitation of crates_index or just a bug there.
Would you mind opening a linked issue in the crates_index repo, sharing this information with them, and asking if registries that only contain sparse indexes can be supported? Like I mentioned, I don't understand the registry protocol details at all, so if I were to open the issue, I'd be pretty useless and would just be relaying information between you and the maintainers of that crate.

crates_index actually provide a  sparse_index so you can use that. The thing is you are assuming everything is a git repo by using git-index feature and crate_index::Index, which is not true. I don't know if it's better to have the detection happening in crates_index or here, but the general idea is to check if [source.crates-io.protocol] is set to sparse or any registry URL is starting with sparse+.
For now it should be using the sparse protocol by default (which cargo already have), and provide a flag to use the git index repo for fallback.

These are good points. I think it'd be better if the crates_index or a wrapper around it provides detection of the appropriate config, or else we'd be reimplementing a good chunk of cargo config management all over again.
I can ask the maintainers of crates_index about this and see what they think.

It seems that the sparse index functionality in crates_index is still a work in progress, here are a few related issues:
https://github.com/frewsxcv/rust-crates-index/issues/44
https://github.com/frewsxcv/rust-crates-index/issues/123
https://github.com/frewsxcv/rust-crates-index/issues/126

Perhaps related to #160 as well.

crates_index is now unmaintained. https://github.com/frewsxcv/rust-crates-index/issues/132

Thanks for the heads-up. That's unfortunate :(
On Sun, Jul 23, 2023, 9:33 AM Pavan Kumar Sunkara @.***>
wrote:

crates_index is now unmaintained. frewsxcv/rust-crates-index#132
https://github.com/frewsxcv/rust-crates-index/issues/132
—
Reply to this email directly, view it on GitHub
https://github.com/obi1kenobi/cargo-semver-checks/issues/487#issuecomment-1646842040,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAR5MSVXCD5K6IWT6TICF2DXRUR3ZANCNFSM6AAAAAA2EWL23I
.
You are receiving this because you commented.Message ID:
@.***>

Normally I'm not "that guy", but in light of https://github.com/frewsxcv/rust-crates-index/issues/132, I thought I would mention that I have been working on an alternative to crates-index, https://github.com/EmbarkStudios/tame-index, as several use cases I had were blocked by the constraints of crates-index.
Notably, the use case mentioned here is supported by tame-index since I had a similar use case in cargo-deny for needing to open the crates.io index to get metadata for crates, but not wanting to duplicate functionality already in crates-index, as well as not having a single type that could access a git/sparse/local index which was clunky and unpleasant.
The code would be roughly:

impl RustdocFromRegistry {
    pub fn new(target_root: &std::path::Path, config: &mut GlobalConfig) -> anyhow::Result<Self> {
        let crates_io_url = tame_index::index::IndexUrl::crates_io(
            None, // unless you want to override the config root to something other than the current directory
            None, // unless you want to override cargo home
            None, // unless you want to override the cargo version
        )?;

        Ok(Self {
            target_root: target_root.to_owned(),
            version: None,
            index: tame_index::index::ComboIndexCache::new(IndexLocation::new(crates_io_url))?,
        })
    }

    fn load_rustdoc(
        &self,
        config: &mut GlobalConfig,
        rustdoc_cmd: &RustdocCommand,
        crate_data: CrateDataForRustdoc,
    ) -> anyhow::Result<PathBuf> {
        let crate_ = self.index.cached_krate(crate_data.name.try_into().expect("published cargo crate somehow had an invalid name")).with_context(|| {
            anyhow::format_err!(
                "{} not found in registry (crates.io). \
        For workarounds check \
        https://github.com/obi1kenobi/cargo-semver-checks#does-the-crate-im-checking-have-to-be-published-on-cratesio",
                crate_data.name
            )
        })?;
        ...
    }
}

I guess one wrinkle is that tame-index uses gix for its git implementation while this crates uses git2 so you probably wouldn't want to enable the git feature flag, so updating of the git registry wouldn't be supported.

That looks quite nice, thanks for mentioning it and showing code!
I'm not sure I understood the git caveat at the end. Is the issue that users using a git registry wouldn't benefit from a local cache? Or is the problem something else?
Overall this is quite tempting to switch to. It seems like we'd get less complexity, more functionality, and maintained dependency. I'd love to understand the git caveat better, but assuming it's not a major issue I'd love to make the switch!

Well the current code is doing an update of the index, which is only available if the git feature flag is enabled and then gix is pulled in. Unlike crates-index though, it is able to read .cache entries from a git index if they are available, but would again need gix enabled to read the crate's index metadata if the .cache entry did not exist.
My use case for cargo-deny isn't impacted by this because cargo_metadata is always executed before index operations so the git/sparse index is always guaranteed to have .cache entries for all crates returned by the cargo_metadata call.
If you wanted to keep that functionality you could enable the git feature, but it would bloat compile times and binary artifacts since git2 and gix would be both present.

Ah I see. I think we have to be able to update the index, since we need to find historical versions of a crate from the index etc. I'm not too worried about compile times, since many / most users just use the prebuilt binaries that get generated on every release.
How would updating the index work after enabling the git feature?
Any chance you might be open to making a PR? It seemed like you got 99% of the way there in the example you gave, and you know way more about all this than I do so I trust you more than I trust myself on this 😅

Sure, I can do that.


Header QR Code / dynamic tinyurl

Include a QR Code on the header.  Dynamic to app homepage.  Allows presentation audience to sign-in via b2c, and participate as authenticated user in process. works hand-in-hand with b2c, pwa, and eventually multi-tenancy to provide immersive demo experience

Hi


Layer: document the event "changelayer"

changelayer is the map event and is already documented there.

Oops! Sorry! I read this.map.events as this.events


Fix compatibility with Docker 18

docker run -l foo no longer works, need -l foo=...

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

ok, holding down horses as looks like docker had a regression connected with that already fixed in https://github.com/docker/docker-ce/commit/50c9a31b4c27c6e3d44f24c2f88dec59809f3b2f#diff-6260754ea89bbd8676f62cd2494b6b5b

Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Apparently this was a bug in an edge version of Mac docker, thus closing this PR.


[Code Structure] Follow protobuf enum best practices

Objective
Not following best practices for protobuf enum naming.
Origin Document
In #245, the following change was made:

In order to follow best practices, we should do the following:

Goals

Change all existing protobuf enums to follow best practices
Enforce best practices moving forward

Deliverable

[ ] A single PR that converts existing protobufs (and their references) to follow best practices
[ ] A single PR to update to update workflow to enforce best practices

Non-goals / Non-deliverables

Changing any business logic in the codebase

General issue deliverables

[ ] Update the appropriate CHANGELOG
[ ] Update any relevant READMEs (local and/or global)
[ ] Update any relevant global documentation & references

Testing Methodology

All tests: make test_all
LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md

Creator: @Olshansk
Co-Owners: @okdas + ?

Can I take this on?

@nickatnight23 Definitely! Feel free to reach out either here or in discord if you need any help or clarifications.
The (dev guide](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md) is probably the best place to start, but if something is unclear or could be made better, please don't hesitate to point it out

Can I get some clarification on installing the dependencies? I am having trouble with this section- protoc-gen-go, protoc-go-inject-tag and mockgen by running make install_cli_deps. Not sure how to make the build first?

Can you try running this command: https://github.com/pokt-network/pocket/blob/main/Makefile#L99
If it works, feel free to update the dev guide as well!

I have a question about the code base where the protobuf enums are located. Would this be the best place to ask?

For sure. Are you just having trouble finding them? This command might be a good starting point:
$ find . -name "*.proto" | xargs grep -i "enum "

Yes, I was having trouble finding them. Thank you.

I am having trouble installing mockgen. It appears that everything else is installed.

What is the issue?


Unexpected pass-through to glimmer tracked with @tracked

So, today I had this case:
import { tracked } from 'tracked-built-ins';

class Queue {
  @tracked files = [];

  update() {
    this.files.push('...');
  }
}

vs
import { TrackedArray } from 'tracked-built-ins';

class Queue {
  files = new TrackedArray([]);

  update() {
    this.files.push('...');
  }
}

and an #each in the template to it:
{{#each queue.files as |file|}}
  ...
{{/each}}

In both cases I'd expect the {{#each}} part to be updated once update() is called. However, the first case did nothing, the latter one worked.
Looking into the code, the decorator usage does a passthrough to glimmer's tracked:
https://github.com/tracked-tools/tracked-built-ins/blob/57a813cbdafdf75bded5b8ebc9e1cb17e4443cf2/addon/-private/decorator.ts#L42-L44
My expectation is, that whenever @tracked from tracked-built-ins is able to recognize one of the supported values, than this is used. If not a fallback to glimmers @tracked is used.
Is my assumption correct?

This is as expected and indeed exactly as documented. When you use tracked from this library as a decorator, it lets you use it as a passthrough (as you found) so that you don't have to import from both this library and @glimmer/tracking. So in your first example, all you're doing is exactly the same thing you would do by writing @tracked files = [] with "vanilla" @tracked. If you want it to match the second example, you need to flip it: files = tracked([]). And of course you could combine them if you had a good reason to.
The distinction between tracking a property which contains an array and creating a TrackedArray is extremely significant, so we don't ever want it to be ambiguous which you're doing.


Meetar/line extrude

Closing because wayyyy out of date, but this could be re-created on the current builder code base. Would need some discussion about how to do it without impacting the non-extruded case though.


Bridge BSC, info says 'lock asset on Ethereum'

The testnet, as shown, bridges BNB, an asset of BSC, but says 'lock asset on Ethereum', which can be confusing to users. Both pending and succeed forms have the same issue.

Thanks for reporting. We are on fixing that.

Fixed:


Missing items in documentation, e.g. "outspace"

This documentation are missing properties, e.g. "outspace" but also many more. To fix this, just take a look at your existing templates and make sure that the documentation contains everything that are used in the templates.
Also, make sure the provided JSON files are complete. One contains fewer "}" than needed and one contains to many "}"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8d9a8511-6ff9-78c6-5a8c-3f5ac68224d0
Version Independent ID: f4fd28c7-71fa-a776-7154-e76eb9bd3649
Content: Use report themes in Power BI Desktop - Power BI
Content Source: powerbi-docs/create-reports/desktop-report-themes.md
Service: powerbi
Sub-service: pbi-reports-dashboards
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Hey @maggiesMSFT - the repo you linked is inactive and the new link to use for the maintained version is below:
https://github.com/MattRudy/PowerBI-ThemeTemplates#readme

Created issue #3402  and PR #3403 for this update

Thanks, @erapade and @MattRudy !
@erapade  - for the incomplete JSON files, "One contains fewer "}" than needed and one contains to many "}"" -- are they on https://github.com/deldersveld/PowerBI-ThemeTemplates/blob/master/README.md? If so, could you check the GitHub repo that @MattRudy provided the link for, https://github.com/MattRudy/PowerBI-ThemeTemplates#readme?
Thanks!

@maggiesMSFT: No, I refer to the two largest JSON definitions in this issues content. Just put those into an editor and you will se


Rename project: Encryption, not encoding

Description
Rename the text encryption project to properly reflect its contents.
Fixes #304
Type of change
Choosing one or more options from the following as per the nature of your Pull request.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation Update

Checklist:
Please tick all the boxes that are fulfilled by your Pull Request.

[X] I have named my files and folder, according to this project's guidelines.
[X] My code follows the style guidelines of this project.
[X] My Pull Request has a descriptive title. (not a vague title like Update index.md)
[ ] I have commented on my code, particularly in hard-to-understand areas.
[X] I have created a helpful and easy to understand README.md, according to the given README_TEMPLATE.
[X] I have included a requirements.txt file (if external libraries are required.)
[X] My changes do not produce any warnings.
[ ] I have added a working sample/screenshot of the script.
(No need; it already had one.)

If you accept this, I would much appreciate if you could tag it hacktoberfest-approved.


fix: Cannot set properties of null (setting '_blazorInputFileNextFileId') when FluentInputFile is used in EditForm

🐛 Bug Report
Error Cannot set properties of null (setting '_blazorInputFileNextFileId') occurs when FluentInputFile is being used in EditForm and navigation is changed either by clicking or programmatically and no file is selected .
FluentInputFile works fine if it is used outside form.
💻 Repro or Code Sample
@rendermode InteractiveServer

<EditForm EditContext="@editContext" OnValidSubmit="@Submit" FormName="Comment">
    <AntiforgeryToken />
    <DataAnnotationsValidator />
    <ValidationSummary />

    <FluentInputFile @ref="@inputFile"
                     Id="file-uploader"
                     DragDropZoneVisible=true
                     Mode="InputFileMode.Stream"
                     Multiple="true"
                     Accept="image/*,.pdf,.doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document, .xls, .xlsx"
                     OnFileUploaded="@OnFileUploadedAsync"
                     OnCompleted="@OnCompleted" Style="width:100%;height: 100px; border: 1px dashed var(--accent-fill-rest);" Disabled=@Disabled>
        <ChildContent>

                Drag files here you wish to upload, or browse for them.

        </ChildContent>
    </FluentInputFile>

</EditForm>

🤔 Expected Behavior
FluentInputFile should work in EditForm.
😯 Current Behavior
Websocket disconnects due to unhandled error and user has to reload the page.
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '"IFiKl3Q20LQgmrSmMDwRp7WRULlP7qnMt6hFuYttE7s"'.
Microsoft.JSInterop.JSException: Cannot set properties of null (setting '_blazorInputFileNextFileId')
TypeError: Cannot set properties of null (setting '_blazorInputFileNextFileId')
at Object.init (https://localhost:7165/_framework/blazor.web.js:1:37370)
at https://localhost:7165/_framework/blazor.web.js:1:3047
at new Promise ()
at y.beginInvokeJSFromDotNet (https://localhost:7165/_framework/blazor.web.js:1:3004)
at gn._invokeClientMethod (https://localhost:7165/_framework/blazor.web.js:1:62730)
at gn._processIncomingData (https://localhost:7165/_framework/blazor.web.js:1:60119)
at connection.onreceive (https://localhost:7165/_framework/blazor.web.js:1:53760)
at i.onmessage (https://localhost:7165/_framework/blazor.web.js:1:81866)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)
at Microsoft.AspNetCore.Components.Forms.InputFile.OnAfterRenderAsync(Boolean firstRender)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
🌍 Your Environment

Browser [Microsoft Edge & Google Chrome]
.NET 8.0.8 and Fluent UI Blazor library 4.9.3

Reproduction code is not complete!! Also, please elaborate on 'navigation is changed either by clicking or programmatically'. Navigate to another page?
Please supply us with ready-to-run reproduction code in the form of something we can copy/paste, a (zipped) project structure or a GitHub repository.
We do not have capacity to craft or compose a reproduction for every issue that gets raised.
If no code or repository is provided, this issue will be closed in 3 days
Help us to help you. Thanks.

I am unable to reproduce the code because it is happening randomly in the application.
As a quick fix, I have placed the FluentInputFile component outside EditForm and anchored it with button. It is working and no error reported yet.

Also, please elaborate on 'navigation is changed either by clicking or programmatically'. Navigate to another page?

Yes

Ok, as it is not reliably reproducible and you have a work around, I'm closing this one.
Please feel free to re-open if you're blue to reproduce reliably and can share code with us.


Cool idea! Can you add an example for accessing the variable from another component?

I guess it requires all the same code as the first component?

Hi,
There are, at least, 3 ways to have the same store between components.

Recreate the same code definition in the second component
Create the store in one component context="module" scope
Create the store outside a component and import it

The 1st solution is not the best, right now the persistent store don't listen for external changes in the storage.
So if you change the store value in one component other won't see it (unless you unmount/mount the component again)
(I plan to add the external change listener, in a near future)
The 2nd and 3rd are similar. The difference between the two is the "owning" of the store.
If you declare it in the context="module" of a component you implicitly make this component as owner (for human point of view) as every times you need it you will import it from this component.
Creating the component in a separate JS/TS file, the store is not "attached" to any component.

Here an example of those 3 implementations
Duplication definition in every component
<!-- Component1.svelte -->
<script>
  import { persist, localStorage } from "@macfja/svelte-persistent-store"
  import { writable } from "svelte/store"

  let name = persist(writable('John'), localStorage(), 'name')

  $name = 'Jeanne Doe'
</script>

<!-- Component2.svelte -->
<script>
  import { persist, localStorage } from "@macfja/svelte-persistent-store"
  import { writable } from "svelte/store"
  import { onMount } from "svelte"

  let name = persist(writable('Foobar'), localStorage(), 'name')

  onMount(() => { alert($name) }) // If Component2 is loaded/mount after Component1 the alert will be "Jeanne Doe"
</script>

Context module
<!-- Component1.svelte -->
<script context="module">
  import { persist, localStorage } from "@macfja/svelte-persistent-store"
  import { writable } from "svelte/store"

  export let name = persist(writable('John'), localStorage(), 'name')
</script>
<script>
  $name = 'Jeanne Doe'
</script>

<!-- Component2.svelte -->
<script>
  import { name } from "Component1.svelte"

  name.subscribe(value => alert(value)) // the alert will open when the store is change in any component
</script>

External definition
// stores.js
import { persist, localStorage } from "@macfja/svelte-persistent-store"
import { writable } from "svelte/store"

export let name = persist(writable('John'), localStorage(), 'name')

<!-- Component1.svelte -->
<script>
  import { name } from "stores.js"
  $name = 'Jeanne Doe'
</script>

<!-- Component2.svelte -->
<script>
  import { name } from "stores.js"

  name.subscribe(value => alert(value)) // the alert will open when the store is change in any component
</script>

The documentation have been added with commit 526547cb590ff7bf9f323a250b50f3a5248bf67d
Available with npm run doc or here


Adding lipid aux and core datasets for benchmarking

Submission Checklist

[X ] Created a new directory in the submissions directory containing the YDS input file and optionally a force field .offxml file
[ ] Triggered the benchmark workflow with a PR comment of the form /run-benchmark path/to/submission
[ ] Waited for the workflow to finish and a comment with Job status: success to be posted
[ ] Reviewed the results committed by the workflow
[ ] Published the corresponding Zenodo entry and retrieved the DOI
[ ] Added the Zenodo DOI to the table in the main README
[ ] Ready to merge!

/run-optimization-benchmarks submissions/2024-12-19-Sage-2.2.1-lipids-aux/input.yaml


Vertical Layout?

Is there any ability to configure the chart so the header columns are vertical? I.e. the normal horizontal layout looks like

And i'm looking for something like:a

https://github.com/fin-hypergrid/core/issues/723

Responded in fin-hypergrid fin-hypergrid/core#723.

While I'm open to any feature requests that ultimately make Perspective a better product, I don't think Issues is a good place to discuss them.  We are open to accepting any new plugin implementations into the main project, but we'll need to choose another venue to discuss what the criteria would be.


Get.changeTheme（）not work in iPhone7 with IOS14.7.1

Describe the bug
changeTheme() not work in iPhone 7 .my iPhone 12 (14.6) and iPhone x (14.7.1) works fine.
example:
import 'package:flutter/material.dart';
import 'package:get/get.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  const Home({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Home'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
                onPressed: () {
                  Get.changeTheme(ThemeData(
                      appBarTheme: AppBarTheme(backgroundColor: Colors.black)));
                },
                child: Text('black')),
            ElevatedButton(
                onPressed: () {
                  Get.changeTheme(ThemeData(
                      appBarTheme: AppBarTheme(
                    backgroundColor: Colors.white,
                  )));
                },
                child: Text('white'))
          ],
        ),
      ),
    );
  }
}

name: flutter_application_1
description: A new Flutter project.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  get: ^4.3.8

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2

dev_dependencies:
  flutter_test:
    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

To Reproduce
1.click button to change theme
2.not work
Screenshots
iPhone 7 iOS 14.7.1
https://user-images.githubusercontent.com/9588025/131778785-3b852c31-54b9-432f-9dc9-97ee8ea9ee74.mp4
iPhone12 pro Max simulator  works fine

Flutter Version:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.1, on macOS 11.2.1 20D75 darwin-x64, locale
en-GB)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
! Some Android licenses not accepted.  To resolve this, run: flutter doctor
--android-licenses
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.59.1)
[✓] Connected device (3 available)
Getx Version:
get: ^4.3.8
Describe on which device you found the bug:
ex: IPhone7

Hi @SinoMiles there's a working progress pending #1411, for the time being you will need to setup as follow in order to make it work

import 'package:flutter/material.dart';
import 'package:get/get.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Flutter Demo',
      themeMode: ThemeMode.light, //add
      darkTheme: ThemeData.dark(), //add
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Home(),
    );
  }
}

@maares  works fine! thanks.


Explain expected use of both budgetDuration & budgetInterval

Why both?

Interval is the thing that has a nominated beginning and end, each of which is a time instant. Duration is the extent of an interval. If you know any two properties of the interval you can compute the third. But sometimes you only know (or need) one.

Fair enough