OnCompletion perform a file related action

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.
[X] I am only requesting a single feature. Multiple changes should be split into individual requests, with links between them.
[X] I believe my requested feature will be generally applicable to other users, not just me: it is not uniquely tied to my personal workflow.

🔖 Feature description
When a task is marked as being complete perform an action (or subset) available in the shortcut menu in Obsidian.  This would apply to the file the task is defined in.  Example of applicable that could be applied:

Make a copy
Move file to...
Bookmark...
Rename...
Delete

✔ Solution
Operation
The feature will perform actions that will be late-evaluated.
For example, if the folder does not exist it would be created. If a file name already exists Tasks would append (x) to ensure file name uniqueness.
If the API is public, other plugins could add their own actions. For example,  in the screenshot above I have options attributed to Iconize. The authors could add their Change and Remove icon.
Error handling
There are situation in which an action cannot be completed.  These would need to be handled with the user being informed.
Log files could be one option, although an entry in the file the Task is defined would probably be more visible.
❓ Alternatives
No response
📝 Additional Context
No response

Hi. Thanks for the suggestion.
Some things I would like to understand:

When exactly does the menu pop up?
What determines the content of the menu? For example, in your typed list, bookmarking a file seems unrelated to completing a task.
What is late-evaluated?

Finally, can you please give some real-world examples of why you believe this functionality would be widely used?
Thank you.

Hi,

The menu is part of the obsidian core program. I make it appear by
showing file explorer and right clicking on a markdown file. I've attached
a gif to demo this action.
[image: Obsidian.gif]

Re the menu it is built up from two parts:
a. Entries that are a core part of Obsidian core  (eg Delete, Rename)
b. Entries that are added to the menu after one installs a plug. (I
have the Iconize plugin and it added the options Change icon and Remove
icon).

From Wikipedia:
In computing, late binding or dynamic linkage—though not an identical
process to dynamically linking imported code libraries—is a computer
programming mechanism in which the method being called upon an object, or
the function being called with arguments, is looked up by name at runtime.

Applied in this context, certain details such as the name of the file can
only be determined at the time of the action. When you open a markdown it
may have a particular name yet this can be changed AFTER the file is
loaded. When a delete action is executed it needs to resolve the name at
that time.

Use-case
My method of working consists of having two folders, in_progress and
completed. When I complete a file I move it from in_progress to
completed.

Others may simply require a file rename, for example appending _done to
the original name
My request was wide rather than being limited to my exact needs because I
believe that others will find innovative uses that I might not have thought
of. The same wide reasoning was applied when I made reference to
third-party plugin interaction.
Let me know if anything needs additional clarification.
Regards,
Alan Bonnici
On Fri, 11 Oct 2024 at 09:45, Clare Macrae <
@.***> wrote:

Hi. Thanks for the suggestion. Some things I would like to understand:
When exactly does the menu pop up? What determines the content of the menu?
For example, in your typed list, bookmarking a file s
DuckDuckGo removed one tracker. More
https://duckduckgo.com/-w-39bLvqjaxHPfENeX8b6oIoCCTkrgcffobpgU0h1roV8D0Da0jd86gU3E2d3rzAiEjEi-lektdXsQipLb7Kw1G7erJLETLgjMfEUIj5gvv7TYpvG4SFGKUsQcCuOrNJ7VueNzQq-K33BgLYTegJ1cqVGLuZSLxnTzVM6YrHHqYNgxF5-dn8TsUS_wQVvY3E6ojCx4fIk4VOL9gI8VtFqY2vnPHTsxZHIvlKBqlr1zpU-FYDA3Q2qXe-mcu92I6Ydt9RLljP2rPGG6sDfCEz3E5peHsy1CInof6CL3GWQO_K683ZuBNbAL9rzkrj5jFIan6a-jMxwPa9uJ0sS0sEdQZlS5pyYGSS1dS0u1F5eAXQSS851gcL8NO8Gnfz9XTcsvTb7K9_dYn1p3YyRXw9diiJi0bAw
Report Spam
https://duckduckgo.com/-w-39bLvqjaxHPfENeX8b6oIoCCTkrgcffobpgU0h1roV8D0Da0jd86gU3E2d3rzAiEjEi-lektdXsQipLb7Kw1G7erJLETLgjMfEUIj5gvv7TYpvG4SFGKUsQcCuOrNJ7VueNzQq-K33BgLYTegJ1cqVGLuZSLxnTzVM6YrHHqYNgxF5-dn8TsUS_wQVvY3E6ojCx4fIk4VOL9gI8VtFqY2vnPHTsxZHIvlKBqlr1zpU-FYDA3Q2qXe-mcu92I6Ydt9RLljP2rPGG6sDfCEz3E5peHsy1CInof6CL3GWQO_K683ZuBNbAL9rzkrj5jFIan6a-jMxwPa9uJ0sS0sEdQZlS5pyYGSS1dS0u1F5eAXQSS851gcL8NO8Gnfz9XTcsvTb7K9_dYn1p3YyRXw9diiJi0bAw
Hi. Thanks for the suggestion.
Some things I would like to understand:

When exactly does the menu pop up?
What determines the content of the menu? For example, in your typed
list, bookmarking a file seems unrelated to completing a task.
What is late-evaluated?

Finally, can you please give some real-world examples of why you believe
this functionality would be widely used?
Thank you.
—
Reply to this email directly, view it on GitHub
https://github.com/obsidian-tasks-group/obsidian-tasks/issues/3115#issuecomment-2406747278,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXDMNAB7QPENT7UEQZIBATZ2562FAVCNFSM6AAAAABPYHNIK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBWG42DOMRXHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi, thank you for the reply.
I tried to quote your text to reply, but it's been mangled by GitHub's very-unhelpful formatting of email text. So the GitHub "Quote reply" facility runs in to one long sentence:

Hi, 1. The menu is part of the obsidian core program. I make it appear by showing file explorer and right clicking on a markdown file. I've attached a gif to demo this action. [image: Obsidian.gif] 2. Re the menu it is built up from two parts: a. Entries that are a core part of Obsidian core (eg Delete, Rename) b. Entries that are added to the menu after one installs a plug. (I have the Iconize plugin and it added the options Change icon and Remove icon). 3. From Wikipedia: In computing, late binding or dynamic linkage—though not an identical process to dynamically linking imported code libraries—is a computer programming mechanism in which the method being called upon an object, or the function being called with arguments, is looked up by name at runtime. Applied in this context, certain details such as the name of the file can only be determined at the time of the action. When you open a markdown it may have a particular name yet this can be changed AFTER the file is loaded. When a delete action is executed it needs to resolve the name at that time. 4. Use-case My method of working consists of having two folders, in_progress and completed. When I complete a file I move it from in_progress to completed. Others may simply require a file rename, for example appending _done to the original name My request was wide rather than being limited to my exact needs because I believe that others will find innovative uses that I might not have thought of. The same wide reasoning was applied when I made reference to third-party plugin interaction. Let me know if anything needs additional clarification. Regards, Alan Bonnici

For future reference, I find it generally works better to reply in the GitHub web UI.

Use-case
My method of working consists of having two folders, in_progress and
completed. When I complete a file I move it from in_progress to
completed.

OK, let's try and convert that into a precise list of steps....

In Obsidian, create a file called in_progress/Project 1.md
Paste in to that file the following text:

- [ ] Do the project 🏁 prompt
- [ ] Step 1
- [ ] Step 2
- [ ] Step 3

Switch to Reading Mode
Click on the first checkbox, to complete it

Expected actions:

The On Completion flag (🏁) means that Tasks makes Obsidian pop up a context menu with an option to prompt the user to move the entire file to a different folder, which the user must select.

If they are not the correct steps, please (in the GitHub web UI) write an alternative list of steps that you want.
Be sure to specify all details precisely.

After selecting the "On Completion 🏁" action

I expect to have an option on the menu that comes up. In a mockup I
called this: file action: move.
Once the option is selected I am provided a list of directories into
which the file is moved.  I've recorded the move file option in Obsidian
Core to show the functionality there.

My expectation is that when the complexion action is triggered the file is
moved to the indicated folder.
Regards,
On Fri, 11 Oct 2024 at 23:33, Clare Macrae <
@.***> wrote:

Use-case My method of working consists of having two folders, in_progress
and completed. When I complete a file I move it from in_progress to
completed. OK, let's try and convert that into a precise l
DuckDuckGo removed one tracker. More
https://duckduckgo.com/-oRZ56mMtS3LojGxCIs2UNglUmABYvDv1gwy6BAEuSy392e39BDXRneD6Foyu8-39bIvqrbw3Avi-jLeF1UEUDBICQLuzt0Nk0K64y3MawBtI9v4zRN4InbuHmZGIGZE8lSmx4e8gWlzpqtOzKYFc21lYbYvyqgAne-NnTQe7B9xJ-rGYAzQcidU7D6RwRbch17D0Es7GB3hS8NCZ504QOv9xKVetPaj1JB0XQI77uLZ-UnMbvMAH6yFy22kyqhKxJeMQyreD_h4xS5jUzv_ueMHjkzphRJSzZJ3rvSpkAy6Zljtci-dc7cbmX74mi1hSsi_yhdcF85GeGK71Pzy8LZFTETvHYFb7gd3crGU0xG6Fo0eVDUO1h6lbJ7W119HOzgOa9uJ0sTUs0eQZFS5pxKDonYvPB4xCEaNxnu4ABcEmJ7PneDT389V0_JLl6_ygz3mp8LdGMnV8LUYoiY9GwM
Report Spam
https://duckduckgo.com/-oRZ56mMtS3LojGxCIs2UNglUmABYvDv1gwy6BAEuSy392e39BDXRneD6Foyu8-39bIvqrbw3Avi-jLeF1UEUDBICQLuzt0Nk0K64y3MawBtI9v4zRN4InbuHmZGIGZE8lSmx4e8gWlzpqtOzKYFc21lYbYvyqgAne-NnTQe7B9xJ-rGYAzQcidU7D6RwRbch17D0Es7GB3hS8NCZ504QOv9xKVetPaj1JB0XQI77uLZ-UnMbvMAH6yFy22kyqhKxJeMQyreD_h4xS5jUzv_ueMHjkzphRJSzZJ3rvSpkAy6Zljtci-dc7cbmX74mi1hSsi_yhdcF85GeGK71Pzy8LZFTETvHYFb7gd3crGU0xG6Fo0eVDUO1h6lbJ7W119HOzgOa9uJ0sTUs0eQZFS5pxKDonYvPB4xCEaNxnu4ABcEmJ7PneDT389V0_JLl6_ygz3mp8LdGMnV8LUYoiY9GwM

