Infinite loop when a model is updated in an event listener, and that event is cuased by a preceding update on that same model.

Laravel Version: 5.6.12
PHP Version: docker image php:7.1-fpm-alpine
Database Driver & Version: docker image mysql:5.7

Description:
When a model is updated in an event listener, and that event is caused by a preceding update on that same model, an infinite loop occurs.
This is only the case when the event listener runs synchronously, not asynchronously on a queue.
Steps To Reproduce:

Create a dummy model.

In the model, listen for a model updated event; and if the "status" attribute changes, trigger a MyModelStatusChangedEvent event.
App\Models\MyModel.php
<?php

namespace App\Models;

use App\Events\MyModelStatusChangedEvent;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    public static function boot()
    {
        static::updated(function (MyModel $model) {
            if ($model->isDirty('status')) {
                event(
                    new MyModelStatusChangedEvent(
                        $model,
                        $model->getOriginal('status'),
                        $model->status
                    )
                );
            }
        });

        parent::boot();
    }
}

App\Events\MyModelStatusChangedEvent.php
<?php

namespace App\Events;

use App\Models\MyModel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Foundation\Events\Dispatchable;

class MyModelStatusChangedEvent
{
    use Dispatchable, SerializesModels;

    /**
     * @var MyModel
     */
    public $model;

    /**
     * @var string
     */
    public $oldStatus;

    /**
     * @var string
     */
    public $newStatus;

    /**
     * @param MyModel $model
     * @param string $oldStatus
     * @param string $newStatus
     */
    public function __construct(MyModel $model, $oldStatus, $newStatus)
    {
        $this->model = $model;
        $this->oldStatus = $oldStatus;
        $this->newStatus = $newStatus;
    }
}

Create a listener which triggers an update to the same model when the status changes to 'APPROVED'.

App\Listeners\TouchMyModelStatusChangedDate.php
<?php

namespace App\Listeners;

use App\Events\MyModelStatusChangedEvent;

class TouchMyModelStatusChangedDate
{
    /**
     * Handle the event.
     *
     * @param MyModelStatusChangedEvent $event
     */
    public function handle(MyModelStatusChangedEvent $event)
    {
        if ($event->oldStatus === 'APPROVED') {
            \Log::info('Updating blah to bleh after status change to APPROVED.');
            $event->model->update(['blah' => 'bleh']);
        }
    }
}

In your EventServiceProvider.php, bind the listener to the event:

/**
 * The event listener mappings for the application.
 *
 * @var array
 */
protected $listen = [
    // ....

    MyModelStatusChangedEvent::class => [
        TouchMyModelStatusChangedDate::class,
    ],
];

Trigger an update to the status of a dummy model.

$model = \App\Models\MyModel::find(1);
$model->update(['status' => 'APPROVED']);

You would expect the listener to trigger a single update, but it fires multiple times.
This is because the update happens in a listener, on the same model, between the model firing the "updated" event and a call to both syncChanges and syncOriginal.
The status field is seen as dirty in the 2nd update $event->model->update(['blah' => 'bleh']), even though it's already been updated, so this causes a subsequent MyModelStatusChangedEvent to fire, and so on...

It feels weird that this is expected behaviour?
I would expect this behaviour on an updating event, as the entity isn't updated yet.  In updated, the data should no longer be dirty.

Closing as it's the expected behaviour.

How did you fix this @matthewgoslett?

How did you fix this @matthewgoslett?

There's no pretty solution here unfortunately.
Here's a snippet from a current code base which prevents this unexpected behaviour.

I do a clone and syncOriginal on the cloned event, which then gets passed to custom events.

A workaround I grabbed from the latest version of Laravel.  Please note the example is based on the solution for my problem.
Add this to the base model.
`public static function withoutEvents (callable $callback)
{
$dispatcher = static::getEventDispatcher();
  if ($dispatcher) {
      static::unsetEventDispatcher();
  }

  try {
      return $callback();
  } finally {
      if ($dispatcher) {
          static::setEventDispatcher($dispatcher);
      }
  }

}`
Use above as,
 static::saved(function (Leads $lead) {     static::withoutEvents(function() use($lead){         $lead->quotation_no = Leads::quotationNo($lead);         $lead->save();     }); });

@techdaddies-kevin Np.

Interesting. I just came across this "intended behaviour" as well. I knew of the obvious issue of calling update() inside a static::updating(...) hook, but it still does not make sense to me why an infinite-loop happens inside static::updated hook, because I expect that hook to have completed the update-task.
That being said, the static::updated hook can also freely use $model->isDirty() but that's strange since at that moment it's not actually dirty anymore. It would need a $model->wasDirty('someprop') function to be completely clear, but that will undoubtedly overcomplicate things.
Note to self in the future:

If you are going to call update() inside a static::updated hook, you can probably just move the logic and "set" the properties ($user->username = 'Foobar') in the static::update hook. This also saves a query.

Thank you @ijasxyz for the solution. I was about to write a custom query to update the record which would also have avoided the update event of laravel.


Attach migration file to task bundle

STONEBLD-3026

Introduce concepts of normal task (e.g. buildah) and extended task
(e.g. buildah-20gb, buildah-min).
Refactor the code that processes task build and push.
For testing purpose, add a simple local cache in order to reduce the
number of skopeo-inpsect runs for checking existence of task bundles.
This could also be helpful to reduce the whole script execution during
testing.
For testing purpose, script can be configured with environment
variable TEST_TASKS to run and check the result for a small number of
tasks.

/ok-to-test

@chmeliik Comments are addressed. PTAL.

Nice, output is much more readable now. Just not sure about this part:

Create task/buildah/0.2/migrations/.sh

Is this right? Should the migrations/ directory be under the version-specific directory, or should it be just task/buildah/migrations/?

Nice, output is much more readable now. Just not sure about this part:

Create task/buildah/0.2/migrations/.sh

Is this right? Should the migrations/ directory be under the version-specific directory, or should it be just task/buildah/migrations/?

(it would make sense to me under the version-specific directory as well, just checking if that's the intention)

Is this right? Should the migrations/ directory be under the version-specific directory, or should it be just task/buildah/migrations/?

@chmeliik Sorry. I forgot to reply to this topic. Yes, the former is intended. That means a version-specific task has its own migrations and not mixed with other versions'.


Task 3 - API - add route to return the number of models for a set of contributors

Task requirement from Noctua Landing Page Project
For a given set of contributors, return a list of { contributor: id, models: xxx } detailing the number of models associated to each contributor.
Also linked to https://github.com/geneontology/minerva/issues/230

The existing search api does a UNION on repeated contributor and group parameters.  e.g.
/search/?contributor=http%3A%2F%2Forcid.org%2F0000-0002-1706-4196&contributor=http%3A%2F%2Forcid.org%2F0000-0003-1813-6857&contributor=http%3A%2F%2Forcid.org%2F0000-0002-8688-6599
retrieves all model metadata, including contributors, for any of the models contributed by one of those three orcids.
So.. the requested information is there now to be had by parsing that response.
Is such client-side parsing problematic?

@lpalbou maybe you can reword this in simple form. And disregards comment if this is not helpful @goodb  I believe it is a completely new api route/endpoint i.e. GET api/contributors
Endpoint
api/contributors

Default I am not sure

Parameters

Parameter
Format
Comments

contributors
list<contributor>
A list of one or more contributors from barista list

Return
A list of Contributor<orcid, model_count> and each item has

Parameter
Format
Comments

orcid
string
A contributor's orcid

model count
number
Number of that contributor models

@lpalbou yup, could you clarify a bit here?

Sorry for the long delay; it didn't helped to be out for a month.
Context: the left panel of the Noctua landing page allows to browse by contributors. Before, @tmushayahama used to send its own queries to get the number of models for each contributor but we want those numbers to be provided by the API.
So yes, this is a new route, taking as parameter a set of orcids and returning a list of same size with the total number of models for each of the orcid provided.
Example:
Input: orcid1, orcid2, .. orcidx
output: { orcid1 : nb_models_1 ; orcid2 : nb_models_2; ... orcidx: nb_models_x }

@tmushayahama - do you know if this metadata is now provided by the API?
If the work is done here, please go ahead and close the ticket.  Thx.


Do not start if there are no field "games"

if the field "games" is empty, then it does not start.
const accounts = database   .map(({ name, password, sentry, secret, games = [] }) => {     return games.length > 0       ? new SteamAccount(name, password, sentry, secret, games, pad)       : null   })   .filter(val => val !== null)
Then it turns out that this code is meaningless:
this.client.gamesPlayed(this.games !== null ? this.games : [10, 730])
Sorry for my bad english.

I know about this redundancy, I chose to leave it in case I change something in the future.


SiteProfileNotAvailable is gone.

We'll need to stop raising this exception.
More than likely, we'll have to deprecate the AUTH_USER_PROFILE and use a swappable user model instead.

That's taken care of in #1420

Fixed with the merge of #1420.


Improve cargo-zigbuild zig performance

I recently discovered my C++ projects builds notably slower when using cargo-zigbuild, compared with a cmake toolchain I craft manually similar to https://github.com/mrexodia/zig-cross
After some debugging, I found that the initial process of fn execute_compiler (everything before actual zig Command::run) takes heavy amout of time, almost equal to the Command::run itself:

It would be great if the initial time could be reduced. Thanks!

I guess most cost comes from spawning the Rust and Zig to checkout their versions. The versions could be checked when zigbuild is invoked and stored in zigcc-xx.sh.


Unable to see some files/folders in visual code explorer

Type: Bug

git clone git@github.com:Effect-TS/platform.git
code --disable-extensions platform

When I do the above, I cannot see the packages/*/src folders for some reason. However, I can see the src folder, for example, with ls -la platform/packages/platform-node.
VS Code version: Code 1.82.1 (Universal)<PHONE_NUMBER>d557a81c9d0b5f8a5a1e9274db5585, 2023-09-08T08:49:32.930Z)
OS version: Darwin arm64 22.6.0
Modes:

System Info

Item
Value

CPUs
Apple M2 Pro (12 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
2, 2, 2

Memory (System)
32.00GB (7.13GB free)

Process Argv
. --crash-reporter-id 8c3d35d3-cdba-44b2-a42e-220d3e00dcff

Screen Reader
no

VM
0%

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.82.3. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Please review the information at https://code.visualstudio.com/docs/getstarted/userinterface#_explorer about the files.exclude setting.

@gjsjohnmurray I think you're suggesting I may have settings causing this issue. I've just double-checked them and these are the only glob patterns for excluding files and folders I found:
**/.git
**/.svn
**/.hg
**/CVS
**/.DS_Store
**/Thumbs.db

Oh, never mind. The project has its own vscode settings and I was just pointed to a mistake that was made there (now fixed).


Persistent storage integration

@drmarkpowell, please check that you have no SwiftLint errors when running this. I did not seem to, which makes me wonder whether I have SwiftLint correctly installed. Please try toggling (commenting out) between CustomTextView and TextEditor and make sure all works as expected. Please also comment on the project organization and naming. I think perhaps this could be better organized and am wondering whether each view should be named SomethingView and be in a group together and whether the Manager file should really be named ViewModel.
Please also help me think through exactly where and how I should demo the use of textViewWritingToolsWillBegin(), textViewWritingToolsDidEnd(), and isWritingToolsActive now that we have working data persistence.
— Thanks in advance! @SuzGupta

@drmarkpowell when and if you merge, please merge into sample-project-internal and then I'll start breaking this out into the three lessons and starter and final folders within each lesson. Thanks!


Fix missing dependency @oclif/dev-cli

- Summary
The dependency @oclif/dev-cli is missing. It was installed as part of @netlify/cli-utils which was removed by #593.
This PR fixes this. I've checked other dependencies of @netlify/cli-utils and this is the only missing one.
- Description for the changelog
Fix missing dependency @oclif/dev-cli

Never mind, it was installed as a devDependency :) All is good.


