Indented tasks not recognized by Dataview

Summary
When tasks of the - [ ] taskname variety are indented, Dataview does not display them in queries.
- [ ] Task         //Dataview sees this
	- [ ] Task //Dataview does not see this

This reproduces reliably on my Mac, but not on the mobile app (iOS). Edit: the incorrect behavior now reproduces on Obsidian for iOS as well.
To Reproduce
Create a content document:
#dataviewtest

- Notes
- [ ] Task A (root level)
- [ ] Task B (root level)
- More notes
	- [ ] Task C
- Still more notes
- [ ] Task D

Create a Dataview query:
dv.taskList(dv.pages("#dataviewtest").file
  .tasks
  .where(t => !t.completed), true)

Expected result: Dataview render shows task A, B, C, and D
Actual result: Dataview render shows tasks A, B, and D
Screenshots
Issue occurring on desktop:

Earlier this morning, the issue did not occur on mobile (screenshot of the same document as above):

…but a couple hours later I happened to open the same document and the indented tasks are now missing:

Desktop (please complete the following information):

OS: macOS 11.5.2
Obsidian Version 0.12.12
Dataview Version 0.4.5

Smartphone (please complete the following information):

Device: iPhone XS
OS: 14.7.1
Obsidian Version 1.0.4
Dataview Version 0.4.4 and 0.4.5 (tested on both versions)

Update: I also just tested with Obsidian version 0.12.15 (macOS) and the problem persists there as well.

Note: the issue now reproduces across macOS and iOS versions of Obsidian. I didn't change either the source document or the Obsidian query. However, I did more troubleshooting on the Mac that may have caused a change:
On Mac:

Uninstall Dataview plugin
Try to reinstall the plugin. This failed a couple times, perhaps because of an interrupted download?
Eventually Obsidian said Dataview was reinstalled, but I couldn't enable it
Digging into the Obsidian plugin directory, I found that the plugin hadn't been fully installed (only the manifest.json was downloaded; the main.js and style.css were missing)
I downloaded the files manually from Github and reinstalled Dataview. Now dataview is working again on my Mac (though that didn't resolve this issue)

…I am using Obsidian's sync service, so my guess is that somehow the plugin update was synced over to iOS during that time.

@dbyler sorry, that sounds super frustrating. As an aside, I'm enough of an Obsidian noob that I don't think I've ever updated plugins, so thanks for teaching me I need to do that. :D
I just copied your sample content into a note in my Obsidian (0.12.15 and both Dataview 0.4.5 and 0.4.8) and this works for me, unfortunately. Does Obsidian recognize your tasks as such when previewing?
Raw:

Preview:

Alternatively, are you able to reproduce using the test vault in this repo? If you could add some files for me to play with, I'd be happy to take a look.

Hmm, thanks for testing. It's a bit baffling that you and I see different results here. I did the following:

Cloned the obsidian-dataview project
Opened the sample vault (Obsidian 0.12.15 on Mac)
Installed dataview plugin (0.4.10)
Added the test file (as far as I can tell it's the exact same file you're working with)

Raw file view:

Rendered (still missing the subtask):

I went as far as digging into the code and testing the regex that dataview uses to identify tasks, and from everything I could test it should be working. And since it's working for you, there's clearly some processing bug happening somewhere... but I'm baffled on how to troubleshoot further.

When you say you installed it in step 3, what steps did you take?
On Sun, Sep 12, 2021, at 8:46 PM, Dan Byler wrote:

Hmm, thanks for testing. It's a bit baffling that you and I see different results here. I did the following:

Cloned the obsidian-dataview project
Opened the sample vault (Obsidian 0.12.15 on Mac)
Installed dataview plugin (0.4.10)
Added the test file (as far as I can tell it's the exact same file you're working with)
Raw file view:

1-raw https://user-images.githubusercontent.com/57901/133020807-6ab4b735-9053-4f3b-8b2a-8fb486c5d6cb.png
Rendered (still missing the subtask):
2-rendered https://user-images.githubusercontent.com/57901/133020831-396c2c64-0431-4c99-a113-3549e87cb779.png
I went as far as digging into the code and testing the regex that dataview uses to identify tasks, and from everything I could test it should be working. And since it's working for you, there's clearly some processing bug happening somewhere... but I'm baffled on how to troubleshoot further.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/blacksmithgu/obsidian-dataview/issues/459#issuecomment-917813705, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5WUNRRCLZNC3OBGOMP7LUBVX3FANCNFSM5DFOMCEA.

I installed using the Obsidian UI:
Obsidian → Open demo vault → Obsidian Options → Community Plugins → Safe Mode Off → Browse → Install Dataview → Enable Dataview

In case it makes a difference, I just tried the following:

In Obsidian, delete the dataview plugin that I had installed using the Obsidian GUI
In the obsidian-dataview folder, install using npm install and npm run dev
In Obsidian, enable the newly-built version of dataview plugin
Retest

…with the same result (subtask not displayed)
This was installed from the master branch (git clone https://github.com/blacksmithgu/obsidian-dataview)

Since you already are at the point of installing from source, have you tried just directly debug-logging the task parser? You can find it in data/file.ts in findTasksInFile().

OK, I managed to figure out the the build/log/console bit…
Task C is identified and created as a task at line 304 … but it's missing from stack in line 321.

Anything else I can do to help debug?

Update: after further digging, Task C is getting through to the parsed object in data/importer.ts, and it looks like it's fully processed as a subtask of More notes. The trouble is that it seems to be hidden because its parent "task" is marked as completed. If I change the query to show items that are not fullyCompleted instead, the subtask (and its whole tree) is displayed in the task query:

Ahhh, this makes sense. I'm not sure what the correct UX is here (it seems you could make an argument for non-task list items to go either way); it's worth noting you can check for non-task items via the real property (true if it is a task, false if not).

I think what I've done is a passable workaround for my use case, but it seems there's still a bug here: your screenshot (from this comment) shows Task C in the rendered task list, but I'm unable to reproduce that using the same source data and the same Dataview code.

I guess the drawback of my workaround is that it also includes non-task rows. I'd love the rendered view to only include rows that meet one of these conditions:
a) They're a task
b) They have a task directly downstream
Here you can see that the rendered view includes all rows in which the root node has any open tasks, leading to irrelevant items being displayed:

How blocks underneath the task should render is a matter of preference, so the best option here is probably going to be to add a recursive where statement which lets you filter out undesired sub-nodes. I've added it to the next release backlog.

I can confirm that this is still a problem - I tested it with these versions:

dataview 0.4.17
dataview 0.4.20

The crucial part of reproducing the problem is adding a filter on whether the task is complete or not.
1 Markdown source
My markdown source is this, and this is in a folder where these are the only tasks:
- [ ] A
    - [ ] A 1
    - [ ] B 1
- B
    - [ ] B 1
    - [ ] B 2

2 Show all tasks
When I ask dataview to show all tasks in this folder - using this query - with backticks changed to apostrophes:
'''dataview
TASK
FROM ""
WHERE file.folder = this.file.folder
SORT file.name
'''

I see this output, which is what I am expecting:

3 Show incomplete tasks
When I filter for only incomplete tasks - using this query - with backticks changed to apostrophes:
'''dataview
TASK
FROM ""
WHERE file.folder = this.file.folder and !completed
SORT file.name
'''

I this output, which misses out the incomplete sub-tasks B 1 and B 2

4 Observations
Note that the only difference between the working and incomplete dataview task lists is the addition of  and !completed to the WHERE clause.
In this example, I restricted results to the local folder - but this is unrelated to the bug. Most of my dataview uses look like this - where !completed is the only filter - again with backticks converted to apostrophes:
'''dataview
TASK
FROM ""
WHERE !completed
SORT file.name ASC
'''

So it seems to me that:

dataview is able to find the indented tasks B 1 and B 2 because they are included in the output of section 2
so I strongly suspect the problem must be something to do with the filtering treating parents of indented tasks as "completed" if they do not have any [ ] string, i.e. are not tasks, so that they cannot be complete.

Oh, I've just read the text above about workarounds...
They use dataviewjs which I can use, but it adds complexity.
It turns out that fullyCompleted works in dataview as well. like this (again backticks changed to apostrophes)
'''dataview
TASK
FROM ""
WHERE file.folder = this.file.folder and !fullyCompleted
SORT file.name
'''

So at least I have a workaround that I can easily apply...

I looked at the documentation to see how it describes fullyCompleted:
The current version says:

fullyCompleted: Whether or not this task and all of its subtasks are completed.

From a user's perspective, I feel that this is somewhat misleading, as it doesn't talk about parent bullet points...
In my example above, I feel that B 1 and B 2 are the sub-tasks - and the problem seems to be that their parent bullet point is not a task at all...
From a developer's perspective, I do now understand why the code is behaving the way it is.
But I feel that the Principle of least astonishment/surprise, suggests that having !completed omit obviously incomplete bullet lists - meaning  users may completely not notice incomplete tasks in their lists (as happened to me) is a bit of a bad idea :-)