Use-case
My method of working consists of having two folders, in_progress and
completed. When I complete a file I move it from in_progress to
completed.

OK, let's try and convert that into a precise list of steps....

In Obsidian, create a file called in_progress/Project 1.md
Paste in to that file the following text:

[ ] Do the project 🏁 prompt

[ ] Step 1

[ ] Step 2

[ ] Step 3

Switch to Reading Mode
Click on the first checkbox, to complete it

Expected actions:

The On Completion flag (🏁) means that Tasks makes Obsidian pop up
a context menu with an option to prompt the user to move the entire file to
a different folder, which the user must select.

If they are not the correct steps, please (in the GitHub web UI) write an
alternative list of steps that you want.
Be sure to specify all details precisely.
—
Reply to this email directly, view it on GitHub
https://github.com/obsidian-tasks-group/obsidian-tasks/issues/3115#issuecomment-2408147345,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXDMNFYRSVXXGZD5QCFQU3Z3A7Z5AVCNFSM6AAAAABPYHNIK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBYGE2DOMZUGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I deleted my email reply and rewrote the answer directly into github.
After selecting the "On Completion 🏁" action

I expect to have an option on the menu that comes up. In a mockup I called this: file action: move.

Once the option is selected I am provided a list of directories into which the file is moved.  I recorded the move file option in Obsidian Core to show the functionality there.

My expectation is that when the completion action is triggered the file is moved to the indicated folder.
I limited my request to the functionality already existing in Obsidian.
More than happy to clarify further if need be.
Regards,

Thank you @chribonn, that is clearer.
Let's continue trying to narrow it down to an unambiguous set of steps.
Is this what you mean...
How to test the feature - Take 2
Happy Path - the feature is expected to work

In Obsidian, create two folders:

some folder/in_progress/
some folder/published_work/
These are intentionally more than one level deep, to demonstrate the full behaviour

In Obsidian, create a file called some folder/in_progress/Project 1.md

Paste in to that file the following text:
- [ ] Do the project
- [ ] Step 1
- [ ] Step 2
- [ ] Step 3

Remain in Source or Live Preview modes

Put the cursor on the end of the Do the project line

Type part of on completion to trigger showing of the on completion options

From the pop-up list of available on completion options, select Move file containing task to different folder

From the pop-up list of folders in the vault, select some folder/published_work/
The task line will now look like:
- [ ] Do the project 🏁 movefile 'some folder/published_work/'

Switch to Reading Mode

Click on the first checkbox, to complete it

Confirm that the file has moved from:

some folder/in_progress/Project 1.md
to
some folder/published_work/Project 1.md

Confirm that the task has been marked as completed, for example:
- [x] Do the project 🏁 movefile 'some folder/published_work/' ✅ 2024-10-14

Yes that pretty much sums it up.
Even though it is not my use case I looked up the delete feature.  More than happy to share my thoughts on it.

Even though it is not my use case I looked up the delete feature. More than happy to share my thoughts on it.

No, please don't! 😄
The huge backlog of requests for Tasks is never-ending and rather demotivating - I definitely don't need to be spending my spare  time dealing with things that even the requestor will not even use! 😢

Yes that pretty much sums it up.

Right, so here is a rough overview of what this requires

Teach the task-reading code to allow the 'On Completion' field to store folder paths

This will be a lot harder to parse, as it is effectively free text
It will have to allow spaces in the folder paths
It might seem natural to delimit the text with ' or " - single or double quotes
However, either or both of those quote types could actually be present in the folder paths, so generalising is going to take care and effort

Teach the auto-suggest code to suggest folder names in this situation

The auto-suggest for dependencies will give some ideas for how to implement this
It searches task descriptions, and could likely be adjusted to search for folders

Teach the on-completion implementation to act on files as well as folders

Redesign or reimplement the 'On Completion' mechanism so that as well as acting on the completed task, it can also separately act on the whole file containing the completed task.
The Tasks plugin entirely acts on individual task lines, so this will take some effort to establish a logical, maintainable and testable approach.

This is a lot of work for a rather specialised mechanism, that looks fairly specific to your workflow.

Pretty much a fantastic job at summarising the need.
I am not familiar with what is involved under the hood, but could one borrow from linux?
One would escape special characters and implement functionality similar to the mv command. Assuming it were possible, mv could be used to copy and rename a file;?

Pretty much a fantastic job at summarising the need.

Thank you, and thank you for continuing the conversation....
We really need this sort of level of detail in feature requests and bug reports to ensure that we really understand the request in full, to avoid wasting volunteer time implementing something that we later discover was not what the user actually meant.

I am not familiar with what is involved under the hood, but could one borrow from linux?

No, it would need to use the Obsidian API to do the move.

One would escape special characters and implement functionality similar to the mv command. Assuming it were possible, mv could be used to copy and rename a file;?

Yes one could, but it all takes time, has to be tested cross-platform, and documented - and once written, has to be maintained forever more....

Workarounds/alternative implementations
Here are a few ways that you could use existing Obsidian and/or Tasks facilities to streamline your current workflow...
Use the Tasks Backlinks
Instead of completing the special task in the Tasks query results:

Click on its backlink
Complete the task in the Reading or Live Preview modes
Then use Obsidian's "Move File" command to move the file to the desired location

Use a tag on these special tasks for visibility

Obsidian is designed to work really well with tags
You can define a tag to use on these special tags, to remind you to move the file when you complete the task

Style the tasks with that tag to stand-out

Searching for Styling in the Tasks docs to find out how to highlight a specific tag
You can then make this tag stand out visually, as a reminder for when you complete the task

Make Tasks help you find the files you should have moved

Write a Tasks search for:

Tasks that are in the articles_wip folder
That are done
And that have the special tag

You can then check that query every few days, and use backlinks to move any files you forgot to move before

Research automation plugins

There are likely existing plugins that will allow you to streamline moving files to specific folders
Try searching online
If you don't find anything, you can ask in the #plugin folder in Obsidian Members Discord

This is a lot of work for a rather specialised mechanism, that looks fairly specific to your workflow.

Hi @chribonn, it's my "job" in looking after the Tasks plugin to try to make the best use of the finite amount of volunteer time.
And that means weighing up things including:

the size and complexity of requests
the likelihood of them being widely used

In cases like this, where the time needed to implement a feature would greatly exceed the likely amount of user time that it would save, I'm afraid the task is never realistically likely to reach the top of the priority list.
There are so many such requests that I've saved a pre-written answer for this situations - see below.
Thanks for using Tasks, and I trust you will be able to make use of the suggestions I made above for ways to streamline your workflow.

In view of this size of the backlog for this project, and the demotivating effect of a very long backlog on volunteer energy levels, I'm going through a slow process of reviewing tasks for things that are one or more of the following:

unlikely to be realistically achievable, from the design of the current code, and the planned future refactorings
not sufficiently high priority to a broad community of users, based on the feedback I receive from a variety of sources
do not fit the core purpose of the Tasks plugin
are better covered by a different plugin - to share the development and maintenance effort

So I'm marking this one as 'not planned'. This doesn't mean 'won't fix' - it means not likely to be done in the foreseeable future.

I understand.  When we volunteer our time or enhance our "baby" we need to
prioritise.
I have a work around (use the move option or drag the file) so I am not
blocked.
Thanks for your time, and if it is on the list it may someday surface :-)
On Tue, 15 Oct 2024 at 22:27, Clare Macrae <
@.***> wrote:

This is a lot of work for a rather specialised mechanism, that looks
fairly specific to your workflow. Hi @chribonn, it's my "job" in looking
after the Tasks plugin to try to make the best use of the
DuckDuckGo removed one tracker. More
https://duckduckgo.com/-5-ZgRCRiRvZXquhg3CfdzlOTx1BeXgl7XTTGO13EO6N2FPv-SONsK0kDIMlALkuzDu5X6xajtsc-p14GuaoBZC1wSdLNjoAbmUhT64cizzg4eIZ0PsmItH5ycx24YX-KAtbG4jVEZWPL5EHBLxfsDHKnoZmdr5zx07MGRyL5Sgapa9c6VPhWDQNkNql3vpnLvdiPTD1nSJcsb-Vb5gurA3whPdxeaXh7MtQiJ638QJRDrYSE65rbeEPYWlYY3ZwTjOzyN2juavoy0cu7XtRGli6tgjiDOq3FOJQVJ7dMPswsGQYGGrjXeBgfGmdoJP_36umpZfmnyV7-8xP-Xuxkiuhq_FEDFp2Rg
Report Spam
https://duckduckgo.com/-5-ZgRCRiRvZXquhg3CfdzlOTx1BeXgl7XTTGO13EO6N2FPv-SONsK0kDIMlALkuzDu5X6xajtsc-p14GuaoBZC1wSdLNjoAbmUhT64cizzg4eIZ0PsmItH5ycx24YX-KAtbG4jVEZWPL5EHBLxfsDHKnoZmdr5zx07MGRyL5Sgapa9c6VPhWDQNkNql3vpnLvdiPTD1nSJcsb-Vb5gurA3whPdxeaXh7MtQiJ638QJRDrYSE65rbeEPYWlYY3ZwTjOzyN2juavoy0cu7XtRGli6tgjiDOq3FOJQVJ7dMPswsGQYGGrjXeBgfGmdoJP_36umpZfmnyV7-8xP-Xuxkiuhq_FEDFp2Rg
This is a lot of work for a rather specialised mechanism, that looks
fairly specific to your workflow.
Hi @chribonn https://github.com/chribonn, it's my "job" in looking
after the Tasks plugin to try to make the best use of the finite amount of
volunteer time.
And that means weighing up things including:

the size and complexity of requests
the likelihood of them being widely used

In cases like this, where the time needed to implement a feature would
greatly exceed the likely amount of user time that it would save, I'm
afraid the task is never realistically likely to reach the top of the
priority list.
There are so many such requests that I've saved a pre-written answer for
this situations - see below.
Thanks for using Tasks, and I trust you will be able to make use of the
suggestions I made above for ways to streamline your workflow.
In view of this size of the backlog for this project, and the demotivating
effect of a very long backlog on volunteer energy levels, I'm going through
a slow process of reviewing tasks for things that are one or more of the
following:

unlikely to be realistically achievable, from the design of the
current code, and the planned future refactorings
not sufficiently high priority to a broad community of users, based
on the feedback I receive from a variety of sources
do not fit the core purpose of the Tasks plugin
are better covered by a different plugin - to share the development
and maintenance effort

