Avoiding derived attributes

This is an issue I've come across from time to time with some fairly high profile cookbooks. I think it should be considered an anti-pattern to derive attributes from other attributes.
For example, the postgresql cookbook is an example as to why this is troublesome. Since it uses the version attribute in other attributes, setting the default version attribute in a wrapper cookbook doesn't change derivative attributes because Chef evaluates them before the wrapper cookbook's attributes are loaded.
A couple of blogs have talked about the issue and discussed better ways to handle attributes:

https://christinemdraper.wordpress.com/2014/10/06/avoiding-the-possible-pitfalls-of-derived-attributes/
https://coderanger.net/derived-attributes/

It would probably be good to have a foodcritic rule warning of this in order to make the lives of those writing wrapper cookbooks better.

I agree.... to an extent. :)
It's not the derived attributes is bad, it's about how you use them. If you do them in the attributes file it's very bad. If you do the deriving in a recipe, at least people can set them in an earlier cookbook. And my preference is you only "derive" at runtime, when you're going to use the derived value. There is, of course, some reasons for using all of these.
I bring this up, because depending on your model this could land people in a world of false-positives... so while I think this is a fantastic idea... we need to be careful.

Agreed. It should definitely be avoided in the attributes file because of the order Chef calculates them. In a recipe it's not a problem.

Funny story - the whole reason that the Chef 11 attributes changed as they did was to support derived attributes in attributes files because people wanted to write cookbooks that used them, where people overrided them in roles. Sadpanda.

Not quite correct history, it was because people wanted to write library cookbooks with attributes files which override attributes directly set in recipe code in other cookbooks.  Wasn't to support derived attributes.
These days we mostly push people to write library code using resources and not attributes or recipes which renders the whole question moot.  Even back then, though, solving the problem of having badly written library cookbooks with hardcoded attribute values in recipe code was probably something we never should have 'solved' -- but we had users screaming at us that our wrapper cookbook philosophy was horrible and broken and they couldn't manage their infrastructure the way we telling them to (even though we didn't come up with that idea and it was just the community that was running that direction as fast as they could...)
I'm leaning towards derived attributes being bad, though.  You can always not use an attribute and derive the value directly in recipe code and shove it into a plain-old-ruby-variable and solve this problem in a way that gives the API that people expect.


Allow to specify multiple projects

Multiple projects can now be specified within one repository. All of the commands besides pull require the --project flag to be provided with project name specified in the .wti file. It is also possible to set a default project for pull command.
The .wti file should be structured as:
project_1:
  api_key: xxxx
project_2:
  api_key: xxxx
default:
  api_key: xxxx

:+1:

Any news if this will get merged in?

@edouard is there any chance of this getting merged in? Would be a really nice feature to have :)

Closing this PR as this code is now conflicting with the current codebase. It also adds complexity for a feature that basically already exists by using several configuration files.
For instance, instead of running: wti pull -p my_project_1 to pull a Project 1 and wti pull -p my_project_2 to pull a Project 2, you can create a my_project_1 configuration file containing the configuration of project1 (see .wti example file) and a my_project_2 configuration file containing the configuration of project2.
Then, run wti pull -c my_project_1 to pull Project 1, and wti pull -c my_project_2 to pull Project 2.
It is basically the same thing, but using -c instead of -p and using several configuration files which are independently customizable instead of one file containing all the API tokens.


🌱Use golang as base image and fix capm3 mentions

What this PR does / why we need it:
Backport of https://github.com/metal3-io/ip-address-manager/pull/77 into release-0.0 branch with slight more changes that removes unrelated capm3 mentions in hack/*.sh files

/test all

/test generate unit gofmt golint

/test-v1a4-integration
/assign @kashifest
/cc @fmuyassarov

/lgtm

/assign @kashifest

/test-v1a4-integration

/test unit


Add source to segment identify call

Describe changes
I did this because in the future we might have identify using different sources (like ZenServer), so we want to be aware of it in the telemetry
Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[x] If my change requires a change to docs, I have updated the documentation accordingly.
[x] If I have added an integration, I have updated the integrations table and the corresponding website section.
[x] I have added tests to cover my changes.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

@fa9r @schustmi took your suggestions in thanks!


Fixed broken link

:+1:

:+1:

Merging this as-is, we'll see whether we can publish it in Zalando's name somewhere else. @tfrauenstein will take care.


1.12 compatibility changes

Here's some fixes to help make this compatible with 1.12. I haven't runs tests on this but it should at least help with the biggest issues if nothing else and save some time. Happy to fix other issues if needed.

Any news about a possible merge ?


segmentation fault with LAMMPS

Hi,
First, thank you for make this code available, it is awesome!
I had no problems at all to compile, and it works fine with the Si example.
However when I tried to use with LAMMPS (last version) I got segmentation fault. I have tried with my Al2O3 system at first, then with the Si_LAMMPS example. I tried on my intel (32GB RAM) and AMD(64GB RAM) PC, both with Ubuntu 22.04 LTS OS and the error is reproducible in all conditions.
Since it is happening even with the example case without any modification I guess it is a general bug.
Best Regards,
Marcel Claro
ps.: LAMMPS build command:
cmake ../cmake -DPKG_MANYBODY=yes -DPKG_PHONON=yes -DPKG_OPT=yes -DPKG_KSPACE=yes -DPKG_GPU=no -DBUILD_SHARED_LIBS=yes -C ../cmake/presets/gcc.cmake

Hi, here is the result of the gdb debug:
Starting program: /home/marcel/alamode/alm/alm si_alm1.in >> alm.log
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Temporary breakpoint 2, main (argc=2, argv=0x7fffffffdf18) at /home/marcel/alamode/alm/main.cpp:18
18	{
(gdb) continue
Continuing.
[New Thread 0x7ffff6cb8640 (LWP 37484)]
[New Thread 0x7ffff64b7640 (LWP 37485)]
[New Thread 0x7ffff5cb6640 (LWP 37486)]
Thread 1 "alm" received signal SIGSEGV, Segmentation fault.
ALM_NS::Optimize::get_number_of_rows_sensing_matrix (this=0x555555680a30) at /home/marcel/alamode/alm/optimize.cpp:1729
1729	    return u_train.size() * u_train[0].size();

Hi,
Did you install alamode using conda as suggested in the documentation? Or did you build using other compilers?

Hi,
Thanks for the answer
I tried both ways, with conda following the documentation ,and with gcc...
It seems that the problem is the initialization of u_train variable:
(gdb) print u_train
$1 = std::vector of length 0, capacity 0

Indeed, this was a bug in the LAMMPS parser, not in ALM. I've fixed it in the latest commit 8c5c187. Please git pull the changes and use it for LAMMPS.
Sorry for the inconvenience.

It is now working fine.
Thank you very much!


Remove unnecessary DB queries

Closes #892

Looks good to me, just waiting for CI.

CI failure is unrelated.


Umami tracking not working

Umami tracking is not working. Is it the data-do-not-track="true", incorrect script inclusion or is the server unreachable?

Won't fix. Will remove Umami as it is not what I am looking for.


Add HAR2Script convertor

Currently, we provided ngrinder recorder but it's only for web. Some people asked us to record http traffic generated in mobile device. We provided this feature by old ngrinder-recorder but it has the too heavy JBrowser internally.
Now.. we'd better to use HAR. HAR is generally supported by proxy vendor or browsers.
With HAR we can easily create nGrinder script.

This is the first sketch.


Radio station Now Playing clicks through to unrelated track

What version of Music Assistant has the issue?
2.0.0b137
What version of the Home Assistant Integration have you got installed?
2024.3.6
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
In both full and mobile views when listening to a radio station the station name is shown in the Now Playing view. Clicking on the radio station name takes you to an unrelated track in the library.
How to reproduce
Play any radio station then click on station title in Now Playing view

Music Providers
Radio browser
Player Providers
All
Full log output
No response
Additional information
Suggested fix is to open the radio view if this is clicked?
What version of Home Assistant Core are your running
2024.4.3
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Generic x86-64 (e.g. Intel NUC)

This bug is fixed once https://github.com/music-assistant/frontend/pull/458 goes in.  The stream title will also show below the station name.

Love your work


add GlobalTracer support, reformat, update deps, trivial refactoring

Pull Request Test Coverage Report for Build 74

11 of 193 (5.7%)  changed or added relevant lines in 6 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-1.4%) to 32.171%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

opentracing-jms-1/src/main/java/io/opentracing/contrib/jms/TracingMessageProducer.java
0
2
0.0%

opentracing-jms-common/src/main/java/io/opentracing/contrib/jms/common/TracingMessageListener.java
0
2
0.0%

opentracing-jms-2/src/main/java/io/opentracing/contrib/jms2/TracingMessageProducer.java
0
2
0.0%

opentracing-jms-common/src/main/java/io/opentracing/contrib/jms/common/TracingMessageConsumer.java
0
2
0.0%

opentracing-jms-spring/src/main/java/io/opentracing/contrib/jms/spring/TracingJmsTemplate.java
0
4
0.0%

opentracing-jms-2/src/main/java/io/opentracing/contrib/jms2/TracingJMSProducer.java
11
181
6.08%

Files with Coverage Reduction
New Missed Lines
%

opentracing-jms-2/src/main/java/io/opentracing/contrib/jms2/TracingJMSProducer.java
1
6.04%

Totals

Change from base Build 72:
-1.4%

Covered Lines:
166

Relevant Lines:
516

💛  - Coveralls


Start work on item keep

Item keep works apart from items with damage values, any block will stay in your inventory with the same amount you had before but I can't get my head around the damage values and its getting late :p
I will do the armourkeep later unless someone else does it

Can you pull from this repo and resolve the conflicts?

Added; thank you!

Elly you didn't even do it right, now I feel bad.


[Backport release-23.05] vencord: 1.5.3 -> 1.5.6