The reason for this behavior is that dataview currently only filters top-level tasks, so filtering by completed only checks whether the topmost task is completed or not.
Filtering the whole task heirachy would be nice, though for more advanced WHERE statements it's unclear how to handle when a parent task fails but a subtask succeeds (do we still render the parent? Do we specially style it)?
Still, ffiltering the whole task heirarchy is the desired behavior; I've not gotten around to implementing yet.

Potentially related, I've been considering this use case:
- [ ] @someone
  - [ ] email someone else
  - [ ] do foo
  - [x] do bar

In order to be able to query for all of @someone's tasks.
Do you think this annotation should be bi-directional? Parent tasks inherit done-ness from children, children inherit annotations from parents?

I think you're talking about two things: @tag inheritance and state inheritance.
@tag inheritance
That's a great idea, and I can think of many places this would be useful. I think by default, a query for a @tag should

include all direct ancestors of the @tag
include all subtasks of the @tag
not include siblings of the @tag

- [ ] @grocery list
  - [ ] apple
  - [ ] banana
  - [ ] chocolate for @jade

A query for @grocery would return
- [ ] @grocery list
  - [ ] apple
  - [ ] banana
  - [ ] chocolate for @jade

But a query for @jade would return
- [ ] @grocery list
  - [ ] chocolate for @jade

state inheritance
Absent the ability to modify this on a case-by-case basis†, IMO Dataview's current behavior is the best default assumption:

Parent tasks do NOT inherit done state from child tasks
Child tasks also do NOT inherit done state from parent tasks
…but child tasks are displayed differently if the parent task is done

†OmniFocus, for instance, lets you set on a per-project basis whether the project would be completed when all its tasks are completed. This is useful because some projects (esp. recurring projects with known, fixed set of tasks) can/should be closed when you finish the last task. But for many project types, completing the last item on the list simply means you need to plan what's next.

FWIW, I feel that the answer to this issue is to more visibly document fullyCompleted's use - both in dataview and dataviewjs... showing how it differs from completed so that users can choose which they want - covers the cases from the original poster and myself just fine.
Anything else like tag inheritance feels to me like a separate issue....

The current documentation is a little sparse and reads like this:
- `completed`: Whether or not this *specific* task has been completed.
- `fullyCompleted`: Whether or not this task and **all** of its subtasks are completed.

Maybe I'll clarify with "whether or not this specific task (regardless of the status of it's subtasks) has been completed"?

I observed something similar. The following tasks (under list items) would not be recognized, when using completed or fullyCompleted:
- List
  - [ ] Task

Maybe I'll clarify with "whether or not this specific task (regardless of the status of it's subtasks) has been completed"?

I really appreciate the suggestion to improve the docs, but sorry to say, from a user's perspective, the above wouldn't have registered with me as being anything to do with the situation I described above....
It seems like this project has quite a specific notion of a sub-task that is likely best explained with examples.
I'd be happy to try to help on the wording with you, if you would like to have a pairing session at some point.

There are two main confusions here:

Dataview task filtering only filters root level tasks; you cannot directly select or filter tasks underneath another task or list element.
Dataview tracks "non-task list elements" as part of the task heirarchy:

- This is a normal list element.
  - [ ] This is considered a subtask!
- [ ] This is a regular task.
  - This is considered a child of the task!

The reason for these rules is they avoid difficult problems:

Rendering a task view where a root element was filtered out, but a subtask was not, is difficult.
Doing a GROUP BY when a subtask is in one group and the parent task is in another is also difficult.

Fixing them requires some notable query engine improvements which I am looking at in 0.6.x after some other work (or if someone is interested in contributing).

Ah, I just encountered this, that's a bit of a headache. Was filtering out subtasks intentional? I have not had nearly as much time lately, but I may be able to take a peek at this.

Is this still an issue?

Is this still an issue?

The last time I looked, the issue was that fullycompleted needs to be as visible as completed and it was not well explained, and pretty much all the existing examples only used completed  So there is a solution but I think most people don’t even know they need to look for it.

Ah, I'll mark this down for a doc change and close it then.

Ah, I'll mark this down for a doc change and close it then.

Agree that it is needing a doc change. But please could you explain why it’s closed? Is there a link to an edit made to the docs? Thanks.

Issues are mostly for code related changes at the moment. The docs need quite a hefty revamp (IMO at least) and I'm just labelling them correctly to find later.


Investigate yelp repository update issue

https://github.com/neo4j-graph-examples/yelp.git, a currently private repository, seems to cause the CI to consistently fail:
Caused by: java.io.IOException: 1 of the updates failed, see details below
---
 - Update for sandbox https://github.com/neo4j-graph-examples/yelp.git failed with the following error:
java.io.IOException: org.eclipse.jgit.api.errors.InvalidRemoteException: Invalid remote: origin
---

	at com.neo4j.sandbox.updater.BatchUpdater.updateBatch(BatchUpdater.java:93) ~[classes/:na]
	at com.neo4j.sandbox.Main.run(Main.java:19) ~[classes/:na]
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:791) ~[spring-boot-2.5.2.jar:2.5.2]
	... 5 common frames omitted

It turns out that the Personal Access Token for @neo4j-oss-build only included the public_repo scope.
The configuration has been fixed now.


Port Ubuntu breaking changes fix from public

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[x] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
The precondition is to put your code inside this repository and upgrade the version in the pull request but do not modify src/index.json.

git commit -m "retrigger checks" --allow-empty


Problem with prompts

Prompts other than "steeef" and "eriner" are not working as they are considered.
For example, I got this when I selected "minimal":
$(prompt_user)$(prompt_jobs)$(prompt_vimode)$(prompt_status)                                                                                $(prompt_path)$(prompt_git)

I don't know why but after this it works like the screenshot:
prompt eriner
prompt minimal

Just pushed a fix. This has to do with the use of single vs double quotes (literal vs non-literal). Check if it (minimal) works now.

Looks nice.

Great. Thanks for the report. Also fixed this for the gitster prompt.


ARROW-9617: [Rust] [DataFusion] Add length of string array

Adds the function to DataFusion.

@andygrove and @nevi-me , the length operator was merged to master on arrow; this one adds it to DataFusion.

There are now two distinct commits. The first one is the length for DataFusion, the second one simplifies how we enumerate scalar functions that can be registered on the context.
The main rational for the second commit is that the physical plan should not have to worry about how an ExecutionContext registers udfs. Instead, it should just enumerate which udfs are available, and let the ExecutionContext register them itself. We can revert this if we would prefer to place it on a second PR / not make the change.

@andygrove , let me know if this is what you were thinking about the UDFs.


CoAP trigger: HandlerCfg.autoIdReply and CoapResource.attrs

They seem to be old unused features. What was they for?
Will they get re-implemented or should they be cleaned up?

I would apreciate some feedback. I can submit a pull request myself but will not develop anything until one of the developers approves it.

These should be cleaned up, go ahead and submit a pull request.


driver: pcnt: esp32s3: add files to build

Please provide better description and squash work to 2 commits related to S2 and S3.


Added new function that returns json output in a pretty printed string form.

The function sjson in the Response class will return a json object in string form. Unless provided arguments, it will return a pretty printed string, when printed is human readable. You can look at the docs for the json module's dumps object to know which arguments to send to the sjson function for custom output.

I believe requests is in an API freeze at this point, especially when user code could do the same thing with r.content and their preferred indentation level and separators. Contributions are always welcome, but API changes are the type of thing that would be better served by raising an issue and getting feedback on the interface, before you spend your time writing the code.

@drpoggi You can provide custom indentation level and separators as arguments sjson. I didn't know about the freeze. Ill take a look at r.content. Thanks for the feedback.

@drpoggi Can you explain how users can create the same output with r.content.  The output from r.content is different from r.json().  The whole point of creating the function was so that users can get the json object in a human readable form with simple readable code. Also how do you know there is a freeze. Was there a post somewhere, or is it in the documentation somewhere?

@rmhasan, thanks for your interest in contributing to Requests. You can find information about the freeze and other contributing topics in Requests Contributor's Guide. The specific information you're looking for is under feature requests.

@nateprewitt Thanks.

Thanks for this, but ultimately this duplicates the logic of the pprint module in the standard library. Because of that, and because the potential user base is fairly limited, I don't think this feature warrants an exception to the API freeze.
Thanks for your contribution though!


support pbr based setup

dynamic versioning + semver
use tox

Signed-off-by: Max Kovgan<EMAIL_ADDRESS>

do not forget to export BASECRM_ACCESS_TOKEN env variable before running: tox or python setup.py test

summary
added pbr:

using setup.py forces you to manage version.py file, like in the 90s. and forces to bump versions manually.
using pbr allows to bump versions as easy as adding a tag. tag by default needs to be MAJOR.MINOR or MAJOR.MINOR.PATCH,
added tox:
easy virtualenv creation, tests running, etc.
your CI now only needs to run 'tox' :-)


vopr: test that we always survive torn writes only scenario

I have a hunch that the vopr might be overeager with disabling faults around recovering heads, lets check that we can survive torn writes only!

Closing this since https://github.com/tigerbeetle/tigerbeetle/pull/2345 got merged!


test(SharedMatrix): Update perf tests

Description