So I'm marking this one as 'not planned'. This doesn't mean 'won't fix' -
it means not likely to be done in the foreseeable future.
—
Reply to this email directly, view it on GitHub
https://github.com/obsidian-tasks-group/obsidian-tasks/issues/3115#issuecomment-2414944650,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXDMNGNSGJA7Y7VFT62Z5DZ3V3EXAVCNFSM6AAAAABPYHNIK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMJUHE2DINRVGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thank you for your kind understanding.


Disabling a Remote does nothing

Disabling a Remote should also disable all of the Remote's Packages (including disabling webhooks)

Fixed in 3.1.0-DEV


Add support for Chrome in headless mode via ChromeDriver (implements #135)

To implement #135  i've created a new browser :chrome_headless, renamed the ua_capabilities to a more generic default_capabilities and added the needed parameters for chrome headless to the default_capabilities.

Sorry for the delay.
This looks great, thank you very much!!


Unable to set jarUrl for CreateTask in any other place than properties.gradle

Currently I'm not able to create build that will be able to create different AEM instances like 6.3 and 6.4 - there is only one way of setting aem.instance.local.jarUrl in gragle.properties file.
It would be great to have this property owerritable like other props.

Rather gradle.properties😀
Have you checked?
aemCreate {
    instanceFiles {
        url('file.jar')
        url('license.properties')
    }
}

Then remove properties to get that working

Thanks a lot @pun-ky


Use autoload-dev setting on "composer.json" file

This also removes "tests/bootstrap.php" file and defines date.timezone in "phpunit.xml.dist".
See the discussion starting on #356.

:+1:

Thanks


Access timestamp from buffer.metadata.rtp in VAD

When integrating the latest version of membrane_rtp_plugin into a project, I encountered the following error:
[error] GenServer #PID<0.1650.0> terminating
** (KeyError) key :timestamp not found in: %{rtp: %{csrcs: [], extension: %Membrane.RTP.Header.Extension{data: <<16, 255, 0, 0>>, profile_specific: <<190, 222>>}, has_padding?: false, marker: true, payload_type: 111, sequence_numb
er: 7508, ssrc: 950946435, timestamp: 984164149, total_header_size: 20}}
    (membrane_rtp_plugin 0.8.0) lib/membrane/rtp/vad.ex:98: Membrane.RTP.VAD.handle_process/4
    ...

I was able to trace it down to here. Timestamps are present in the rtp map, but not as a top level key. Changing this fixes the issue.

I wasn't totally sure how/when to test this. Any suggestions would be welcome 😄

Closing as this seems unnecessary when we were doing correct payloading and depayloading in our pipelines.


Serialized certificates loaded as X509Certificate2

Instances of X509Certificate2 passed into an MqttClientOptionsBuilder lose data and functionality by being loaded as an X509Certificate, most notably the private key which servers may require for client validation.
To the best of my knowledge, instances of X509Certificate do not lose data or functionality by being loaded as an X509Certificate2.

Thanks for you contribution. Good work 👍


Log with a custom logger instead of the slog.DefaultHandler

Is your feature request related to a problem? Please describe.
I want to use my own logger.
Describe the solution you'd like
An option in the app declaration, of type slog.Handler.

Hi @EwenQuim, can I work on this?

Yes of course, contributions are welcome ! 🙏🏼
We'll probably change the way we handle server Options in the future, but don't hesitate to make a PR anyway !


Fix useQuery

Fix infinite re-render in useQuery because of non-stable data inside a useMemo.

Can we add this case to the tests?


fix: update AB marker script to support plugins

Fixes issues with some plugins on ab, also makes it future proof and doesn't use complex css selectors.
Fixes use of deprecated methods.
Increments version.
Fixes ESL mistake.

I do have to say I don't think it looks very good to put the SeaDex tag on the first element instead of at the end when using it together with the Mediainfo Improvements script.
Comparing it to how I had it (with the Sneedex script here).

Also it's missing the @run-at document-idle so it only works if you manually make sure that the Mediainfo Improvements script loads before the SeaDex one.

Think I agree with that, feel free to make an updated PR on top of #17


Configuration Cascading (.eslintrc) not working

The ESLint plugin only considers the first .eslintrc file that it finds, rather than properly cascading.
running eslint from the command-line works as expected.
See: "Configuration Cascading and Hierarchy" in Configuring ESLint
Preferences:
Languages & Frameworks > JavaScript > Code Quality Tools > ESLint

Configuration file:
[x] Search for suitable .eslintrc
When linting a javascript file, the IDE looks for .eslintrc starting from the file's
folder and then moving up to the filesystem root.

is this still relevant?


Intellisense for schema

Hi. It would be great if the extension could also give me intellisense when I type in.
Lot of the syntax like the data types, directives like @updatedAt @default(now()) @id are part of the SDL and can be added to intellisense.

Intellisense requires a language server and it is a lot of work to build (for example this random language: https://github.com/ballerina-platform/ballerina-lang/tree/master/language-server/modules/langserver-core/src/main/java/org/ballerinalang/langserver). It would probably need to be built in rust to take advantage of all features of the existing AST parser.

Hmm.. While I have read a lot of blogs about it, I have not tried building one myself. So, can't say much about how hard it is to build one. But yeah, this can be parked for sometime in the future since it is not a blocker anyways. Just throwing in ideas :-)

Closing this as a duplicate of https://github.com/prisma/vscode/issues/96 and https://github.com/prisma/vscode/issues/107 now.
We just added (or will, via PR) a Language Server written in TS. Our Rust AST code wil possibly be used via the binaries, similar to how Prisma Client does it (and the VS Code extension already does for the formatter).


wireless/bluetooth: add RPMSG HCI controller support

Summary
wireless/bluetooth: add RPMSG HCI controller support
related issue https://github.com/apache/nuttx/issues/8766
FYI @xiaoxiang781216
Impact
The bluetooth HCI controller can be accessed by remote cores as remote HCI device.
Testing
nrf5340-dk

@xiaoxiang781216 thanks for the review. Fixes as a separate commit, I'll squash after approval.

squashed


Use of general eigenvalues solver in weyl_coordinates sometimes throws convergence error

It looks like the optimizations in #6896 can sometimes cause problems with convergence. @albertzhu01 found several cases that triggered this problem, although there seems to be some environment-dependence that makes it hard to reproduce across machines - the resulting almost-identity-matrix up to 1.E-16 scale deviations can cause error in lapack geev.
Any thoughts @jakelishman ?
---- from qiskit-experiments issue  https://github.com/Qiskit/qiskit-experiments/issues/846#issuecomment-1205772386_
The following test case reliably reproduces the error:
import numpy as np
from scipy import linalg as la
mat = np.array(
    [
        [0.9999999999999998j, 0j, -3.469446951953614e-18j, 0j],
        [0j, 0.9999999999999998j, (8.673617379884035e-19+2.6020852139652106e-18j), -6.938893903907228e-18j],
        [-3.469446951953614e-18j, (8.673617379884035e-19+2.6020852139652106e-18j), 0.9999999999999998j, 0j],
        [0j, -6.938893903907228e-18j, 0j, 0.9999999999999998j]
    ]
)
la.eigvals(mat)

Output:
LinAlgError                               Traceback (most recent call last)
Input In [17], in <cell line: 9>()
      1 from scipy import linalg as la
      2 mat = np.array(
      3     [
      4         [0.9999999999999998j, 0j, -3.469446951953614e-18j, 0j],
   (...)
      7         [0j, -6.938893903907228e-18j, 0j, 0.9999999999999998j]]
      8 )
----> 9 la.eigvals(mat)

File ~/opt/anaconda3/envs/pygsti2/lib/python3.8/site-packages/scipy/linalg/_decomp.py:880, in eigvals(a, b, overwrite_a, check_finite, homogeneous_eigvals)
    811 def eigvals(a, b=None, overwrite_a=False, check_finite=True,
    812             homogeneous_eigvals=False):
    813     """
    814     Compute eigenvalues from an ordinary or generalized eigenvalue problem.
    815
   (...)
    878
    879     """
--> 880     return eig(a, b=b, left=0, right=0, overwrite_a=overwrite_a,
    881                check_finite=check_finite,
    882                homogeneous_eigvals=homogeneous_eigvals)

File ~/opt/anaconda3/envs/pygsti2/lib/python3.8/site-packages/scipy/linalg/_decomp.py:247, in eig(a, b, left, right, overwrite_a, overwrite_b, check_finite, homogeneous_eigvals)
    244     w = wr + _I * wi
    245     w = _make_eigvals(w, None, homogeneous_eigvals)
--> 247 _check_info(info, 'eig algorithm (geev)',
    248             positive='did not converge (only eigenvalues '
    249                      'with order >= %d have converged)')
    251 only_real = numpy.all(w.imag == 0.0)
    252 if not (geev.typecode in 'cz' or only_real):

File ~/opt/anaconda3/envs/pygsti2/lib/python3.8/site-packages/scipy/linalg/_decomp.py:1356, in _check_info(info, driver, positive)
   1353     raise ValueError('illegal value in argument %d of internal %s'
   1354                      % (-info, driver))
   1355 if info > 0 and positive:
-> 1356     raise LinAlgError(("%s " + positive) % (driver, info,))

LinAlgError: eig algorithm (geev) did not converge (only eigenvalues with order >= 2 have converged)

Originally posted by @albertzhu01 in https://github.com/Qiskit/qiskit-experiments/issues/846#issuecomment-1205772386

A crude hack is: trap the exception and check if the code returned (info) satisfies info>0. If so, add normally distributed random numbers with standard deviation 1e-20 to the matrix and try to compute the eigenvalues again. That hack works in this case.
It could be that it's not just that the matrix is almost the identity. The degeneracy in the eigenvalues, or the diagonal, is necessary to cause the error... in this case at least. Changing one of the diagonal entries so that it ends in 9 rather than 8 is enough to see success.
In this case, multiplying the matrix by $\sqrt{-1}$ also avoids the error.

A crude hack is: trap the exception and check if the code returned (info) satisfies info>0. If so, add normally distributed random numbers with standard deviation 1e-20 to the matrix and try to compute the eigenvalues again. That hack works in this case.

The changes in #6896 were intended to avoid the random algorithm in TwoQubitWeylDecomposition, which after a lot of battle-hardening seems finally 🤞 immune to such pathologies. I guess rather than trapping the error and  ad-hoc randomizing, I'd rather trap the error and fall back to the TwoQubitWeylDecomposition alogorithm. Although having two paths like this worries me, and if the general eigensolver is unreliable maybe its better to simply use the TwoQubitWeylDecomposition algorithm everywhere unless the performance hit is substantial.

I think the use of randomization is quite different. And pretty small in terms of code and complexity. But, I understand that introducing another piece of randomness might result in a series of tweaks as failing cases trickle in under general use.
If there are understandable characteristics of offending matrices, we could make some kind of test suite in order to be more confident (if not perfectly) that a solution will work. I suppose a small subset of these would go in the big test suite.

Apropos environment-specific features: The example above succeeds when using MKL (on my machine). I'm not 100% sure because I used Julia (I didnt look up yet how to use mkl with scipy.linalg).  But, it looks like python and julia are calling the same lapack routines. Furthermore, with openblas, Julia fails with the same error as numpy.

It's definitely a function of the environment beyond just the specific blas implementation. On my linux system I do not encounter any failures with openblas, but on my m1 mac also using openblas it does reliably fail.

Just to follow up here, we've moved most of the two qubit synthesis code to rust and the eigensolver in faer seems seems to be immune from this issue.  I have generally observed that running on arm64 mac numpy/openblas has a lot of these numeric issues, besides this specific error we've seen a lot of weird numeric stability issues and failures on arm64 (I suspect it might be an apple clang issue, but lack the time and knowledge to really dig into it) and moving the numerics to rust has been a pretty blunt tool to avoid them. That being said @jlapeyre wrote the weyl_coordinates function in rust already, but we're not leveraging it from python yet, although the only remaining use of it is for tests. I'll push up a small PR to remove the scipy implementation and just expose the rust function to python and have that close this issue.

It looks like we could move the  stuff in local_invariance.py to Rust. Then test this from Rust rather than Python. But exposing weyl_coordinates from Python is reasonable in the meantime.


Junmeitu: No chapters found

Source information
Junmeitu 1.4.6
Source language
All
Steps to reproduce

Choose Browse > Sources > Junmeitu
Choose any entry
Error message "No chapters found" appeared
I tried to check via webview, and all of them accessible in webview

Expected behavior
Entry appeared as chapter.
Actual behavior
"No chapters found" error message.
Tachiyomi version
Aniyomi Preview r7473 and TachiyomiSY Preview r542
Android version
Android 11
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.15.3.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Can't reproduce in either app. Make sure you've got the updated extension trusted in both your apps, clear cache & database, and try again.

Probably corrupted files problem?

Maybe, definitely some kind of weirdness.


PWA support

Should be installable as a PWA

Latest issue seems to be from workbox precaching routes to /server/chunks/hooks.js


Offline/Windows Version?

Hi @dlvhdr
This project is 👍👍👍.
Any possibility of getting this project as a Windows application that works locally? There isn't any good options for Windows Hebrew touch typing learning.
Thanks!

Thanks @YisroelTech! Hmm the site doesn't need a server, so you can just open it locally I guess. Can you download the archive and tell me if it works by opening index.html hebrew-touch-typing.tar.gz ?

This indeed works great! Thanks for this.
How do you get this static HTML site? (This needs some compiling from the sources?)

Yeah exactly.
You clone this repo and run:
npm install
npm build

You downloaded https://github.com/dlvhdr/hebrew-touch-typing/files/7987583/hebrew-touch-typing.tar.gz and extracted it (both from the .gz and from the .tar)?
It works for me fine.

Hmm just guessing, maybe you have JS disabled?

So I actually download the git before but now I downloaded the tar file and opened the index file in the panheader folder and got this "30 mtime=1632576792.941674402 69 LIBARCHIVE.xattr.com.apple.lastuseddate#PS=F5z6YQAAAAAVNJ8CAAAAAA 59 SCHILY.xattr.com.apple.lastuseddate#PS=�œúa�4Ÿ�" JS was turned on any ideas?

Are you sure you opened index.html and not ._index.html?


add Enso RTL support

must add this line to enso-core/resource/index.blade.php
<link id="enso_css" href="{{ mix('css/enso.css') }}" rel="stylesheet" type="text/css"/>

;)

Make sure that you submit the PR to the core package..

Ok i will make a PR to the core package

Also, make sure that you only include in the PR the needed files.

the node package "bulma-rtl" is outdated, i submitted a fix but they aren't active
so i used my git repo
"bulma-rtl": "git+https://github.com/yacoubbelaoura/bulma-rtl.git#patch-1",

Hi @YacoubBelaoura,
at each composer update enso publishes all the FE assets from its packages. This means that everything you PR'ed here will be overwritten. This is what I meant by

Make sure that you submit the PR to the core package..

ah, ok thanks for clarification
i will submit the PR to the core package


Publishing to rubygems.org

Hi @ests , @fabioxgn ,
Is there any plan to upload the gem to https://rubygems.org/ so people could install it simply like gem install omniauth-amazon-sp-api ?

Amazing! Thanks


feat: Added Translator

Description
Added Translator.
Issue No.:
Fixes #111
Changes

Added Translator to the navbar.
Adjusted Navbar layout and spacing.
Styled Dropdown Menu for the Translator button.

Screenshot:-
https://github.com/user-attachments/assets/f8b40e6f-d7d5-45ae-ab83-d5095afd4cd1

Hi @AsmitaMishra24, few points:

Functionality looks good.
The position of button is quite redundant, and it also displaces the central logo. This might also break in responsive design. Please look for better placements/design.
(Not a hard requirement since this component might never change) We use tailwind CSS in the entire project, I see you have used plain CSS. Please migrate to tailwind CSS.

Hi @AsmitaMishra24, few points:

Functionality looks good.
The position of button is quite redundant, and it also displaces the central logo. This might also break in responsive design. Please look for better placements/design.
(Not a hard requirement since this component might never change) We use tailwind CSS in the entire project, I see you have used plain CSS. Please migrate to tailwind CSS.

@dvjsharma, ok....I will make the changes and inform you accordingly


Add DrawBox interaction

This adds ol.interaction.DrawBox, which is a simplified form of ol.interaction.Draw that allows the drawing of rectangles and squares. These shapes are drawn with only two points, the origin and the farthest corner. Under the hood, it's just a polygon, with 4 points that we manipulate to be in the correct positions.
This was added as a separate interaction, as suggested here:

https://groups.google.com/d/msg/ol3-dev/TpNSnScc1sQ/7MohTd2XX50J

Unfortunately I ran into a lot of issues trying to make the draw interaction extensible, so I ended up not extending it, and just copying the code I needed over, extending from ol.interaction.Pointer.

@tschaub Since I'm following your suggestion from that google groups discussion, I figured I'd raise this PR to your attention. :)