Description of changes
Manual Backport of #260250

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
23.11 Release Notes (or backporting 23.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.

@NotAShelf  What's the matter?

@\NotAShelf What's the matter?

@yayayayaka he's purely mad because updates are there.

@NotAShelf What's the matter?

nothing, just a lighthearted joke inbetween us


Blog app - Add forms

Dear reviewers,
I've worked on the following in this pull request,

Create a method called current_user in ApplicationController to make current user data available to all controllers.
Create forms to perform the following functions:

Creates a Post on behalf of the current_user.
Create a comment on behalf of the current_user.

Allow Users to add likes to Posts.

Thank you, guys, for the reviews @addod19, and @ridwanediallo.


config: refactor using the latest darvaza.org/x/config

Type
Enhancement

Description

This PR includes a significant refactoring of the config.go and loader.go files in the pkg/config directory, to use the latest version of darvaza.org/x/config.
The LoadFile, loadFileDecoded, and New functions in config.go have been updated to use config.Option[T] instead of func(*T) error.
Error handling in these functions has been refactored to use config.NewPathError instead of os.PathError.
In loader.go, the Loader struct and related functions have been refactored in a similar manner.
The DefaultDirectories variable has been replaced with a call to appdir.AllConfigDir(CmdName).
A new function, NewDecoderFactory, has been added to return a config.Decoder factory.
The go.mod and go.sum files have been updated due to the version update of darvaza.org/x/config.

Changes walkthrough
Relevant filesRefactoring

config.goRefactor config.go to use latest darvaza.org/x/config

pkg/config/config.go

Refactored LoadFile and loadFileDecoded functions to use  config.Option[T] instead of func(*T) error. - Replaced os.PathError with config.NewPathError for error   handling. - Updated New function to use config.Option[T] instead of func(*T)  error.

+7/-24

loader.goRefactor loader.go to use latest darvaza.org/x/config

pkg/config/loader.go

Refactored Loader struct and related functions to use  config.Option[T] instead of func(*T) error. - Replaced DefaultDirectories with a call to  appdir.AllConfigDir(CmdName). - Added NewDecoderFactory function to return a config.Decoder   factory.

+57/-39

Dependencies

go.modUpdate darvaza.org/x/config version in go.mod

go.mod

Updated the version of darvaza.org/x/config from v0.2.9 to  v0.3.1.

+1/-1

go.sumUpdate darvaza.org/x/config checksums in go.sum

go.sum

Updated the checksums for darvaza.org/x/config due to version   update.

+2/-0

 ✨ Usage guide:
Overview:
The describe tool scans the PR code changes, and generates a description for the PR - title, type, summary, walkthrough and labels. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.
When commenting, to edit configurations related to the describe tool (pr_description section), use the following template:
/describe --pr_description.some_config1=... --pr_description.some_config2=...

With a configuration file, use the following template:
[pr_description]
some_config1=...
some_config2=...

  Enabling\disabling automation

When you first install the app, the default mode for the describe tool is:

pr_commands = ["/describe --pr_description.add_original_user_description=true"
                         "--pr_description.keep_original_user_title=true", ...]

meaning the describe tool will run automatically on every PR, will keep the original title, and will add the original user description above the generated description.

Markers are an alternative way to control the generated description, to give maximal control to the user. If you set:

pr_commands = ["/describe --pr_description.use_description_markers=true", ...]

the tool will replace every marker of the form pr_agent:marker_name in the PR description with the relevant content, where marker_name is one of the following:

type: the PR type.
summary: the PR summary.
walkthrough: the PR walkthrough.

Note that when markers are enabled, if the original PR description does not contain any markers, the tool will not alter the description at all.

  Custom labels
The default labels of the describe tool are quite generic: [Bug fix, Tests, Enhancement, Documentation, Other].
If you specify custom labels in the repo's labels page or via configuration file, you can get tailored labels for your use cases.
Examples for custom labels:

Main topic:performance - pr_agent:The main topic of this PR is performance
New endpoint - pr_agent:A new endpoint was added in this PR
SQL query - pr_agent:A new SQL query was added in this PR
Dockerfile changes - pr_agent:The PR contains changes in the Dockerfile
...

The list above is eclectic, and aims to give an idea of different possibilities. Define custom labels that are relevant for your repo and use cases.
Note that Labels are not mutually exclusive, so you can add multiple label categories.
Make sure to provide proper title, and a detailed and well-phrased description for each label, so the tool will know when to suggest it.

  Inline File Walkthrough 💎
For enhanced user experience, the describe tool can add file summaries directly to the "Files changed" tab in the PR page.
This will enable you to quickly understand the changes in each file, while reviewing the code changes (diffs).
To enable inline file summary, set pr_description.inline_file_summary in the configuration file, possible values are:

'table': File changes walkthrough table will be displayed on the top of the "Files changed" tab, in addition to the "Conversation" tab.
true: A collapsable file comment with changes title and a changes summary for each file in the PR.
false (default): File changes walkthrough will be added only to the "Conversation" tab.

  Utilizing extra instructions
The describe tool can be configured with extra instructions, to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Notice that the general structure of the description is fixed, and cannot be changed. Extra instructions can change the content or style of each sub-section of the PR description.
Examples for extra instructions:
[pr_description]
extra_instructions="""
- The PR title should be in the format: '<PR type>: <title>'
- The title should be short and concise (up to 10 words)
- ...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the describe usage page for a comprehensive guide on using this tool.

<EMAIL_ADDRESS>tagged


Correct WIF byte marker for DARK addresses

Updated devnet WIF byte marker to match Ark Core.

Working on fixing tests.  It appears some tests will need to be updated with the corrected expected values to match the updated WIF byte.

PRs for arkjs should now go to https://github.com/ArkEcosystem/core/tree/master/packages/crypto

Ah, my apologies.  I thought just ark-node was being deprecated in favor of ark-core.  I assume ark-js is going away as well?  Thank you.

Yeah, it will be deprecated soon too. It will keep existing for some time but any changes or additions should go to above link.

Closing since ark-core replaces ark-js and this issue has been fixed in ark-core.


A Presumptuous Suggestion: Adding Localized Redraw Based on Image-to-Image (Like Inpainting)

The current flux painting approach involves a high degree of randomness. Tools like LoRA, ControlNet, and image-to-image generation are all aimed at providing users with more control to mitigate this randomness. Therefore, I would like to propose the possibility of adding a “localized redraw” feature based on image-to-image generation:
For example, when users upload a reference image, they could also upload an image mask to overlay on the reference. This could potentially enable the following:
Setting the reference image intensity to 0 within the mask area, allowing flux to freely generate content there, while keeping the reference image intensity at 1 outside the mask, preserving the original details. This would effectively achieve “localized redraw.”
In a generation process filled with randomness, users might find some images broadly satisfying while only disliking certain parts. Allowing the specification of these areas for flux to redraw could significantly enhance user control.
I am not familiar with the mlx code structure, and I don’t know how much effort this feature would require to implement. Therefore, this is merely a suggestion for the official team’s reference.

I think you're referring to "in-painting" and there is a reference implementation over at https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py, very doable but I personally don't have the time in near term to follow up (after similar work in #77), would love to see someone pick it up though!
Because the masked region needs to be drawn, a GUI is ideally provided for this, otherwise the mask image needs to be drawn in a different app, then saved as a hypothetical file arg --inpaint-mask, a high friction workflow.

@anthonywu Thank you for your quick response. My English is very poor, so I hope it didn’t make things difficult to understand. I actually always assumed you were a “湾区大佬,” based on your username—maybe Mr. 吴 or Mr. 伍. Please forgive me if I got that wrong! But these are all just topics outside of the main subject, as we still need to use English for communication here.
I feel quite regretful to hear that you don’t have time at the moment, but I appreciate your acknowledgment of this feature's feasibility. All I can do now is wait. Since I can’t resolve this myself, it remains a suggestion purely for the official team’s reference.
You also mentioned that implementing this through the UI might be better. The current UI options are all unofficial, and I noticed your new project also relates to UI functionality. I hope you complete it, and, if possible, make it the official version to enable testing of features that are operable via the terminal but not convenient to use. Best wishes.

@raysers your English is excellent, the issue you filed is clear.
Today I noticed https://github.com/CharafChnioune/MFLUX-WEBUI (another web ui effort by a frequent poster in this project's issues). That UI shows great progress and may be the better first UI to host the in-painting feature whenever that can be done.

@anthonywu Yes, MFLUX-WEBUI is an impressive project. Honestly, my ComfyUI plugin was initially inspired by it, to the point that it still carries some traces of WEBUI. My original intention was to design foundational MFLUX nodes that could be combined with existing plugins in ComfyUI, allowing MFLUX to fully realize its potential. But, unfortunately, I simply don’t have the capability to complete such a deep integration—it’s like “纸上谈兵.” For now, I can only create data transmission nodes that pass data to flux.py to generate images.
I may have gone off-topic. Hearing that you might test the in-painting feature on MFLUX-WEBUI genuinely makes me happy. When you have time to implement it, I’ll be eagerly awaiting. And, of course, if other contributors are interested in following up on this feature, as you mentioned, I’d be happy to assist with testing—that’s the least I can contribute


Scaling of photos in portrait orientation

I encountered a view-problem when looking at photos taken in portrait orientation. If the browser itself is in portrait-orientation (viewport-width is smaller than height), the photo is kind of centered in the middle of the screen, not using all available height. Especially on a mobile phone the photo than looks tiny.
My photos are taken with a Canon EOS 5d mk III (2:3 aspect ratio). The sweet spot seems to a height of 2879px. Scaled down to this height, the image gets displayed correctly. If the image is scaled down to 2880px in height, it isn't displayed at full browser height.
I then tried to crop the "faulty" 2880 (2880 x 1920px) version in width. The resulting image (2880 x 1919px) works correctly.
It must be some calculation error.
Here are two screenshots showing the problem:
lychee1.png
lychee2.png
Here is a sample gallery:
testalbum
Shrink your browser so that it is in portrait orientation.
1919x2879.jpg and 1919x2880.jpg are working.
1920x2880.jpg is showing the bug.
Also, I see this message in the log for each photo I upload:
2016-11-02 12:49:32 - notice - Lychee\Modules\Photo::add (219) - Skipped adjustment of photo (1919x2880)
What does this mean?

This has been discussed in #555
The Skipped adjustment of photo message is thrown when the photo doesn't need to be rotated or the script has failed to rotate it.

Anyone?

This issue will be closed because I'm not actively working on Lychee anymore. The repository of Lychee will stay available, but the main development continues under the Lychee Organisation. A fork maintained by the community. Important issues have been migrated. Feel free to re-add your issue(s) when necessary.


Update cmake

Complete issues #64
Complete dynamic library #49 #79

Dear @KangLin
Sorry for the late reply.
I'm currently working on a commercial project where internet use is restricted.  Internet is only available on weekends.
The environment without internet is more serious than Corona.

I merged to dev96 branch.

If there is no big problem, I will merge the dev96 branch into the master branch, later..


Understanding Worker and BackgroundService instances

I have a few questions regarding the use of IWorker instances and IWorkerBackgroundService instances.

Having created a background service for on a Worker instance, is there any point in keeping the worker instance around? Can I for example spawn multiple BackgroundServices from the same Worker instance? If so, I suppose they can only run once at a time, since they are on the same Worker?
Is diposing of the IWorker instance sufficient or do I separately need to dispose of the IWorkerBackgroundServices? (BTW is there an actual need for disposing workers in practise?)
If Workers and BackgroundServices are always a 1-1 relationship, why not allow creating a Background service through a factory method which also implicitly creates a Worker? Just a thought with a lot of "ifs"...

Had high hopes to improve performance in our application using workers but I am starting to see some of the limitations really becoming problems. For example, the cost of serialization + deserialization to pass data may at times overweigh the benefit of doing calculations in parallel, probably depending on the complexitiy of the task. I got some PoC code working with our app but managed to decrease performance by quite a lot... I guess due to massive amounts of serialization work as well as unability to utilize our cache well enough (as it would be global and workers cannot access global things)

Hello, first of all, thank you for your interest in the project and for taking the time to ask these kind of questions.

Having created a background service for on a Worker instance, is there any point in keeping the worker instance around? Can I for example spawn multiple BackgroundServices from the same Worker instance? If so, I suppose they can only run once at a time, since they are on the same Worker?

You may run several services on the same worker, but indeed, a worker is a single thread so only one function call can do work at a given time. The exception would be yielding, which may occur at any async/await junction. You can force yields for tests or complex scenarios using await Task.Delay(1). I don't have any particular scenario in mind where it would make sense to run several services rather than one on a worker, but I imagine that when reusing components that work together or using libraries (eg indexed db), it could eventually be useful.

Is diposing of the IWorker instance sufficient or do I separately need to dispose of the IWorkerBackgroundServices? (BTW is there an actual need for disposing workers in practise?)

Disposing the worker kills the background services. That said, I'll have to edit this after reading old code a bit. The need for worker disposal is crucial for applications that load dynamic code (an assembly.load call cannot be undone). Scenarios like compilers, plugins, or libraries that are leaking memory by nature.

If Workers and BackgroundServices are always a 1-1 relationship, why not allow creating a Background service through a factory method which also implicitly creates a Worker? Just a thought with a lot of "ifs"...

Like stated in the first answer, it's not a 1-1 relationship, and I think it would be unwise to change that. Even if its a niche use case, this entire project is very niche. That said, most of the start up code is already stowed away in extension methods and creating a new one that creates a worker implicitly would not be very difficult, even in user code. But may require some small intermediate object I guess.
Had high hopes to improve performance in our application using workers but I am starting to see some of the limitations really becoming problems. For example, the cost of serialization + deserialization to pass data may at times overweigh the benefit of doing calculations in parallel, probably depending on the complexitiy of the task. I got some PoC code working with our app but managed to decrease performance by quite a lot... I guess due to massive amounts of serialization work as well as unability to utilize our cache well enough (as it would be global and workers cannot access global things)
Indeed serializing is very expensive. There is always the option of using the core module and optimize serialization for your application. But the general rule I think should be that you must avoid freezing the UI at all cost, so any task that has a cycle slower than 200ms could be a candidate, but like you said, you must be able to serialize in less time than that. Also the 2x serialize/deserialize adds to overall execution time of course.
The top layer (backgroundservice) is developed with usability rather than speed in mind. Serialization of expressions is nice to use but slow and the messages have a lot of overhead. It has a lot of alternatives, I'm planning to create a second, alternative layer that uses Roslyn at compile time instead, and use message pack for serialization.
Regarding caching,  you would have to use something universally available like indexed DB or the Cache interface. Both of these methods require serializing your data though.

Hi! Thanks for the detailed response.
You answered my questions quite clearly and I don't really have any follow ups on that.
Regarding practical problems, indeed serializing is very expensive. I very much like what this library brings and the ease of use, but I may have underestimated the limitations that even the underlaying Javascript Web Worker API enforces. Such limitations are of course the need for serialization + deserialization everytime, no access to DOM and/or global window/document object of javascript environment. These things vastly limit what use we can get out of this library unfortunately.
Let me explain briefly our scenario.
We have a Blazor WASM (Standalone purely client side) web app which gets Data from our API. The data is instantly deserialized (from BSON) when received and this needs to happen (at least at some point) on the main thread as we need access to the data in the GUI. Now, the plan was to then send parts of the data to workers and have them process and calculate 3D coordinates for us to then eventually use for rendering a 3D model using Three.js.
The problems already arise when we realise we need to serialize parts of the data, which we previously already deserialized, and then send it to the workers, deserialize it again in the worker, process it, compute result, serialize result, send it back to the main thread and deserialize it on there. It would be nice if we did not have to return the result back to the main thread at all, but unfortunately it seems like only the main thread will be able to "talk" to the underlaying DOM and JS objects that we set up for creating our Three.js scene etc. This means we cannot interop straight from a worker, as the worker will not be able to access our exisitng javascript objects :(
In the end, it seems like this back and forth serialization hell really brings way more performance hits than benefits, unfortunately.
To Summarize:

Need everything to be deserialized on main thread (cannot avoid this)
Need all JS interop to happen from main thread
Leads to --> all worker communication must be handled with separate serialization back and forth

Even if using the Core library may give some less overhead, we still cannot avoid the issue mentioned above. I'm not looking for a magical solution but if you have any suggestions on how I could mediate any of the issues, please, I am all ears.

You can try optimizing by downloading data directly to something that can be shared by everyone (indexed db or Cache api). But I cannot tell if it's too much work or even if its going to pay off. Also indexeddb is not super easy to work with.

I'm curious to why you say that data must be deserialized on the main thread and why it cannot be avoided.

Sorry I may have left out some details. It is essential for the functionality of our web app that we have this data in memory as it may need to be accessed depending on user interactions. This data of ours contains both meta data and geometrical primitives. These primitives are in 2D in our data but with a simple offset we may calculate the extruded 3D shapes, which is what we visualize in our web app and which is what takes quite long to calculate.
It is true that these primitives themselves may not need to be deserialized at all on the main thread but they are kind of baked in with the rest of the data that we do want to access at runtime. This may be a limitation of our own deserialization code and/or Object model though...
Also, the result of the 3D calculations must be returned to the main thread so we can use JS interop to pass the data on to our Three.js methods. The methods in questions create object instances which are attached to the global window object which is why the interop must happen from the main thread with access to the DOM.
If you see any flaws in my thinking please correct me, this all is just according to my understanding of web workers which may be slightly faulty.

You can try optimizing by downloading data directly to something that can be shared by everyone (indexed db or Cache api). That way, you could theoretically do the deserialiation in parallel (on worker(s) and main thread) But I cannot tell if it's too much work or even if its going to pay off. Also indexeddb is not super easy to work with.

I am not familiar with either of these at all so I don't think at the moment we have the time to investigate it further unfortunately with our release coming up rather quickly.
Ultimately I believe the best solution for us, if we would like to get our solution working with workers, would be to perhaps split our model, either physically or "virtually" (for example geometrical data separately delivered from meta data from API) in order for us to avoid some deserialization+serialization overhead. That way we could perhaps, as you say,only deserialize the heavy stuff on the workers where the data would be needed, and never deserialize the complex shapes on the main thread. The main thread would just need to receive the calculated 3D geometry data in the end in order for it to be passed on to JS. A lot of hoops to jump through in the end, not impossible but not trivial

must be returned to the main thread so we can use JS interop to pass the data on to our Three.js methods.

You could probably serialize from the worker and send directly to the js main thread without doing yet another deserialize - serialize on the dotnet running on main. Not sure how much it will save you though. have you tried to measure the time spent in (de/)serialization ?
Might be some flag I could provide for debugging in a future version

Hmm yea that is true, probably would not need to deserialize it in between on dotnet main as long as I send it in simple enough form for it to be easily deserializable in javascript (float arrays).
I have tried measuring the deserialization time and serialization using Stopwatch. It depends quite a lot on the data as I grouped it by "layer" (PCB CAD layers). One layer may contain a few shapes to thousands and thousands. The general trend though was more than 200ms, sometimes up to 700ms for deserialization in worker. And that is of course without the transfer overhead (if such exists?). In the end, I have not yet managed to group it in any way that would actually improve the speed of the loading, probably the overheads overweigh the benefit from parallisation.

I was wondering if you'd considered using MemoryPack for serialization? - it's an order of magnitude faster that JSON (it essentially sends over something similar to the underlying in-memory representation of the information).  As you'll be opening it up in .Net you'll also get all the advantages of the speed increase upon deserialization too.  The transfer overhead remains of course.

I have never actually heard of MemoryPack if I am being completely honest with you. I will surely look it up no that you mentioned i, but I must admit that the use of workers in Blazor is a project that we have shelved rn ahead of other more important topics.. Kind of hoping that some Blazor WASM "native" multithreading will get released before we get around to it XD


Check Xcode build setting FULL_PRODUCT_NAME for bundle name

Another attempt at https://github.com/flutter/flutter/pull/46838.
Description
Users who update their app's display name from Xcode's UI (what gets shown on the home screen under the icon) can no longer flutter run.  Xcode sets PRODUCT_NAME to whatever is input to General > Display Name, and that's used to name the My App.app app product (spaces and all).

Don't hardcode the product name to Runner.app during a run or install.  Get it from Xcode build setting FULL_PRODUCT_NAME.
Fix the logging regex to handle the actual product name instead of Runner.

This will still work for "legacy" apps called Runner.app or with a display name hard-coded in the Info.plist.
Related Issues
Fixes https://github.com/flutter/flutter/issues/41793
See also https://github.com/flutter/flutter/issues/9767#issuecomment-564819538
Tests
Updated:

ios_device_start_nonprebuilt_test
mac_test
simulators_test
project_test

Update gallery integration test to set the name in the project instead of the Info.plist (the default way Xcode projects and macOS Flutter Xcode projects are named).
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

@jmagman I remember reviewing https://github.com/flutter/flutter/pull/46838. Can you give me the tl;dr on why it was reverted (was it because of basic_material_app_ios__compile?) and the differences in this PR?

Sorry for not reviewing; I was OOO Thu-Mon


Create example notebook explaining the toolbox

@rmarkello, @danjgale, @asidwell - Does anyone of you want to create a nice example jupyter notebook or a script that shows nicely what the toolbox does?
Also, we need a description for this toolbox that appears on the mainpage just below the title. Any suggestions?

I've added a description on the mainpag
"Python interface for generating coordinate tables and region labels from statistical MRI images"
But this is mostly just copied from readme. Happy to change if you want.

About the demo. Should we include 1-2 stats_maps (very small: perhaps compressed and 4mm isovoxel or so) that could be used in the demo?
I could provide one, am also happy to accept any suggestions or we could even create one on the fly, as I did here: https://github.com/miykael/create_fake_fmri_results/blob/master/index.ipynb

I retract my point about creating a view stats_maps on the fly. As in the tests, we could use nilearn's fetch_neurovault_motor_task. That should work fine!


Post-job Log Output: Improve Error Handling for ENOENT in complex workflows

Hi, I am running this action in my pipeline:
      - name: Forward ports using kubectl
        uses<EMAIL_ADDRESS>        with:
          run: |
            kubectl port-forward mypod1 8080:8080 &
            kubectl port-forward mypod2 9200:9200 &
          wait-on: http://localhost:8080/api/info/version

The post job "Post Forward ports using kubectl" fails the pipeline with the following error message:
Post job cleanup.
Output:
Error: ENOENT: no such file or directory, open '/home/runner/work/myrepo/myrepo/1646.out

Any idea why this could happen? Thank you!

@vera: We write the stderr and stdout to files based on the process id. If you have a more complex Github Actions flow that has multiple steps/runs on multiple workers, it's possible that those files no longer exist.
The easiest fix would be to pass log-output=false to disable post-job log output and avoid the error entirely.
I do not believe that we package these up as artifacts or pass them onto future steps as these facilities didn't exist when we wrote background-action.
@themightychris: I'm not sure what it would take to make this change, however, we'd need to name the files based on the step/job/pid rather than just the pid... and we'd need to package these up as artifacts or make them available to other steps IIRC.

@vera: If you want to provide more of your Workflow YAML/use case here, we may be able to make some tweaks: https://github.com/JarvusInnovations/background-action/issues/193

@jmealo thanks for making changes! I tried to test v1.0.6 but if I include it in my pipeline it fails with this error:
Run<EMAIL_ADDRESS>node:internal/modules/cjs/loader:1031
  throw err;
  ^

Error: Cannot find module '@actions/core'
Require stack:
- /home/runner/work/_actions/JarvusInnovations/background-action/v1.0.6/index.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1028:15)
    at Function.Module._load (node:internal/modules/cjs/loader:873:27)
    at Module.require (node:internal/modules/cjs/loader:1100:19)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/home/runner/work/_actions/JarvusInnovations/background-action/v1.0.6/index.js:1:14)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/runner/work/_actions/JarvusInnovations/background-action/v1.0.6/index.js'
  ]
}


Invalid contributing guide in bundlerbot welcome message

Hello
For example in this message https://github.com/bundler/bundler/pull/6320#issuecomment-370133227, bundlerbot refers to https://github.com/bundler/bundler/blob/master/CONTRIBUTING.md but this link doesn't work anymore. Instead it should point to https://github.com/bundler/bundler/blob/master/doc/contributing/README.md.
It seems the bundlerbot config is private. I was not able to find it. So sorry I can open a PR for this.

Thanks for letting us know. The bot's response is in the .github folder.


Opaque authentication with jdbc tokenstore is generating and storying multiple tokens on same clientId

Describe the bug
This is specific to opaque token generation and use key store.
To Reproduce
Create RegisteredClient with accessTokenFormat(OAuthorizationFormat.REFERENCE)
Add Configuration with JdbcRegisteredClientRepository( new JdbcTemplate(datasource))
Generate new token via oauth2/token using the client credentials ( multiple times)
verify JdbOAuth2Authorization -> save method (line number 224)
the existing logic for checking existingAuthorization  findById will always return null
verify OAuth2AccessTokenGenerator (line no: 83, id generation) (always generate a new random uuid)
since incoming key generation request not checking existing key using findByClientId,  new token will be generated always and this will increase the number of keys in database and cause flooding.
Expected behavior
save method should return recently generated non expired token.
JdbOAuth2Authorization  save method should change to search based on clientId to find existing authorization because the id is always new random generated uuid.
Sample
https://github.com/spring-projects/spring-authorization-server/blob/main/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/JdbcOAuth2AuthorizationService.java
@Override
public void save(OAuth2Authorization authorization) {
	Assert.notNull(authorization, "authorization cannot be null");
	OAuth2Authorization existingAuthorization = findById(authorization.getId());    /**  findByClientId(authorization.getRegisteredclientId))   **/
	if (existingAuthorization == null) {
		insertAuthorization(authorization);
	}
	else {
		updateAuthorization(authorization);
	}
}

@anishcjose

save method should return recently generated non expired token.

This is not correct. The current behaviour works as expected as per spec.
Please review the spec. Each time an authorization grant is performed a new access token is generated. It's up to the client to keep and use that access token until it expires and then obtain a new access token after expiry by performing another authorization grant flow.


Error in parsing: Cannot read property '0' of undefined

Running the path merging minifcation step on certain images fail.
Expected result: minified svg data.
Actual result: { error: 'Error in parsing: Cannot read property '0' of undefined' }
See: https://github.com/svg/svgo/pull/337 for an example image that causes it to fail, and a test case to cause it.

Fixed in ae2981cdea6696124587e9c39906ea90312aaf83.

v0.5.2 with the fix has been just released.


2.23.1: published version does not include "ExportMap" fix

Hey 👋,
I just updated this morning to the latest version and my installed version does not include this fix: https://github.com/benmosher/eslint-plugin-import/commit/d903477f4e31be71e016f8af56cbe2a8d4f11c9c
I tested it with yarn2 (empty cache, deleted node_modules) and a fresh npm project. Is it possible that something went wrong when publishing? I run your build script locally and everything looked fine.
Reproduce with a fresh project
# create a new empty random folder first
npm init -y
npm install eslint-plugin-import
less ./node_modules/eslint-plugin-import/lib/ExportMap.js

Thx for the awesome work ❤

Should be fixed in v2.23.2.


Add eseidel to pub for this package

cc @eseidel

Hi Eric, please send me (somehow) your preferred email to add to the pub account for a-star. I found how to add you. Thanks!

Let me know if you did want this. Closing in the meantime.


Minor Improvements for #53

add 'notes' and 'url' fields as template options

@jgclark Ah snap, I see you have already merged this to main branch so I will have to cherry pick this (and #53) as it was merged as well.


Setup build pipeline with AppVeyor

AppVeyor-file is ready, so just need the last push

Working on this

Done and chedked. Badge in readme is also working


Reactive Command not executed on UI threat

Using nightly build 11.0.999-cibuild0031748-beta.
Here I have Load and Save buttons bound to those commands.
When I Save a preset, the Load button becomes enabled. It actually works fine.
Until I publish the application with Assembly Trimming. After trimming, the Load button will not enable unless I add a Dispatcher invoke.
Dispatcher.UIThread.Post(() => Settings.Presets.Add(preset));

global using RxCommandUnit = ReactiveUI.ReactiveCommand<System.Reactive.Unit, System.Reactive.Unit>;

public RxCommandUnit LoadPreset => _loadPreset ??= ReactiveCommand.CreateFromTask(LoadPresetImpl,
    Settings.Presets.ToObservableChangeSet().Select(x => x.Any()));
private RxCommandUnit? _loadPreset;
private async Task LoadPresetImpl()
{
    var loadItem = await _dialogService.ShowLoadPresetViewAsync(this).ConfigureAwait(true);
    if (loadItem != null)
    {
        loadItem.SaveAs(Playlist);
    }
}

public RxCommandUnit SavePreset => _savePreset ??= ReactiveCommand.CreateFromTask(SavePresetImpl,
    Playlist.Files.ToObservableChangeSet().ToCollection().Select(x => x.Any()));
private RxCommandUnit? _savePreset;
private async Task SavePresetImpl()
{
    var saveName = await _dialogService.ShowSavePresetViewAsync(this).ConfigureAwait(true);
    if (!string.IsNullOrWhiteSpace(saveName))
    {
        var preset = GetPresetByName(saveName);
        if (preset == null)
        {
            preset = new PresetItem();
            // DOES NOT WORK WITHOUT DISPATCHER!!!
            Dispatcher.UIThread.Post(() => Settings.Presets.Add(preset));
        }

        Playlist.SaveAs(preset);
        preset.Name = saveName;
    }
}

So let's look at ReactiveUI documentation

It's important to understand that the execution logic for a reactive command is not scheduled to execute on the provided scheduler (just as is the case for any canExecute observable you provide). Instead, it is left to the caller to implement any required scheduling inside their execution pipeline. This means it is entirely possible for your execution logic to execute on a thread other than that owned by the provided scheduler:

var command = ReactiveCommand.Create(
    () => Console.WriteLine(Environment.CurrentManagedThreadId),
    outputScheduler: RxApp.MainThreadScheduler
);

// This will output the ID of the thread from which you make
// this call, not necessarily the ID of the main thread!
command.Execute().Subscribe();

Essentially, it says that Avalonia is responsible for this.

Essentially, it says that Avalonia is responsible for this.

I think I didn't understand this, which part are you referring to? The ReactiveUI docs seem to indicate that the caller (i.e. your viewmodel) is responsible for implementing the required scheduling.
Also confused because ConfigureAwait(true) should work, but apparently it's not. Did you check the thread id before and after await _dialogService...?

I tested again. Environment.CurrentManagedThreadId returns 1 before and after.
Currently it works without the Dispatcher.
What could have happened before? Are there any circumstances that could cause the issue I experienced? Not able to reproduce it right now.

For the code you posted, I can't think of any situation where you get the wrong synchronization context. The command is always invoked by the view, right?

Yes, bound to a button

I am now unable to reproduce. Wondering what happened.
I'll close this for now. Will open a discussion if I encounter the problem again.

I was receiving the exception:
System.InvalidOperationException: Call from invalid thread after my ICommand built using ReactiveCommand.Create(), bound to a Button command was invoked.
Although my google search led me here, it was an easy fix, my AppBuilder.Configure in Program.cs was missing ```UseReactiveUI() in the following:
AppBuilder.Configure<App>()
   .UseReactiveUI()

I am using Avalonia 0.10.18, so might not be related to your issue @mysteryx93. But I came to this issue after googling my exception so maybe this will help someone.

@nrenzoni can you open a Q&A discussion for it and send your command definition? It's not wise to answer closed issues. Thx.


Fix typo in Getting Started docs

Motivation
I am setting up Docusaurus on a repo and noticed a minor copy edit.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
N/A
Related PRs
N/A

@amyrlam Btw check out https://hacktoberfest.digitalocean.com if you don't already know about it. 4 PRs away from getting a t-shirt! 😄

👋 Hi Yangshun! Thanks, I'm regged for Hacktoberfest! 🎃

Welcome back @amyrlam 👋


As client i want to be able to communicate with the backend through socketIO sockets in order to send and receive interactive messages

[x] #60
[x] #61
[x] #62
[x] #63

closed with commit(s) https://github.com/sopra-fs23-group-28/sopra-fs23-group-28-server/commit/d8e874e5c85ff4e74bb081af5000ca57016b5035 https://github.com/sopra-fs23-group-28/sopra-fs23-group-28-server/commit/50dcce5ed9ed6dd473171982c8caff66b1da6613 https://github.com/sopra-fs23-group-28/sopra-fs23-group-28-server/commit/20342ba3cb1b5bbfeb1e21a3bb025aa9659d9b52


CupertinoOverrideTheme Primary Color Not Respected

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
Add a selectable text to a screen.
Wrap the view with Theme and set the primary color of the cupertinoOverrideTheme in the ThemeData.
Expected results
Its expected that the selection handle of the selected text handle uses the primary color set in the cupertinoOverrideTheme.
Actual results
It does not respect the value of this primary color.
Code sample
Code sample
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    FlutterNativeSplash.remove();
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
        cupertinoOverrideTheme: const CupertinoThemeData(
          primaryColor: Colors.green, // This Color is respected
        ),
      ),
      home: const MyScreen(),
    );
  }
}

class MyScreen extends StatelessWidget {
  final String staticText =
      """Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.""";

  const MyScreen({super.key});
  @override
  Widget build(BuildContext context) {
    return Theme(
      data: ThemeData(
        cupertinoOverrideTheme: const CupertinoThemeData(
          primaryColor: Colors.red, // This should work for ios but it doesnt
        ),
      ),
      child: Scaffold(
        body: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 16),
          child: Center(
            child: TextSelectionTheme(
              data: const TextSelectionThemeData(
                selectionColor: Colors.blue, // This works
                selectionHandleColor:
                    Colors.red, // This seems to be android only
              ),
              child: SelectableText(
                staticText,
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.13.1, on macOS 13.4.1 22F82 darwin-arm64 (Rosetta), locale en-NG)
    ! Warning: `dart` on your path resolves to /usr/local/Cellar/dart/2.18.5/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/mastersam/fvm/versions/3.13.1. Consider adding /Users/mastersam/fvm/versions/3.13.1/bin to the front of your path.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.82.0)
[✓] Connected device (3 available)
[✓] Network resources

! Doctor found issues in 1 category.

I am expecting to have a red handle but i still have the green handle.

This seems to be similar to https://github.com/flutter/flutter/issues/74890. Can you take a look and confirm?


Buddy System

I need to flesh this out more. I'll take a stab at writing out what I mean with this by Saturday.

This issue was moved to CoderDojoChi/c2#85


How to disable notification about enabling Deep Cloud?

I have searched the settings and didn't find any config to use.

Yes, constant notifications in bottom right corner is very annoying and covers bottom line of my terminal, and sometimes there is 3  or more notifications  at the same time. Would love to see the status in status bar instead of notifications spam on every file save action.

@dimacodota  It is pretty confusing to type something in editor. Can you please implement vscode plugin settings as it is implemented for vscode-eslint-plugin?

@dimacodota Not that message. It's this:

@weiby3 - may i ask why you signed up for TabNine Professional but didn't enable the Deep Cloud?

@dimacodota
I don't want to upload some code to Internet.

These notifications were part of an attempt to improve user experience and clarity.
Based on your feedback we've reviewed this behavior and have decided to reduce the number and types of notifications.
The change will be part of an update that we plan to release next week.
Thanks for bringing this issue up.

Is it possible to enable cloud functionality per project in vscode settings, instead of having it enabled globally?

@weiby3  @JustFly1984 Following your feedback, the number of notifications was reduced dramatically in version 2.9.2.
@JustFly1984 are you using the cloud today? if not - would you use it if you were able to enable the cloud per project? can you explain why?

@JustFly1984 - you can enable cloud only for whitelisted directories


refactor: update to use refactored API header handling

updated core SDK version to match CLI
updated CLI library versions and made one code change to handle it
updated oclif versions to match version in updated CLI libraries
just build with Node 16 like we do with the CLI

Types of Changes

[ ] 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 change)
[x] I have read the CONTRIBUTING document
[ ] My code follows the code style of this project (npm run lint produces no warnings/errors)
[ ] Any required documentation has been added
[ ] I have added tests to cover my changes

:tada: This PR is included in version 1.15.1 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Config. Template Management

At Codeunit Config. Template Management we have useless event OnBeforeUpdateWithSkipFields(var SkipFieldValidation : Boolean)
Can you add  TempDummyField parament by var, and RecRef parament, or make the function UpdateRecordWithSkipFields external.
Thank you)

Please always put the full detailed signature of the requested events.
If you use AL code copied from VSCode instead of screenshots it will speed up the process of implementation.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Use click instead of argparse in tracker

@Code0x58 is this ready to be reviewed?

Yep. I just updated the PR body to help with context


Parameterless struct constructors

Feature specification
This would allow structs to declare field initializers and no-argument constructors.
See https://github.com/dotnet/docs/pull/24234#discussion_r632409776 for note on language reference.

This feature likely touches more articles than most, but those edits are likely smaller.
Major changes are needed on:

Language reference - struct types

Programming guide - section on constructors](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/constructors)

The entire C# docset should be searched for "constructor", "default constructor" and "parameterless constructor" to remove any restriction on struct types and parameterless constructors. In addition, the statements on the compiler generating a parameterless constructor should be checked.

The docset should also be searched for "initializer" and "field initialization" to update any rules on field initializers for struct types.

Pages for arrays should be checked for how arrays of struct types are initialized. These should be checked for accuracy in light of record structs and parameterless constructors.

@BillWagner is that fine if I update the language reference article on structs for this item?

@pkulikov

Is that fine if I update the language reference article on structs for this item?

Yes, please.

@BillWagner I'll continue with that and will check the article about constructors as the next step.

@BillWagner after #26310 is merged, we can say that almost all items from https://github.com/dotnet/docs/issues/25676#issuecomment-900594950 are done. EXCEPT, the two: (1) entire C# docset should be searched for "constructor" and (2) The docset should also be searched for "initializer". I've searched for those entries but capitulated when I saw the number of results. So, it's your call to decide if this item can be closed.

Thanks for all the details @pkulikov
I just merged #26310.  I'll do a final search for constructor and initializer.
My goal in that note was to find any instances where the docs said that a struct couldn't have either initializers or a parameterless constructor. If we don't have any, I'll close this.

After review for any remaining notes on the restrictions for a parameterless constructor in struct types, this is fixed.
Fixed by the combination of #26037, #26271, #26282 and #26210.


50.teams-messaging-extensions-search cannot work on channel

This NodeJS sample  cannot work on the Teams->General channel. It simply failed in channel if I directly click the New Conversation to use this extension. It returns back without any result after selecting one item in the list. Being strange, It can work if I typed in any text in the message input box and then click the New Conversation to use this extension.  It works well on Chat also.  If I run this on Teams' web version, i got the same issue. I can see the console is having the error message: TextEditor: Cannot read property 'scrollIntoView' of undefined. Another error message is:  Cannot read property 'isChannelConversation' of undefined.
Here is the link of the sample: https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/50.teams-messaging-extensions-search

I found the similar issue and the discussion on the stackoverflow: https://stackoverflow.com/questions/62516251/microsoft-teams-bot-messaging-extension-invoke-selectitem-not-working-as-expect.  One answer is saying there is a known bug for the "Reply".  The comment for the answer said the "New conversation" has the same issue now. I kind of is encountering the same issue.

I run some other published message extensions. They work well. Does that mean they are coded in .Net? Only NodeJS version cannot work?

As noted in the StackOverflow issue you linked, this is currently a bug in Teams. I'll reach out to them for an update.
However, it does work as described in the README via the command box:

I run some other published message extensions. They work well. Does that mean they are coded in .Net? Only NodeJS version cannot work?

I just tested this in both Node and .NET and experienced the same thing. Since it works via the Command Bar and the bot responds appropriately, I'm relatively certain this is a Teams issue.

@mdrichardson Thank you for the quick response. Do you think this can be fixed in the next release of Teams?

@brightInGit I'm not on the Teams team, so I can't say. But I'll post an update here when I hear back from them.

I don't believe the StackOverflow question linked to above is the root of the problem you're experiencing. That issue is specific to the onMessagingExtensionSelectItem event not firing as expected. Is your bot using that event, or are you returning the entire card + preview in response to the initial query?
Is this only failing in the General channel, and works in other channels? (I haven't been able to reproduce this locally)

@brightInGit Just as an update, Teams is looking into this, now.

@clearab assigning this to you as @mdrichardson is not available. Could you please update with status?

The Teams group is reporting that this bug has been fixed, and is rolling through their deployment rings. The expectation is that it will be globally available by January.

The fix for this should be rolling out globally now. Please re-open if you continue to experience issues.

The fix for this should be rolling out globally now. Please re-open if you continue to experience issues.

@clearab - has this actually been fixed? Using Teams build version <IP_ADDRESS>79 this still appears to be an issue

@mattlavallee - Thanks for bringing this to my attention, I'm confirming with the product team on the status.

Hi @clearab - have you heard back from the product team regarding this issue?

@clearab - Just wanted to provide you with a bit more information here. I am currently on Microsoft Teams v<IP_ADDRESS>84 (64-bit)
I am using some test code that is almost identical to Sample 50
const attachments = [];
const heroCard = CardFactory.heroCard("Image Test");
const previewCard = CardFactory.heroCard("Thumbnail");
previewCard.content.tap = {
  type: "invoke",
  value: {
    description: "Tap test",
  },
};
attachments.push({
  ...heroCard,
  preview: previewCard,
});

return {
  composeExtension: {
    type: "result",
    attachmentLayout: "list",
    attachments,
  }
};

I've set up breakpoints in many locations to see if this message was getting lost somewhere along the way such as in:

My Bot's handleTeamsMessagingExtensionSelectItem handler
Server in the express.post("/api/messages", ... handler
Inside of adapter.processActivity within the /api/messages handler
In teamsActivityHandler.js at the top of the following methods (I know some don't make sense, but I'm grasping at anything here):

onInvokeActivity
handleTeamsCardActionInvoke
handleTeamsMessagingExtensionCardButtonClicked
handleTeamsTaskModuleFetch
handleTeamsTaskModuleSubmit
handleTeamsAppBasedLinkQuery
handleTeamsMessagingExtensionQuery
handleTeamsMessagingExtensionSelectItem
handleTeamsMessagingExtensionSubmitActionDispatch
handleTeamsMessagingExtensionSubmitAction
handleTeamsMessagingExtensionFetchTask

In activityHandler.js at the top of the following methods

onTurn
onMessage
onEvent
onUnrecognizedActivityType
run
onTurnActivity
onMessageActivity
onInvokeActivity
onEventActivity
on
handle

I receive a message when I first type, entering handleTeamsMessagingExtensionQuery. Once I click a result which should invoke the tap action I get nothing. None of the above breakpoints are ever hit; it seems as if the message/action never makes it out of Teams and back to the server

Hi - I've spoken with the product team and they believed the fix had been implemented and published. I'll try and get a repro this evening so I can continue pushing.

I was able to use this sample and get the selectItem event to fire on both the Windows desktop client and the web browser client. I've tried from 1:1 chats, group chats, and both the "reply" and "New Conversation" options in a channel.
If you check your ngrok logs, you should be able to see the event

What client & context are you triggering from (i.e. browser client & "new conversation" button in a channel)? Are you able to receive the invoke from any client/context at all? Is there anything unique about your environment at all?

@clearab - thank you for taking the time to investigate this with me. I was able to run two more scenarios on my corporate environment and am able to narrow the issue down to something in our environment.
I was able to run this sample and can confirm that I see it working. We can close this issue out again

Awesome, glad it is working!

Hi @clearab
I hate to reopen this issue, but has this potentially been broken in Microsoft Teams again? the selectItem handler was working at the end of May.
On June 3 I received a teams update: <IP_ADDRESS>73 (64-bit) and now when debugging I am seeing that the handleTeamsMessagingExtensionSelectItem is never getting hit

@Wajeed-msft - can someone on your team take a look at this one?

Hi @brightInGit We are looking into this issue, Will get back soon.

Hi @mattlavallee Could please explain briefly where exactly you are facing the issue.

@Chetana-MSFT - as mentioned above in Microsoft Teams.
Our search extension bot returns a result from handleTeamsMessagingExtensionQuery similar to the sample code here.
The result has the tap action defined however upon tapping the handleTeamsMessagingExtensionSelectItem is never hit

@mattlavallee I have reproduced the same code that you have provided. It is working completely fine at our end and so, I suggest you to retry once again at your end.

@Chetana-MSFT -
I have drastically simplified our code to look more or less like the following:
handleTeamsMessagingExtensionQuery
public async handleTeamsMessagingExtensionQuery(context: TurnContext, query: MessagingExtensionQuery): Promise<MessagingExtensionResponse> {
  const heroCard = CardFactory.heroCard('TEST');
  const preview = CardFactory.heroCard('PREVIEW');
  preview.content.tap = {
    type: 'invoke',
    value: {
      description: 'testing',
    },
  };
  const attachment = {...heroCard, preview};

  return {
    composeExtension: {
      type: 'result',
      attachmentLayout: 'list',
      attachments: [attachment],
    },
  } as MessagingExtensionResponse;
}

Bot Entry
app.post('/api/messages', async (req: any, res: any) => {
  adapter.processActivity(req, res, async context => {
    console.log('CONTEXT: ' + JSON.stringify(context));
    await bot.run(context);
  });
});

In the /api/messages handler I would expect to see two hits, one for composeExtension/query and a second when I tap a result for composeExtension/selectItem. However, with this simple example I get a single hit for composeExtension/query and it appears as if Microsoft Teams is not sending any event to this API for composeExtension/selectItem
I mentioned above that I am on Teams build <IP_ADDRESS>73 (64-bit). For what it's worth, my company is part of the TAP program, so if that build number plus TAP leads to a different version of Teams, perhaps the issue is currently only in the TAP release?

@mattlavallee Could you please go through the syntax of handleTeamMessagingExtension  as provided in the documentation.

@Chetana-MSFT - I'm not really sure what you're getting at there. Yes I have gone through the documentation and my previous code sample lines up not only with that documentation but also with the BotBuilder-Samples example code that has been referenced several times in this issue.
Have you checked that TAP build version of Microsoft Teams that I have specified?
I suspect that since the API message endpoint for the bot is not receiving a response at all that the issue is in Teams not sending that request

@Chetana-MSFT / @clearab
This is also affecting Microsoft Teams version TAP <IP_ADDRESS>75 (64-bit) which my company received as an update on 6/21/2021

@Chetana-MSFT please attempt to repro across the various rings, I believe the TAP ring is like 3.0.

@mattlavallee - I tried this in different rings, we are not able to repro the issue at our end. Could you please share the Bot Id and timestamp so that we can check logs?

Hi @Wajeed-msft
The Bot Id is a888a38f-1225-4d24-b2e4-8c0093179a92
I ran through two test cases between 13:17:00 - 13:18:59 EDT (this equates to 17:17:00 - 17:18:59 UTC)

@mattlavallee - I could not find anything specific to debug this further in logs around the timeframe mentioned. Could you please try this manifest.zip and let me know if you see same issue? When you select any item I have appended OnTeamsMessagingExtensionSelectItemAsync in description from the same even.

@clearab - could you please also give it a try see if it reproes for you?

Works fine for me, testing in R1 on Windows

I am on vacation currently but I will be back in the office to test probably July 14 but it may get pushed to July 15. Thanks for your patience

@clearab / @Wajeed-msft  - given the handler mentioned in https://github.com/microsoft/BotBuilder-Samples/issues/2879#issuecomment-874231506 it seems the test app was written in C#. Is it possible that the C# BotBuilder and NodeJS Botbuilder differ somehow?
The sample manifest works for me however an equivalent simple NodeJS example does not

Thanks for confirming that issue is not with the Teams platform. Let me try NodeJS sample from my side to see if things differ.

@Wajeed-msft - have you had any luck checking the NodeJS sample?

@mattlavallee - Tried Node sample as well. Worked fine for me. I'll deploy the sample and share the manifest with you.

@Wajeed-msft / @clearab - It looks like in the TAP release from July 16, 2021, version <IP_ADDRESS>72 (64 bit) the issue is resolved.
My simple NodeJS test bot (exact same code from 28 days ago here) now works as expected


[BUG] db-random-test module's test fail

Describe the bug

db-random-test module's test fail
What did you do
run test 'DataGeneratorSuite' and 'RandomTestSuite' in the db-random-test

What do you expect

succuess
What happens instead

fail

Reason
the except value does't equals actual value just as the picture show

Solution
I don't known is the except value wrong or the actual value wrong, i prefer fix the  except value because the actual value seems correct in the whole

The picture shows the code diff, because i change the code according to the actual value


discussion(optimizer): do not include the primary key of max-one-row side in pk derivation of Inner(?) Join

If we write an inner join whose one side is SimpleAgg, the primary key of output only contains the primary key of the other side since SimpleAgg has no primary key.
Things can actually be more general, as every max-one-row Plan Node can adapt this. This will benefit DynamicFilter which requires no output of the inner side.

For streaming query, max-one-row would always appear together with correlated sub-query which finally causes the aggregation becoming not Simple or more specifically with group by.

For the case of uncorrelated sub-query, it will produce a  nested-loop join which is unsupported right now.

For the case of uncorrelated sub-query, it will produce a nested-loop join which is unsupported right now.

I think some of them can be supported with DynamicFilter?

For the case of uncorrelated sub-query, it will produce a nested-loop join which is unsupported right now.

I think some of them can be supported with DynamicFilter?

Yes, you really remind me some of special nested-loop join can be transformed into dynamic filter. For dynamic filter, I think it's pk is the same with its left input, so we have already done?

Yes. The StreamDynamicFilter is created when calling LogicalJoin::to_stream after we rewrite the plan to add primary keys, so even if we don't want the columns from the right side, its primary key is still added so the precondition of dynamic filter will be broken. That's one of the reasons for our only supporting simple agg as the inner side currently.

Yes. The StreamDynamicFilter is created when calling LogicalJoin::to_stream after we rewrite the plan to add primary keys, so even if we don't want the columns from the right side, its primary key is still added so the precondition of dynamic filter will be broken. That's one of the reasons for our only supporting simple agg as the inner side currently.

Got it.

I've had a try by hacking the pk derivation of Join side with MaxOneRowVisitor, it seems not to work since we'll have an intermediate state of LogicalJoin with two Stream plan nodes as the input. But the MaxOneRowVisitor is only implemented on logical plan nodes.
A trivial solution could be to repeat (or forward) the implementation to each stream plan node, but it sounds too verbose. Per some offline discussion with @st1page, the best solution might be #2279, after we finish the refactor of the optimizer.


Return unrecognized state instead of throwing exceptions for non-string input of TextInput action

Fixes #4948
Description
In adaptive dialog, TextInput action only accept string values, but in some cases, non-string values such as objects will be passed into TextInput action, in such cases, it will throw exceptions instead of throw invalid prompt to users for a valid input. This is not friendly. In this fix, we added the validation of string format for all values and if it's value is not string, it will go into invalid state instead of throwing exceptions.
Specific Changes

TextInput.cs

Testing
Test cases added

This was reviewed by the SDK team. Rerunning failing check. Will merge if it passes.

The only failure is on [experimental]Dummy-build. Ignoring this failure.


copy cat

this code is created by me and copied by users which i don't even know. if you want to be save, latest update and not want to be infected, stop using this one and use my orginal one: https://github.com/FuckingToasters/discord-phone-verifier

Thanks bhai..
On Thu, Nov 10, 2022, 1:56 AM FuckingToasters @.***>
wrote:

this code is created by me and copied by users which i don't even know. if
you want to be save, latest update and not want to be infected, stop using
this one and use my orginal one:
https://github.com/FuckingToasters/discord-phone-verifier
—
Reply to this email directly, view it on GitHub
https://github.com/poisk-ls/verifying-discord-phone/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A2W6ROLJ2K3TCJQUBREJCQTWHPQVVANCNFSM6AAAAAAR3WKRLE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks bhai..
…
On Thu, Nov 10, 2022, 1:56 AM FuckingToasters @.> wrote: this code is created by me and copied by users which i don't even know. if you want to be save, latest update and not want to be infected, stop using this one and use my orginal one: https://github.com/FuckingToasters/discord-phone-verifier — Reply to this email directly, view it on GitHub <#1>, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2W6ROLJ2K3TCJQUBREJCQTWHPQVVANCNFSM6AAAAAAR3WKRLE . You are receiving this because you are subscribed to this thread.Message ID: @.>

:)

I mentioned you on my repo by, I put ctto and thanks to.. sorry for
copyright without permission bhai.
On Thu, Nov 10, 2022, 2:38 PM FuckingToasters @.***>
wrote:

Thanks bhai..
… <#m_7383912516495131013_>
On Thu, Nov 10, 2022, 1:56 AM FuckingToasters @.> wrote: this code is
created by me and copied by users which i don't even know. if you want to
be save, latest update and not want to be infected, stop using this one and
use my orginal one:
https://github.com/FuckingToasters/discord-phone-verifier
https://github.com/FuckingToasters/discord-phone-verifier — Reply to this
email directly, view it on GitHub <#1
https://github.com/poisk-ls/verifying-discord-phone/issues/1>, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A2W6ROLJ2K3TCJQUBREJCQTWHPQVVANCNFSM6AAAAAAR3WKRLE
https://github.com/notifications/unsubscribe-auth/A2W6ROLJ2K3TCJQUBREJCQTWHPQVVANCNFSM6AAAAAAR3WKRLE
. You are receiving this because you are subscribed to this thread.Message
ID: @.>
:)
—
Reply to this email directly, view it on GitHub
https://github.com/poisk-ls/verifying-discord-phone/issues/1#issuecomment-1309839742,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2W6ROICHUNBRNWAJCR47WDWHSJ6XANCNFSM6AAAAAAR3WKRLE
.
You are receiving this because you commented.Message ID:
@.***>

I mentioned you on my repo by, I put ctto and thanks to.. sorry for copyright without permission bhai. On Thu, Nov 10, 2022, 2:38 PM FuckingToasters @.> wrote:
…
Thanks bhai.. … <#m_7383912516495131013_> On Thu, Nov 10, 2022, 1:56 AM FuckingToasters @.> wrote: this code is created by me and copied by users which i don't even know. if you want to be save, latest update and not want to be infected, stop using this one and use my orginal one: https://github.com/FuckingToasters/discord-phone-verifier https://github.com/FuckingToasters/discord-phone-verifier — Reply to this email directly, view it on GitHub <#1 <#1>>, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2W6ROLJ2K3TCJQUBREJCQTWHPQVVANCNFSM6AAAAAAR3WKRLE https://github.com/notifications/unsubscribe-auth/A2W6ROLJ2K3TCJQUBREJCQTWHPQVVANCNFSM6AAAAAAR3WKRLE . You are receiving this because you are subscribed to this thread.Message ID: @.> :) — Reply to this email directly, view it on GitHub <#1 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2W6ROICHUNBRNWAJCR47WDWHSJ6XANCNFSM6AAAAAAR3WKRLE .  If you want to copy it from me for some reason, make a fork of it.

absolutely yes bhai..


User API Create New User modified

https://hyecheol123.github.io/MakeBSSGreatAgain-API-Documentation/#operation/newUser
Fields are updated

Commit: c5b542907174827132518e4dd3e2070e91712480


Docker Hub repository name
gefyra/docker-desktop-extension
Terms of services

[X] I accept the term of services

/validate


Athena read issues (blank parquet cols; csv delimiters)

Hi again, making progress... I'm successfully using awswrangler to write Glue tables along with associated parquet or csv files in S3 now. However, having issues reading this data back with Athena.
I like parquet and haven't had problems with delimiter characters, encoding etc. before beyond having to explicitly set a few columns dtypes using pandas df.astype({'col name':'str'}) before writing to avoid mixed-type columns erroring out.
When I download and open one of the awswrangler-produced parquet files and open in pandas on my local machine, everything looks fine. However when I query the Glue table using Athena I get all the headers and rows, but the majority (not all) of the column data appears blank. Any idea what's going on here - something with datatypes or encoding, perhaps? It is reading from the exact same parquet files...
To work around, I also tried session.pandas.to_csv. When I download one of these csv files and to my local machine, I noticed fields with commas in the content are enclosed in quotes (normally I use pipe delimiters but don't see an option). Athena doesn't handle this well (and from what I have read, this kind of thing is a general pain with Athena/Presto). Do you plan to implement a "sep" parameter for the session.pandas.to_csv() function, or do you have any suggestion for what I might specify in Athena to match the csv formatting currently output by awswrangler?
Thanks again!

Hey @mjh7!
I will close this issue by inactivity. Please, open a new one if you have more issues.

Hey! for you all land here due to this issue.
¡ Rename the Glue Schema with the original parquet headers.!

@mjesbar That was very helpful, thank you!


"ng is not recognized as an internal or external command"

i am not able to use "ng" command in command prompt which shows "ng is not recognized as an internal or external command" but it can be opened using node.js command prompt . how to rectify the error in normal command prompt .

 You can find that folder by running npm bin -g. See this; https://stackoverflow.com/questions/33819757/global-npm-install-location-on-windows
This issue tracker is not suitable for support requests, please repost your issue on StackOverflow using tag angular.
If you are wondering why we don't resolve support issues via the issue tracker, please check out this explanation.


Supporting Consistent Data Push and Data Rollback on Pinot

@jackjlli and I have come up with the design document for supporting the consistent push on Pinot. The main idea is to reuse the "segment replacement protocol" added as part of the merge-rollup service to switch old segments with new segments.
The existing protocol has some limitations since it was originally designed in the context of merge/rollup. Here are some main changes:

Add "reverted" state for segment lineage entry & revert API
Add "select" API that returns the list of target segments to be replaced given the time range.
Improve the segment name generator for the unique segment name
Improve the code to cover some failure cases

https://docs.google.com/document/d/1PUy4wSUPFyEWEW3a88Mipdug3cPj4EpV__lx-BVUTYk/edit#

@snleee are there plans to still support this for APPEND tables?


Adding key properties that pertain to Icon only - Icon, Color, Rotation.

Adding key properties that pertain to Icon only - Icon, Color, Rotation - in a new section "Icon only key properties".

@emcoope-msft


Image Segmentation .cpp tutorial

Since it is my first trial to contribute with github, I hope that I did everything correct.

There are some trailing whitespaces: http://pullrequest.opencv.org/buildbot/builders/precommit_docs/builds/2302/steps/whitespace/logs/stdio

I suggest to use tutorial_distance_transform page identifier, like other tutorials.

Hi mshabunin, is it ok now.

I hope now to be ok. However, no matter what I would like to thank you for the help.

Nice one @theodr! You can always ask for my help by using @StevenPuttemans! There are still some fails, will check why!

Add those fixes and it will build just fine. Warnings are threated as errors in the buildbot.

Thank you Steven, hopefully now everything is correct.

@theodr, looks great! :+1:

@theodr could you please squash your commits into one? This can be done locally with
git rebase -i HEAD~5
replace all commit heads (first word) with a s/squash
then make a global commit message
push your changes to this branch

@StevenPuttemans is it done?
@mshabunin thank's

:+1:

perfect!!!

looks great! :+1:

A small question, how can we find this tutorial in the online docs? It seems it is not where I expected it to be: http://docs.opencv.org/trunk/doc/tutorials/imgproc/table_of_content_imgproc/table_of_content_imgproc.html#table-of-content-imgproc

@StevenPuttemans, it can be found in Doxygen docs only:
http://docs.opencv.org/ref/master/d2/dbd/tutorial_distance_transform.html

Ow okay! Any insights in when the other docs are going to disappear?

I think we will keep last generated sphinx docs since they can contain information useful for someone. Documentation links on http://opencv.org will be redirected to new reference prior to 3.0 release.

:+1:

Sorry but I do not get it, do you mean that the old documentation tutorials from here http://docs.opencv.org/doc/tutorials/tutorials.html will be deprecated and from the new version people will be pointed somewhere else?

Not deprecated, this documentation is actual for 2.4 branch and will stay where it is.
Current docs site layout looks like this:
For 2.4:

2.4.9 (default) - http://docs.opencv.org/
2.4.9 - http://docs.opencv.org/2.4.9/
2.4.10 - http://docs.opencv.org/2.4.10/
nightly sphinx docs - http://docs.opencv.org/2.4/
nightly doxygen docs (not supported) - http://docs.opencv.org/ref/2.4/

For 3.0:

3.0-alpha - http://docs.opencv.org/3.0-alpha/
3.0-beta - http://docs.opencv.org/3.0-beta/
nightly sphinx docs (last uploaded on 30-dec-2014) - http://docs.opencv.org/trunk/ (or /master/)
nightly doxygen docs - http://docs.opencv.org/ref/master/

Main idea is to keep all links on documentation page working.

@mshabunin thanks for the thorough explanation :+1:
so documentation for the new release will be based on both the old sphinx docs (which as I understand is droped, but will remain for supporting reasons) and the new doxygen docs way, right?

Not quite so, 2.4 and 3.0 (master) branches exists in parallel and each has its own documentation.
Documentation for new 2.4 releases will be generated from *.rst files with Sphinx;
documentation for new 3.0 releases will be generated from *.markdown and *.hpp files with Doxygen;
all generated documentation snapshots linked with official releases will be kept.

Ok, I see. Thanks for the clarification :+1:

Hmm I would urge the dev team to think twice about doing it this way. This will mean that fixes will never be ported among branches which is quite stupid, expecially from documentation. I would say, take a pick, stick to that and keep both documentations in that single format!


Unity crashes if we don't create the body tracker twice

Hi,
SInce we use the new body tracker SDK (1.1.0), we need to create twice the body tracker in order to prevent unity from crashing when leaving the software.
Thank you for your help
                            if (KinectAzureDllWrapper.K4A_CreateConfigBodyTracker(g_iCameraOrientation, false, 0, g_bIsLiteModel))
                            {
                                Debug.Log("Config body tracker created\n");
                                if (KinectAzureDllWrapper.K4A_CreateBodyTracker())
                                {
                                    //For kinect body tracker issue
                                    KinectAzureDllWrapper.K4A_CreateBodyTracker();
                                    Debug.Log("Body tracker created !\n");
                                }
                             }

BT SDK: 1.1.0
OS version: Windows 10.0.19042
GPU model : Nvidia Geforce GTX 1050
tracker_config.processing_mode : K4ABT_TRACKER_PROCESSING_MODE_GPU

Hi @Moovency is there any way I can see more of this code to see how the background thread is being disposed?


Increase file size limit from 15 megs to 100 megs.

Please consider this request

File size increased to 30mb, six years later, take it or leave it


Invoke-SSHCommand will attempt to run against down host

Invoke-SSHCommand will attempt to run against a session that has an IsConnected of False and the system has been shutdown.  It looks like it tries to connect if IsConnected is false, but doesn't check after that to see if it actually connected.  Should be a minor change to add another if statement.

Actually it doesn't look like it does try to connect if it isn't connected.  It already had a type and was trying to do a $s.session.connect(), but $s isn't a variable in the script, so it would get an error.

You cannot call a method on a null-valued expression.

So there are probably 2 things that could be changed in it with regards to disconnected hosts.

merged the part that fixes this separately from the pull request


CURLOPT_RETURNTRANSFER was set twice

CURLOPT_RETURNTRANSFER was set twice. Removed the second one.

@spiritinlife CURLOPT_RETURNTRANSFER is now deprecated, for example in TCPDF it got removed.
Should we drop it ?
https://github.com/tecnickcom/TCPDF/pull/675
https://github.com/tecnickcom/TCPDF/commit/2dc30ba64fb58bfdb663a86f2653a309a2dbf4b4


Visual Studio 2015 Update 3 - Typescript 2 beta - Intellisense broken

I would like to update gulp-typings from 1.3.6 to 2.0.3 but it brokes Visual Studio intellisense.
Here my configuration:

Visual Studio 2015 Update 3
Typescript 2.0 beta from https://www.microsoft.com/it-it/download/details.aspx?id=48593
Angular 2 project rc4

After updated gulp-typings to 2.0.3 intellisense dosen't work anymore....restore version to 1.3.6 it makes all IDE works great!

Are you sure about that? Don't know why that should be...
Does intellisense not work for this plugin? Or for your complete project?
Please retry.

Yes i'm sure....i have tested in different pc and configurations. Do you have any way to get a sample project and configuration? i could prepare you a sample project. Tell me.

What do you mean by "intellisense not working"? Do typings files get installed? If not, did you notice the change from "ambient" to "global" keyword in typings.json?

I mean that you could not work with autocomplete on visual studio, or find references, or open definition command and so on ....i mean also definitions form "libs.d.ts" are broken!
Typings are correctly installed and configured. In fact when i just revert gulp-typings from 2.0.3 to 1.3.6 and restart visual studio everything work correctly on IDE.

Does Visual Studio Code work?

We don't use it.

... I'm pretty busy right now, maybe I'll have some time next week to look into this. In the mean time check out typings cli as alternative or @types scope on npm

I can verify this. VS2015 update 3, Typescript 2 beta, gulp typings added to package.json ("@types/gulp": "3.8.31"), resolved properly including all dependencies. Intellisense does not work any more in Typescript source codes.

@kataik Just try to move gulp typings to 1.3.6 .... and verify again ... it works again..right?

@kataik That repo has nothing to do with this project.

@blakeembrey @meriturva  I doubt that the issue is related to @types/gulp, I suspect it is related somehow to the process of parsing through type definitions and gets broken as soon as a type definition gets parsed. I've just created a plain Web Core RC2 and did the followings:

created a typescript file at the root of the project called gulpfile.ts
typed in console.log("hello world");, Intellisense worked
downloaded type definition for gulp using npm i -D @types/gulp
deleted the statement and retyped it again in the source file, Intellisense worked
imported gulp into the source file using import * as gulp from "gulp";
deleted the statement and retyped it again in the source file, Intellisense did not work
removed the import, Intellisense still did not work
removed the typing from package.json, Intellisense still did not work
removed the typing from node_modules, Intellisense works again

I did the same with various other packages, like del.js, node.js, the behavior was the same.

Just got an idea what could be causing this. Going to push an update.

@kataik Could you try 2.0.4 from npm?
I think the problem might have something to do with @types/gulp specifying @types/node as dependency.
Currently gulp-typings has typings-global as dependency.
typings-global now uses a install script that looks for the current node version in your environment and then tries to install the matching @types/node version from npm...
I fixed a few things within typings-global that may have led to this error. If this issue persists, I'll remove typings-global from gulp-typings So please report back.
In general I find it confusing when @types packages specify @types/node in a specific version as dependency without knowing anything about the target node environment...

Hi,
i have the same problem with intellisense as mentioned above.
@philkunz Where can i find 2.0.4 on npm, I only get npm ERR! No compatible version found<EMAIL_ADDRESS>

@HJoost I mean<EMAIL_ADDRESS>and not typescript.

btw: typings-global now searches the dependency tree in a postinstall script and will only install @types/node when there is not yet another a version present (e.g. installed as dependency of any other @types package).

@philkunz Version 2.0.4 seems to work! so thanks.......you could close issue!


MSC compiler and options define in c2mir

Unlike mingw windows compiler requires to use windows.h instead of specific headers, something I hoped to avoid.
windows.h causes issues with #define options c2m_ctx->options in c2mir.c.
@vnmakarov what name would you prefer instead? I've renamed it to c2m_options in my cmake wip branch.
https://github.com/logzero/mir/tree/cmake
Btw I am using a separate winbuild.yml action. Is it acceptable or should it be merged into build.yml?
https://github.com/logzero/mir/blob/cmake/.github/workflows/winbuild.yml

@vnmakarov what name would you prefer instead? I've renamed it to c2m_options in my cmake wip branch.
https://github.com/logzero/mir/tree/cmake

c2m_option is ok for me.

Btw I am using a separate winbuild.yml action. Is it acceptable or should it be merged into build.yml?
https://github.com/logzero/mir/blob/cmake/.github/workflows/winbuild.yml

Yes, if the current trunk is passing it, I'd like to merge it into build.yml.
Thank you again for working on windows port.
Btw, I implemented call ABI compatibility for c2m for all targets except win64.  I did not look into C windows call ABI (e.g. how small aggregates are passed and returned).  Probably win64 needs some work here too.  I'll look into this when I have more time.