Update the perf unit tests for SharedMatrix to be more accurate in what they do VS what they say they do.
Decrease the maximum number of repetitions for some tests. It seems it legitimately takes a significant amount of time to complete those repetitions, to the point where the actual test runtime plus overhead of the benchmarking infrastructure sometimes hits the mocha timeout of 90s in CI.
Exclude the output files of the memory perf tests from source control.

In the screenshot below we can see each iteration of the longer tests took ~700ms, and the perf benchmarking package does 50 iterations at a minimum to try to produce statistically significant measurements. That only accounts for 35s out of the 90s that we see the tests take in CI sometimes, but that could vary depending on the particular environment where the tests are running.

Addresses AB#2963 .

/azp run repo-policy-check


Remove manager from cw721 voting.

We have yet to see staking contract managers used in the wild and, imo, having both an owner and manager makes access check code harder to read. How do we feel about reducing complexity and removing it :)

Codecov Report
Base: 91.25% // Head: 92.28% // Increases project coverage by +1.02% :tada:

Coverage data is based on head (67a6c78) compared to base (7c92d95).
Patch coverage: 33.33% of modified lines in pull request are covered.

Additional details and impacted files
@@                 Coverage Diff                 @@
##           upgradeCosmwasm     #520      +/-   ##
===================================================
+ Coverage            91.25%   92.28%   +1.02%
===================================================
  Files                   38       38
  Lines                 3695     3643      -52
===================================================
- Hits                  3372     3362      -10
+ Misses                 323      281      -42

Impacted Files
Coverage Δ

...tracts/voting/cwd-voting-cw721-staked/src/hooks.rs
100.00% <ø> (ø)

packages/cwd-macros/src/lib.rs
0.00% <0.00%> (ø)

...cts/voting/cwd-voting-cw721-staked/src/contract.rs
83.48% <100.00%> (-0.71%)
:arrow_down:

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 at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Use regex to validate cli defined valies

I'm opening this PR without first fixing the many tests that I assume will break because this fix includes a slight refactor of the TemplateSlotsTable to take values of type TemplateSlots. This did end up complicating regex handling a bit since it means TemplateSlots and its fields (and its fields' fields and theirs and so on) now must impl Deserialize and PartialEq. The PartialEq requirement means that StringEntry.regex can't have type Option<Regex> since Regex is not also PartialEq. The complication here is that now every time we want to use StringEntry.regex we have to construct a new Regex instance.
In my view this all seems like a fair trade-off to avoid leaking toml::Value in the Config type, but I am also a newcomer to this code base so I don't want to overstep. I'm perfectly willing to find another way or defer to someone else who understands the code better than I. But if it is acceptable then I'll go ahead and update the presumably borked tests.
Oh yeah, I should mention -- this fixes #545

This definitely doesn't work right now, but I'm too tired to figure out what exactly broke. Will wait for feedback about the general approach before fixing anything.

Thanks for your PR.
I will find time during the WE to review it and come back to you.

So this PR led to a nontrivial problem which I suspect is related to the custom deserialization happening within try_key_value_into_slot that I removed. The problem is that this function is where a lot of deserialization and error-checking behaviors were happening. So the consequences of removing it include:

the Config data structure seems not to actually map to the data structure in the toml file; i tried running cargo-generate against my template project after my changes and get an error that looks like the following:

zsh/3 3758 [1]  (git)-[main]-% cargo-generate generate --path function-like --name meow -d "macro_name=funky-bogus-macro"
⚠   Unable to load config file: /home/wayne/.cargo/cargo-generate.toml
Error: missing field `var_name` for key `placeholders.macro_name` at line 1 column 1

most of the ConversionError variants were only used within try_key_value_into_slot, which implies a major user experience change without additional work

I don't think either of these issues are insurmountable, but since I am as of right now only a drive-by contributor with no faith in my ability to maintain an interest in regularly contributing (even if my interest is piqued today) I want to be guarded about how much time I have to spend here and cautious about overstepping in my suggestions as to how the code should be structured. Also, I am still fairly new to Rust and this codebase itself so there are almost certainly things I am missing here. That said, I would like to tentatively venture forth a couple opinions and hope they are taken as good-natured as they are intended:
First, I think that this code could be simplified and made a bit more idiomatic by implementing Deserialize for each cargo-generate struct where some non-default error-checking is desired since the Deserialize trait methods return a Result, which seems to me like a more natural way to report input validation errors.
Second, I see what I believe is a lot of disjointedness in the various sources of configuration. I think if all config loading (regardless of source) is centralized as impls on the Config object, the result would be a somewhat cleaner and more extensible approach. To see what I mean, consider the approach I've taken for this Config object in one of my projects where config values can come from any of several different places:

(most specific) configuration from command line args
profile configuration
application configuration
(least specific) global configuration

Furthermore, all these sources are merged together in what I like to think is a reasonably clean manner, in one place.
I see similar sources of configuration values in cargo-generate as in my project. While my project doesn't support interactive input, I think it wouldn't be too difficult to implement as a behavior of Config itself.
Anyway, if I didn't have a dayjob or if my dayjob were less demanding I would love to contribute this kind of refactor if the project maintainers are open to it, but instead I am just submitting as a suggestion since I have other things I need to work on in my limited time. Apologies again if I'm overstepping or misunderstanding something about the way the code is currently written!

Fixed by https://github.com/cargo-generate/cargo-generate/pull/692


Add Estonian locale

This PR is aimed to add Estonian locale 🇪🇪

Hi @tute ! Please let me know if you have any questions or if there is anything I would need to modify. Thanks!

Thank you! :)


Can we add Ionic-footer component underneath the map view with the map scrolling option.

We've requirement to place map in scroll view. And we also need to place footer component at the bottom of screen. So when user scrolls the view and map comes underneath of the footer, the footer inner elements stop working due to map interaction.
So is there any option, if we can entertain some components outside of the map?
Screenshots of the scenarios are attached too.
Footer inner elements works in first 2 screenshots, but doesn't work in last screenshot.

Add z-index(higher value than the map div)  to the footer.

ping

Sorry for late reply. I tried it, it's not working in 1.4.1 version. Will it work in latest version?

No more support for v1.x.


Plans to support .netcore/.netstandard for all projects?

Hi, are there any plans to support .netcore/standard for all projects(except probably for the UWP apps)

Hey Justin, the target audience here is enterprise dev shops with existing applications. We'll keep the full framework projects but may fork in the future to include core/standard.


DropdownMenuTrigger gets focused after closing the menu

Hello, folks! From the past two days I was fighting with my textarea element to find why it wont focus when I call the .focus() method on it and just now I saw why.
After long searching the net, I found a useful article which tells how to know which part of the page gets focused and then I saw that when I close the dropdown menu it triggers focus on its dropDownMenuTrigger element, which under the hood is a Button element.
And thats how I found why my textarea gets focused for 0.3 seconds and then it blurs. So how I can prevent this behaviour. For now the only solution I found is to usesetTimeout(()=>textarea.focus(), 300) .
I am not exactly sure why I have to wait, I think its maybe because there is an animation of closing the menu, which I should wait. If there is a better solution, please reach to me

I had the same issue. The 300ms timeout also solved the issue


Lwm2m queue mode DTLS resume

Enabled DTLS session cache for support session resume.
Fixed LwM2M queue mode for close connection and reconnect automatically.
Re-connect will do Registration update before it send queued data.
Coap Confirmation pending class allocation fix.
Registration update failure trig full Registration. This will handle session resume failure.

@rlubos @SeppoTakalo @simensrostad @VeijoPesonen @jarlamsa Please review this.

@SeppoTakalo @rlubos @simensrostad I removed comment from Coap fix and added that to commit message. I also rebased  PR with upstream after PR #43710 is merged. Please review.


xmonad: Don't add ghc to the closure when 'config' is set

Motivation for this change
When 'services.xserver.windowManager.xmonad.config' is not null, the
restart feature won't work by default and is not desirable unless
specific care is made, as explained by the documentation.
I think it's reasonable to not include the haskell dependencies in the
environment by default. That reduces the size of my system by 2GB.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.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

[x] Fits CONTRIBUTING.md.

I actually do that for a small computer plugged to my TV, which I use only for streaming services. I build the system on my main computer, nix copy it and run switch-to-configuration through ssh.
Otherwise, it's mainly for the satisfaction of trimming down the system and removing mutable parts.


Form does not work when scatter plot is zoomed

Steps to reproduce:

open an analysis 2 create scatterplot 3 create a form 4 click any scatter plot data point 5 Form will show corresponding data point 6 zoom in scatterplot and click scatterplot data point

Expected results:
Form should show corresponding data point
Actual results:
Sometimes Form will not change based on the clicked date point.

fixed in v1.5.3


Using more font weights?

Not an issue per se but it would be interesting to see themes use more than just regular and bold. Many modern programming fonts support multiple font weights. For example Iosevka comes with 7.

Hi @patrys i agree with you, using other font weights means force users to use a specific font for the code, provided with the theme. This because user may use a custom font that doesn't have the weights used by the theme.
Eg: If the theme set variables to use the heavy weight, and the font used by the user doesn't have that weight, it will see the normal weight.
The question here can be "We should provide a font within the theme and force users to use it?"