@tschaub all cleaned up.

This looks like a nice change @Morgul.  Thanks for the solid work on it.  I think it would be worth discussing the behavior a bit.
I'm guessing that most people would expect dragging to draw a box (I was surprised at first that this didn't work).  The current behavior is one click to start drawing and one click to finish.  This is more consistent with drawing other geometry types, but I'm still wondering if it is going to catch most people by surprise.
If we do decide that two clicks make a box, then I think drag should pan the map (as with the existing draw interaction).
I'm curious to hear other opinions.  Personally I think that consistency with the existing draw interaction may be unexpected for most people.  See also http://geojson.io/ (and anything that uses the Leaflet.draw plugin).

@tschaub Thanks! It was quite the adventure just getting up to speed on the project structure, closure compiler, etc. (Can't say I enjoyed that end of it, but I eventually beat it into submission. :P)
Regarding the behavior, while I can see your point about dragging not working being unexpected, let me explain why I chose the behavior I did.
The first reason was consistency; I expected that if I made an interaction that didn't work like the rest of the drawing interactions, my change would be less likely to make it in. Setting that aside, I personally prefer consistency, as that tends to have the least surprise. (In this case, that doesn't seem to have been the outcome, and in and of itself consistency doesn't seem like a strong argument.)
The second reason was my concern for mobile. Leaflet.draw doesn't support touch devices, and I suspected that having to do a drag motion on a tablet could be significantly more awkward than two simple taps; I didn't do anything overly scientific, but I did pass my iPad around to a few coworkers whose first reaction was to try tapping twice, as opposed to dragging.
As far as panning the map goes, I was unaware the draw interaction can pan the map. I'm definitely behind adding that support if we go the two tap route.
Really, I'm ok with either way of doing things, the moment we can get any consensus on it. And, it's not like the change is that big; if we can't generate consensus, we might pick one, merge this code in, and change later if there's strong objection to whichever approach we chose.

Just had a chat with my coworkers, and one point they made is that on mobile, you can't see a preview of the square with the two taps method, like you can with the mouse. If it was a drag, however, it would give you a preview just like on desktop.
That's honestly a point in favor of the dragging behavior. Hmm.

this should be possible now that #3673 is in
does this meet your use case as well @Morgul ?

@bartvde I'm not sure; I will need to play with it. (It'll be a little bit; the project I needed it for is under a deadline at the moment.)
Looking at it, it seems like it should allow me to draw a square or rectangle pretty easily, which is what this change was mostly about. It's very likely that it makes this change moot.

@bartvde It looks like this should be sufficient. Priorities have shifted at work so I haven't been able to test, but thinking through my use case, I'm reasonably confident I can make things work with #3673; it seems like a more elegant solution anyway.

okay I'll close this one out for now then @Morgul
Please reopen if you assess differently in the future.


Paired filter/aggregations do not work properly

When searching the catalogue on the website, selecting a (subject or contributor) filter on a query  makes the options in that filter go awry.
Slack discussion here: https://wellcome.slack.com/archives/C02ANCYL90E/p1687857127263849
Specifically:

Given a paired aggregation, we run a completely unfiltered terms aggregation, then we filter the results of that into a sub aggregation.
So the aggregation is asking “given the top 20 subjects in the whole index, how many documents that match the query are there in each subject?”
Rather than “given all the documents that match the query, what are the top 20 subjects in them, and how many documents are there in each?”
This explains why the values are different for different queries, but there is also a substantial crossover.

This is a simplified representation of the kind of query that is currently happening:
{
  "size": 0,
  "query": {
    "match": {"query.title": "banana"}
  },
  "aggs": {
    "subjects": {
      "global": { },
      "aggs": {
        "subjects":{
        "terms": {
          "field": "query.subjects.label.keyword",
         "size": 20},
         "aggs": {
            "filtered": {
              "filter": {
                "bool": {
                  "filter": [
                    {
                      "bool": {
                        "should": [
                          {
                      "match": {"query.title": "banana"}
                    }]
                      }
                    }

                  ]
                }
              }
            }
          }

        }
      }
      }
    }
  }