Test failure: Neovim::Current#window= sets the current window from an integer

Hi. With neovim 0.1.7, I get the following test failure after installing the gem (0.3.1)
jason ~/packages/ruby/neovim/ruby-neovim [master*] rspec spec

Randomized with seed 56265
.....................................F............................................................................................................................................................................................................

Failures:

  1) Neovim::Current#window= sets the current window from an integer
     Failure/Error: err ? raise(ArgumentError, err) : res

     ArgumentError:
       Invalid window id
     # ./lib/neovim/session.rb:102:in `block in request'
     # ./lib/neovim/session.rb:154:in `main_thread_only'
     # ./lib/neovim/session.rb:93:in `request'
     # ./lib/neovim/current.rb:59:in `window='
     # ./spec/neovim/current_spec.rb:76:in `block (4 levels) in <module:Neovim>'
     # ./spec/neovim/current_spec.rb:75:in `block (3 levels) in <module:Neovim>'
     # ./spec/helper.rb:69:in `block (3 levels) in <top (required)>'
     # ./spec/helper.rb:69:in `block (2 levels) in <top (required)>'

Finished in 3.13 seconds (files took 0.16158 seconds to load)
242 examples, 1 failure

Failed examples:

rspec ./spec/neovim/current_spec.rb:71 # Neovim::Current#window= sets the current window from an integer

Randomized with seed 56265

Thanks! Looks like the window indices now start from 1000 instead of 0. Updated the test to use relative changes instead of absolute: https://github.com/alexgenco/neovim-ruby/commit/6ed635df885f2cbd5794de4cc523b3bdace9986d.


Request to add side wheels.

As more nodes are added, some node information will not be visible. At present it can only be displayed by increasing the length of the ps plug-in. Can you add side scrolling?

@liulsg
I forked a branch and added this feature.


White screen on screen sleep

[yes ] I have read the FAQ.
[ yes] I have searched in existing issues.

Environment

OS: [Windows 10]
scrcpy version: [1.20]
installation method: [Git]
device model: Tinno u304ac ???
Android version: [9 go edditon (shitty phone)]

Describe the bug
when pressing the power button on phone with the -Sw option, it gives a white screen every time the power is pressed or emulated
this might just be a phone problem

Thank you for your report. Probably a device issue, scrcpy just requests to change the "power mode" to the device. How the device behaves in this mode is out of scrcpy control.

Only smooth experience with experience with scrcpy is on Android 7 Nougat.
Since then
Tecno BC2c (Android 10)
Tecno KF7j (Android 11)
Once scrcpy is connected, the screen doesn't turn it off completely (Not immediately after being connected, maybe after screen on/off two or three times). Disconnecting scrcpy isn't enough until I do a full reboot
Dunno if this is what op is experiencing, also funny others aren't experiencing this.

Disconnecting scrcpy isn't enough until I do a full reboot

Even pressing the physical power button several times is not sufficient?

Yes, pressing the physical power button several times is not sufficient.


Folder TreeDropdownField

This issue is in relation to a TreeDropdownField of type folder, and regards the search functionality throwing errors (also an incorrect result set being returned once these errors have been corrected). An example can be seen when either viewing a file from the AssetAdmin, or when selecting a file using an UploadField.
Basically when you trigger a search for a child folder's name, it attempts a database query to determine each parent folder.
https://github.com/silverstripe/silverstripe-framework/blob/3.1/forms/TreeDropdownField.php#L464
The problem here being that by default, a folder table does not exist. This in turn causes a server error. I have currently implemented a patch for our client project which corrects this issue as follows:
$table = $this->sourceObject;
while(!ClassInfo::hasTable($table)) {
	$table = get_parent_class($table);
}

However this reveals a larger issue when using the AssetAdmin. The search no longer raises an error, but returns an incorrect result set (one level too deep), which actually looks to have been incorrect to start with if you search for the root folder name without the patch in place! If you remove the following line, you'll also begin to have file elements returned.
https://github.com/silverstripe/silverstripe-framework/blob/3.1/filesystem/File.php#L393
Therefore it looks as though this problem goes a little deeper than expected. I've managed to narrow it down to the location in which this TreeDropdownField has been created from File.php, which must conflict with something else (perhaps from the previous file selection screen). The field definition and configuration are identical to that found from an UploadField, however that one functions correctly. Perhaps some kind of cached data is being pulled in at the last second?

This has mostly been addressed through the previous commits, however running through some brief testing still shows a couple of minor issues.

Using the AssetAdmin Folder TreeDropdownField, the user defined filter doesn't end up being applied, as the full result set is always returned.

When using a Folder TreeDropdownField elsewhere, it seems to think that folders with files under them are expandable (using the little arrow symbol), however these don't actually expand when selected.

Having another quick test with 3.3, it seems that 1 is still an issue, however 2 has been resolved. I don't think this issue is very important among others, therefore I'm going to close this for now and come back to it when I see the need.


Add basic test setup

@mbj ready for review

@mschop I finished an initial pass on style and semantics. Feel free to ping me again when you addressed (so changed code I flagged) or replied (not changed code, because you have an argument against my suggestion) to each flag.

@mschop
I changed the PR title to Add basic test setup from PR basic_setup because the PR component of your PR name was redundant (this is a PR). And basic_setup is not really a human readable description of the intention.
Please factor in this in future PR naming.

@mschop
Please re-word the commit message into something that is strucuted after: $operation_verb $subject like: Add basic test setup with mutation testing.
This results in a clearer commit message and less doubt for the consumer of the commit stream in future. Its not a problem the commit message reflects the PR title, because the PR will NOT be visible for a future consumer anymore.

@mbj as I understood you, I should combine those fixes in one commit for having only one commit in the pull request. Am I correct? Shall I create multiple commits now and squash them together afterwards?  Am I correct? Shall I create multiple commits now and squash them together afterwards? How would you do the changes?

All it matters is the desired end result: One commit that does the job, in this case: Adding the test setup.
If you add commits on top, and later squash them, or amend the commit you have: Your local decision.

@mbj ready for review

As the file index.ts is empty right now, what about adding a namespace there and asserting from the test it exists? This would make a far better initial iteration than the tautology we test right now to prove test setup works.

@mbj Because I have CommonJS as a target, every generated js file is a module. Adding a namespace would therefore be redundant. I could simply require the empty index.js. This would be equivalent to testing a namespace existance. It would also be a test for nodes require function. So I'm not sure whether this makes sense.

@mbj Because I have CommonJS as the target, every generated js file is a module. Adding a namespace would therefore be redundant. I could simply require the empty index.js. This would be equivalent to testing a namespace existance. It would primary be a test for nodes require function. So I'm not sure whether this makes sense.

I'm fine with that reasoning. Merging.


Python Startup Error