I think it could be used as a progressive enhancement as it should always fall back to the closest supported weight (thin would become normal, black would become bold etc.). In theory one could already use a font that is bold by default and thus only have one weight for everything.

I will close this for now since is not planned.


Avoid unnecessary file opening before closing files

Fix #104

Hi @zhengbli, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Zhengbo Li). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

So, after some more investigation, I believe the most possible reason why the editor hanged when batch closing happens is unnecessary file opening.
The logging shows when closing a file, the following event listeners are triggered in order:

on_activated (only triggered when using "close all" command)
on_close

And both methods call getInfo, which tries to open the file on the server. Therefore if any of the files to be closed has never been opened on server before, the plugin will try to do that right before closing it, which involves creating a temp project system for each file and is expensive and unnecessary. And to make things worse, although sublime appears to remember all the files in a window after you close and reopen the window, it doesn't load them until you activate the view. So it is not hard to explain why the hang happens a lot.
So my proposal tries to solve the two common cases of batch closing:

via close all window command:
In this case sublime will trigger on_window_command event listener. So I set a global flag in this listener to notify the following closings that this is a batch closing, so don't try to open the files;

via clicking on the red cross button on the window's title bar:
In this case on_window_command event listener won't be triggered. However, sublime will not trigger on_activated on each view either. Therefore any unopened file will remain unopened when on_close is called. And I can just avoid unopened files in on_close.

Please comment if there are anything wrong in my attempt to solve this problem, or if there are better solutions. Thanks!

For some reason the pull request wouldn't update my commits..


Allow to use the express checkout with a Solidus APIs application

If the solidus_api configuration is enabled we should return the order information back to the FE since we update it when the express checkout onComplete callback is triggered by Afterpay.

@ChristianRimondi do you have any ideas for the coverage? It seems that a spec is missing but I tested the missing line 🤔


[Question] Support for Direct3D 12

Unity 2021.3.0 is now LTS and Unity 2021 added support for Direct3D 12 on OpenXR and the HoloLens 2, but if I test running my application with it enabled, starting a remote rendering session seems to immediately crash the application. The last thing I see is the following:
Internal: JobTempAlloc has allocations that are more than 4 frames old - this is not allowed and likely a leak
Unity graphics device:
ID:<PHONE_NUMBER> Name: Qualcomm(R) Adreno(TM) 630 GPU
Type: Direct3D12 Version: Direct3D 12 [level 12.1]
[XR] [Mixed Reality OpenXR Input]: Handle Event received with eventType[1363496514], DeviceId[1], Buffer Size[1].
[XR] [Mixed Reality OpenXR Input]: Handle Event received with eventType[1363496514], DeviceId[0], Buffer Size[1].

This is not (necessarily) a bug report or support request, but because of this crash I was wondering if using this package in Unity with the Direct3D 12 rendering back end is supported, or if it is on the roadmap.
Thanks!

Hello,
Unfortunately there is currently no DX12 version of ARR available and it is currently also not on our short-term roadmap.
That said I 'd recommend creating and upvoting an item in the ARR forum so we can consider it for future planning.
Thanks for your feedback!

Thanks for the update, as suggested I posted an idea in the forum instead.


Map between IEnumerable<> and ICollection<> or IList<>

Trying to map between an IEnumerable<T> and an ICollection<TN> or IList<TN> the result is an exception because QueryableExpression in TypeMapper is null.
The problem is caused by SourceTypeMapper and the Expression.Bind that can work (also in plain c# code) if we do
dest.ACollectionProperty= src.AIEnumerableProperty;
we need to do
dest.ACollectionProperty= new Collection<TN>(src.AIEnumerableProperty);
How can this be solved?
in my domain I have collection interfaces everywhere and I have to map between EF6 and this model objects.

Dear maurodx,
Thanks a lot for that marvellous input :)
Just to clarify we are talking about .Project or just standard Mapper.Map.
If it is .Project - I've just fixed and today I'm gonna release new version with that hotfix.
Looking forward to hearing from you,
Yuriy

Hotfix has been fixed and published in 1.6.2 for IQueryable.Project. Please let me know if it fixes your issue.
Thanks,
Yuriy

Dear maurodx,
I'm closing the issue as I hope it is solved please reopen it if it is not!
Thanks,
Yuriy


Broken link in CesiumTerrainProvider doc

Go to https://cesiumjs.org/Cesium/Build/Documentation/CesiumTerrainProvider.html
Read "The format is described on the Cesium wiki."
Be curious and click on the link in the sentence.
Behold the redirect to https://github.com/AnalyticalGraphicsInc/cesium/wiki

Probably should be updated for https://cesiumjs.org/data-and-assets/terrain/formats/

Fixed in #6938


Integrate with nvim-treesitter-context to show function names in preview

Feature description
nvim-treesitter-context shows code context (function signature, loop block and something else) which is convenience for reading and understanding code. It could be nice that is available in bqf's preview window too.
Describe the solution you'd like
I'm not sure how nvim-treesitter-context works, maybe this feature could be done by just enabling it.
Additional context
No response

 nvim-treesitter-context will add a float win to show the context with extmarks. bqf only captures the extmarks under the item buffer. No idea how to handle it elegantly.


Bug in Client Evaluation sample code

Issue or suggestion
I reached to a bug in this address https://github.com/dotnet/EntityFramework.Docs/blob/main/samples/core/Querying/ClientEvaluation/Program.cs#ClientMethod

when the entry URL starts with https:// it also adds another http:// to it and return it, and this produces bugs

This sample is just a demonstration of a method that executes client-side; this particular code just adds an http:// prefix if there isn't one; it's not meant to be a fully usable method for handling URLs, just a minimal demo. Feel free to change it in your own code to detect https:// or anything else.


V1.3.6 patchset

/cc @pbx0

LGTM, lets double check the same cherry-pick from last time with @ericchiang. There was some funkyness in the v1.3.5 branch that may not be in v1.3.6.

@aaronlevy's cherry picked both the initial patch and the fix for my merge issues. Confirmed by cloning locally. lgtm


Draft an email to invite stakeholders for a focus group meeting

Write a draft to invite stakeholders to join the landscape redesign process discussion for inputs, insights, vision etc.
@andreuxxxx

Hi @andreuxxxx and @Hilzygift
I'm attaching a notion file with a draft of an email we can share to stakeholders for a focus group: https://rust-flavor-4ed.notion.site/Stakeholder-Invitation-Email-b3b8e7678d194b8cbe6879afdff28b7d?pvs=4
Please let me know if you have any feedback and a specific calendar date for this meeting, I'm happy to make some edits and send it out to a list of stakeholders.

Thanks @avantikajain289!
We've just migrated the CNCF landscape to v2, so I'll close this one for now.
Please feel free to reopen if needed 🙂


Load and cache images

How to load and cache images without being displayed on any ImageView and to display it in future from cache whenever required.

mImageLoader.displayImage(imgUrl, new ImageView(mActivity), options);
May be ok.

Thank You but I have used this and it worked fine.
ImageLoader.getInstance().loadImageSync(link, options);


training hyperparamters for imagenet1000?

Hello, I would like to ask what is the hyperparameter setting of training Imagenet1000, is it the same as that of Imagenet100?

Thanks for your interest in our work!
We're using the same hyperparameters as the baselines:

For LUCIR+AANets, you may see the hyperparameters [here];(https://github.com/hshustc/CVPR19_Incremental_Learning/blob/master/imagenet-class-incremental/run_all.sh)
For PODNet+AANets, you may see the hyperparameters [here].(https://github.com/arthurdouillard/incremental_learning.pytorch/blob/master/options/podnet/podnet_cnn_imagenet1000.yaml)

If you have any further questions, please do not hesitate to contact us.
Best,
Yaoyao

Thank you very much！


Adding Epics names to Epics tree

I'm working on fixing up the EPICS variables in the EPICS tree. Might make some getters to get things by name too.

Ok, my plan of attack is to read the odb and create a static map inside the epics fragment that maps variable number to name or vice versa. This will help with labeling and lookup. The next thing is to decide on how to access the information from the epics tree. The data is read out every second, and I'm nervous that a PPG-like map will get huge, slow, and unwriteable in a long run. My thought instead is to maybe create the map in memory when epics is used. This can be automated when the file is loaded, when the map is accessed for the first time, or through a user function BuildEpicMap(). I'm leaning toward building it automatically during the first lookup. The drawback here is that it won't be as nice on the command line, but I can't really think of how we would correlate epics variables cleanly on the commandline easily anyway. I've been leaning more towards utility on the script end over ease on command line lately, so unless anyone has any other arguments this might be the way I go.

Completed in PR #893


added synonym and fixed term names fixes #14059

@cmungall
the uberon label for ovary has changed (female gonad on master- and ovary in my version); can i still merge ?

yes, go ahead and merge.


[BUG]OpenAI the  chatClient.CompleteChatAsync(..) Method After triggering the Token limit of the TPM, the system is kept waiting.

Library name and version
Azure.AI.OpenAI 2.1.0
Describe the bug
 ClientResult<ChatCompletion> completion = await chatClient.CompleteChatAsync( chatMessages , new ChatCompletionOptions() { }, cancellationTokenSource.Token);

Will be in the waiting, do not throw exceptions, get no result.
Expected behavior
A message is displayed indicating that the exception that triggers the TPM is not kept waiting, the exception is not thrown, and no result is displayed.
Actual behavior
Has been waiting, no exceptions, no results.
API results for Microsoft Case
{

  "error": {

    "code": "429",

    "message": "Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 49 seconds. Please go here: [https://aka.ms/oai/quotaincrease](https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2Foai%2Fquotaincrease&data=05%7C02%7Csupportmail3%40microsoft.com%7C779941d5de1543bb69c908dd1db48cf3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638699383566043223%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=knjGHBsdrbANiHIulxbSa4nqRfZfCgYBJlQIq2AcZXQ%3D&reserved=0) if you would like to further increase the default rate limit."

  }

}

Reproduction Steps
ClientResult completion = await chatClient.CompleteChatAsync(
chatMessages
, new ChatCompletionOptions()
{
}, cancellationTokenSource.Token);

Environment
No response

Thanks for your feedback @qideqian , @chunyu3 please look into this issue.

@qideqian when trigger the Token limit, the service will return 429 response, .NET will regard the 429 as retriable response, and will retry to send the request. default retry 3 times.
Would you please help me to check it is because the re-try cause the delay, you can skip retry by provide an retry policy in clientOptions as following
AzureOpenAIClient azureClient = new(
    new Uri("<endpoint>"),
    credential,
    new AzureOpenAIClientOptions()
    {
        RetryPolicy = new ClientRetryPolicy(0) // retry 0
    });

Yes, the exception of 429 can be directly captured after adding RetryPolicy = new ClientRetryPolicy(0) // retry 0 Meanwhile, I have set the expired task of 90s. If retryPolicy=0 is not set, the timeout task of 90s will be triggered in priority. The client will not get any results. What is the current 3-try policy? The total time should not exceed 90s, is there any problem in setting here?

@qideqian  you can set the timeout when create client
AzureOpenAIClient azureClient = new(
    new Uri("<endpoint>"),
    credential,
    new AzureOpenAIClientOptions()
    {
        NetworkTimeout = TimeSpan.FromMilliseconds(90);
    });

@chunyu3 Ok, thank you. Later, I will try to use the way you mentioned to set timeout. For the problem of waiting all the time, if there is a retry policy, can an exception be thrown after multiple failures or there is a default expiration time? Otherwise, it may not be easy to find out what the problem is.

@qideqian default retry policy: it will retry pre-define times (3 by default) and there will be an delay between each retry. There is no expiration time set for retry policy.

@chunyu3 Okay, so the current performance of not increasing the number of tests is to wait and see what causes it


Plans to release on nuget.org?

Thanks for a super userful helper api wrapper.
Any plans to release on nuget.org? That'd make it easier to use.

can you please documentation for this? how to use it?

can you please add documentation for this? how to use it?

Very well. I'll try to come up with something.

Thanks for a super userful helper api wrapper.
Any plans to release on nuget.org? That'd make it easier to use.

I'll try to make this happen in the next few days. It's so long overdue!
Although, I'm not sure if you'll still need this, I'll go ahead for the sake of others, at least. (It's close to nine months already! )


[Excel] (custom functions) fix calculation for volume of a sphere

Docs Build status updates of commit 5cc839e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/custom-functions-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 548af24:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/custom-functions-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Roadmap for v0.1

ClickUp API v2.0 https://clickup.com/api

API reference
Code
Docs
Tested
Comments
Priority

Attachments
:white_check_mark:

:white_check_mark:
Need example

Authorization
:white_check_mark:

:x:
OAuth flow only

Checklists
:white_check_mark:

Comments
:white_check_mark:

Custom Fields
:white_check_mark:

Dependencies
:white_check_mark:

:heavy_exclamation_mark:

Folders
:white_check_mark:

:heavy_exclamation_mark:

Goals
:white_check_mark:

Guests
:white_check_mark:

:x:
Enterprise only

Lists
:white_check_mark:

:heavy_exclamation_mark:

Members
:white_check_mark:

:heavy_exclamation_mark:

Shared Hierarchy
:white_check_mark:

Spaces
:white_check_mark:

:heavy_exclamation_mark:

Tags
:white_check_mark:

Tasks
:white_check_mark:

:heavy_exclamation_mark:

Task Templates
:white_check_mark:

Teams
:white_check_mark:

Time Tracking
:white_check_mark:

Users
:white_check_mark:

:x:
Enterprise only

Views
:white_check_mark:

Webhooks
:white_check_mark:

ClickUp support promptly addressed the attachment issue:

After discussing with our developers they've informed me that our API documentation is actually incorrect here.
They've provided me with this curl:
"curl --location --request POST 'https://api.clickup.com/api/v2/task/8gd5ki/attachment'
--header 'Authorization: pk_xxx'
--header 'Content-Type: multipart/form-data'
--form 'filename=test.png'
--form 'attachment=@/C:/Users/hhh/Downloads/Screen Shot 2020-06-17 at 9.49.44 AM.png'"
Where this line
--form 'attachment=@/C:/Users/hhh/Downloads/Screen Shot 2020-06-17 at 9.49.44 AM.png'
should contain the path to the file.


zarya hud not disappearing after new round

Created by: MaxwellJung
In control gamemode, if a player stays zarya after finishing a round, then switches to another hero on the new round, the bubble HUD does not get destroyed.
example: see replay code JZ18PC

mentioned in merge request ow1_emulator_backup!59

mentioned in merge request ow1_emulator_backup!60

moved from ow1_emulator_backup#716

Created by: MaxwellJung
For some reason, the in world text id used to deleted the HUD changes in between rounds.


Samsung media played with new TV models

current code works only with old samsung smart tvs. By manually installing https://github.com/kdschlosser/samsungctl lib enevrything works out of the box.
Description:
Related issue (if applicable): fixes #
https://github.com/kdschlosser/samsungctl/issues/36
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
Checklist:

[x] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

@kennedyshead
I could use some help #20795

We only support versions on PyPi. Removing pinning because the author of the PR has installed a fork is not an option.
Since this PR has gone stale, I am closing it.


in the pet item itroduction, the button to equip the pet item donent work ( it dosent do anything ) + how do u remove the hacks?

refresh


Add vulnerability checking to the CI pipelines

Please describe the Improvement and/or Feature Request
Our CI pipeline should be actively checking for Go vulnerabilities with the newly announced govulncheck tooling to catch issues as soon as possible.
Scope (please mark with X where applicable)

CI System                  [X]

Possible use cases
CI vulnerability checking.

@trstringer I think this is still not taken. Would you mind assigning it to me?

Thanks for your willingness to tackle this! You're now assigned to the issue 👍🏾

Thanks @keithmattix !

Progress update: Figured out how to run the Go vulnerability check in GitHub Action. However, the CI job I created always got killed by GitHub Actions when running the command govulncheck ./.... I am trying to resolve this. Thanks!

Result update: I think this issue is blocked due the memory limitation of our CI environment (VM for Github Actions).

Result of free -m for VM:

              total        used        free      shared  buff/cache   available
Mem:           6943         623         936          12        5384        6009
Swap:          4095           0        4095

Suggestion: Increase the memory limit for Github Action VMs.
Details:

The first thought I had is that govulncheck will check modules parallelly and consume more memory than expected. I then ran the command govulncheck module by module. However, I found the memory limitation still cause the issue. For some module, the command allocated more than 12 GB memory. The total available in the CI environment is about 11 GB (~7GB RAM + ~4GB SWAP). That is why the CI job always got killed with out of memory error.

@keithmattix  @trstringer


Refine module boundaries with respect to base project configuration

Modules are currently designed to be fairly simple. They let you structure your project into separate units that will be "merged" whenever doing graphcool deploy.
The current merge logic will append all elements in the module to the base project. This has several downsides:

permission boundaries are not well defined - a wildcard permission in a module is applied to all operations on all types.
type boundaries sometimes need to overlap and sometimes need to be separated - for example, having two types of the same name in the module and in the base project doesn't currently work. Or, defining a relation across a module and base project needs adjustments in both type definitions.
while a module might work by itself, it might not work when adding it to a base project with a specific configuration.

On the other hand, here are workflows that should be supported:

extending existing components from the base project inside of a module - for example, adding fields or relations to a specific model type.

For now, modules are replaced by templates: #720.


JBPM-5401 - Stunner - Remove background settings and shape dimensions categories for all nodes

@jlindop commenting rather than removing as we might want to add this back for future milestone

Tested and looks good.
+1

will redo


When you've happy with it you'll probably want to move to backdrop org

When you are happy with this, you may want to promote/move it to the backdrop org, where it will have a clearer home.

Small suggestions:

docker-compose.backdrop-bee.yaml is not needed here, if bee is added only to the web image.
bee should have #ddev-generated with annotations (that will be used for ddev help bee https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/#annotations-supported), for example:#!/bin/bash
#ddev-generated
## Description: Run command line utility for Backdrop CMS
## Usage: bee
## Example: ddev bee

/usr/local/bin/bee/bee.php --root=/var/www/html/$DDEV_DOCROOT --uri=$DDEV_PRIMARY_URL $@

When you are happy with this, you may want to promote/move it to the backdrop org, where it will have a clearer home.

I was waiting to hear from one of the other contributors before I moved it, but it has now been moved to https://github.com/backdrop-ops/ddev-backdrop-bee

docker-compose.backdrop-bee.yaml is not needed here, if bee is added only to the web image.

Removed. I wondered about that, I only added it since it was in the documentation for the addons.

bee should have #ddev-generated with annotations

Added. Thank you!

bee should have #ddev-generated with annotations

I don't know why, but GitHub added an extra space for each line:
https://github.com/backdrop-ops/ddev-backdrop-bee/blob/b4522055b103adbdc32e1aa562b338723161f61e/commands/web/bee#L1-L5
And simple copy-paste was not enough here 🙂
You can remove those extra spaces and test if it's really working with:
ddev help bee

Now I checked it myself, and I see bee is the global command:
https://github.com/backdrop-ops/ddev-backdrop-bee/blob/b4522055b103adbdc32e1aa562b338723161f61e/install.yaml#L61-L67
This means that anyone who uses this add-on needs to manually run ddev get backdrop-ops/ddev-backdrop-bee to make the command available for them (or each repository that uses ddev bee should have a hook that runs this ddev get).
I think commands/web/bee should be moved to the project_files, and then add-on users will be able to commit everything inside .ddev to git and ddev bee will be available to them without requiring this add-on again.

guess we need to include commands example to project_files, this is probably the only reason you added it to the global_files:

Yep, I had it locally initially because I was setting it up locally for each site (before the addon) -- but when I saw the example where it was in global, I switched it.
I've switched it back :)


Emulator-based builders should use CopyCommonSettings

Currently with any of the APIs that support EmulatorDetection, if you configure the builder to use the emulator and you set a custom GrpcAdapter, the adapter property is ignored. Ditto for UserAgent, QuotaProject etc. Usually for an emulator most of these aren't important, but we should honour them anyway.
We'd want to copy the common settings, then set the emulator detection to None (and probably some other settings) to avoid infinite recursion.

Actually it probably makes more sense for there to be a new GAX method specifically for this use case. There are specific properties that shouldn't be set here, around credentials etc. So the steps will be to create the new GAX method, then when we next release GAX (which isn't particularly urgent; I don't think it's worth doing a release just for this issue) we can update all the emulator-supporting libraries.
@amanda-tarafa does that sound reasonable to you?