which yields buckets like these:
         {
            "key": "Sanitation",
            "doc_count": 66847,
            "filtered": {
              "doc_count": 0
            }
          },
           {
            "key": "Germany",
            "doc_count": 4638,
            "filtered": {
              "doc_count": 1
            }
          },

What I think is meant is a query like this:
{
  "size": 0,
  "query": {
    "match": {"query.title": "banana"}
  },
  "aggs": {
    "subjects": {
      "global": { },
      "aggs": {
        "subjects":{
          "filter": {
              "match": {"query.title": "banana"}
          },
          "aggs": {
            "subjects":{
            "terms": {
              "field": "query.subjects.label.keyword",
              "size": 20
           }}
          }
         }
      }
      }
    }
  }```
which yields these as the top three buckets:

       {
          "key": "Bananas",
          "doc_count": 13
        },
        {
          "key": "Musaceae",
          "doc_count": 8
        },
        {
          "key": "Fruit",
          "doc_count": 7
        },```

i.e. the top terms given the requested query and filters.

An even better refinement to filtering and aggregation has been discussed here : and is being implemented in the content API as part of this ticket https://github.com/wellcomecollection/platform/issues/5694


Add ability to delete posts in Microsub channel

This should be able to be done by #125 and from the full post view (#108)


Use autocommit rather than manually committing after each query.

I figured out a better way to do this, and I even tested it to make sure it worked correctly (which I didn't do last time :/)

I also added some typo fixes for the documentation. I wanted to put that in a separate pull request but it looks like too much work :)

Thanks!


Pair Coding Review

Great Job!!!
No Issues found

Liked the use of percentages when styling the HTML. Good job!
No issues were found.

Thanks


[Release-1.30] - Cannot replace etcd nodes over certain sizes

Backport fix for Cannot replace etcd nodes over certain sizes

#11122

see -https://github.com/k3s-io/k3s/issues/11122#issuecomment-2470303374


New release for npm

I see that there have been a bunch of updates to this package lately but no npm releases. Would it be possible for a new version to be released soon?

Yes. There's a plan to release a new version soon. Maybe this week. See https://github.com/moroshko/react-autosuggest/issues/672#issuecomment-599450516

Frickin' awesome! Thank you for the swift reply!

Waiting for this too

done


Fix rspec expectation set on nil warning

The warning has been introduced in #13097
Warning eliminated by using the #receive_message_chain method.
/cc @martinpovolny

Thanks!


Fix for nightly tests failing on Python 3.10

Before the recent support for nightly release tests for Python 3.10 (see the logs here) were broken this fix corrected the tests by simply replacing  async_case with the original unittest library.
A similar issue was resolved for the same incompatibility in #2187
As async_case was simply a backport of functionality included since Python 3.8 and acapy supports Python 3.9+ there is no longer a need for async_case.
Finally, this means we also restore the functionality of 2 additional tests that were previously skipped in #2187
Including Tests as a Dependency for Nightly Releases
In addition, the current release does not check that the tests for Python 3.10 were successful before building a nightly release. This PR also adds this as a dependency.
Additional context
The current source of the error with Python 3.10 is due to async_case using
            loop.run_until_complete(
                asyncio.gather(*to_cancel, loop=loop, return_exceptions=True))

as of Python 3.10 the loop keyword has been depreciated in asyncio.gather.
This leads to the following exception

Looks good to me, but I think it better that @dbluhm or @usingtechnology review, approve and merge this.
Thanks!


Is there a way to populate the "Report an issue" email with a suggested template of info required?

Overview
The "Report an issue" link on a facility profile currently generates a pop-up email for the<EMAIL_ADDRESS>inbox. The email is currently blank. Is there a way it can contain headers / a template for users to complete to share the specifics of the issue they'd like to report?
Is your feature request related to a problem? Please describe.
The stakeholder management team has previously received blank emails reporting an issue, with only an issue ID number from site users. We'd like to make sure we're gathering the necessary information to resolve the issue, whether it's something the stakeholder management team can resolve, or that Azavea needs to assist with.
Describe the solution you'd like
Could the email pop-up generated also include headers / a template of information users need to submit as part of the Report an Issue process?
Additional Context

I believe we can do this by just adding an &body=template-text bit in the mailto link.


Show complaint status and implement sorting in complaint list

Checklist

[x] I tested the changes and all related features on the test server https://artemistest.ase.in.tum.de.
[x] I documented my source code using the JavaDoc / JSDoc style.
[x] ~I added integration test cases for the server (Spring) related to the features~
[x] ~I added integration test cases for the client (Jest) related to the features~
[x] I added screenshots/screencast of my UI changes

Motivation and Context
Now in the complaint list page there is also the status of each complaint, and it is possible to sort the complaint table with different criteria
Screenshots

This is how it looks like for tutors (on production). I think there is a problem with the table, because you hide the headers but not the actual rows. Can you please fix it?

And one more small request: Can we also add a filter to hide the completed ones? In EIST we have now > 200 complaints and sometimes we only want to focus on the ones that are not yet completed, i.e. the status is "No reply yet"

@krusche I added a flag for showing addressed complaints and fixed the visualization. I also forced Spring data to load the assessor, so it should be shown now!

Did you fix the other points as well?

@krusche sorry, I didn't see the EDIT

There are way too many objects nested in the complaint. It actually goes until the course. Please remove the participation and the submission from the result as they are not necessary!

We actually need them, to show the exercise title and the submission id

I think the assessor is missing (even for me as instructor), but would be interested so that instructors / tutors can contact the assessor to clarify things.

I explicitly added to the query to retrieve assessors as well

Please double check that the student's identify is never revealed for a tutor (even not in the json response). So the server absolutely has to hide this information when tutors are reviewing the complaints

It seems to me this is already the case

@krusche sorry, I didn't see the EDIT

There are way too many objects nested in the complaint. It actually goes until the course. Please remove the participation and the submission from the result as they are not necessary!

We actually need them, to show the exercise title and the submission id

Then please remove everything that is not needed, if we just need the exercise title and the submission id, we can cutoff all other attributes.

I think the assessor is missing (even for me as instructor), but would be interested so that instructors / tutors can contact the assessor to clarify things.

I explicitly added to the query to retrieve assessors as well

Sounds good. I will test it.

Please double check that the student's identify is never revealed for a tutor (even not in the json response). So the server absolutely has to hide this information when tutors are reviewing the complaints

It seems to me this is already the case

That's not enough. Please test it thoroughly. It would also be nice to have some server and client integration tests to verify this in the future. You actually have immediately strike through the two related bullet points. Could you please add some basic tests for complaints as well? Talk to @thilo-behnke if you have questions about testing

I don't like that the table is completely hidden, if there are no complaints. Normally, the table should just be empty and show a placeholder entry a la "no results". But I'm not sure how this was discussed with @krusche.

Good comment. If the table is empty, please show a label with something like "No complaints".

I have one additional feature request. Can we highlight complaints somehow that are not resolved yet and that have been submitted more than one week ago. This makes sure that tutors know which complaints have a higher priority.
Would be great if we can also accomplish this in other places, where complaints are shown.

@thilo-behnke I've tried to write a test, but I have this error:
Error: Unexpected value 'undefined' exported by the module 'ArTEMiSSharedModule'

Do you know what could be the reason?
I pushed the failing test :)

@thilo-behnke I've tried to write a test, but I have this error:
Error: Unexpected value 'undefined' exported by the module 'ArTEMiSSharedModule'

Do you know what could be the reason?
I pushed the failing test :)