This seems to happen every time:
base) C:\Users\mib\pabv_control\python_client>python client.py
Traceback (most recent call last):
File "C:\Users\mib\pabv_control\python_client\ambu_control.py", line 126, in _handleSerial
line = raw.decode('UTF-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x98 in position 0: invalid start byte
Got error 'utf-8' codec can't decode byte 0x98 in position 0: invalid start byte

There should be no printout  from a traceback when catching this exception.

This happened at 1338 on Sunday:
(base) C:\Users\mib\pabv_control\python_client>python client.py
Traceback (most recent call last):
File "C:\Users\mib\pabv_control\python_client\ambu_control.py", line 126, in _handleSerial
line = raw.decode('UTF-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 34: invalid continuation byte
Got error 'utf-8' codec can't decode byte 0xc2 in position 34: invalid continuation byte
Traceback (most recent call last):
File "C:\Users\mib\pabv_control\python_client\ambu_control.py", line 126, in _handleSerial
line = raw.decode('UTF-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 34: invalid continuation byte
Got error 'utf-8' codec can't decode byte 0xc2 in position 34: invalid continuation byte
Traceback (most recent call last):
File "C:\Users\mib\pabv_control\python_client\ambu_control.py", line 126, in _handleSerial
line = raw.decode('UTF-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 34: invalid continuation byte
Got error 'utf-8' codec can't decode byte 0xc2 in position 34: invalid continuation byte


Changed the way labels are handled in the dialob dashboard module

Removed the getForm method that was being called for each table row.
Now it is called only when form is downloaded, or when label is being updated.

Please add into README.md that it requires dialob backend at least v. 2.2.4, otherwise OK


Using [CountryOrRegion] in eaxmple rather then [Country]

As per discussion on this document feedback - https://github.com/MicrosoftDocs/azure-docs/issues/18991 please change the example to use Using [CountryOrRegion] in example rather then [Country] else it is causing confusion.

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

ID: 6f70ad7b-5ba2-6167-1207-7496d57c6828
Version Independent ID: 3df3ae33-83d3-e25f-3b41-070620030a08
Content: Office 365 Groups naming policy
Content Source: Office365-Admin/create-groups/groups-naming-policy.md
Service: o365-administration
GitHub Login: @dianef77
Microsoft Alias: dianef

@MohitGargMSFT Thank you for this feedback
I'll get this change of wording request over to the O365ITPro writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.


JSON numeric strings converted to numbers

Bug description
Hi All,
Another JSON Scalar handling issue.
In summary, if a graphql API behind Wundergraph returns a string containing only a number, then the string is converted to a number.
Data sent to or from a backing API should not be changed in any way, except when asked.
How to reproduce
I have been able to create a self-contained wundergraph project to reproduce the error, using the in-built graphql server. It is attached:
wgtest.zip
To reproduce:
install dependencies with yarn
run with yarn start

Then visit the following URL: http://localhost:9991/operations/Hello
Expected behavior
The response from the server should be returned to the caller exactly as it is provided from the server.
For the attached project, that is:
{ "data": {"bar": "3345"} }
WunderGraph information
See attached test server
Environment & setup
OS: Mint w/kernel 5.4.0-135-generic
Go version: go version go1.13.8 linux/amd64
Node.js version: v18.12.1

WunderCtl Version
0.131.0

Seems wrong. Thank you for reporting. We'll have a look.

is anyone working on this issue, if not i would like to be assigned to it and work on it.

is anyone working on this issue, if not i would like to be assigned to it and work on it.

Sounds great. A PR would be welcomed.

@Faizan711 We can assign this issue to you if you'd like to work on it. Please, let us know. Thanks!

i would love to solve this issue, thank you for assigning me.
I will connect on Discord for issues.

i would love to solve this issue, thank you for assigning me.
I will connect on Discord for issues.

Thanks to you. Please, get in touch on Discord and let us know if you need help, we'll be more than happy to assist you.


Add environment param to exec

To specify a proxy when creating a mirror we need to set the http_proxy environment variable

I've done an updated PR (#60) with the addition of spec tests and a version bump. Thank you for the original contribution.


Start using web components for interface elements

React is too heavy in my opinion.  This would be useful for adding future buttons and reducing code duplication.

Closing: I don't think React is too heavy anymore. It's perfect for this app.


Perfetto progress indicator does not stop

This blue loading indicator across the top of the trace viewer is persistent. What could be causing this? This gif was recorded from the embedded perfetto view in Flutter DevTools (tracked there at https://github.com/flutter/devtools/issues/5119)

That's usually the sign of an outstanding query that didn't complete. Maybe something goes out of sync.

By query, do you mean a search query from the search bar?

any form of query issued against trace processor, whether comes form user actions (e.g. search bar) or a track issuing a query to fetch data. Essentially that's a sign of "trace processor is busy"


d3.select

I am using d3.select to update the data in charts in an interactive map application. It works just fine in a jsfiddle but for some reason, it does nothing using the exact same code in the web app itself. I have even made a simple copy just to test with only teh hteml id object and the leaflet features with a chart and its not working.
I have tweaked the code to use jquery instead of d3.select like this: $("#id").click(function() { instead of using d3.select("#id").on("click", function() { and I got the chart to update but only once. I am not sure why I am getting this, it doesn't make any sense to me.
Here is the working jsfiddle.
https://jsfiddle.net/Monduiz/kaqv37gu/

Please use Stack Overflow tag d3.js or the d3-js Google group to ask for help. These issues are for bug reports and feature requests only.


docs(rtl): add RTL example

Will get this PR out of draft once we cut a release with the series of RTL changes. This example can be run by the following for now:

Checkout #201
Cherry-pick #206 onto above
yarn clean && yarn build
Checkout this commit
cd /path/to/carbon-custom-elements/examples/codesandbox/rtl
yarn install
cd node_modules/carbon-custom-elements
rm -Rf es
cp -r /path/to/carbon-custom-elements/es .
cd ../..
yarn start
Open Chrome
Go to chrome://settings/?search=language and click on the Language section highlighted
Add a RTL language (e.g. Arabic) and move it to the top
Open localhost:8080

https://codesandbox.io/s/github/asudoh/carbon-custom-elements/tree/example-rtl/examples/codesandbox/rtl now works with the browser's language setting mentioned above.


I noticed that the SessionCookieJar plugin available in GuzzleHttp was abandoned in Guzzle. Is there a new viable alternative for it or nothing really? I still need the old SessionCookieJar behaviour because I am incrementally migrate from a legacy API and I can't lose that functionality straight away. Ideas?

It wasn't abandoned. It's in the master branch of Guzzle 6 and in the 5.3 branch.

On Feb 25, 2016, at 3:17 AM, Debo<EMAIL_ADDRESS>wrote:
I noticed that the SessionCookieJar plugin available in GuzzleHttp was abandoned in Guzzle. Is there a new viable alternative for it or nothing really? I still need the old SessionCookieJar behaviour because I am incrementally migrate from a legacy API and I can't lose that functionality straight away. Ideas?
—
Reply to this email directly or view it on GitHub.

Yes but when I run composer install using Guzzle 6.x alias guzzlehttp it suggests me to use/install guzzle/guzzle because the former is abandoned/depracated. Am I getting this wrong?

@debo I think you may have that backwards. Guzzle 3 (composer require guzzle/guzzle) is deprecated and lists Guzzle 6 (composer require guzzlehttp/guzzle) as a suggestion.

@jeskew not sure this is what I get for instance:
$ composer require guzzle/plugin-cookie
Using version ^3.9 for guzzle/plugin-cookie
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing guzzle/common (v3.9.2)
    Downloading: 100%

  - Installing guzzle/stream (v3.9.2)
    Downloading: 100%

  - Installing guzzle/parser (v3.9.2)
    Downloading: 100%

  - Installing guzzle/http (v3.9.2)
    Downloading: 100%

  - Installing guzzle/plugin-cookie (v3.9.2)
    Downloading: 100%

Package guzzle/common is abandoned, you should avoid using it. Use guzzle/guzzle instead.
Package guzzle/stream is abandoned, you should avoid using it. Use guzzle/guzzle instead.
Package guzzle/parser is abandoned, you should avoid using it. Use guzzle/guzzle instead.
Package guzzle/http is abandoned, you should avoid using it. Use guzzle/guzzle instead.
Package guzzle/plugin-cookie is abandoned, you should avoid using it. Use guzzle/guzzle instead.
Writing lock file
Generating autoload files

Anyway, what I'd like to know now is mainly what version should I use and what documentation should I read.

Use guzzlehttp/guzzle, which bundles cookie support.

Okie dokie, thanks. What about response cache by the way?


Two Problems With Integrated Terminal

Issue Type: Bug
Upon running any python script, the trash can icon is non-functional.
The terminal display is blank except for the cursor at the bottom of the display until the terminal window is resized, then, the majority of output displayed is limited to two characters per line making the output unreadable.
VS Code version: Code 1.58.1 (2aeda6b18e13c4f4f9edf6667158a6b8d408874b, 2021-07-13T06:58:28.115Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz (4 x 3400)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.89GB (6.18GB free)

Process Argv
C:\Users\Malachi\Desktop\Desktop_Master\Shared\Documents\Python\Learning\Practice, Project & Exercise Files\Projects\Image Converter\Image_Converter.py --crash-reporter-id 5bf58387-f4a6-4b59-b3d3-da5638839151

Screen Reader
no

VM
0%

Extensions (35)

Extension
Author (truncated)
Version

arepl
alm
2.0.2

vscode-json
and
1.5.0

vscode-django
bat
1.6.0

lit-html
bie
1.11.1

vscode-zonefile
Com
0.0.4

vcard
cst
1.0.1

ini-for-vscode
Dav
0.0.4

python-extension-pack
don
1.6.0

EditorConfig
Edi
0.16.4

code-runner
for
0.11.5

beautify
Hoo
1.5.0

latex-workshop
Jam
8.19.2

better-cpp-syntax
jef
1.15.6

vscode-sfz
jok
0.1.0

MagicPython
mag
1.1.0

rainbow-csv
mec
1.9.1

python
ms-
2021.6.944021595

vscode-pylance
ms-
2021.7.3

jupyter
ms-
2021.8.1013163132

cpptools
ms-
1.5.1

vscode-typescript-next
ms-
4.4.20210714

prettier-standard-vscode
num
0.8.1

fix-json
oli
0.1.2

colorful-comments
Par
0.6.2

material-icon-theme
PKi
4.8.0

LiveServer
rit
5.6.1

markdown-snippets
rob
0.7.4

snippets-ranger
rob
0.20.2

code-spell-checker
str
1.10.2

openvms-syntax
tom
0.1.0

latex-support
tor
3.8.0

python-extended-snippets
tus
0.0.1

python-auto-venv
whi
1.2.2

jinja
who
0.0.8

markdown-all-in-one
yzh
3.4.0

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspyt653:30270858
pythonvspyt602:30300191
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythonvspyt639:30300192
pythontb:30283811
pythonvspyt551:30311712
vspre833:30321513
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
pythondataviewer:30285071
vscus158:30321503
pythonvsuse255:30335481
vscod805:30301674
pythonvspyt200cf:30331938
vscextlangct:30333562
binariesv615:30325510
bridge0708:30335490

I am having the same problem if anyone has a solution that would be great.

I am having the same issue where the trash button does not kill the integrated terminal.
Steps to reproduce:

Open VS Code
Use Toggle Integrated Terminal command
Click the trash icon
The terminal is not killed and it stays open.

Workaround:
Click inside the integrated terminal, and after the focus is there, click the trash icon again. That way the terminal is actually killed.

will be fixed in the recovery build we release today , duplicate of #128264

Hello Attila!
Thank you for the suggestion and the reply.
However, this does not work for me, as the trash can icon is unresponsive
even after clicking to move
focus to the terminal, also the keyboard shortcut Ctrl + ` has no effect.
I do see that this bug will be fixed today, so I'm sure all will be well.
As an aside, I'm superlatively impressed and surprised that this is the
first major bug I've
experienced using V.S Code given how extensive and full-featured this IDE
is.
So thank you to you and your team, as well as all individuals under the V.S
Code moniker.
Amazing work!
-mal
On Thu, Jul 15, 2021 at 5:16 AM Attila Blascsak @.***>
wrote:

I am having the same issue where the trash button does not kill the
integrated terminal.
Steps to reproduce:

Open VS Code
Use Toggle Integrated Terminal command
Click the trash icon
The terminal is not killed and it stays open.

Workaround:
Click inside the integrated terminal, and after the focus is there, click
the trash icon again. That way the terminal is actually killed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/128715#issuecomment-880646442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALC25BBQJXCE6MGENVOLBPTTX3GRVANCNFSM5AMT5EDQ
.


AssertionError: assert not scan_updates

Hi,
Thank your for sharing. I have a problem
When I add the batchNorm operation to the generation net, the assertion error will occur.
AssertionError assert not scan_updates
Could you please explain why should assert not scan_updates  and how can I add the batchNorm operation to the net?
Thank you very much!

Luckily, I have solve it. This is an very interesting and confusing case.
If I add batch norm in this way, ...batch_norm(DenseLayer(..., the error will occur.
If I add it in this way, newwork=batch_norm(network), it will be OK.


Fix Logout Feature in Rentalog Web App

The logout option on the Rentalog.in--Frontend admin panel is currently non-functional. I would like to implement a fix to ensure that this feature works properly and allows admins to securely log out of their accounts when needed.
@gauravsingh1281  I would like to work on this issue. Could you please assign it to me?
Please assign it under gssoc-ext and hacktoberfest2024 along with the level labels.

@gauravsingh1281 Thank You!!


Don't use deprecated EVP_CIPHER_CTX_cleanup() internally

Use EVP_CIPHER_CTX_reset() instead

Fixes #2808

Merged. 15d95dd7ea77e68bf9d8450e52230a6017735ec0

Looks like this needs to happen in 1.1.0 too. @levitte, my approval counts for there too.

Okie.  Merged into 1.1.0: bf9ee8a810971b6bd7eb5fe84ac97a61514607d8


Managed Service Identity for ACI in vNet

The documentation states that:

You can't use a managed identity in a container group deployed to a virtual network.

However, if you deploy an ACI into a virtual network, and then go in to the Identity blade and enable a System-Assigned Managed Service Identity, then the identity is created and assigned as expected.
So, is the documentation out of date, or is this a preview feature for vNet-integrated ACI? Or, is it the fact that you can assign an MSI but you can't use the MSI for RBAC on other resources?

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

ID: 81e00caf-dd95-441b-d2d5-0b3c979cb11b
Version Independent ID: 83ed8e59-7ae8-332e-9ce0-7d80e8a973f8
Content: Deploy container group to Azure virtual network - Azure Container Instances
Content Source: articles/container-instances/container-instances-vnet.md
Service: container-instances
GitHub Login: @dlepow
Microsoft Alias: danlep

@jamesbannan Thank you for your feedback. We will investigate and update the thread further.

@dlepow Can you please check this and add your comments.

@jamesbannan - Thanks for reaching out. You're correct that you're able to assign a managed identity to a VNet-integrated container group. The assignment isn't blocked. However, as you suggested as one of the options, you can't currently use the identity for RBAC to other resources. Providing support for using managed identities in this scenario is on the product roadmap but I don't have more detail beyond that. Please let us know if this helps answer your questions!
/cc: @macolso

Hi @dlepow - yes, that makes sense. Thanks for the clarification. Is there any public information about this feature on the product roadmap?

@jamesbannan - Sorry, I don't have specifics. This issue does appear on the Azure User Voice which product teams use to help prioritize service updates. Please feel free to upvote the feature request

@jamesbannan As suggested please upvote for the feature request.
We will now close this issue. If there are further questions regarding this, please tag me in a comment. I will reopen it and we will continue the discussion.

New feature request - no redirects left behind from uservoice -> d365community
https://feedback.azure.com/d365community/idea/3d0a8ded-0c25-ec11-b6e6-000d3a4f0858

Seems like this is supported now?
New Regions and Managed Identity Support for Azure Container Instances with Azure Virtual Networks


Error "FileNotFound", Python 3.5 on Windows and macOS

Hi,
I tried to launch a simple .py file like the example proposed, but i got this error on macOS High Sierra:
Traceback (most recent call last):
 File "/Users/Username/Desktop/Test.py", line 3, in <module>
  pymzn.minizinc("test.mzn", "test.dzn")
 File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pymzn/mzn/minizinc.py", line 202, in minizinc output_mode=_output_mode)
 File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pymzn/mzn/minizinc.py", line 308, in mzn2fzn run(args)
 File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-
packages/pymzn/mzn/utils.py", line 50, in run stderr=subprocess.PIPE) as process:
 File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py",
line 676, in __init__
  restore_signals, start_new_session)
 File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py",
line 1289, in _execute_child
  raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: "mzn2fzn"

and this one on Windows 10
Traceback (most recent call last):
  File "C:/Users/Username/Desktop/pymzn/Test.py", line 3, in <module>
    pymzn.minizinc('test.mzn', 'test.dzn')
  File "C:\Program Files\Python35\lib\site-packages\pymzn\mzn\minizinc.py", line 202, in minizinc
    output_mode=_output_mode)
  File "C:\Program Files\Python35\lib\site-packages\pymzn\mzn\minizinc.py", line 308, in mzn2fzn
    run(args)
  File "C:\Program Files\Python35\lib\site-packages\pymzn\utils.py", line 50, in run
    stderr=subprocess.PIPE) as process:
  File "C:\Program Files\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Program Files\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] Impossibile trovare il file specificato

I've already installed MiniZinc. How can I solve this?

 The previous method is recommended, but alternatively you can configure PyMzn like this:
pymzn.config.set('mzn2fzn', 'path/to/mzn2fzn')
On MacOS I am fairly positive it should work fine, but I never tested the library on Windows and other people have reported some problems, so use with care. I'll try to make it work on Windows in the near future!

I tested the latest release on Windows and seems to work fine now.


chore: Update registry.access.redhat.com/ubi9/s2i-base Docker digest to 77267c0

This PR contains the following updates:

Package
Type
Update
Change

registry.access.redhat.com/ubi9/s2i-base
final
digest
bfff3a0 -> 77267c0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Bundled typings are incorrect

The typings file exposes an empty object instead of the actual types:
export {};
//# sourceMappingURL=index.d.ts.map

@gregbty thanks for reporting. This is fixed in 1.0.0.


Ionic JSON parse exception

My PC recently crashed while halfway through building my Ionic 2 project, and now I can't run any ionic commands. When I try to run any ionic command in any of my ionic projects I get the following command output:
SyntaxError: Unexpected token in JSON at position 0
at Object.parse (native)
at Object.load (C:\Users\iyash\AppData\Roaming\npm\node_modules\ionic\node_modules\ionic-app-lib\lib\config.js:13:24)
at Object.<anonymous> (C:\Users\iyash\AppData\Roaming\npm\node_modules\ionic\lib\utils\stats.js:31:31)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)

I've tried removing all the node_modules in my project and reinstalling them as well as uninstalling and reinstalling both cordova and ionic. I've also cleared the contents of my www folder. I've removed and re-added my platforms using cordova commands, since ionic doesn't work. I have also gone so far as to uninstall node, delete npm and npm-cache directories, run ccleaner to clean temp files, reboot, reinstall node, reinstall ionic and cordova.
I can't run ionic info to get my version info.
Any suggestion on what else I can do to get ionic working again? There must be some json file somewhere that I'm not finding and deleting that's been corrupted.

I've found the source of the problem! My C:/Users/{username}/.ionic/ionic.config file was corrupted when my pc crashed.
Weird that that file NEVER gets cleared when uninstalling ionic, maybe something to look into ionic team?
Can anyone please post me the contents of theirs so I can see what to put in there?


benchmarking_deploy_coco_dataset: make the execution easier to reproduce

This PR stores the YAML definition of the resources used to 1) download the COCO dataset and 2) trigger the benchmark
into dedicate files, so that it's easier for anyone to re-execute these steps outside of the CI, and without ci-artifacts toolbox.
See the files 00x in these two directories:

https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/301/pull-ci-openshift-psap-ci-artifacts-master-test-commit/1469245167625048064/artifacts/test-commit/test-commit/artifacts/recipes_run_cocodataset_nvidiadl_ssd_download_twice_benchmark_twice/014__benchmarking__run_nvidiadl_ssd/
https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/301/pull-ci-openshift-psap-ci-artifacts-master-test-commit/1469245167625048064/artifacts/test-commit/test-commit/artifacts/recipes_run_cocodataset_nvidiadl_ssd_download_twice_benchmark_twice/012__benchmarking__download_coco_dataset/

/test test-commit

/test test-commit

/test test-commit
On Fri, Dec 10, 2021 at 10:31 AM openshift-ci[bot] @.***>
wrote:

@kpouget https://github.com/kpouget: The following test failed, say
/retest to rerun all failed tests or /retest-required to rerun all
mandatory failed tests:
Test name Commit Details Required Rerun command
ci/prow/test-commit e897cc4
https://github.com/openshift-psap/ci-artifacts/commit/e897cc4d610b6ea0863f2718a2518b38c36cf44a
link
https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/301/pull-ci-openshift-psap-ci-artifacts-master-test-commit/1469221203481726976
true /test test-commit
Full PR test history
https://prow.ci.openshift.org/pr-history?org=openshift-psap&repo=ci-artifacts&pr=301.
Your PR dashboard
https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:kpouget.
Instructions for interacting with me using PR comments are available here
https://git.k8s.io/community/contributors/guide/pull-requests.md. If
you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository. I understand the commands that are listed here
https://go.k8s.io/bot-commands.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openshift-psap/ci-artifacts/pull/301#issuecomment-990777119,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZVQITL6FNNN6Y4HTZA7EDUQHCIVANCNFSM5JW4357A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

test results look as expected, good for merging
(I only had to add a -oyaml, no need to retrigger the test for that)
/approve
/override ci/prow/gpu-operator-e2e

/lgtm


Documentation on Specular Integration with Distant Lights

In this section:
https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/distantlightprobes
Before equation (91), there's a vague sentence about what values of h and v should be inserted. In general, it's not clear how the integration is not dependent on v and can be done offline.
I would appreciate if someone can clarity that! The following paragraph also looks incomplete:

When integrating, we can choose any 𝑣 v  we please as long as it satisfies n ⋅ v  (e.g.: when calculating v ⋅ h ).

@pixelflinger can say more, but it's exactly what's explained in that sentence you quote. The DFG lut is indexed by dot(n,v) on one axis and roughness on the other axis. The view vector (v) you pick does not matter as long as it corresponds to the value of dot(n, v) you are currently computing. You can see how it is done here: https://github.com/google/filament/blob/main/libs/ibl/src/CubemapIBL.cpp#L748
This is also explained in the annex: https://google.github.io/filament/Filament.md.html#annex/precomputinglforimage-basedlighting

Thanks, Romain for your swift reply and the code. I understand the code and it helps!


Compute Shader Example Doesn't Seem To Work

Your Godot version:
v4.2.stable.official [46dc27791]
Issue description:
When running a scene with the compute shader example code from the documentation (https://docs.godotengine.org/en/stable/tutorials/shaders/compute_shaders.html), the output does not seem to match what would be expected.
I've added the following to a file in my project called compute_example.glsl:
#[compute]
#version 450

// Invocations in the (x, y, z) dimension
layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in;

// A binding to the buffer we create in our script
layout(set = 0, binding = 0, std430) restrict buffer MyDataBuffer {
	float data[];
}
my_data_buffer;

// The code we want to execute in each invocation
void main() {
	// gl_GlobalInvocationID.x uniquely identifies this invocation across all work groups
	my_data_buffer.data[gl_GlobalInvocationID.x] *= 2.0;
}

And the following script to my scene which is just a Node2D object:
extends Node2D

# Called when the node enters the scene tree for the first time.
func _ready():
	# Create a local rendering device.
	var rd := RenderingServer.create_local_rendering_device()

	# Load GLSL shader
	var shader_file := load("res://compute_example.glsl")
	var shader_spirv: RDShaderSPIRV = shader_file.get_spirv()
	var shader := rd.shader_create_from_spirv(shader_spirv)

	# Prepare our data. We use floats in the shader, so we need 32 bit.
	var input := PackedFloat32Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
	var input_bytes := input.to_byte_array()

	# Create a storage buffer that can hold our float values.
	# Each float has 4 bytes (32 bit) so 10 x 4 = 40 bytes
	var buffer := rd.storage_buffer_create(input_bytes.size(), input_bytes)

	# Create a uniform to assign the buffer to the rendering device
	var uniform := RDUniform.new()
	uniform.uniform_type = RenderingDevice.UNIFORM_TYPE_STORAGE_BUFFER
	uniform.binding = 0 # this needs to match the "binding" in our shader file
	uniform.add_id(buffer)
	var uniform_set := rd.uniform_set_create([uniform], shader, 0) # the last parameter (the 0) needs to match the "set" in our shader file

	# Create a compute pipeline
	var pipeline := rd.compute_pipeline_create(shader)
	var compute_list := rd.compute_list_begin()
	rd.compute_list_bind_compute_pipeline(compute_list, pipeline)
	rd.compute_list_bind_uniform_set(compute_list, uniform_set, 0)
	rd.compute_list_dispatch(compute_list, 5, 1, 1)
	rd.compute_list_end()

	# Submit to GPU and wait for sync
	rd.submit()
	rd.sync()

	# Read back the data from the buffer
	var output_bytes := rd.buffer_get_data(buffer)
	var output := output_bytes.to_float32_array()
	print("Input: ", input)
	print("Output: ", output)

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

All of which should be copied and pasted verbatim from the example.
However, on running it, the actual shader doesn't seem to modify the data:
Input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

I assume this is a documentation issue. If instead this is a Godot engine bug I can close this one and open an issue there.
URL to the documentation page:
https://docs.godotengine.org/en/stable/tutorials/shaders/compute_shaders.html

CC @bruvzg Is it possible this is caused by a MoltenVK update? I don't know of anything on the renderer side that would result in this type of change in behaviour

Shader seems to be working on M1 Mac (both 4.2 official build and custom 4.x with the custom MoltenVK).
Input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Output: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

Okay, I'm at a loss. After having loaded it in 4.1.3 and then re-loading it in 4.2, it now runs as expected.

Maybe its a shader caching issue. If so, its going to be very hard to reproduce now.

I believe I have tracked down the root cause. I was using Godot's built in text editor originally to edit the glsl file. This seems to not trigger something in the editor that the glsl file needs to be reevaluated. So it continues using whatever was there when it first saw it (in my case an empty text file).
However when editing it elsewhere, such as VS Code (or opening it in Godot 4.1) makes the editor realize that a change has occurred and picked up on it. The documentation does clearly state to use an external editor, so in the end that's a me problem. Closing. Thanks for the help.

Thank you @TheCleric. Was pulling my hair out trying to figure out what I was doing wrong with compute shaders, trying to get something basic set up. Then I conceded to just follow the basic tutorial, which I was surprised to find I still couldn't get working, having copied it line by line from the docs, got the same output as you.
I'm wondering if this would still be a bug? Why can't we use the built in text editor for .glsl files? Would Godot also not recognize normal .txt files as being updates using the internal editor? I ran into another (I think definite bug) today with a very similar pattern relating to resources/scenes not updating and getting hardlocked like this which I'm struggling to reproduce.
When in doubt, rename your .godot folder and see if it magically fixes everything. Has worked for me numerous times.


Allow setting cgroup path for integration testing purposes

What does this PR do?
Currently Cgroup path is rightfully hardcoded in the source, however this makes it impossible to perform end-to-end tests on stubbed values of the file, as /proc/groups/self file is not overridable on linux systems
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.

Thanks for the review ! :bow:


path not specified

whenever i am making command php artisan potion:make-assets
its saying the system canot find the path specified........ may be more docmentation is needed

If you pull my fork of this project, you can use --debug to show you all the paths and files it attempts to make so you can work out what is failing.

Laravel 5.1 only

https://github.com/sparkeleven/laravel-potion

i am using latest version of laravel

my css and js files are present in resources/assets folder when ever i am running this command php artisan potion:make-assets its saying system cant find the path specified .... please tell am i doing something wrong or i have to add something more in command

I have plans to add better output, so that you can see what might be going wrong. I will try to find some time today or tonight to get this into the main branch.

I just pushed v1.0.3 which adds more output.
It will output what directory it's trying to create, but more importantly it will output what it is pulling from your config for assets and resource paths.
Just a reminder:
assets: is the folder that will be used to store final assets that are created by potion.
resources: are files/folders that are used to create the final assets.

ok let me try it


⚠ Thumbnails API Endpoint has degraded performance

In f3c7bac, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 1079 ms

Resolved: Thumbnails API Endpoint performance has improved in 4b6de73 after 37 minutes.


User code is outputted with extra newlines (on Windows)

User code written inside %{ %} or %top{ } outputs extra newlines.
This breaks multiline #defines, e.g:
#define FOOBAR(a, b) \
FOO(a); \
BAR(b);

...gives the output:
#define FOOBAR(a, b) \

FOO(a); \

BAR(b);

Not sure if relevant, but these are the arguments I used when running reflex 2.0.0 WIN.
win64\reflex.exe
--bison-complete
--bison-cc-parser=Parser
--bison-cc-namespace=clax
--namespace=clax
--bison-locations
--outfile=rscanner.cpp
--header-file=rscanner.h
scanner.l

Thanks for the feedback!
That's peculiar.
The problem appears to be caused by the CRLF output that reflex produces on Windows.
I will turn that off. Producing LF works just fine as the file isn't saved in "binary mode" any way.

Fixed in v2.0.1.

Thanks for the quick fix.
It makes sense as writing in text mode on windows replaces LF with CR LF, thus causing a manual CR LF to be written as CR CR LF, hence leaving the interpretation of CR CR LF to the consuming application, in this case the compiler.


Smart ToString overrides for AngleSharp.Url and other classes

It's something that is natural to expect. And the newer .NET APIs have it. For example
XElement.Parse("<x/>").ToString()

gives us
<x />

I would expect an alike behaviour from AngleSharp.Url, IHtmlElement etc.

That depends. There are a lot of questions. Do you want the inner HTML ? The outer HTML ? Only the element (with no children) ? Do you just want to know the name of element ?
The natural stringification of a DOM element is the name of the representing interface. Therefore this is a topic that raises more questions than answers. Everyone expects something different from ToString(), as there are many possible strings that can be created.
Also this is quite fishy in the code. If I have the choice of using foo.InnerHtml vs foo.ToString() I will always prefer the first one. Reason? It is obvious from the naming what will be the behavior. Therefore my recommendation is to stay with the obvious choices (e.g. Href for Url, OuterHtml for IHtmlElement, etc.).

I expected it to be the outer HTML just because XElement does this.

And what about URLs? Why is Href better than ToString? Might different people expect different results from url.ToString()? It looks unambiguous to me.

I agree, for an URL it looks fine to me.


Sdkman stopped working after oh-my-zsh update

mvn used to work fine for me before I updated oh-my-zsh today. I installed mvn using sdkman and have this appended at the end of my ~/.zshrc:
export SDKMAN_DIR="/home/lokesh/.sdkman"
When I do which mvn I get mvn: aliased to mvn-or-mvnw but I should be getting /home/lokesh/.sdkman/candidates/maven/current/bin/mvn which I get when I do which mvn in bash. Please help.

I managed to fixed the issue temporarily by appending unalias mvn in ~/.zshrc.

mvn-or-mvnw defaults to mvn when it can't find mvnw, so it shouldn't matter. The completion part has been added recently, so run upgrade_oh_my_zsh to get the latest changes.


Error when using tensorflow embegging.

Hi Team, did some experimentation and found this issue when trying different tensorflow based embedding approaches:
from grape.embedders import StructuredEmbeddingTensorFlow
embedding = StructuredEmbeddingTensorFlow().fit_transform(graph)

produces error:
ValueError: We have found an useless method in the class StubClass, implementing method Structured Embedding from library TensorFlow and task Node Embedding. It does not make sense to implement the `requires_positive_edge_weights` method when the `can_use_edge_weights` always returns False, as it is already handled in the root abstract model class.

Anything I am doing wrong?
Thanks!

That was the initial reason, I installed tensorflow now and the error persists:
import tensorflow as tf
print(tf.version)

2.12.0


Improve Installation Documentation

Cheers! :smile:

This is much needed. On windows, I was not even aware that we needed to create colors dir.
Would be nice if it worked with Pathogen out of the box - instead of additional copy step. Solarized works like that, for example.


Adding hamburger for mobile devices .

I will add the hamburger menu for make it more responsive  navbar .

Issue already assigned #6


Clarify how to use options in README

I spent a good hour looking at source and issues before I figured out how to use and what options are available with what values exactly.

Pull Request Test Coverage Report for Build 292

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.423%

Totals

Change from base Build 236:
0.0%

Covered Lines:
186

Relevant Lines:
208

💛  - Coveralls


NFCORE_RNASEQ:RNASEQ:CUSTOM_DUMPSOFTWAREVERSIONS (1)` terminated with an error exit status (1)

Description of the bug
I am running the pipeline in Rackham server in UPPMAX, so I am using -profile uppmax when running the command. I resume a run where I have processed around 200 samples. In the step CUSTOM_DUMPSOFTWAREVERSIONS, the run always terminates with the error. Funnily, I have had a couple of runs in the same output and work directory, none of them had failed previously.
Command used and terminal output
INFO:    Environment variable SINGULARITYENV_TMPDIR is set, but APPTAINERENV_TMPDIR is preferred
INFO:    Environment variable SINGULARITYENV_NXF_TASK_WORKDIR is set, but APPTAINERENV_NXF_TASK_WORKDIR is preferred
INFO:    Environment variable SINGULARITYENV_NXF_DEBUG is set, but APPTAINERENV_NXF_DEBUG is preferred
INFO:    Environment variable SINGULARITYENV_SNIC_TMP is set, but APPTAINERENV_SNIC_TMP is preferred
Traceback (most recent call last):
  File "/work/.command.sh", line 101, in <module>
    main()
  File "/work/.command.sh", line 61, in main
    versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/parser.py", line 438, in parse_block_mapping_key
    raise ParserError("while parsing a block mapping", self.marks[-1],
yaml.parser.ParserError: while parsing a block mapping
  in "collated_versions.yml", line 1, column 1
expected <block end>, but found '<scalar>'
  in "collated_versions.yml", line 1329, column 2

Relevant files
No response
System information
Running on Rackham server in UPPMAX.

I get a similar error:
"  expected , but found '['"
ERROR ~ Error executing process > 'NFCORE_RNASEQ:RNASEQ:CUSTOM_DUMPSOFTWAREVERSIONS (1)'

Caused by:
  Process `NFCORE_RNASEQ:RNASEQ:CUSTOM_DUMPSOFTWAREVERSIONS (1)` terminated with an error exit status (1)

Command executed [/<REDACTED>/./workflows/../modules/nf-core/custom/dumpsoftwareversions/te
mplates/dumpsoftwareversions.py]:

  #!/usr/bin/env python

  """Provide functions to merge multiple versions.yml files."""

  import yaml
  import platform
  from textwrap import dedent

  def _make_versions_html(versions):
      """Generate a tabular HTML output of all versions for MultiQC."""
      html = [
          dedent(
              """\

                           Process Name
                           Software
                           Version

              """
          )
      ]
      for process, tmp_versions in sorted(versions.items()):
          html.append("
")
          for i, (tool, version) in enumerate(sorted(tmp_versions.items())):
              html.append(
                  dedent(
                      f"""\

                          <samp>{process if (i == 0) else ''}</samp>
                          <samp>{tool}</samp>
                          <samp>{version}</samp>

                      """
                  )
              )
          html.append("
")
      html.append("
")
      return "\n".join(html)

  def main():
      """Load all version files and generate merged output."""
      versions_this_module = {}
      versions_this_module["NFCORE_RNASEQ:RNASEQ:CUSTOM_DUMPSOFTWAREVERSIONS"] = {
          "python": platform.python_version(),
          "yaml": yaml.__version__,
      }

      with open("collated_versions.yml") as f:
          versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module

      # aggregate versions by the module name (derived from fully-qualified process name)
      versions_by_module = {}
      for process, process_versions in versions_by_process.items():
          module = process.split(":")[-1]
          try:
              if versions_by_module[module] != process_versions:
                  raise AssertionError(
                      "We assume that software versions are the same between all modules. "
                      "If you see this error-message it means you discovered an edge-case "
                      "and should open an issue in nf-core/tools. "
                  )
                  )
          except KeyError:
              versions_by_module[module] = process_versions

      versions_by_module["Workflow"] = {
          "Nextflow": "23.04.3",
          "nf-core/rnaseq": "3.13.2",
      }

      versions_mqc = {
          "id": "software_versions",
          "section_name": "nf-core/rnaseq Software Versions",
          "section_href": "https://github.com/nf-core/rnaseq",
          "plot_type": "html",
          "description": "are collected at run time from the software output.",
          "data": _make_versions_html(versions_by_module),
      }

      with open("software_versions.yml", "w") as f:
          yaml.dump(versions_by_module, f, default_flow_style=False)
      with open("software_versions_mqc.yml", "w") as f:
          yaml.dump(versions_mqc, f, default_flow_style=False)

      with open("versions.yml", "w") as f:
          yaml.dump(versions_this_module, f, default_flow_style=False)

  if __name__ == "__main__":
      main()

Command exit status:
  1

Command output:
  (empty)

Command error:
  INFO:    Converting SIF file to temporary sandbox...
  Traceback (most recent call last):
    File ".command.sh", line 101, in <module>
      main()
    File ".command.sh", line 61, in main
      versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/__init__.py", line 81, in load
      return loader.get_single_data()
             ^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/constructor.py", line 49, in get_single_data
      node = self.get_single_node()
             ^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/composer.py", line 36, in get_single_node
      document = self.compose_document()
                 ^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/composer.py", line 55, in compose_document
      node = self.compose_node(None, None)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/composer.py", line 84, in compose_node
      node = self.compose_mapping_node(anchor)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/composer.py", line 133, in compose_mapping_node
      item_value = self.compose_node(node, item_key)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/composer.py", line 84, in compose_node
      node = self.compose_mapping_node(anchor)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/composer.py", line 127, in compose_mapping_node
      while not self.check_event(MappingEndEvent):
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/parser.py", line 98, in check_event
      self.current_event = self.state()
                           ^^^^^^^^^^^^
    File "/usr/local/lib/python3.12/site-packages/yaml/parser.py", line 438, in parse_block_mapping_key
      raise ParserError("while parsing a block mapping", self.marks[-1],
  yaml.parser.ParserError: while parsing a block mapping
    in "collated_versions.yml", line 126, column 5
  expected <block end>, but found '['
    in "collated_versions.yml", line 126, column 21
  INFO:    Cleaning up image...

@fruce-ki I just checked my yml files, I too have the same error in some of the yml files.
Looking at the spacing in first line, maybe it could be a parsing error?
For ex. the original error might be shown as
UMI-tools version:     umitools: Matplotlib created a temporary config/cache directory at /tmp/matplotlib-xzn3u8vt because the default path (/home/kimon/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.
UMI-tools version: 1.1.4

and since the regex used in sed is 's/^.*UMI-tools version://; s/ *\$//' it must have gone through it.
But that's just my guess, maybe adding tail -1 could ensure only last line is processed by sed, but that's making assumptions that any future error codes won't appear in the later lines.

Thanks for the suggestion Matthias. Sadly, adding "NXF_SINGULARITY_HOME_MOUNT=true" did not resolve my issue.

I cannot seem to find this "collated_versions.yml". It is not found in the work directory, do anyone know where this file can be located?

Update: I can see my issue stems from the following entry in the yaml file.
"NFCORE_RNASEQ:RNASEQ:FASTQ_FASTQC_UMITOOLS_TRIMGALORE:FASTQC":
    fastqc: [0.001s][warning][os,container] Duplicate cpuset controllers detected. Picking /sys/fs/cgroup/cpuset, skipping /ngc/tools/ngctools/singularity/3.9.6/var/sing
0.12.1

Seems the tool creating the yaml file, does not handle a log warning properly, and adds it to the output (collated_versions.yml)...
Any suggestions how to fix/hack this issue?

I also get an error in this task, with version 3.13.2 and the version before it.
I am not sure if it is the same issue as originally posted. I've traced mine back to umi-tools and matplotlib.
In the working folder for the task, the collated_versions.yml has unexpected formatting for umi-tools:
"NFCORE_RNASEQ:RNASEQ:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:UMITOOLS_DEDUP":
    umitools: Matplotlib created a temporary config/cache directory at /tmp/matplotlib-xzn3u8vt because the default path (/home/kimon/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.
 1.1.4

I am not sure why this warning appears there of all places. what I do know is that the path in question is for sure present and has dwrx permissions for everyone. But it is oudside Nextflow's sandbox directory. Maybe the pipeline should set this env variable suggested in the warning message to an appropriate local directory, and then unset it. Or anticipate the potential presence of the warning when collating software versions.
As far as I can tell, everything else in the pipeline has completed correctly.

The message after "umitools: " also, like my issue, seems to be a warning or similar, that is being interpreted as the version.
I think the culprit is the tool which generated the collated_versions.yml file. It does not handle these warnings and other messages correctly, and just puts anything it gets into the yaml file, rather than just the version number of the tool...
However in your case, you might be able to get rid of the warning message by following Matthias's advice.

Reopened as the modules need to be included in RNAseq still

The problematic modules have now been patched in https://github.com/drpatelh/nf-core-rnaseq/commit/a59a6f3b761737496bde271cce547ca95451a5bb which should fix this issue in the upcoming 3.14.0 release.

Hi guys! I think I got a similar issue over in Sarek v3.3.2 (singularity-run), that is, I got a versions.yml-file with the following content:
"NFCORE_SAREK:sarek:BAM_VARIANT_CALLING_SOMATIC_ALL:BAM_VARIANT_CALLING_CNVKIT:CNVKIT_BATCH":
    samtools: samtools: error while loading shared libraries: libhts.so.3: cannot open shared object file: No such file or directory
    cnvkit: 0.9.10

which ends up in collated_versions.yml and then causes CUSTOM_DUMPSOFTWAREVERSIONS to fail.
I saw your fixes for your seemingly similar issues, but just changing the way the "version string" gets passed seems like a "superficial" fix to me, since there is clearly something very wrong when a call to <some_tool> --version throws an error, right? At first glance, I would prefer the job fail loudly (instead of silently as it does now).  In this case, it is samtools throwing the error. Any idea about what the underlying problem might be?
@maxulysse and I have a discussion going on this on Slack.

I suggested this: https://nfcore.slack.com/archives/C043UU89KKQ/p1707125822258109?thread_ts=1706698395.146229&cid=C043UU89KKQ

Maybe we need to start checking the version strings against a regex in the script. This would be another reason to use environment variables (I'm not 100% on this idea as it may kill an otherwise working analysis):
VERSION=\$( pigz --version 2>&1 | sed 's/pigz //g' ) && [[ \$VERSION =~ ^[0-9.]+\$ ]]

( I'm not sure how one would handle R or python scripts though ).
The custom dumpsoftware versions should handle malformed version numbers too.

I suggested this: https://nfcore.slack.com/archives/C043UU89KKQ/p1707125822258109?thread_ts=1706698395.146229&cid=C043UU89KKQ

Maybe we need to start checking the version strings against a regex in the script. This would be another reason to use environment variables (I'm not 100% on this idea as it may kill an otherwise working analysis):
VERSION=\$( pigz --version 2>&1 | sed 's/pigz //g' ) && [[ \$VERSION =~ ^[0-9.]+\$ ]]

( I'm not sure how one would handle R or python scripts though ).
The custom dumpsoftware versions should handle malformed version numbers too.

You memory is strong, @mahesh-panchal 💪   Mine - not so much 😆     Your suggestion seems like a step in the right direction. Do we have a GitHub-issue for fixing this? (I looked in the modules-repo, since it seems like this is something that should be fixed across all modules.)


Changes to embedded documents not tracked in parent history

I'm trying to track all changes to a model object and its embedded documents, as described in the "Include embedded objects attributes in parent audit" section of the README.
My models roughly looks like this:
class ParentModel
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::History::Trackable
  include Mongoid::Userstamp
  mongoid_userstamp user_model: 'User'

  field :foo
  embeds_one :child
  accepts_nested_attributes_for :child

  track_history on: [:fields, :updated_by_id, :embedded_relations],
                modifier_field: :modifier,
                modifier_field_inverse_of: :nil,
                version_field: :version,
                track_create: true,
                track_update: true,
                track_destroy: false
end

class ChildModel
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Userstamp
  mongoid_userstamp user_model: 'User'

  field :bar
  embedded_in :parent, inverse_of: :child
end

Changes to fields of the parent are correctly tracked in the parent's history, but not changes to fields of the child.
> p = Parent.all().first
> p.name = "test"
> p.save
> p.history_tracks.reverse.first
### shows the change to the name in the parent document

> p.child.bar = "test"
> p.save
> p.history_tracks.reverse.first
### no additional audit trail entry recorded, this shows the change to the name of the parent from above

Am I misunderstanding how the tracking of embedded relations is supposed to work? Does it only track a change to the reference itself, for example if I change p.child to a completely different child object?
Is there a way for me to accomplish what I'm looking for here, that is to have a single audit trail of parent document that shows all changes to all its fields, and all the fields of its embedded relations?
I was expecting #150 to provide this functionality.

The changes with embedded_relations should have worked.
First I would change save to save! and see whether there're errors. Then I would look at what's actually being written in MongoDB with logger at DEBUG level and make sure it's doing what we think it should be doing.
Finally, try to build a short repro in a spec. One thing that comes to mind - is ChildModel declared after or before?

I tried with save! as well, no errors. The child object is correctly saved in Mongo, and I can even reload the Parent object (with relations) and get the updated values as expected. It's just the audit trail that's incomplete.
In my application, ParentModel and ChildModel are declared into two distinct files (as you might expect in a Rails app). I don't know in what order those are loaded. From trying to write a spec for it, it does appear that I need to declare the ChildModel before. I'm sending a PR with the spec.

@mpetazzoni i tried to replicate the behavior by setting up a minimal example. mongoid-history was not able to catch the changes in embedded documents. It basically works on the parent_object.changes hash and if an embedded object attribute is changed, the changes hash remains empty (that is the default behavior of mongoid). So, no history record is not created in that case (which is a bug in mongoid-history).
There is a gem mongoid_relations_dirty_tracking to see the embedded documents changes in parent object's changes hash. I tried to use that in my example, but it turns out the gem does not support rails 5 and mongoid 6. If you are using a lower version of rails and mongoid, you can give it a try.
Another solution on SO.
It might take some more time to try these solutions on my end. I will let you know if i find a fix. Please let us know, if any of the above solutions work for you.

I have patched for support of Rails5/Mongoid6 mongoid_relations_dirty_tracking here. Problem is that test is still failing even when examples from mongoid_relations_dirty_tracking are fine.

Any news about it? How you solved it?

https://github.com/mongoid/mongoid-history/pull/191 seems like it's almost there, but not ready to merge

How it should work actually? For example in case embeds_many, that parent is Post and children are comments. And one comment was changed, should be in original and modified all comments? Or changed comment only?

My temporary solution is:

# app/models/concerns/mongoid/embedded_dirty_tracking.rb:

module Mongoid
  module EmbeddedDirtyTracking
    extend ActiveSupport::Concern

    included do
      after_initialize :store_embedded_shadow
      after_save :store_embedded_shadow
    end

    def store_embedded_shadow
      @embedded_shadow = {}

      self.class.tracked_embedded.each do |rel_name|
        @embedded_shadow[rel_name] = tracked_embedded_attributes(rel_name).dup
      end
    end

    def embedded_changes
      changes = {}

      @embedded_shadow.each do |rel_name, shadow_values|
        current_values = tracked_embedded_attributes(rel_name)
        if current_values != shadow_values
          changes[rel_name] = [shadow_values, current_values]
        end
      end
      changes
    end

    def embedded_changed?
      !embedded_changes.empty?
    end

    def changed_with_embedded?
      changed? or embedded_changed?
    end

    def changes_with_embedded
      (changes || {}).merge(embedded_changes)
    end

    def tracked_embedded_attributes(rel_name)
      values = nil
      case relations[rel_name].macro
      when :embeds_one
        values = send(rel_name)&.attributes&.clone || {}
      when :embeds_many
        values = Array.new
        values += send(rel_name).map { |child| child.attributes.clone }
      end
      values
    end

    module ClassMethods
      def tracked_embedded
        relations.select {|_, rel| %i[embeds_one embeds_many].include?(rel.macro) }.keys
      end
    end
  end
end

# app/models/concerns/trackable.rb

module Trackable
  extend ActiveSupport::Concern

  included do
    include Mongoid::EmbeddedDirtyTracking
    include Mongoid::History::Trackable

    track_history on: [:fields, :embedded_relations], except: [:_keywords], changes_method: :changes_with_embedded
  end
end

# app/models/city.rb

class City
  include Mongoid::Document
  include Trackable

  field :shortcut, type: String
  field :name, type: String

  embeds_many :excursions, cascade_callbacks: true
  accepts_nested_attributes_for :excursions, allow_destroy: true
end

# app/models/excursion.rb

class Excursion
  include Mongoid::Document

  field :name, type: String

  embedded_in :city
end

Inspired from https://github.com/Polarion/mongoid_relations_dirty_tracking

Partial fix in https://github.com/mongoid/mongoid-history/pull/232, please try HEAD!

No joy with HEAD.  This seems an issue for mongoid - Dirty should track changes when embedded documents are changed via the <relation>_attributes= path.   I have not been able to find anything about this in the Mongoid JIRA issues history yet.
Failing example:
parent.child_attributes= {"0": {name: "test"}}
parent.save
parent.changes
=> {}

the result from parent.changes should include the embedded document changes.


In Opera, Indie Wiki Buddy fails to redirect when clicking on search engine results

An Opera user reported that when they do a Google search and click on a Fandom result, the redirect doesn't happen. After much head scratching, I found the issue:
By default, Opera will block extensions from running on search engines. This includes "hiding" when a user is navigating from a search engine to another site, which prevents IWB from doing the redirect. Search engine access can be enabled per-extension by going to about:extensions and selecting the "Allow access to search page results" option.
I don't think any action is needed here for IWB, I just wanted to file this issue as documentation and in case anyone else runs into it.

This should be pinned (or have a message like the chromium bug one)

A note has been added for Opera users (similar to the Chrome bug one) in this commit: https://github.com/KevinPayravi/indie-wiki-buddy/commit/dd711f4a9a8056cd320fc96a29cbd662889e0e21
Will be included in next IWB release.


Readdir doesn't correctly handle capacity updates

Try to compile this sample code to WASI:
fn main() -> std::io::Result<()> {
	for entry in std::fs::read_dir("/")? {
		println!("{}", entry?.path().display());
	}
	Ok(())
}

Then, choose a large-ish folder - e.g. I created a temporary directory with 50 files named 0...49.
Run the produced Wasm with Wasmtime with that directory mapped to /:
$ wasmtime temp.wasm --mapdir /::$PWD/temp-dir
/1
/2
/49
thread 'main' panicked at 'range end index 1214 out of range for slice of length 128', library/std/src/sys/wasi/fs.rs:164:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error: failed to run main module `temp.wasm`

Caused by:
    0: failed to invoke command default
    1: wasm trap: unreachable
       wasm backtrace:
           0: 0xd581 - <unknown>!__rust_start_panic
           1: 0xd223 - <unknown>!rust_panic
           2: 0xcdfb - <unknown>!std::panicking::rust_panic_with_hook::h7412819944345424
           3: 0xc36e - <unknown>!std::panicking::begin_panic_handler::{{closure}}::h4738c0049ce98322
           4: 0xc2af - <unknown>!std::sys_common::backtrace::__rust_end_short_backtrace::h8bb6e3f06234953f
           5: 0xcc9f - <unknown>!rust_begin_unwind
           6: 0x12d4e - <unknown>!core::panicking::panic_fmt::h904ce09f3cb14707
           7: 0x12432 - <unknown>!core::slice::index::slice_end_index_len_fail::hcdd59b2bc02fd78c
           8: 0x9bd9 - <unknown>!<std::sys::wasi::fs::ReadDir as core::iter::traits::iterator::Iterator>::next::h53073ad4dd8c7879
           9: 0x96ff - <unknown>!<std::fs::ReadDir as core::iter::traits::iterator::Iterator>::next::h35e43cb49f6132cb
          10:  0x9de - <unknown>!temp::main::h0ae35bb072c9f0ef
          11: 0x1c90 - <unknown>!core::ops::function::FnOnce::call_once::hf1fda840e003cdf0
          12: 0x2820 - <unknown>!std::sys_common::backtrace::__rust_begin_short_backtrace::hf0b5aa48499a3256
          13: 0x3e5b - <unknown>!std::rt::lang_start::{{closure}}::h6eaa3cdacd789dba
          14: 0xd334 - <unknown>!std::rt::lang_start_internal::h0e1571f3e9f07dad
          15: 0x3dfc - <unknown>!std::rt::lang_start::h382cc3264c9b1456
          16: 0x1483 - <unknown>!__original_main
          17:  0x527 - <unknown>!_start
       note: run with `WASMTIME_BACKTRACE_DETAILS=1` environment variable to display more information

Same code against the same folder works fine with Wasmer, suggesting it's an environment issue not Rust stdlib issue:
/0
/1
/10
/11
/12
/13
/14
/15
/16
/17
/18
/19
/2
/20
/21
/22
/23
/24
/25
/26
/27
/28
/29
/3
/30
/31
/32
/33
/34
/35
/36
/37
/38
/39
/4
/40
/41
/42
/43
/44
/45
/46
/47
/48
/49
/5
/6
/7
/8
/9

The relevant code on the Rust side also hasn't been updated in 2 years, also confirming it's likely a runtime environment issue: https://github.com/rust-lang/rust/blob/643a79af3d5a31fa87c8a4c9d7f8bc4ebe2add4b/library/std/src/sys/wasi/fs.rs#L164

As long as the sample above works, I trust it's fine.

As long as the sample above works, I trust it's fine.

I'd suggest to add it as a regression test to the PR though.

I'd suggest to add it as a regression test to the PR though.

Agreed that there should be a regression test here, but it is a little difficult to mock up currently as it isn't directly related to the number of directory entries, just that the (unstable order of) entries being returned doesn't neatly fit in the buffer given to fd_readdir.
The WASI test programs use a real file system underneath, so we might be able to create a repro test relying on filesystem-specific behavior, perhaps.
The reason I wanted to confirm it addresses what you're seeing is that 1214 (from your panic above) is a much larger offset than what I'd expect returned when your file names are all really short.

Agreed that there should be a regression test here, but it is a little difficult to mock up currently as it isn't directly related to the number of directory entries, just that the (unstable order of) entries being returned doesn't neatly fit in the buffer given to fd_readdir.
The WASI test programs use a real file system underneath, so we might be able to create a repro test relying on filesystem-specific behavior, perhaps.
The reason I wanted to confirm it addresses what you're seeing is that 1214 (from your panic above) is a much larger offset than what I'd expect returned when your file names are all really short.

Actually, there's some virtualized filesystem support in the WASI test-programs I'm completely unfamiliar with.  I'll see if we can use this to properly test this for regression.

Actually, there's some virtualized filesystem support in the WASI test-programs I'm completely unfamiliar with.  I'll see if we can use this to properly test this for regression.

Hmm, it appears that fd_readdir WASI test program might have a workaround for the bug:
let sl = slice::from_raw_parts(buf.as_ptr(), min(BUF_LEN, bufused));

It should be asserting that bufused <= BUF_LEN.

Hmm, it appears that fd_readdir WASI test program might have a workaround for the bug:
let sl = slice::from_raw_parts(buf.as_ptr(), min(BUF_LEN, bufused));

It should be asserting that bufused <= BUF_LEN.

The virtualized filesystem support currently only works for files, not directories.
I'm nearly ready to land @sunfishcode's and my lengthy rewrite of wasi-common, and will need to backport the fix for this into my branch. The virtualized filesystem support in the rewrite is much better and we should be able to synthesize this test, or even fuzz this interface, since we keep on getting it wrong!

The virtualized filesystem support currently only works for files, not directories.
I'm nearly ready to land @sunfishcode's and my lengthy rewrite of wasi-common, and will need to backport the fix for this into my branch. The virtualized filesystem support in the rewrite is much better and we should be able to synthesize this test, or even fuzz this interface, since we keep on getting it wrong!

I might also suggest checking out https://github.com/WebAssembly/WASI/issues/9#issuecomment-760365864 thread where @caspervonb has been working on a shared WASI testsuite. It seems like Wasmtime might benefit from running the same tests, and, OTOH, the testsuite could include examples like this one with large-ish directories (should be just a matter of adding more files to the fixtures folder).

I might also suggest checking out https://github.com/WebAssembly/WASI/issues/9#issuecomment-760365864 thread where @caspervonb has been working on a shared WASI testsuite. It seems like Wasmtime might benefit from running the same tests, and, OTOH, the testsuite could include examples like this one with large-ish directories (should be just a matter of adding more files to the fixtures folder).

Agreed, we'll be contributing the wasmtime tests to that suite and getting the rest of it run as part of wasmtime's CI soon :)

Agreed, we'll be contributing the wasmtime tests to that suite and getting the rest of it run as part of wasmtime's CI soon :)


Map autons to images

It would be cool if the empty space on the right side of the auton view could be configured to display a image from the SD card related to the currently selected auton. Maybe this could be done by configuring an optional "path" parameter for each auton in init?

Good idea, will add this in a future minor update.


Add LICENSE file

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Missing Drupal extensions

Currently, Drupal .module & .install files are not treated as PHP. I've added these in the PR.
https://github.com/search?utf8=✓&q=extension%3Amodule+NOT+nothack&type=Code&ref=searchresults
https://github.com/search?utf8=✓&q=extension%3Ainstall+NOT+nothack&type=Code&ref=searchresults

Thanks for this PR @basvdheijden. As things stand though this change is going to cause issues. Specifically, as .module and .install aren't defined as language extensions currently, this change will mean that all .module and .install files will be classified as PHP which is not correct.
Looking at the breakdown of languages that are being assigned currently to .module and .install files (I've taken the screen grabs from your search links) it looks like some of these files are already being classified as PHP.

Do you think you could link to some examples of files that are not being classified correctly?

:flags: flagging this as stale :flags:

You're right I suppose.


Unable to archive

Hi,
Thanks for this great plugins.
I installed an it works perfectly on some files.
However, there is one file that the plugin does not work.  I tried many different ways and it still won't work.
I have included some tasks here and I am hoping that you can help to troubleshoot why....

[x] Continue to pay Alex - the amount is $8591. 07 and $3500 is paid on 6/18.📅 2023-06-18  ✅ 2023-06-21
[x] New student who wants to start at 7:30 am ⏫ ✅ 2023-06-21
[x] Respond to short pip players request to buy short pip 📅 2023-06-19 ✅ 2023-07-06
[x] Subioto lesson Wednesday after 7pm (1  w hour and 1.5 hour on Friday.  Saturday group training promotion for kids ✅ 2023-06-21

Hi @kevinyu600, I’m not involved in this plugin, I’m just having a look at the issues, to decide whether to use it myself.
However, I do know what makes a bug report useful and actionable, and so I thought I would suggest how you could enable this one to be investigated, if someone ever had the time.

What does “won’t work” mean? Is there an error message? Anything on the Obsidian console? Does it make the wrong edit?
Please attach the settings file for this plugin. It is so highly configurable that any issue could depend on your settings, perhaps in some subtle or not subtle way. You might need to compress the file to be able to add it here.

Thanks in advance.


Support for renaming ZWave values

Description:
This PR adds a card to the ZWave panel that allows renaming of the ZWave values. This is important because it gives users more control over the final entity_ids. For now since this is the primary purpose, I'm filtering the list of values returned by the API call to only those that are primary values for an entity. If we expand the role of the values card or there is another reasonable use-case, we can return the full list of values for the node.
Pull request in home-assistant-polymer: https://github.com/home-assistant/home-assistant-polymer/pull/295
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#2716

But discovery schema depends on labels. What happens of you change the "open" in cover to something else?
Even if this works it now requires users to rename or they will get unstable ids.

None of the primary values which determine the entity_ids match based on label.
The requirement to change conflicting names exists in all platforms. No one wants to have the complicated entity_ids, but it was required because they previously didn't have this capability. The goal is to eliminate workarounds from zwave.
Also, with previous versions since we were forcing an entity_id decision, conflicts failed much worse since they both tried to update the same state. Now it's the same as a conflict in any other platform.

Where is the label stored?
If it is zwcfg_xxx.xml (or the device itself) then the change would affect all users of the device. I dislike that.
Maybe store the name as HA-intenal mapping?

@andrey-git the labels are extracted from the values of the node.

@andrey-git The label changes are stored in zwcfg.xml.
I don't quite follow what you mean by all users of the device, can you elaborate? If users are running another program that uses the zwave device that program can maintain its own zwcfg.xml if that's desired.

You are right, zwcfg is good.

@andrey-git Are you OK merging this portion? The old entity ID format will still be used, but this allows the values to be renamed. It looks like the Polymer PR got merged.

Cherry-picked for 0.46.1


bucket name is taken from the name variable

This way we can choose the full name of the bucket instead of the module injecting unwanted stuff to the bucket name

We have a naming convention and there is another module enforcing it, this change that Mati is introducing is just meant to maintain retro-compatibility with LLC account