When you say a new method, you mean something like BuildForEmulator? I'd be fine with that as long as client code can keep calling Build only and we internally detect whether the emulator is set or not and call the new BuildForEmulator. Else client code has the duplicity of setting the emulation detection property and knowing when to call one or the other method. Or did I understood wrong?
For properties like QuotaProject, that are set through the credential (the GoogleCredential), it might be hard to set them for emulation given that, if I remember correctly, we use insecure (gRPC) ChannelCredentials. Admittedly we could create a CallCredentials from an interceptor that sets the QuotaProject.

It would be something like CopySettingsForEmulator - definitely nothing new for user to call. This is just an internal tidy-up. We should do a proper audit of which properties make sense to copy and which don't when we create the method.

Yep, totally onboard.

This is now ready to be implemented next time we do a GAX release - which may well be for self-signed JWTs.

This is now ready to be implemented next time we do a GAX release - which may well be for self-signed JWTs.


Implement a basic TUI example for using yarnspinner standalone (fixes #123)

https://github.com/YarnSpinnerTool/YarnSpinner-Rust/assets/784533/9590b432-9d56-4223-9ef6-471c993b0bdc
As discussed on #123, this is a simple (-ish, I may have gotten slightly carrried away!) example of how to use the yarnspinner crate directly, using a TUI interface (built with ratatui).
I used the existing Bevy examples as a starting point, as I thought it would be useful for people to be able to see how the same functionality can be achieved without a pre-built engine integration
This is my first time really working with Yarn Spinner, so I'm not 100% on whether I'm using the API optimally, but it does all seem to work! Any feedback would be much appreciated 😃

Woooah this looks so cool! Really good job!
I'll check the code over the next days :)

Still need to review lib.rs, but here are some low hanging fruits first :)
Also, per the CI failure, we should probably use doc = false in the Cargo.tomls of the examples:
error: document output filename collision
The bin `access_variables` in package `yarnspinner_without_bevy_examples v0.1.0 (/home/runner/work/YarnSpinner-Rust/YarnSpinner-Rust/examples/yarnspinner_without_bevy)` has the same name as the bin `access_variables` in package `yarnspinner_examples v0.1.0 (/home/runner/work/YarnSpinner-Rust/YarnSpinner-Rust/examples/bevy_yarnspinner)`.
Only one may be documented at once since they output to the same path.
Consider documenting only one, renaming one, or marking one with `doc = false` in Cargo.toml.

Resolved the comments and made the suggested change to the Cargo.tomls (though annoyingly, there's no way to say "set doc = false for all binaries", as far as I know).

Checked the rest and it looks good to me! It's a bit more than an example and more of a full-blown demo, but that's okay for the moment :) I can manually move it if I decide to add some minimal examples.
Thank you very much for your work! ❤

I'm having trouble running this
I tried:
❯ cargo run --bin custom_command
error: `cargo run` can run at most one executable, but multiple were specified

I think it's because both bevy_yarnspinner and yarnspinner_without_bevy both have the same named binaries?
I then tried renaming the filename and [[bin.name]] field and I got this:
❯ cargo run --bin access_variables_without_bevy
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s
     Running `target/debug/access_variables_without_bevy`
thread 'main' panicked at /Users/katzen/Documents/YarnSpinner-Rust/crates/compiler/src/compiler.rs:79:39:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I think because it's trying to get the file from relative to the root dir and no the cargo manifest dir:
let mut runner =
    TuiDialogueRunner::new("./assets/dialogue/access_variables.yarn", "AccessVariables")?;

oohhhhhh
yah, so I guess you just gotta be in that example's directory. Yup, got it working


Add definition for Ruby 2.7.0-preview3

Ruby 2.7.0-preview3 has been released.
https://www.ruby-lang.org/en/news/2019/11/23/ruby-2-7-0-preview3-released/
And this PR has been verified using a modified checksum.
https://github.com/ruby/www.ruby-lang.org/pull/2284

Thank you! 🎉


Task list in Markwon's Recycler

Markwon version: 4.3.1

Hi, thanks for the great library!
I have a question about the task list.
I'm trying to display markdown text using Markwon's Recycler.
https://noties.io/Markwon/docs/v4/recycler/
I was able to display a lot of text correctly, but task list doesn't seem to be displaying well!
When I didn't use Recycler, the task list showed up correctly.
This is also happening in the sample project.

sample project
Recycler's sample project

Do you have any plans to fix this problem?
I'm sorry for my poor English.
Thank you.

Hello @Dai1678 ,
task lists are implemented as a standalone plugin. Please navigate to the install section and pick Task List which will generate proper build.gradle dependencies block. Then you can inspect the dedicated page for the task list plugin. Finally, there is a sample activity which demonstrates the usage of the task lists


Render Katex inside vue components or html

Hi everyone,
One of the features is very useful to me is to be able to write math equations in my presentations.
Writing them inside markdown works like a charm, however if the expression is written inside a vue component like this doesn't get rendered:
<template>

    $$
    \begin{align*}
    (a + b)^2 &= (a + b) (a + b)\\
    (a + b)^2 &= (a) (a) + (a) (b) + (a) (b) + (b) (b)\\
    (a + b)^2 &= a^2 + ab + ab + b^2\\
    (a + b)^2 &= a^2 + 2ab + b^2\\
    \end{align*}
    $$

</template>

Neither written inside html code on the Markdown file like this:
The producto of  $(a + b) (a + b)$ is written as $(a + b)^2$ and you can calculate it like this:

$$
\begin{align*}
(a + b)^2 &= (a + b) (a + b)\\
(a + b)^2 &= (a) (a) + (a) (b) + (a) (b) + (b) (b)\\
(a + b)^2 &= a^2 + ab + ab + b^2\\
(a + b)^2 &= a^2 + 2ab + b^2\\
\end{align*}
$$

Is there I way to render katex inside vue components or html code?

$$
\begin{align*}
(a + b)^2 &= (a + b) (a + b)\\
(a + b)^2 &= (a) (a) + (a) (b) + (a) (b) + (b) (b)\\
(a + b)^2 &= a^2 + ab + ab + b^2\\
(a + b)^2 &= a^2 + 2ab + b^2\\
\end{align*}
$$

This is how markdown works.

Currently no. But you can create components/MyComponent.md with the content and import it elsewhere.


Local LLama Model and LM Studio