@rpadovani Good question 🤔 I can't confirm at the moment, but I would assume that the module ArTEMiSSharedCommonModule that is imported and exported by the SharedModule can't be found and also has to be included in the imports of the TestModule. (If this doesn't work, maybe you can narrow the issue down by only importing the explicit pipes / components that you need into the TestComponent).

@krusche @thilo-behnke I think I was able to address all your comments, and I was finally able to setup tests - let me know what you think!


Optomisation: Changed RingParams so that Dynamic/2D arrays are not apart of the struct

Gas Reduction: ~1000 (~3000 when in conjunction with #287)
Related Pr: #287 - This has been implemented as an extension of my previous PR.  However the savings are not reliant on being apart of that pr. It purely contains #287 due to being the code I was working on when I was experimenting.
Notes: uint8argslist, buynomorethanblist, uintargslist and addresslist have been removed from the ringparams struct. Any functions that previously relied on the arrays being in ring params now have the arrays passed in. This saved a lot more gas than I expected.

PREVIOUS:

cumulativeGasUsed for a ring of 2 orders: 381460
cumulativeGasUsed for a ring of 3 orders: 455202

NOW:

cumulativeGasUsed for a ring of 2 orders: 379117
cumulativeGasUsed for a ring of 3 orders: 452606


Refactor with cargo-clippy and cargo-fmt

I've been reviewing your codebase and would like to suggest the adoption of Rust's clippy and fmt tools for this project.
Incorporating clippy could enhance code quality by catching common mistakes and potential bugs early. On the other hand, fmt can help enforce a consistent coding style for improved readability and maintenance. Both tools are highly regarded in the Rust community and would align this project more closely with ecosystem standards.
I turned off a couple of rules that may not be very intuitive for non-Rust devs (clippy insists on iterating through iterators rather than indexes for example). If you have specific formatting preferences or don't like the suggested changes, I'd welcome any feedback. Almost all of the changes made here are cargo fmt + cargo clippy --fix.
If you decide that using Rust standards is appropriate for your project, these checks can be included at the github-actions level, which are free for open-source projects.
Thank you for considering this proposal!

Will be split into two separate PRs


Lapse count of cards

In the update_state function at https://github.com/open-spaced-repetition/py-fsrs/blob/main/src/fsrs/models.py#L87
the lapse count of a card is only incremented for cards in the new and review state.
Is this a bug or the intended behavior? Anki seems to increment the lapse count only for review card.
While this is not relevant for the core logic of the algorithm, I'm trying to reimplement FSRS in EmacsLisp
and I'd like to understand the motivation behind this behavior.

It is a bug. I will fix it soon.


Timed term pop-up window (frame)

To have an option to leave the term pop-up window (frame) open for X ms before it closes automatically after the mouse pointer is not on the term. The time (ms) could be defined in the setting, default - 0ms.
This could help with implementing other possible features in the future, like being able to navigate between the terms in a pop-up window.

Closing per discussing in Discord: hovering over the terms is good enough.


Create 496_nextgreaterelement.py

Pull Request Template
Description
Please include a summary of the problem and about the approach to solve the solution. Please also include relevant motivation and context.
List any dependencies that are required for this change.
Put check marks:
Have you made changes in README file ?

[ ] Added problem & solution under correct topic.
[ ] Specified Space & Time complexity.
[ ] Specified difficulty level, tag & Note(if any).

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

Make sure all below guidelines are followed else PR will get Reject:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code so that it is easy to understand
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] Any dependent changes have been merged and published in downstream modules

@saranshkotnala
Have you made changes in README file ?

@saranshkotnala Please check this Sample PR -> https://github.com/codedecks-in/LeetCode-Solutions/pull/3

bro i updated readme.md thanks for helping out on my first pull request . cann it be accepted now


"Visual Studio 2022 Image Library.zip" file missing from download center

This page -- Image Library - Visual Studio (Windows) | Microsoft Docs -- in the documentation links to this page in the download center: Download Visual Studio Image Library from Official Microsoft Download Center
On that page, if you try to download the file "Visual Studio 2022 Image Library.zip", you get a 404 error.

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

ID: 05fe994a-b63e-dfc1-9de9-97e56a4e4917
Version Independent ID: 95c63cef-e907-f443-a885-d1265f47c171
Content: Image Library - Visual Studio (Windows)
Content Source: docs/designers/the-visual-studio-image-library.md
Product: visual-studio-windows
Technology: vs-ide-designers
GitHub Login: @TerryGLee
Microsoft Alias: tglee

@dougwaldron -- Doug, thank you for your feedback.
@TerryGLee -- Terry, please look into this issue.

@dougwaldron It looks like the 404 issue is resolved; when you click the Download button from the Microsoft Download Center page:

You should see this:

We'll close this issue now; thanks for taking the time to report it to us!

Hi! There was a hiccup due to a pending approval status when we were adding the new Visual Studio 2022 Image Library package. It should be fixed now. Thanks for reporting!


Panic Error

ctop

panic: runtime error: index out of range [1] with length 0 [recovered]
        panic: runtime error: index out of range [1] with length 0

goroutine 1 [running]:
main.panicExit()
        /home/bradley/work/bcicen/ctop/main.go:137 +0x6e
panic(0xb280e0, 0xc0000ac8b8)
        /usr/lib/go/src/runtime/panic.go:965 +0x1b9
github.com/bcicen/ctop/cwidgets/single.(*Env).Set(0xc0001fb1f0, 0xc0005500a0, 0x4a)
        /home/bradley/work/bcicen/ctop/cwidgets/single/env.go:32 +0x399
github.com/bcicen/ctop/cwidgets/single.(*Single).SetMeta(0xc0000724b0, 0xc000251ad0)
        /home/bradley/work/bcicen/ctop/cwidgets/single/main.go:58 +0x10b
github.com/bcicen/ctop/container.(*Container).SetUpdater(...)
        /home/bradley/work/bcicen/ctop/container/main.go:53
main.SingleView(0x0)
        /home/bradley/work/bcicen/ctop/grid.go:87 +0xeb
main.Display(0xc000066d80)
        /home/bradley/work/bcicen/ctop/grid.go:246 +0x82a
main.main()
        /home/bradley/work/bcicen/ctop/main.go:111 +0x625

I have a similar experience with two of my containers while trying to view logs (by pressing L over the highlighted container). One is a basic nginx container, the other is an ASPNetCore application. Both result in the same message:
panic: runtime error: index out of range [1] with length 1

goroutine 112 [running]:
github.com/bcicen/ctop/connector/collector.(*DockerLogs).Stream.func1(0xc00012e080, 0xc00009c000, 0xc000420300)
        /home/bradley/work/bcicen/ctop/connector/collector/docker_logs.go:52 +0x1f4
created by github.com/bcicen/ctop/connector/collector.(*DockerLogs).Stream
        /home/bradley/work/bcicen/ctop/connector/collector/docker_logs.go:47 +0x278

fixed in https://github.com/bcicen/ctop/commit/acbf17a4fd8bb08ef26cd8294c5dbeee1f548c8e; to be included in v0.7.8


Add bits2rbt and aux data support to bitread

This PR adds the bits2rbt tool and adds auxiliary data generation to bitread.
These tools are useful for issues like #1285
This PR also adds some tools (integration) test for the BRAM issue.

In file included from /tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/tools/bits2rbt/configuration_packets.cc:10:0:
/tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/tools/bits2rbt/configuration_packets.h:37:59: error: array must be initialized with a brace-enclosed initializer
  const std::array<uint32_t, 2> kRCrcCmd = {0x30008001, 0x7};
                                                           ^
/tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/tools/bits2rbt/configuration_packets.h:37:59: error: too many initializers for ‘const std::array<unsigned int, 2ul>’
tools/bits2rbt/CMakeFiles/bits2rbt.dir/build.make:94: recipe for target 'tools/bits2rbt/CMakeFiles/bits2rbt.dir/configuration_packets.cc.o' failed

So this needs to be {{0x30008001, 0x7}};.


refactor(datepicker): move weekdays into table header

Is this the last thing needed before it gets merged to master?

@fxck It's getting close but I still want to replace SimpleDate with something that allows users to plug in moment.js or other date implementations.


Fixes for UpdateCve/createCve/ReserveCveIds methods

Following fixes have been applied to cve.js Class CveServices

The method reserveCveIds should follow the same convention of trying to send the full JSON response back instead of just the cve_ids key of the object. .then(data => data.cve_ids); is removed
The methods both updateCve and createCve have been updated to append the /cna for POST and PUT methods

Work remains for Ben to also explore error handling  #3   with local ServiceWorker to a message using potential Window.postMessage. - all the errors that are sent back from cve-services will have a Object.error and Object.message at a minimal. These two should be sent to catch all the promise exceptions.  All Promise exceptions of 5xx errors should go into a generic message handler.
Thanks
Vijay

Thanks @sei-vsarvepalli. Looks good and merged in. I'm reviewing all methods against the latest cveservices API docs.


Add guid to Video struct

https://github.com/tim-hat-die-hand-an-der-maus/plex-resolver/blob/master/models.go#L71
This might (?) contain an upstream ID (example value: com.plexapp.agents.imdb://tt0103639?lang=en) which can be used to automatically fulfill a request (plex-request svc)

nvm, all my guids are one of
plex://
local://

maybe this has changed with the new plex agent


Command line usage of swc after cargo install swc_cli is challenging.

Describe the bug
If you have done cargo install swc_cli and then try to:
npx swc ./some-file.js

it fails because npx now looks to the swc command from cargo, rather than swc/cli from npm.
You can begin to work around this by using the command from cargo directly, e.g.:
swc compile ./some-file.js

but this fails if you try to specify an .swcrc, for example:
swc compile ./some-file.js --config-file .swcrc

it fails with:
Error: Failed to parse config file

Caused by:
    data did not match any variant of untagged enum ConfigFile

The same config file works fine if you use the binary installed by npm more directly:
npx /full/path/to/node_modules/.bin/swc ./some-file.js --config-file .swcrc

Input code
No response
Config
{
    "jsc": {
        "target": "es2017"
    }
}

Playground link
No response
Expected behavior
I would expect the config file to work with the swc_cli installed with cargo.
Actual behavior
No response
Version
<EMAIL_ADDRESS>Additional context
No response

would you able to uninstall swc_cli from cargo, then use npx swcx with @swc/core instead? it's prepared for those purpose as you said conflicting cli binary name can cause some problems. swc_cli was introduced for non-node environment, but at the same time we didn't ship those binary to actual npm pkg, but now @swc/core have it shipped together.

Oh, got it, thanks! so if I uninstall it from cargo, I can then create plugins with npx swcx?  Could I suggest adding something to the plugin getting started docs to that affect?

yes, swcx and swc_cli is identical binary, just difference of distrubition - prior for the env doesn't have node / npm.

I see, thank you 🙌

I'm removing this from bug but put into enhancement, this is mostly due to current situation where we have @swc/cli and experiemental swcx both. We'll likely need to realign once native cli binary gets progress, but this won't block anyone for now afaik.

I'm trying to use the native rust swc_cli under Bazel (much faster when we spawn hundreds of processes), hitting that same error as above when using --config-file. @kwonoj should I file separate issues for that? I realize you don't really support using the Rust swc_cli directly yet.

@alexeagle it sounds like a different issue, as bazel shouldn't rely on any global path resolution. Am I missing something? So the issue is swcx (native rust cli) doesn't work with --config-file options?

Yes, that appears to be the case, I'll file a new issue here with a repro then, thanks!

I believe this is adequately resolved as installing new experimental binary moved to @swc/cli.


TestContext information is not available inside TestMethod Attribute Extension Execute Method

Description
TestExtension Execute method accepts only one parameter of type ITestMethod
during debug, if do quick watch on testMethod "((Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo)testMethod).TestMethodOptions.TestContext"
shows the testcontext information, but same not able to retrieve inside Execute method, because of permission level, we tried to get the values through runtime properties, still not able to resolve because of abstraction.
the requirement is to know the tfs test run id, inside Execute method.
just for work Around
We tried to create a public property of testcontext type in test class, and try to access the values in Execute method using reflection, still not able to get.
testMethodAssembly.GetType(TestClassName).GetProperty("Testcontext")
the above line gives the property value, to GetValue required object of TestContext type, and that is not possible due to TestContext is a Abstract class, if use new Object then Target Mismatch Exception occurred.
Steps to reproduce

Implement TestMethod Attribute Extension
inside Execute method not possible to get testContext, please find the attachment below:

Expected behavior

Required Tfs Run id and Testcontext object inside Execute method

@anshuls01 : We have not exposed TestContext as part of ITestMethod  interface.
Could you tell us what information do you need from this testcontext object apart from tfs run id?

Hello Jaya,
Thanks for the response, We required few more information:

RunBy
Tfs_BuildNumber
Tfs_BuildPlatform
DeploymentDirectory
FullyQualifiedTestClassName
ResultsDirectory
TestDir
BuildDirectory
ControllerName (not sure)
Tfs_TeamProject
Tfs_TestPlanId

I think, most of the other information we can get after querying the TFS database, by using the run id.
in TFS TestResult.tbl_TestResult and dbo.tbl_TestRun contains all the information we required.
Thanks
Anshul

@jayaranigarg It's really to make instance of test class as part of ITestMethod? For example object TestClassInstance? It's well be cool for initializing test class by test method attributes.

I also want to add or edit a Property in the test context to influence some behaviour in my test not related to test data. Is there any other way to do this?

Just wanted to pile on here. Either exposing the TestContext or the test class instance (or both) to the ITestMethod interface would be incredibly valuable as it is not currently possible to use the parameters passed to the test method as part of shared test fixture setup in the TestInitialize method. I would like to either set them directly on the class or pass them in via the TestContext. As an added bonus, doing it this way would prevent me from having to change the signature of every single test method in my codebase.

To add to the why we need the TestContext.
if I'm are using Data Driven test using DataSourceAttribute. The values of every iteration is inserted to the TestContext DataRow property, so if I want to determine the iteration number and I inserted it as part of the DataRow, I need the TestContext to get it.

This exact same issue has been raised before here and closed without even caring to answer : https://github.com/microsoft/testfx/issues/305
All people are saying the same simple thing. There is no way to retrieve the test DataRow in test initialization. And most are giving example.
People might have different reason to do so such as simply being able to create a Log file for each case.
So what is the solution or the workaround ?

Closing as won't fix


[Question]How do I download age restricted video with youtube-dlc? youtube-dl is fine automatically

I used youtube-dl many years and it automatically made it possible to download age restricted videos.
But if I use youtube-dlc, it tells me:
ERROR: Video is age restricted and only playable on Youtube. Requires cookies!
How do I get the same automatically "cookie creation"?
Thanks in advance

If it says so you need to provide your very own cookies. That is due the fact that some videos are only playable on youtube itself. There is a workaround in place to skip the need of cookies by using the embedded version but that is not working for on youtube only videos hence the need for cookies.

There is a workaround in place

The workaround doesn't seem to be working in yt-dlc right now. All age-restricted videos can't be downloaded with yt-dlc, not just "YouTube-only" ones. Meanwhile, youtube-dl downloads such videos just fine.

Here is the commit that introduced this bug: https://github.com/blackjack4494/yt-dlc/commit/b492464bf125bd6c352bf4ab6dae1c38e5cb3c90

There is a workaround in place

The workaround doesn't seem to be working in yt-dlc right now. All age-restricted videos can't be downloaded with yt-dlc, not just "YouTube-only" ones. Meanwhile, youtube-dl downloads such videos just fine.

this should be fixed in youtube-dlc

Works here...
But you have to use the --cookies.txt option.
[Sidenote]
The example video you linked to (Justin Timberlake - Tunnel Vision), is one of the reasons of the DMCA take-down of the youtube-dl repo.
I don't think it's wise to mention it here...

But you have to use the --cookies.txt option.

No, you don't. I'll repeat: youtube-dl downloads age-restricted videos perfectly fine without cookies.txt. Only yt-dlc has this problem.

But you have to use the --cookies.txt option.

No, you don't. I'll repeat: youtube-dl downloads age-restricted videos perfectly fine without cookies.txt. Only yt-dlc has this problem.

Yes. I think now that it is indeed a bug.
How would I use the cookies.txt option for that? Documentation is down, do I need a new link?

But you have to use the --cookies.txt option.

No, you don't. I'll repeat: youtube-dl downloads age-restricted videos perfectly fine without cookies.txt. Only yt-dlc has this problem.

The just use youtube-dl for those. ;)
I just meant, that with yt-dlc you must use this option (for now?).

youtube-dl https://www.youtube.com/watch?v=7t0SqerlBA0 -f best
Result:
[youtube] 7t0SqerlBA0: Downloading webpage
[youtube] 7t0SqerlBA0: Downloading embed webpage
[youtube] 7t0SqerlBA0: Refetching age-gated info webpage
[download] Destination: Test Age Restricted Video-7t0SqerlBA0.mp4
[download] 100% of 10.59MiB in 00:03

youtube-dl https://www.youtube.com/watch?v=7t0SqerlBA0 -f best
Result:
[youtube] 7t0SqerlBA0: Downloading webpage
[youtube] 7t0SqerlBA0: Downloading embed webpage
ERROR: Video is age restricted and only playable on Youtube. Requires cookies!

But you have to use the --cookies.txt option.

No, you don't. I'll repeat: youtube-dl downloads age-restricted videos perfectly fine without cookies.txt. Only yt-dlc has this problem.

Yes. I think now that it is indeed a bug.
How would I use the cookies.txt option for that? Documentation is down, do I need a new link?

I explained above, Klaus.

Thanks.
Hopefully this gets fixed

@nbmrjuhneibkr you are partially right.
Indeed the video you gave as an example is interesting.
The way yt-dlc detecs whether you need cookies or not is by certain elements.
I haven't seen a html structure like your example before.
To determine whether you can circumvent age gating the embedded version will be checked:
So yt-dlc checks for

which is also present in your video so it trigger the needs cookies warning
However this video also contains
"playabilityStatus\":{\"status\":\"OK\"},\"videoFlags\":{\"playableInEmbed\":true,\"isCrawlable\":true,\"
which wasn't the case with the normal working embedded ones and those who require youtube only and age.
So for instance try to download this video
https://www.youtube.com/watch?v=7takIh1nK0s

\"playabilityStatus\":{\"status\":\"UNPLAYABLE\",\"reason\":\"Video nicht verfügbar\"},\"videoFlags\":{\"playableInEmbed\":false,\"isCrawlable\":true,\"
So at least I know I should check for both playability Status and unavailable messages.

I don't think there's anything special about the example I provided. It behaves the same with every age-restricted video I could find.

Recently youtube-dl stopped working for me in regards to age-gate restricted videos.
I am almost 100% sure that this has to do with google changing things - guess they
don't like youtube-dl and variants.

You need a VPN to appear to come from outside the European Union, then it works.

https://www.digitalmusicnews.com/2020/11/02/youtube-age-gate-verification-europe/
Although this is an article from November 2020, they seem to have finally rolled it out for everyone there.

@rubyFeedback This repo has not had any updates for a while. You can try my fork yt-dlp where most age-gated content still works (not tested from EU)

@rubyFeedback This repo has not had any updates for a while. You can try my fork yt-dlp where most age-gated content still works (not tested from EU)

Just tested in Germany, it works.

I got it to work with the following (cookies.txt by Lennon Hill) extension:-
https://addons.mozilla.org/en-US/firefox/addon/cookies-txt/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search
It adds an icon to the address bar, while on a youtube page click on the icon and export cookies.txt to the location you are running youtube-dl
Then type:
youtube-dl --cookies cookies.txt https://www.youtube.com/XYZ
♫♪.ılılıll|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅|llılılı.♫♪

Works here...
But you have to use the --cookies.txt option.
From the Readme (updated with recent links by me):

How do I pass cookies to youtube-dl?
Use the --cookies option, for example --cookies /path/to/cookies/file.txt.
In order to extract cookies from browser use any conforming browser extension for exporting cookies. For example, Get cookies.txt (for Chrome) or cookies.txt (for Firefox).
Note that the cookies file must be in Mozilla/Netscape format and the first line of the cookies file must be either # HTTP Cookie File or # Netscape HTTP Cookie File. Make sure you have correct newline format in the cookies file and convert newlines if necessary to correspond with your OS, namely CRLF (\r\n) for Windows and LF (\n) for Unix and Unix-like systems (Linux, Mac OS, etc.). HTTP Error 400: Bad Request when using --cookies is a good sign of invalid newline format.
Passing cookies to youtube-dl is a good way to workaround login when a particular extractor does not implement it explicitly. Another use case is working around CAPTCHA some websites require you to solve in particular cases in order to get access (e.g. YouTube, CloudFlare).

[Side-note]
The example video you linked to, is one of the reasons of the DMCA take-down of the youtube-dl repo.
I don't think it's wise to mention it here...
Better replace it with a less high-profile link. ;)