I edited config,yaml like this:
if OpenAI
The official OPENAI_API_BASE is https://api.openai.com/v1
If the official OPENAI_API_BASE is not available, we recommend using the openai-forward.
Or, you can configure OPENAI_PROXY to access official OPENAI_API_BASE.
OPENAI_API_BASE: "https://localhost:1234/v1"
#OPENAI_PROXY: "http://<IP_ADDRESS>:8118"
OPENAI_API_KEY: NULL
#OPENAI_API_MODEL: "gpt-4"
MAX_TOKENS: 1500
RPM: 10
and when I run ❯ python startup.py "write a snake game based on pygame"  I get the following error:
Traceback (most recent call last):
File "/Users/bard/Code/metagpt/startup.py", line 7, in
from metagpt.roles import (
File "/Users/bard/Code/metagpt/metagpt/roles/init.py", line 9, in
from metagpt.roles.role import Role
File "/Users/bard/Code/metagpt/metagpt/roles/role.py", line 15, in
from metagpt.config import CONFIG
File "/Users/bard/Code/metagpt/metagpt/config.py", line 124, in
CONFIG = Config()
File "/Users/bard/Code/metagpt/metagpt/utils/singleton.py", line 21, in call
cls._instances[cls] = super(Singleton, cls).call(*args, **kwargs)
File "/Users/bard/Code/metagpt/metagpt/config.py", line 51, in init
raise NotConfiguredException("Set OPENAI_API_KEY or Anthropic_API_KEY first")
metagpt.config.NotConfiguredException: Set OPENAI_API_KEY or Anthropic_API_KEY first
I've even set an environment variable❯ echo $OPENAI_API_KEY
NULL

OPENAI_API_KEY: NULL

Can you set become ->  '' is that work?

how did you solve it ? pls share config

I get a similar Error, can you maybe share your Config File/Explain how you configured it if you got it running with LM Studio?
File "C:\Users\Jan\miniconda3\envs\metagpt\Lib\site-packages\metagpt-0.5.2-py3.11.egg\metagpt\config.py", line 92, in get_default_llm_provider_enum     raise NotConfiguredException("You should config a LLM configuration first") metagpt.config.NotConfiguredException: You should config a LLM configuration first

bruh... you had it set to 'https'.... should be 'http'
this is the first line of your config lol "OPENAI_API_BASE: "https://localhost:1234/v1" "
simply remove the s

OPENAI_API_KEY: NULL You need to set the value here (set your gpt-4 key) , this cannot be NULL

somewhat true. i make it a habit of setting the model in my code to "OPENAI_MODEL: "local-model" whenever i use lm studio inference as thats how they have it in the example code. ive left it blank, ive seen people type in the actual model name, but find its easiest to just leave it at "local-model"

You should set both base_url and api_base to local to make it work.
from llama_index.llms.openai import OpenAI

llm = OpenAI(base_url="http://localhost:1234/v1", api_base="http://localhost:1234/v1", api_key="not-needed", temperature=0)

Settings.llm = llm


Missing Windows::Win32::System::SystemServices::LARGE_INTEGER union

It seems windows-rs is not generating LARGE_INTEGER union. Cant find em in docs neither able to generate it.
Although it's present in Windows.Win32.winmd:

These types are replaced with i64 and u64 in the Rust bindings.
https://github.com/microsoft/windows-rs/blob/298d078d9026232a100999e06497d652570f6327/crates/reader/src/type_reader.rs#L338-L339


Update BaseRepository.php

#452
This fix the uses for hasMany relations when update, and create.
Previusly the error is method save not exist, because "find" doenst find anything with the values that arent recorded

From 5.6+, We published our custom Base Repository pattern and removed use of Prettus/l5-repository pattern.

Thanks for your efforts @JGamboa . Closing this PR since we do not use BaseRepository anymore.


ComputedOptions to accept object Ref

Currently, ComputedOptions always expects an object:
https://github.com/enkot/nuxt-open-fetch/blob/5ed0c272e4ab8e4ec4dcc8b75ed556c44d0b55d5/src/runtime/clients.ts#L16-L18
That makes it inconvenient to provide e.g. computed query:
const { data } = useClientFetch("/objects", {
  query: {
    foo: computed(() => "foo"),
    bar: computed(() => "bar"),
    baz: computed(() => "baz"),
  },
})

It would be great if the following were possible:
const { data } = useClientFetch("/objects", {
  query: computed(() => ({ foo: "foo", bar: "bar", baz: "baz" })),
})

Ideally, this whole machinery should accept a generic WatchSource instead of Ref:
const { data } = useClientFetch("/objects", {
  query: () => ({ foo: "foo", bar: "bar", baz: "baz" }),
})

For instance, compare to how villus handles that: https://villus.logaretm.com/guide/queries/#query-variables

It's actually more important than I thought. It's not currently possible not provide a dynamic query (with dynamic keys):
useClientFetch("/objects", {
  query: computed(() => getObjectWithDynamicKeys()), // Not working.
})

This is a very common scenario e.g. when requesting a list of objects with dynamic filters.

I opened https://github.com/enkot/nuxt-open-fetch/issues/52 today. You can actually use a reactive source for the entire query object, or for each individual query property and it works out of the box; the TypeScript interface just doesn't support it.

Fixed in https://github.com/enkot/nuxt-open-fetch/releases/tag/v0.9.4


{storage-or-preview} Remove the extension because it is supported in main repo

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

remove codeowner as well.

remove codeowner as well.

storage-or-preview

storage-or-preview

remove codeowner as well.

done

remove codeowner as well.

done


Populate the Document Panel's options bar with tool settings based on the active tool

We are implementing this on a temporary basis in #184 before doing it properly after #147 is done. This issue pertains to doing it "the right way" in the future.

Closing this for now while #184 takes over.


Replace @-sign in collab person ids for compatibility

134915765
In the past, at-signs were replaced by underscores because LDAP had trouble dealing with them. Recently, the way collabPersonIds are generated has changed, breaking compatibility with earlier versions of EB across the platform. In order to reinstate this, a method has been added to reinstate compatibility with all the collabPersonIds present in the platform already.
I have deliberately chosen to create another method for this to be explicit about the quirky implementation of collabPersonIds.
In the future, a way of migrating from old to new collabPersonIds should be devised. Then, we can use the original CollabPersonId::generateFrom() method.

My tests confirm to fix the issue for me :+1:


[zoe] Add new port

If this PR adds a new port, please uncomment and fill out this checklist:

[x] Changes comply with the maintainer guide
[x] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
[x] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx
[x] The versioning scheme in vcpkg.json matches what upstream says.
[x] The license declaration in vcpkg.json matches what upstream says.
[x] The installed as the "copyright" file matches what upstream says.
[x] The source code of the component installed comes from an authoritative source.
[x] The generated "usage text" is accurate. See adding-usage for context.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is in the new port's versions file.
[x] Only one version is added to each modified port's versions file.

/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp: In member function ‘zoe::Result zoe::EntryHandler::_asyncTaskProcess()’:
/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp:363:25: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  363 |       std::this_thread::sleep_for(std::chrono::milliseconds(100));
      |                         ^~~~~~~~~
/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp:373:27: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  373 |         std::this_thread::sleep_for(std::chrono::milliseconds(50));
      |                           ^~~~~~~~~

Maybe need include <thread.h>  or wrong namespace.
install-x64-linux-dbg-out.log

/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp: In member function ‘zoe::Result zoe::EntryHandler::_asyncTaskProcess()’:
/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp:363:25: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  363 |       std::this_thread::sleep_for(std::chrono::milliseconds(100));
      |                         ^~~~~~~~~
/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp:373:27: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  373 |         std::this_thread::sleep_for(std::chrono::milliseconds(50));
      |                           ^~~~~~~~~

Maybe need include <thread.h> or wrong namespace. install-x64-linux-dbg-out.log

I have fixed this issue, could you try again?

/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp: In member function ‘zoe::Result zoe::EntryHandler::_asyncTaskProcess()’:
/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp:363:25: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  363 |       std::this_thread::sleep_for(std::chrono::milliseconds(100));
      |                         ^~~~~~~~~
/mnt/vcpkg-ci/buildtrees/zoe/src/41c3c2d161-9b4d7598fd.clean/src/entry_handler.cpp:373:27: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  373 |         std::this_thread::sleep_for(std::chrono::milliseconds(50));
      |                           ^~~~~~~~~

Maybe need include <thread.h> or wrong namespace. install-x64-linux-dbg-out.log

I have fixed this issue, could you try again?

This is error from CI check.

CI error: https://dev.azure.com/vcpkg/public/_build/results?buildId=95324&view=artifacts&pathAsName=false&type=publishedArtifacts
FAILED: src/CMakeFiles/zoe-static.dir/file_util.cpp.o
/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot -DNOMINMAX -DUNICODE -DWITH_OPENSSL -DZOE_STATIC -D_UNICODE -I/mnt/vcpkg-ci/buildtrees/zoe/src/b4e3a319e2-1e96496453.clean/./include -isystem /mnt/vcpkg-ci/installed/x64-android/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -frtti -fexceptions  -fPIC   -fno-limit-debug-info    -std=gnu++11 -fPIC -pthread -MD -MT src/CMakeFiles/zoe-static.dir/file_util.cpp.o -MF src/CMakeFiles/zoe-static.dir/file_util.cpp.o.d -o src/CMakeFiles/zoe-static.dir/file_util.cpp.o -c /mnt/vcpkg-ci/buildtrees/zoe/src/b4e3a319e2-1e96496453.clean/src/file_util.cpp
/mnt/vcpkg-ci/buildtrees/zoe/src/b4e3a319e2-1e96496453.clean/src/file_util.cpp:50:3: error: use of undeclared identifier 'fseeko64'
  fseeko64(f, 0L, SEEK_END);
  ^
/mnt/vcpkg-ci/buildtrees/zoe/src/b4e3a319e2-1e96496453.clean/src/file_util.cpp:51:19: error: use of undeclared identifier 'ftello64'; did you mean 'ftello'?
  int64_t fsize = ftello64(f);
                  ^~~~~~~~
                  ftello
/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h:251:7: note: 'ftello' declared here
off_t ftello(FILE* __fp);
      ^
/mnt/vcpkg-ci/buildtrees/zoe/src/b4e3a319e2-1e96496453.clean/src/file_util.cpp:185:12: error: use of undeclared identifier 'fseeko64'
    return fseeko64(f, offset, origin);
           ^
3 errors generated.

install-x64-android-dbg-out.log

I successfully tested the following command on Windows 11, but automatic checks were not successful.
vcpkg install crashrpt-lite:x64-windows

@FrankXie05 I add a new port that named crashrpt-lite on this pr. I don't know if this operation is compliant.

I have removed crashrpt-lite port.

@FrankXie05 @FrankXie05 Could you help me merge this pr?

@winsoft666 Only one question: Is the port Header-only? :)