It really works,thanks a lot!!

It really works,thanks a lot!!

No problem!
In the mean time, note that this yt-dlc fork is no longer actively maintained.
You may want to try the yt-dlp fork instead.

But you have to use the --cookies.txt option.

No, you don't. I'll repeat: youtube-dl downloads age-restricted videos perfectly fine without cookies.txt. Only yt-dlc has this problem.

Can confirm that it does not.

It really works,thanks a lot!!

No problem!
In the mean time, note that this yt-dlc fork is no longer actively maintained. You may want to try the yt-dlp fork instead.

Thank you again!!!

import subprocess
video_url = 'https://www.youtube.com/watch?v=HLuHxEzO3sE'
save_path = "airbourne.mp3"
command = f"yt-dlp --ffmpeg-location D:/Biggi/Trans/Mp3/ffmpeg-master-latest-win64-gpl-shared/bin/ffmpeg.exe --extract-audio --audio-format mp3 --audio-quality 192K {video_url} -o {save_path}"
subprocess.call(command, shell=True)
print("Downloaded successfuly.")
this helped me for mp3 download


WIP: Add encrypt endpoint

#7

@amitaibu ready for code review.
I didn't implement a test of input parameters because request is come from drupal.

Merged.


[tensor] Refactor handle_trans_spec in DistSpecManager

📌 Checklist before creating the PR

[ ] I have created an issue for this PR for traceability
[x] The title follows the standard format: [doc/gemini/tensor/...]: A concise description
[ ] I have added relevant tags if possible for us to better distinguish different PRs

🚨 Issue number

N/A

📝 What does this PR do?
This commit refactors the handle_trans_spec method in the DistSpecManager class to improve code readability and maintainability.
Changes made:

Replaced the string concatenation method for selecting forward and backward transformation handles with a dictionary lookup.

Previously, the code used string concatenation and getattr to dynamically call the appropriate transformation function. This approach was less readable and could lead to potential errors if the transformation function names were changed or if new functions were added.

Added a dictionary trans_funcs that maps tuples of old and new distributed specification placements to the corresponding transformation functions (_r2r, _r2s, _s2r, _s2s).

Used the dictionary to look up the appropriate forward and backward transformation functions based on the input distributed specifications.

Removed unused imports from the refactored code.

The refactored handle_trans_spec method is now easier to read and maintain. Please review the changes and provide feedback or suggestions for improvement. Thank you :)
💥 Checklist before requesting a review

[ ] I have linked my PR to an issue (instruction)
[ ] My issue clearly describes the problem/feature/proposal, with diagrams/charts/table/code if possible
[ ] I have performed a self-review of my code
[ ] I have added thorough tests.
[ ] I have added docstrings for all the functions/methods I implemented

⭐ Do you enjoy contributing to Colossal-AI?

[x] 🌝 Yes, I do.
[ ] 🌚 No, I don't.

Tell us more if you don't enjoy contributing to Colossal-AI.

I noticed that the unit tests are failing in some parts of the code that haven't been modified by this PR. It seems like these issues are unrelated to the changes made here. Could you please investigate the cause of these failures and ensure that they are addressed before we proceed with reviewing and merging this PR? Thank you!
=========================== short test summary info ============================
[829](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:830)
FAILED tests/test_cluster/test_device_mesh_manager.py::test_device_mesh_manager - torch.multiprocessing.spawn.ProcessRaisedException:
[830](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:831)

[831](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:832)
-- Process 1 terminated with the following error:
[832](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:833)
Traceback (most recent call last):
[833](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:834)
  File "/opt/conda/envs/pytorch/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
[834](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:835)
    fn(i, *args)
[835](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:836)
  File "/__w/ColossalAI/ColossalAI/tests/test_cluster/test_device_mesh_manager.py", line 15, in check_device_mesh_manager
[836](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:837)
    assert device_mesh_auto.shape == (2, 2)
[837](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:838)
AssertionError
[838](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:839)
==== 1 failed, 243 passed, 175 skipped, 122 warnings in 1617.37s (0:26:57) =====
[839](https://github.com/hpcaitech/ColossalAI/actions/runs/4826710334/jobs/8600355624?pr=3663#step:11:840)
Error: Process completed with exit code 1.


Remove HEARTBEAT_SENTINEL

The HEARTBEAT_SENTINEL logic doesn't really do anything right now. It all happens in pure-python, and doesn't reflect any health state about the Kafka broker. I think it can be removed entirely.

This gets used to provide a way to update progress bars and alike.
The logic is as follows:

We consume from a stream with a timeout: https://github.com/astronomy-commons/genesis-client/blob/9a39a46f6ae724d2bd00d1ab5e4d10819e472ddc/genesis/streaming.py#L243
If the timeout occurs, we detect that and yield an instance of the HEARTBEAT_SENTINEL so the upstream routines know what was returned isn't a message but a notification that the wait timed out: https://github.com/astronomy-commons/genesis-client/blob/master/genesis/streaming.py#L247
The _filered_stream should then return None if the message is a HEARTBEAT_SENTINEL, but I now notice it's missing an else clause to actually do it: https://github.com/astronomy-commons/genesis-client/blob/9a39a46f6ae724d2bd00d1ab5e4d10819e472ddc/genesis/streaming.py#L261
I think this is a bug that got introduced when we were introducing the ability to return message metadata. See what it used to look like here: https://github.com/astronomy-commons/genesis-client/blob/6a8348a5504a281709ca18f40a303038701556c4/genesis/streaming.py#L207
Finally, the message is yielded back to the caller in https://github.com/astronomy-commons/genesis-client/blob/9a39a46f6ae724d2bd00d1ab5e4d10819e472ddc/genesis/streaming.py#L314
if it's not None, and if it is, it's ignored except for allowing the progress bar to update. This also got broken in the rewrite -- see here: https://github.com/astronomy-commons/genesis-client/blob/6a8348a5504a281709ca18f40a303038701556c4/genesis/streaming.py#L268
for how it should work (calling t.update(0) on tqdm makes it update the number of seconds it's been running).

Maybe a better subject for this Issue would be to restore progress bar functionality?

I'd like to design a better progress bar API than calling tqdm directly. This feels like the wrong direction for the dependency to flow - we make a lot of assumptions by directly calling tqdm. The caller could provide us with something that we should update with progress information; that could be done with something other than the heartbeat-through-the-iterator design here, maybe?
That's based on my understanding that this library is relatively low-level. The caller will be other code like SCiMMA's hop - that would be the place where tqdm would be chosen.

I should add - thanks a lot for the walkthrough! I think step 1 is still to remove the heartbeat, and then step 2 is to redesign progress bar stuff, possibly adding heartbeats back in (but hopefully not?).

Sounds good. The progress API does need to be generalized -- the tqdm stuff was an expedient hack (so was the shameful hardcoding of many constants -- e.g., 1 second for timeout in c.consume(...), etc.).
That said, making it easy to show progress makes for a world of difference in usability (even for a relatively low-level library). We should brainstorm how to get a good generalized equivalent of for msg in stream(progress=True): ..., but there should be one.

This was done in the v1.0.0 release.


replace code

replace this:
ToFriendMailer.deliver_mail_to_friend(object,@mail_to_friend)
to:
ToFriendMailer.mail_to_friend(object,@mail_to_friend).deliver
worked for me! thanks

Was this not working before? I thought the deliver_* syntax was a shorthand for this. Could you explain what wasn't working before so we could duplicate the issue?

this error message:
NoMethodError in EmailSenderController#send_mail
undefined method `deliver_mail_to_friend' for ToFriendMailer:Class

With Rails 3.x the deliver_* is deprecated in favor of *.deliver


Feat/loadosophia uploader support

This is to support the loadosophia uploader jmeter plugin.

Great! Not familiar with how loadosophia works but perhaps a simple example would help our users?
Thanks

Hi ! I added a basic sample for the uploader :)
Thanks !

Thank you :+1:


Stacker news tries to install itself as a PWA - any way to opt out?

Not sure how new this is but stacker news tries to install itself as a PWA when you navigate to it in Fedi's browser, could we disable this? It's already a mod within Fedi so this installation screen is unnecessary. We route to mods with a URL link so could we add a query param to the url like ?promptDownloadPwa=false to stop it?

Fedi (the company) has "mods" in the app where you can go to a website with webln, web.nostr, and some other bitcoin tools injected. Just use Fedi and connect to any federation, then in settings add a mod for stacker.news or some federations have it set as default.

Ahh, ok!

Can I set that timesToShow as a query parameter? the only control I have is the initial URL I set for the federation meta

No, not yet, that needs to be added as code.

Deploying this now.
@Kodylow you'll want to use ?disablePrompt=true


Text transition

Capability of transforming text snippet into another via some sort of animation. E.g. "cat" -> "dog".

Possible transitions:

Cross-fade: https://observablehq.com/@d3/transition-texttween
Slide: http://bl.ocks.org/jdittmar/7800481
As-typed: https://stackoverflow.com/questions/44147526/how-do-i-update-text-content-in-d3-js-using-tween-function

First version of cross fade update in dev branch d99772418e4e2137051a7c140b104b20d9606763.

Closing this in favor of #4 for future developement. Cross-fade update included in master since d997724.


instructions needed for when service connection secret expires

Need to add steps to take when service connection secret in Azure expires. At creation it's set to expire after 2 yrs but should auto update or at lease provide clear instructions to update the connection so it works.

@kcnighsurf Please refer to issue https://github.com/MicrosoftDocs/azure-devops-docs/issues/8386 for including this in the documentation.


NT-update-tablespaces

update this single file from upstream

https://github.com/puppetlabs/puppetlabs-postgresql/blob/master/manifests/server/tablespace.pp

yes!

This just stops puppet from overwriting changes that you make manually?

This just stops puppet from overwriting changes that you make manually?

No, it rather allows us to use postgresql::server::tablespace if the directory is created explicitly by puppet's file resource with non-700 permissions.


Do you have the sample application in lower-level C/C++?

I don't use C# because it is too high-level for most libraries.

Sorry, this sample is only in C#. If there is sufficient interest, we might do a C++ version at some point, but we have no plans to do that right now.


Fix Pet Page with no images

Some of the Pets do not have images and and viewing their page bugs it out

Hi @redxzeta I would love to do this task also I want to implement a simple gallery for the Pet page and fix the nav bar height when the image is loaded inside of the Pet page.
Tasks:

[ ]  Fix pet page with no images
[ ]  Add gallery to pet page
[ ]  Fix nav bar height when images are loaded in pet page

Sounds great go for it

I have created a new pull request, hope you like it


Improve gulp.watch()

gulp.watch() can mix task names (string) and callbacks

@drewnoakes @progre could you review this PR?

Ping @drewnoakes @progre @vvakame

Sorry, I haven't done much gulp/TypeScript stuff lately. Can't really offer a good critique here.

okay, it merged!
@drewnoakes thanks!
@tkrotoff thanks mate!


CI: Add workflow version to cache key.

This formalises a sort of cache-buster we can bump if the workflow changes significantly. This ensures the cache key remains consistent between the dependency and individual jobs so we don't get a race condition where a dirty cache will break subsequent builds.
The hacks to revert Pico SDK / MicroPython to its vanilla state have been removed, too, since this should be guaranteed by the (hopefully now clean) cache.

Rolling the dice on this, the only way we're going to find out if it works is by giving it a shot.


linux-next: new function to ease testing the newest kernels

Motivation for this change
Getting some tests done with the newest upstream patches without a lot of fiddling around.
Things done
Added a new function linux_next and a corresponding linuxPackages_next. These take a as an argument a set containing a date, a hash and maybe a version string (if linux_testing and the upstream RC version differ).
usage:
  boot.kernelPackages = pkgs.linuxPackages_next {
#   date = "20200924";
#   sha256 = "0r0vpa7k7pw6kq5200p9bf0xnmlya14lirdlbf6zmb9l04lcxxd3";
    date = "20200925";
    sha256 = "08kna2qn32ds8fs45gh74i0n9l8nx7ng3gj8rk58v4sip69snzgh";
#  version = "5.9.0-rc6-next";
  };

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Integrated lib.fakeSha256 and reworked the version part. It is now constructed by using the branch (e.g. 5.10) and the release candidate name (e.g. rc1).
Mandatory:

date
sha256

Optional:

extraMeta.branch
extraMeta.rc

Sorry this has been left untouched for so long! I like the idea :+1:
@ryantm why did you mark this as a draft?

Sorry this has been left untouched for so long! I like the idea :+1:
@ryantm why did you mark this as a draft?

@ryantm why did you mark this as a draft?

At some point I manually marked everything that has WIP in its title as draft. I didn't realize I was fighting with the author to un draft it. Sorry @ikervagyok.

@ryantm why did you mark this as a draft?

At some point I manually marked everything that has WIP in its title as draft. I didn't realize I was fighting with the author to un draft it. Sorry @ikervagyok.

@ryantm No hard feelings - It is a (working) draft ;)
@lheckemann Thanks for reviewing - I'll take a closer look in the next few days. Feel free to ping me, if I don't update until next week.
If there are any other improvements, I'm keen to hear them! I am not very familiar with upstream (testing) kernel versioning.

@ryantm No hard feelings - It is a (working) draft ;)
@lheckemann Thanks for reviewing - I'll take a closer look in the next few days. Feel free to ping me, if I don't update until next week.
If there are any other improvements, I'm keen to hear them! I am not very familiar with upstream (testing) kernel versioning.

@NeQuissimus might have some thoughts on this?

@NeQuissimus might have some thoughts on this?

LGTM

LGTM

@Mic92 Description/Usage added.

@xaverdh I'll take a look, but in general I'm a bit preoccupied nowadays. If you don't see enough progress, you are of course free to take over this pr ;)