No

@winsoft666 Only one question: Is the port Header-only? :)

No

Then we should provide usage for this port to use lib. :)

@winsoft666 Only one question: Is the port Header-only? :)

No

Then we should provide usage for this port to use lib. :)

Do you need me to do anything?

@winsoft666 Yes, we need export cmake config files.

@winsoft666 Yes, we need export cmake config files.

Just add usage file into port, like these?
The package zoe is compatible with built-in CMake targets:

    find_package(zoe REQUIRED)
    target_link_libraries(main PRIVATE zoe)

@FrankXie05 Thanks for your PR, I have merged.

The usage has been tested successfully locally.
zoe provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(zoe CONFIG REQUIRED)
  target_link_libraries(main PRIVATE zoe::zoe)


Code formating preference

Enable prefer one statement if block, without braces suggestion.

Actually I do prefer brackets even for a single line https://stackoverflow.com/questions/359732/why-is-it-considered-a-bad-practice-to-omit-curly-braces
That is what this disables right?

@jfversluis I do too but it was motivated after my code has been revewed to remove brackets, I am fine to close it.

Who mentioned that? Then I'll discuss that :)
Thanks for paying attention and then also updating these rules!

@jfversluis https://github.com/xamarin/XamarinCommunityToolkit/pull/846#discussion_r574033996


Ability to configure global options

It would be great to be able to configure all date and time pickers at once, with a service like $mdDateLocaleProvider. You could even use it for the date picker and create another for the time picker.
The service(s) should expose all needed options (time/date format, AM/PM, first day of the week, etc).

I agree. Although I'm not sure if configuring this on a provider level is the right thing to do as it makes it very hard to switch localizations at run time.
I'd vote for the service that can be changed at any time. Would you be interested in creating a pull request?

For $mdDateLocaleProvider, I just inject $mdDateLocale in run(), but it's not officially supported (https://github.com/angular/material/issues/4480). So yes, a regular service might be better. The only down side is that we should configure both $mdDateLocaleProvider and the newly created services (in case you're using some components that need it).
Well, why not, I'll try to take some time this week.

closed by pull request #12


Fix failing build on Pylint suggestion

What does this PR do?
The 'main' building was failing Pylint suggestions. This commit fixes the failure by ignoring pylint's suggestions because the formatting of the strings was done purposefully
What ticket does this PR close?
Resolves -
Checklists
Change log

[ ] The CHANGELOG has been updated, or
[x] This PR does not include user-facing changes and doesn't require a CHANGELOG update

Test coverage

[ ] This PR includes new unit and integration tests to go with the code changes, or
[x] The changes in this PR do not require tests

Documentation

[ ] Docs (e.g. READMEs) were updated in this PR, and/or there is a follow-on issue to update docs, or
[x] This PR does not require updating any documentation

@eladkug no risk. The changes touch on how we format strings. You can either do it like ().format or printf(). In certain areas we chose format because we care about the whitespaces. In terms of functionality, this doesn't make a difference though


Why does this need to be a service

Hi, I suppose this is a documentation issue.
It's not clear to me from the readme why this has to be run as a service as all the commands (toggle rgb, pwm mode; set speed) seem to be one shot commands.
I would expect it to be a cli tool uni-sync --enable-motherboard-pwm-following sort of thing.
What am I missing :)

oh, it's just a one shot hah


App Crash with New React Native Architecture

Hi,
Thank you for creating and maintaining this great library! I’ve encountered an issue when using the  component with the new React Native architecture.
The app works fine in development mode, but it crashes completely when running a built version. I suspect the issue might be related to the moment package, as I’ve experienced similar crashes with it in other contexts, and I noticed your library uses it as well.
Would it be possible to look into this or provide guidance on how to resolve this?
Thanks in advance for your help!

Good morning @nielsq, Thank you for your kind words.
I have never used react native, so I don't know how to debug this problem.
If you use react moment on the page do you have the same problem?
Do you have react moment as a dependency or a dev dependency?
Please provide any error message or screenshot to be able to debug this problem.
Thank you for your patience,
Anthony


Refactor method get_import_path

Currently the method has been copy-pasted from reactflow.py into create_macro.py.
This method cannot be imported from reactflow.py into create_macro.py since reactflow.py itself imports create_macro.py which leads to circular import errors.
One approach could be to have a new class with general methods (where we can start with this method and add more methods later) that could be useful in multiple places.
Thoughts @JNmpi, @liamhuber ?

IIRC get_import_path already fails for edge cases, e.g. where the __qualname__ doesn't match the plain class name. I have a vague feeling I pulled out some similar functionality in snippets or workflow... I'll try to track that down.

Yeah, ok, what I was thinking of was pyiron_snippets.factory._import_object:
https://github.com/pyiron/pyiron_snippets/blob/076e38ff863749a9344f7da439de1f64d592bc98/pyiron_snippets/factory.py#L228-L233
Simply taking __name__ can break when the object you want to import is nested inside something else, e.g.
class Foo:
    class Bar:
        pass

Bar.__name__, Bar.__qualname__
>>> ('Bar', 'Foo.Bar')

If I have some such object in a module, it's critical that I have the full qualname in order to be able to access it -- with only the name I miss part of the necessary information.
More generally, I do find pyironflow.reactflow.get_import_path a little bit sketchy in its hand-coded treatment of numpy arrays. I think part of what's going on here is that numpy arrays use a non-standard reconstructor. Failing for such cases is not unreasonable, and neither is having an exception for numpy arrays, but doing it by string comparison followed by string override feels fragile.

Switching name to qualname is probably not sufficient -- if the qualname is necessary you need to iterate on it. However the change doesn't hurt because most of the time the two won't differ, and when they did name wouldn't have worked anyhow. So no harm, just doesn't solve the problem.

The purpose of import_path is to get the path for pyiron_node objects. It is not meant to be used on deeply nested object structures. Since the pyiron_nodes are well defined, there is no danger of running into these edge cases. To be on the safe side, we could give a warning if name and qualname are different and tell the user that this case is not implemented. Since the current function works fine for our purposes, I would not spend time extending it to cover an edge case that we will most likely never encounter.

The purpose of import_path is to get the path for pyiron_node objects. It is not meant to be used on deeply nested object structures. Since the pyiron_nodes are well defined, there is no danger of running into these edge cases....Since the current function works fine for our purposes, I would not spend time extending it to cover an edge case that we will most likely never encounter.

I have a philosophical disagreement here. Users running into this edge case is as simple as them writing
import pyiron_workflow as pwf

class MyNodeCollection:
    @pwf.as_function_node
    def SomeNode(x):
        return x + 1

class MyOtherCollection:
    @pwf.as_function_node
    def SomeOtherNode(x):
        return x - 1

At the end of the day, I think we want to invest a moderate amount of effort to minimize the amount of arbitrary "gotchas" limiting how users write their code. What is written above is not typical (aka edge case), but everything is perfectly well defined and reasonable there, yet would break the functionality here.

To be on the safe side, we could give a warning if name and qualname are different and tell the user that this case is not implemented.

In light of developer time constraints, this feels like a perfectly reasonable compromise -- if they're behaving in a way we don't expect and can't handle, failure is a-ok as long as that failure is clean (and preferably informative).

Based on the discussions here, I have reverted back to __name__ and added a warning in case it differs from __qualname__.
Based on @JNmpi's suggestion, I have renamed the additional file to wf_extensions.py and added the method create_macro here (since this is something that would eventually be in core workflow module).


Update Reactor and Netty Dependencies

This PR updates the Netty dependencies to 4.1.45 and the Reactor dependency to 3.3.3 to match the version used by Reactor Netty.

/azp run java - appconfig - tests