Added API to propagate checkmarks to children and parents.

Fixes #4829
Old Behavior

New Behavior

This also adds a new method to TreeItem called get_next_checked() which returns the next tree item affected last time set_checked() was called. This allows the user to respond to each check/uncheck that results from the original check/uncheck.
I have started to refactor some things like the asset installer and the project export dialog to take advantage of this behavior, but it won't be done until I can finish testing. I'd also like to try and write a test for this, to ensure it's working as intended.

I found and modified the gui unit test, but I can't figure out how to run it. I was expecting to run it via --sf="*test_gui*" but that doesn't appear to run the test.

If at least one child is unchecked - shouldn't the parent indicate that somehow visually (like replacing 'check' mark icon with 'minus' icon, like in other software) ?

@dreamsComeTrue That would be cool. I'll see about adding that!

I added indeterminate checkmarks to this PR. Here is how they appear in the application.

The icon's name is "indeterminate".

We definitely use this pattern a lot in the editor, but do we actually want this to be the default and only behavior? I would probably opt for a way to mark a column as check-propagate-able, which would turn this behavior on for it.
Same goes for the intermediate state.
For an example of a more complex behavior with propagating checks see the new theme editor's import items dialog.

Yeah, see #43538 for example. Usually when you have check propagation, you want some more logic along with it. So having this done automatically is rather undesired, unless there is a way to know which items were checked as a result of propagation (in which case you'd have to update the currently used "propagators" to your new system).
I like the indeterminate checkmarks though.

Same opinion as @pycbouh and @KoBeWi for me. I think it's better to leave this choice to the user and keep the behavior simple by default.

@KoBeWi Coincidentally, I used the project export tree to test my new check marks. I'm aware that every time the check status changes, a collection needs to be updated. I added a method called TreeItem::get_next_affected_by_check() which allows the user to iterate through the propagators. For testing purposes, I modified project_export.cpp to like this
while (item) {
  String path = item->get_metadata(0);
  if (!path.ends_with("/")) {
	  bool added = item->is_checked(0);
	  if (added) {
		  current->add_export_file(path);
	  } else {
		  current->remove_export_file(path);
	  }
  }
  item->get_next_affected_by_check();
}

The loop ends when item is null, which will happen once the root is reached.
I plan on changing stuff like this in a separate PR.
@pycbouh I'll take a look at the new theme import dialogue. Adding a method to disable indeterminate checks and check propagation won't be hard. I'll update this as soon as I can!

I plan on changing stuff like this in a separate PR.

Shouldn't it be done now? Otherwise the PR will break stuff.

@KoBeWi Good point! I'll do it in this PR after I finalize the new check behavior.

I have refactored EditorAssetInstaller, ThemeItemImportTree, and ProjectExportDialog to use my new methods. It was not necessary to "turn off" check propagation to achieve this. Since I didn't have to do that, I would prefer not to implement a method to mark columns as propagatable, at least not until we absolutely need it.

My main concern wasn't if we could adapt all of our editor UIs to this, but if it's a good idea to make it the default for users. So I would still make it optional and opt-in.

I made the behavior optional. It now has to be enabled by calling Tree::set_column_propagate_checks().

In my opinion, I still think such behavior should be coded by the user of the Tree node. It makes the Tree API more complex for something quite specific, while the Tree API is already very complex.
I am not against adding an API to allow implementing the "indeterminate" status though.

@groud Although it does make the Tree API a little more complex, it reduces complexity in other parts of the engine by erasing check helper methods that all mostly do the same thing. Instead of having EditorAssetInstaller::_update_subitems(), EditorAssetInstaller::_uncheck_parent(), ThemeItemImportTree::_update_parent_items(), ProjectExportDialog::_check_dir_recursive(), and ProjectExportDialog::_refresh_parent_checks(), all that logic can be represented in  small and digestable while loops in the item_edited callback method. Each of those helper methods would get more complex if I added an API for "indeterminate" status rather than an API for propagating checkmarks.
Although this does solve a specific problem, that being "checking and unchecking lots of items in a list is inconvenient," it is a problem that appears often in game development. Users write all kinds of importers and exporters, and I think all of them would rather put their focus on the functionality of the tool than its UX. I anticipate almost all would be excited by the prospect of making their tools more convenient with less programming.

@groud Although it does make the Tree API a little more complex, it reduces complexity in other parts of the engine by erasing check helper methods that all mostly do the same thing. Instead of having EditorAssetInstaller::_update_subitems(), EditorAssetInstaller::_uncheck_parent(), ThemeItemImportTree::_update_parent_items(), ProjectExportDialog::_check_dir_recursive(), and ProjectExportDialog::_refresh_parent_checks(), all that logic can be represented in small and digestable while loops in the item_edited callback method. Each of those helper methods would get more complex if I added an API for "indeterminate" status rather than an API for propagating checkmarks.

I'd rather have the "checking propagation" made a helper method then. The current API is quite simple, as each TreeItem is independent from one another, and there's almost no internal behavior impacting several TreeItem at once. If you want to create methods like propagate_check() and uncheck_parents or something like that, I am ok with it. I don't mind helper functions that much, as they don't do things behind the user's back.
And no, adding a method of "undeterminate" status does not make the API more complex, it makes it simpler in fact. Basically because it's very explicit to the user, while an internal status changing in some situation (but not accessible) is quite confusing.

Basically because it's very explicit to the user, while an internal status changing in some situation (but not accessible) is quite confusing.

I see. What would you think of this:
Right now set_checked() can do one of two things based on whether the user has called set_column_to_propagate_checks().
I can split set_checked() into two methods, set_checked(), which sets but does not propagate, and set_checked_propagate(), which sets but also propagates a check to children and parents and updates pointers for get_next_affected_by_check().
set_column_to_propagate_checks() can be made to control which of those two methods a Tree uses when the user presses a checkbox.
I can add a new method called set_indeterminate() to let the user set indeterminate status.
I would rename get_next_affected_by_check() to get_next_propagated_check(). It would still function the same the way it does now.

Right now set_checked() can do one of two things based on whether the user has called set_column_to_propagate_checks().

That could work.

set_column_to_propagate_checks() can be made to control which of those two methods a Tree uses when the user presses a checkbox.

I don't think it's needed. My idea was to let the user connect to the "item_edited" signal and propagate the checking if needed. That being said I though we would have an "item_checked" signal, maybe such signal would be needed then?

I can add a new method called set_indeterminate() to let the user set indeterminate status.

Makes sense.

I would rename get_next_affected_by_check() to get_next_propagated_check(). It would still function the same the way it does now.

I still fail to understand what this function does and why it is needed. From my understanding, all you seem to need is being able to recursively iterate over the children of an item. But I don't think we need a dedicated function for that.

I would rename get_next_affected_by_check() to get_next_propagated_check(). It would still function the same the way it does now.

I still fail to understand what this function does and why it is needed. From my understanding, all you seem to need is being able to recursively iterate over the children of an item. But I don't think we need a dedicated function for that.

I admit that method is non-essential since there are methods to iterate through children and methods to iterate through parents already, but it is a super helpful method because it enables the user to iterate through the appropriate items in a single while loop in the item_edited callback function.
Right now, when set_checked is called and the user has set a column to propagate checks, each child is (un)checked iteratively and recursively. In each iteration, the previous item updates a pointer named "next_checked" to point to the current item. This would look like:
original_item -> child1 -> child2 -> last_child
After all children have been taken care of, then the parents are iterated through and (un)checked based on how many of their children are (un)checked. Their pointers are updated the same way; previous to current. A null pointer is used to mark the end of the list. That looks like:
original_item -> child1 -> child2 -> last_child -> parent_of_original_item -> grand_parents -> null.
get_next_propagated_check() is meant to let the user traverse that linked list in a single while loop instead of iterating through children recursively in a while loop and then parents in a while loop using existing methods like get_first_child() and get_parent().

I admit that method is non-essential since there are methods to iterate through children and methods to iterate through parents already, but it is a super helpful method because it enables the user to iterate through the appropriate items in a single while loop in the item_edited callback function.

Yeah, to be honest I think this is too specific and quite hard to understand what it does. Unless users express need for something like that I would not add it. In general I think there are not a lot of situations where you would need to iterate over the modified entries. Most of the time users will most likely do a pass on the whole tree once it is "validated" (though it could also be done every time something is checked if there's not a lot of elements in the Tree). So for now, I think this function is not worth the trouble.
Also, it relies on an internal pointer which makes it dependent on another function call, which is not something I like that much. This easily create a mess when you modify the tree while iterating over it. It would create inconsistent states, and most importantly likely crashes (if you remove the TreeItem pointed by next_checked, you can have a segfault if you make a call to get_next_affected_by_check).

I think we all agree that indeterminate checkmarks are good idea. I haven't looked into the propagation code much, but if there is no consensus, maybe you should move it to a separate PR (with this one having only the new checkmarks) and open a proposal? There shouldn't have been so much discussion in the PR comments.

Sorry, I got carried away. I'm very enthusiastic about this PR and the feedback discussions! I'll make this PR just have the icons, API to set tree items as indeterminate, and documentation.

Closing in favor of #53276


pigpio site is changing from abyz.co.uk to abyz.me.uk

Sorry for this abuse of your issue system and the extremely late notification.
I did consider going through the documents, finding references, forking then raising a pull request for each one.  However I have no idea how many links there might be (apart from at least two in remote gpio).
As the title says any link or reference to abyz.co.uk should now be abyz.me.uk.

Thanks for letting us know. Are you maintaining the redirection?
I'll push a global replacement later.

Thanks.
abyz.co.uk should redirect for another year then I'll be releasing the domain.


Handle raw identifiers

If you have a schema like
#[juniper::object]
impl Query {
    fn r#type(r#fn: MyInputType) -> Vec<String> {
        unimplemented!()
    }
}

#[derive(GraphQLInputObject, Debug, PartialEq)]
struct MyInputType {
    r#trait: String,
}

The names in the GraphQL schema would still include r#. This patch fixes that for field names on fields of types, fields of input types, and arguments. Any other places where this should be fixed?
I discovered this while working on https://github.com/davidpdrsn/juniper-from-schema/pull/93.

Codecov Report

Merging #450 into master will decrease coverage by 0.01%.
The diff coverage is 73.33%.

@@            Coverage Diff             @@
##           master     #450      +/-   ##
==========================================
- Coverage   85.74%   85.72%   -0.02%
==========================================
  Files         110      111       +1
  Lines       15933    15960      +27
==========================================
+ Hits        13661    13682      +21
- Misses       2272     2278       +6

Impacted Files
Coverage Δ

juniper_codegen/src/derive_input_object.rs
0% <0%> (ø)
:arrow_up:

juniper_codegen/src/util.rs
31.54% <0%> (-0.18%)
:arrow_down:

...tests/src/codegen/derive_object_with_raw_idents.rs
91.66% <91.66%> (ø)

juniper/src/http/playground.rs
0% <0%> (-25%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 91a9752...348a28e. Read the comment docs.

Docs updated in b93fa61e9718a

Squashed and merged, thanks!


[BUG] System Backup Fails and DR Volume Enters Attach-Detach Loop When Volume Backup Policy is Set to Always

Describe the bug
When performing a system backup with the Volume Backup Policy set to [Always], the backup process fails if there is a DR volume present. Additionally, the DR volume enters a continuous attach-detach loop, which is unexpected behavior. We expect that the system backup process should skip DR volumes when the Volume Backup Policy is set to [Always], ensuring that the system backup completes successfully without affecting the DR volume's state.
To Reproduce

Create a volume named vol-0 and write some data to it.
Perform a backup of vol-0.
Create a DR volume named vol-1 from the backup of vol-0, but do not activate vol-1.
Create a system backup with Volume Backup Policy set to Always.

Expected behavior

The system backup should complete successfully.
DR volumes should be skipped during the backup process.
The DR volume (vol-1) should maintain a stable state.

Support bundle for troubleshooting
supportbundle_5f0d6bf4-f020-4722-9d53-4a3eefe5bb83_2024-08-28T07-27-25Z.zip
Environment

Longhorn version: v1.7.1-rc1
Impacted volume (PV): vol-1
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): Kubectl
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version:

Number of control plane nodes in the cluster: 1
Number of worker nodes in the cluster: 3

Node config

OS type and version: ubuntu 24.04
Kernel version:
CPU per node: 4 core
Memory per node: 16 GB
Disk type (e.g. SSD/NVMe/HDD): SSD
Network bandwidth between the nodes (Gbps):

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal):
Number of Longhorn volumes in the cluster: 2

Additional context
N/A
Workaround and Mitigation
N/A

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

We can also observe the issue on v1.7.0, but I didn't observe it on v1.6.x-head.

@c3y1huang Could you help check the issue? Thank you.

@roger-ryao is this verified by an auto test case? or manually tested?
Let's make sure we have an auto test for this. cc @longhorn/qa

I tested it manually.

Cause:
[instance-manager-15573caeea554fa25f5850b3ceda493b] [longhorn-instance-manager] time="2024-08-29T00:41:55Z" level=info msg="Snapshotting volume: snapshot system-backup-8393c12d8feb4bec" func="proxy.(*Proxy).VolumeSnapshot" file="snapshot.go:27" dataEngine=DATA_ENGINE_V1 engineName=longhorn-testvol-pjbedo-dr-e-0 serviceURL="<IP_ADDRESS>:10042" volumeName=longhorn-testvol-pjbedo-dr
[instance-manager-15573caeea554fa25f5850b3ceda493b] [longhorn-testvol-pjbedo-dr-e-0] time="2024-08-29T00:41:55Z" level=info msg="Starting snapshot" func="controller.(*Controller).Snapshot" file="control.go:203" snapshot=system-backup-8393c12d8feb4bec volume=longhorn-testvol-pjbedo-dr
[instance-manager-15573caeea554fa25f5850b3ceda493b] [longhorn-testvol-pjbedo-dr-e-0] panic: runtime error: invalid memory address or nil pointer dereference
[instance-manager-82332ae8f986b319add1c9811fa61637] [longhorn-testvol-pjbedo-dr-r-54616bb1] time="2024-08-29T00:41:55Z" level=warning msg="failed to handle data server" func="rpc.(*DataServer).listenAndServeTCP.func1" file="dataserver.go:62" error=EOF
[instance-manager-15573caeea554fa25f5850b3ceda493b] [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xacade8]
[instance-manager-15573caeea554fa25f5850b3ceda493b]
[instance-manager-82332ae8f986b319add1c9811fa61637] [longhorn-testvol-pjbedo-dr-r-54616bb1] time="2024-08-29T00:41:55Z" level=warning msg="failed to handle data server" func="rpc.(*DataServer).listenAndServeTCP.func1" file="dataserver.go:62" error=EOF
[instance-manager-15573caeea554fa25f5850b3ceda493b] goroutine 1103 [running]:
[instance-manager-15573caeea554fa25f5850b3ceda493b] [longhorn-testvol-pjbedo-dr-e-0] github.com/longhorn/longhorn-engine/pkg/controller.(*Controller).Snapshot(0xc0001b26e0, {0xc000116100?, 0x10a1d60?}, 0x0, 0x0)
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/pkg/controller/control.go:216 +0x328
[instance-manager-15573caeea554fa25f5850b3ceda493b] github.com/longhorn/longhorn-engine/pkg/controller/rpc.(*ControllerServer).VolumeSnapshot(0x1dcd620?, {0x10a1d60?, 0xc0004fb930?}, 0x1de2480?)
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/pkg/controller/rpc/server.go:140 +0x54
[instance-manager-15573caeea554fa25f5850b3ceda493b] github.com/longhorn/types/pkg/generated/enginerpc._ControllerService_VolumeSnapshot_Handler.func1({0x1634838?, 0xc0008ba7b0?}, {0x1036860?, 0xc0006fe730?})
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/vendor/github.com/longhorn/types/pkg/generated/enginerpc/controller_grpc.pb.go:445 +0xce
[instance-manager-15573caeea554fa25f5850b3ceda493b] github.com/longhorn/longhorn-engine/pkg/controller/rpc.GetControllerGRPCServer.WithIdentityValidationControllerServerInterceptor.identityValidationServerInterceptor.func1({0x1634838, 0xc0008ba7b0}, {0x1036860, 0xc0006fe730}, 0xc0005941a0, 0xc000738258)
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/pkg/interceptor/interceptor.go:64 +0x823
[instance-manager-15573caeea554fa25f5850b3ceda493b] github.com/longhorn/types/pkg/generated/enginerpc._ControllerService_VolumeSnapshot_Handler({0x10a1d60, 0xc000064310}, {0x1634838, 0xc0008ba7b0}, 0xc000742180, 0xc00052d180)
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/vendor/github.com/longhorn/types/pkg/generated/enginerpc/controller_grpc.pb.go:447 +0x143
[instance-manager-15573caeea554fa25f5850b3ceda493b] google.golang.org/grpc.(*Server).processUnaryRPC(0xc00077b000, {0x1634838, 0xc0008ba720}, {0x163a600, 0xc000552600}, 0xc0000e2240, 0xc0007ace40, 0x1de4dc8, 0x0)
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/vendor/google.golang.org/grpc/server.go:1379 +0xdf8
[instance-manager-15573caeea554fa25f5850b3ceda493b] google.golang.org/grpc.(*Server).handleStream(0xc00077b000, {0x163a600, 0xc000552600}, 0xc0000e2240)
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/vendor/google.golang.org/grpc/server.go:1790 +0xe8b
[instance-manager-15573caeea554fa25f5850b3ceda493b] google.golang.org/grpc.(*Server).serveStreams.func2.1()
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/vendor/google.golang.org/grpc/server.go:1029 +0x8b
[instance-manager-15573caeea554fa25f5850b3ceda493b] created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 1264
[instance-manager-15573caeea554fa25f5850b3ceda493b]     /go/src/github.com/longhorn/longhorn-engine/vendor/google.golang.org/grpc/server.go:1040 +0x125
[instance-manager-15573caeea554fa25f5850b3ceda493b] [longhorn-instance-manager] time="2024-08-29T00:41:55Z" level=info msg="Process Manager: process longhorn-testvol-pjbedo-dr-e-0 error out, error msg: exit status 2" func="process.(*Process).Start.func1" file="process.go:70"
[instance-manager-15573caeea554fa25f5850b3ceda493b] [longhorn-instance-manager] time="2024-08-29T00:41:55Z" level=warning msg="Process update: longhorn-testvol-pjbedo-dr-e-0: state error: errorMsg: exit status 2" func="process.(*Process).RPCResponse" file="process.go:115"

The NPE due to the DR volume disabled frontend and is triggered by this line introduced in https://github.com/longhorn/longhorn-engine/commit/e39b7f0313b22d5c435ce57d1442800999a0f4ac
Propose Fix:
Skip creating DR volume backup.

Verified on vv1.8.0-dev-20240908 20240909

longhorn v1.8.0-dev-20240908 https://github.com/longhorn/longhorn/commit/2ce609f871c89ef80bf3decc30b07225bed5288f
longhorn-manager v1.8.0-dev-20240908 https://github.com/longhorn/longhorn-manager/commit/e9e0a7f6da6c377ddb9f5f7f57138f4b4a54a000

The test steps
https://github.com/longhorn/longhorn/issues/9330#issue-2491341628
Result Passed


🖐 Change Node version that Dagger is using

What happened? What did you expect to happen?
Dagger is currently using Node 21, which is breaking my pipeline because certain packages only support LTS versions of Node. This should get resolved by https://github.com/dagger/dagger/issues/7433, whenever that releases, but is there a workaround in the mean time? My CI/CD pipelines are failing due to this.

Hey @noah-troncoso was this working and broke, or was it never working due to this issue?
The fix has already been merged, so you should be able to run dagger from main if this is urgent, I think that may be the best workaround for now until this is released  https://github.com/dagger/dagger/issues/7855
I am checking to see if we are planning to include this in our upcoming release this week, ill follow up here.

@noah-troncoso confirming that this will be shipped in the next release of Dagger 0.12 which should be out this week.

@levlaz thanks for the response. Yeah, on Monday things were working fine. On Tuesday, I updated some README content and started getting this error. I always specify Dagger version 0.11.8, and the Github Action logs show this to be the case. The working runs from Monday don't seem to print the Node version being used, so I can't actually confirm that it changed from one day to the next.
Here is the exact error:

This is literally the only file I changed:

Thanks for the work around. If the release will be this week or at least next week, I can probably wait.

Hey Noah,
0.12 came out today which should address this issue, can you give it a shot when you get a chance and let me know how it goes?
Lev Lazinskiy
Head of Solutions @ dagger.io ( http://dagger.io )
e: @.***
p:<PHONE_NUMBER>
On Wed, Jul 10, 2024 at 5:40 AM, Noah Troncoso < @.*** > wrote:

@ levlaz ( https://github.com/levlaz ) thanks for the response. Yeah, on
Monday things were working fine. On Tuesday , I updated some README content
and started getting this error. I always specify Dagger version 0.11.8,
and the Github Action logs show this to be the case. The working runs from
Monday don't seem to print the Node version being used, so I can't actually
confirm that it changed from one day to the next.
Here is the exact error:
Screenshot. 2024-07-10. at. 8. 35. 21. AM. png (view on web) (
https://github.com/dagger/dagger/assets/123982978/f6f0e598-fdf0-43e8-ae3a-6f093616ad2e
)
This is literally the only file I changed:
Screenshot. 2024-07-10. at. 8. 36. 16. AM. png (view on web) (
https://github.com/dagger/dagger/assets/123982978/6c2c8a64-6890-4fc9-a0e4-e629b146fc6f
)
Thanks for the work around. If the release will be this week or at least
next week, I can probably wait.
—
Reply to this email directly, view it on GitHub (
https://github.com/dagger/dagger/issues/7855#issuecomment-2220409802 ) , or
unsubscribe (
https://github.com/notifications/unsubscribe-auth/AB44P2GWL25SR4KMZA45KDDZLUTTPAVCNFSM6AAAAABKTJEJACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRQGQYDSOBQGI
).
You are receiving this because you were mentioned. Message ID: <dagger/dagger/issues/7855/2220409802
@ github. com>

Hey @levlaz yes, this is working now. Thanks!


Please add a curl timeout to RestTool

The current RestTool will block indefinitely as there is no timeout set.
This isn't a problem when everything is working as it should, but it does become a problem when it's not.
A 2-5s(or configurable) timeout value seems reasonable.

Thanks for the feedback @leihog - we'll look into getting this added in the next set up of updates :-)

BUMP, there are some progress on this issue @hobailey ?

@leihog @shakaran I suggest adding to https://github.com/Mangopay/mangopay2-php-sdk/blob/master/MangoPay/Libraries/RestTool.php#L179 something like:
curl_setopt($this->_curlHandle, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($this->_curlHandle, CURLOPT_TIMEOUT, 80);

Would this satisfy your requirements? Or do you have any other suggestions/approaches you'd like to see added?

@hobailey for me it is a good patch. But it would be better if the 30 and 80 sec would be configurable by the user too, by global settings. See how Stripe is allowing to set the timeout for example too:
https://github.com/stripe/stripe-php/blob/master/lib/HttpClient/CurlClient.php#L98

Hi @shakaran, I've just updated the SDK - let me know if you have any feedback etc :-)


[REQ] Settings option to choose download directory

Option to skip constantly choosing where to save downloading media.
Bonus: add option to choose default download folder.
Whenever I click "download" it should just automatically download with zero further prompting.

This is now included in 3.0.0-beta1!


Yield ERB block as contents

Invoke the link_to helper with the original arguments, save for the
modified options Hash.
Prior to this commit, the current_link_to helper was unable to yield
a block and capture the contents to be rendered as children to the
resulting <a> element.
The presence or absence of the &block as an argument is
only useful to determine which index in the argument list references
the link_to invocation's desired path value.
Since the text (or contents of the yield-ed block) is
unmodified, we can delegate to the underlying link_to helper with the
original "splatted" *arguments value.

Does this help with and/or resolve https://github.com/thoughtbot/middleman-aria_current/issues/16?

It does!

I've tried to run the tests locally, but I haven't had any luck.
To prove that it works: https://github.com/seanpdoyle/git-read/commit/b53a0d941e26d69fd36cccfba1b5ffce74bc127a will build the navigation links on the left side of https://seanpdoyle.github.io/git-read/.

Merged into master as https://github.com/thoughtbot/middleman-aria_current/commit/16d3e539ae65ee515314661e415c5b21f1a1f28b.


NullReferenceException throws when serializing a JObject

When JObject is used for messaging then Akka fails to route such messages due to serialization problem.
In my particular case I have a strong typed message class with IDictionary<string, object> property  and Akka.Serialization.Hyperion configured as default serializer. At some moment this dictionary may contain JObject. Such messages destroy actor life-cycle due to  serialization problem.
I made a test project to illustrate such behavior
JObjectSerializationTest.zip
System.NullReferenceException: Object reference not set to an instance of an object.
   at Hyperion.SerializerFactories.DictionarySerializerFactory.<>c__DisplayClass3_0.<BuildSerializer>b__1(Stream stream, Object obj, SerializerSession session)
   at Akka.Serialization.HyperionSerializer.ToBinary(Object obj)
   at JObjectSerializationTest.UnitTest.<>c__DisplayClass1_0.<ShouldBeSerializedByHyperion>b__0(Serializer serializer, Object entity)

Used packages versions
  <package id="Akka" version="1.3.0" targetFramework="net46" />
  <package id="Akka.Serialization.Hyperion" version="<IP_ADDRESS>-beta" targetFramework="net46" />
  <package id="Hyperion" version="0.9.2" targetFramework="net46" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" />
  <package id="NUnit" version="3.7.1" targetFramework="net46" />
  <package id="System.Collections.Immutable" version="1.3.1" targetFramework="net46" />

See https://github.com/akkadotnet/Hyperion/issues/66


Pass context to render function

Looks fine to me. Just curious about the reasoning for adding it now (or why it wasn't passed in until now)

Just something that was overlooked.

!merge


--get-playlist: consider add new flag to get more information about the playlist: duration, count, visibility, etc.

Checklist

[X] I'm reporting a feature request
[X] I've verified that I'm running youtube-dl version 2021.12.17
[X] I've searched the bugtracker for similar feature requests including closed ones

Description

Similar to --yes-playlist but for getting information about the specified playlist:
$ youtube-dl --get-playlist 'https://www.youtube.com/playlist?list=RDCMUCCezIgC97PvUuR4_gbFUs5g'

It would be great to get detail about the playlist. The following above command should output such information:

total duration of the playlist
total video count of the playlist
create date of playlist
update date of the playlist
latest added video
visibility: public, private, etc.
which videos a liked/disliked
which videos I have watched
...

What do you think?

You can use the -J option and learn about the jq program to achieve this result.

Thanks. Actually, the -J flag is not what I am looking for. It prints JSON output format for entire playlist. Which is kind of hard workaround to achieve this. You probably could write tons of lines of queries to achieve this, which is not so good from the UX perspective.
It would be great to collect all data and evaluate them to output a beatified summary for the given playlist. This idea would help us about getting great information just before downloading an entire playlist.

Maybe try -J --flat-playlist to avoid all the nested details (though the whole data structure that's dumped with plain -J is always constructed internally by yt-dl).
Your example playlist is "unviewable" so I used another one.
$ js-beautify --help | head -8
<EMAIL_ADDRESS>
Javascript beautifier (https://beautifier.io/)

Usage: jsbeautifier.py [options] <infile>

    <infile> can be "-", which means stdin.

$ youtube-dl --flat-playlist -J PL8BCB4981DD1A0108 | js-beautify
{
    "_type": "playlist",
    "entries": [{
        "_type": "url",
        "duration": 5837.0,
        "ie_key": "Youtube",
        "id": "Igl8hE3Eac0",
        "title": "Lecture 1 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "Igl8hE3Eac0"
    }, {
        "_type": "url",
        "duration": 5909.0,
        "ie_key": "Youtube",
        "id": "yy989li6xgY",
        "title": "Lecture 2 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "yy989li6xgY"
    }, {
        "_type": "url",
        "duration": 6092.0,
        "ie_key": "Youtube",
        "id": "n88Qe-aAAYE",
        "title": "Lecture 4 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "n88Qe-aAAYE"
    }, {
        "_type": "url",
        "duration": 5682.0,
        "ie_key": "Youtube",
        "id": "3g6RtyGjX3o",
        "title": "Lecture 5 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "3g6RtyGjX3o"
    }, {
        "_type": "url",
        "duration": 5558.0,
        "ie_key": "Youtube",
        "id": "5rytN74EOi0",
        "title": "Lecture 6 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "5rytN74EOi0"
    }, {
        "_type": "url",
        "duration": 6488.0,
        "ie_key": "Youtube",
        "id": "7cKvhkFhXDk",
        "title": "Lecture 7 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "7cKvhkFhXDk"
    }, {
        "_type": "url",
        "duration": 5040.0,
        "ie_key": "Youtube",
        "id": "fw4K3sgza04",
        "title": "Lecture 8 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "fw4K3sgza04"
    }, {
        "_type": "url",
        "duration": 5734.0,
        "ie_key": "Youtube",
        "id": "qzGY-BrCUgA",
        "title": "Lecture 9 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "qzGY-BrCUgA"
    }, {
        "_type": "url",
        "duration": 5900.0,
        "ie_key": "Youtube",
        "id": "QD8SEcoFyAw",
        "title": "Lecture 10 | New Revolutions in Particle Physics: Standard Model",
        "uploader": "Stanford",
        "view_count": null,
        "description": null,
        "url": "QD8SEcoFyAw"
    }],
    "webpage_url_basename": "playlist",
    "id": "PL8BCB4981DD1A0108",
    "uploader_id": "UC-EnprmCZ3OXyAoG7vjVNCA",
    "uploader_url": "https://www.youtube.com/c/stanford",
    "uploader": "Stanford",
    "extractor_key": "YoutubeTab",
    "webpage_url": "https://www.youtube.com/playlist?list=PL8BCB4981DD1A0108",
    "title": "Lecture Collection | Particle Physics: Standard Model",
    "extractor": "youtube:tab"
$

The data above is what's available for the playlist itself without analysing all the playlist items. By removing --flat-playlist you get the per-item metadata but it's still not necessarily possible whether by internal coding changes or by writing jq scripts to collect some of the data you would like. For instance, the size of an item depends on the selected format and even the approximate size of an item may not be available for some formats (here I am just talking about YT itself but other extractors probably have similar issues).

Hi there, new person stopping by the repo hope that's okay! I am not sure about Python but I'm pretty familiar with CLI tools using Node.  I only had a peek I hope you don't mind haha.
I wonder if a good solution for your troubles would be to use some kind of CLI text coloring tool for now just so that it's easy to read the output from -J --flat-playlist.  @dirkf
What is an example of the data you would want to amalgamate together? Would it be like "We have X number of videos by Stanford in this playlist"?
All the best,
Andre :)


About which one is the reconstruction model and which one is the super-resolution model

I am a beginner and would like to ask the author about your code joint_rec_base_model.py and ref_rec_base_model.py. Which one is the reconstruction and which one is the super-resolution?I will be very grateful for your answer.

Sorry, I saw through modelx4.yaml that ref-rec should be the super-resolution task.

"ref-rec" means reference-based SR or reconstruction. It can be used for both SR and reconstruction. The difference between the SR and reconstruction lies in the under-sampling masks.

So what is the function of the joint_rec_base_model.py file? I think joint_rec_base_model.py is very similar to ref_rec_base_model.py.

joint is used for both two input images are undersampled images.
---- Replied Message ----
| From | @.> |
| Date | 11/28/2024 22:15 |
| To | @.> |
| Cc |<EMAIL_ADDRESS>|
| Subject | Re: [lpcccc-cv/MC-CDic] About which one is the reconstruction model and which one is the super-resolution model (Issue #15) |
So what is the function of the joint_rec_base_model.py file? I think joint_rec_base_model.py is very similar to ref_rec_base_model.py.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

joint is used for both two input images are undersampled images.
…
---- Replied Message ---- | From | @.> | | Date | 11/28/2024 22:15 | | To | @.> | | Cc |<EMAIL_ADDRESS>| | Subject | Re: [lpcccc-cv/MC-CDic] About which one is the reconstruction model and which one is the super-resolution model (Issue #15) | So what is the function of the joint_rec_base_model.py file? I think joint_rec_base_model.py is very similar to ref_rec_base_model.py. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

Thank you very much for your reply. I will continue to work hard based on your reply.


There is no warning that installing will remove all previous Vim plugins etc.

It would be great if the installation didn't remove all the other settings and plugins etc. but most importantly the readme doesn't say anything about it which is downright dangerous!

What do you think we should add to the readme? The first paragraph says

Don't worry, it backs up your original configuration to ~/.config/haskell-vim-now/backup/.vimrc.yearmonthdate_time

(Also sorry for messing your vim configuration up unexpectedly)

It deleted all my actual bundles though (had to reinstall them) and didn't
copy my .vimrc (fortunately that may have been because it was a symlink to
a git repo that I could restore it from).
All the other plugins I have used have not needed to mess with any of my
other configuration. Having that as an option here would be great.
On Mon, 9 May 2016, 2:28 AM Joe Nelson<EMAIL_ADDRESS>wrote:

(Also sorry for messing your vim configuration up unexpectedly)
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/begriffs/haskell-vim-now/issues/170#issuecomment-217731027

HVN is not a plugin, it's an environment for Haskell development. So it's not trivial to make it co-exist with user's VIM config (if even possible).
If @Cypher1 have any suggestions on how to make HVN less invasive, go ahead and share with us! =)

Oh. Really it's an environment? That would be good to have know. Woops.
(Thank you)
On Wed, 11 May 2016, 1:21 AM Anton<EMAIL_ADDRESS>wrote:

HVN is not a plugin, it's an environment for Haskell development. So it's
not trivial to make it co-exist with user's VIM config (if even possible).
If @Cypher1 https://github.com/Cypher1 have any suggestions on how to
make HVN less invasive, go ahead and share with us! =)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/begriffs/haskell-vim-now/issues/170#issuecomment-218191875


Dev to Main Sync PR

Date: 06/08/2023
Developer Name: Tanishq @sahsisunny
PR Number(s):-

#730
#719
#795
Issue Ticket Number:-
#729
#720
#782

Backend changes
No
Frontend Changes
Yes
Database changes
No
Breaking changes (If your feature is breaking/missing something please mention pending tickets)
Yes
Deployment notes
NA
Tested in staging
Yes

#795


Zend/DB invalid params

Version: Zend-db version: 2.9.*
Issue:  When binding named params into sql query, the sql trows error:  "SQLSTATE[HY093]: Invalid parameter number: parameter was not defined".
Sql:
$sql = "SELECT Version FROM `SystemInfo`               WHERE `Name` = :infoName               ORDER BY `SystemInfoID` DESC                LIMIT 1";
PHP:
$params = [':infoName' => 'version' ];
$this->getAdapter()       ->createStatement($sql)       ->execute($params)       ->next()
Explained:
This works on any of previous versions before 2.9.*, the fix was to rollback to version 2.8.2

@TakeoO Can you confirm please that you've tried version 2.9.1? I think it was resolved yesterday. Please see: https://github.com/zendframework/zend-db/issues/288 and https://github.com/zendframework/zend-db/releases/tag/release-2.9.1

Ok, I updated to 2.9.1:
Got new issue:
Simplified Sql:
SELECT * FROM Navigation N 									 LEFT JOIN NavigationUser NU ON (N.NavigationID = NU.NavigationID AND NU.UserID = :userID)                 			WHERE  (N.IsActive = 1 AND (NU.NavigationID IS NULL OR NU.IsActive = 1)) AND N.Module = :module                   ORDER BY Sort
Exception:
Fatal error: Uncaught Zend\Db\Adapter\Exception\RuntimeException: The PDO param :userID contains invalid characters. Only alphabetic characters, digits, and underscores (_) are allowed.

Got the same error after updating to 2.9.1.
Seems like the bugfix from 2.9.0 to 2.9.1 is containing a new bug.
2.8.* is fine.

I bet you bind params with ::
$stm->bindParam([
    ':param' => 'value',
]);

but anyway, it should be fixed... Working on it.
ping @ezimuel

Yes, you're right. Binding parameters without ":" is still working.

Yes, we bind params with ":" in $params.
Is there a better way?

I wouldn't say "better" but you can bind params without ":" and it will be fine (":" is not mandatory), but as you noted with ":" it breaks... Working on fix, should be ready soon, not sure when it will be released. I'll ping you to test my hotfix with your code.

See:
https://stackoverflow.com/questions/17386469/pdo-prepared-statement-what-are-colons-in-parameter-names-used-for
https://stackoverflow.com/questions/9778887/is-the-leading-colon-for-parameter-names-passed-to-pdostatementbindparam-opt
I can't see any word in PHP docs that : is mandatory or optional on binding. I just know that it works with and without (on binding !).

In PDO documentation there are lots of examples with named parameters in format :name.


Add support for running changed tests only in tests binary

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug
/kind enhancement

What happened:
The maintenance of the automation/repeated_test.sh is cumbersome and error prone. We should move the feature of running only the changed tests into the tests binary and activate it by using the flag -run-changed-tests-only=true.
See #5171, #5170
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version):
Kubernetes version (use kubectl version):
VM or VMI specifications:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

/remove-lifecycle stale

/remove-lifecycle stale


No photos found

There should be millions of photos in that folder. But none of them are indexed.

I have about 5 million photos, they are located in dozens of subfolders, is there a way to scan/index all of them at once?


Card Refresh rate slow or not refreshing at all

Hey,
Great integration and use it lots!
I noticed recently, there have been quite few card updates. I noticed in the last one, the refresh rate of the card would be stuck unless I refresh the page. For example, see below.
I've circled the uptime sensors, you can see the actual uptime sensor (top of page) does update every 2 minutes (my refresh rate) but the card is still stuck on when the page first loaded.

running <IP_ADDRESS>. I don't think this was happening pre-<IP_ADDRESS> and it was live updating
thanks for the integration!

@Anto79-ops yes, this is a known issue I'm working on  It appears there are crashes within library code underlying the card that I'm hunting down.  It should start working again as soon as these are fixed.  It's not easy meaning it's taking more time than I thought it should but I'm on it!

thank you, sir for your hard work in figuring this out!

Jeez, I'm releasing v1.3.2 after cleaning up the code... but this issue of the underlying exception happing in card update() is still haunting me...  the hunt continues... but the code is really much cleaner now...

BTW- as a short-term workaround you should see that refreshing the page starts it all over again ... until the updates stop happening once more...  Just mentioning this in case it is in some way useful...

Thanks for the update! At least this is keeping your day interesting!

Many thanks, @ironsheep , solved here ;-)

Changes committed and appear in v1.4.0 and later


E/flutter ( 5473): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: SocketException: Failed to create datagram socket (OS Error: Cannot assign requested address, errno = 99), address = <IP_ADDRESS>, port = 54372

Is there an existing issue for this?

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

Steps to reproduce

Create a RawDatagramSocket and bind to a particular ipAddress not to any IPV4 in that case I am getting that issue.

Expected results
I want to make a UDP connection using my mobile device to my other device with the IP address and port that I want to give. In my case, I want to fix IP address and port
Actual results
Currently, I am not able to make a UDP connection with my Flutter app.
Code sample
Code sample
 InternetAddress multicastAddress =  InternetAddress(Vars.iPAddressDefault);
    int multicastPort = Vars.iPPortDefault;
    RawDatagramSocket.bind(multicastAddress, multicastPort)
        .then((RawDatagramSocket socket){
      print('Datagram socket ready to receive');
      print('${socket.address.address}:${socket.port}');

      socket.joinMulticast(multicastAddress);
      print('Multicast group joined');

      socket.listen((RawSocketEvent e){
        Datagram? d = socket.receive();
        if (d == null) return;

        String message =  String.fromCharCodes(d.data).trim();
        print('Datagram from ${d.address.address}:${d.port}: ${message}');
      });
    });

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
E/flutter ( 5473): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: SocketException: Failed to create datagram socket (OS Error: Cannot assign requested address, errno = 99), address = <IP_ADDRESS>, port = 54372
E/flutter ( 5473): #0      _NativeSocket.bindDatagram (dart:io-patch/socket_patch.dart:1051:7)
E/flutter ( 5473): <asynchronous suspension>
E/flutter ( 5473):

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.4, on macOS 13.5.2 22G91 darwin-arm64, locale en-IN)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.2)
[✓] VS Code (version 1.82.2)
[✓] Connected device (3 available)
    ! Error: Browsing on the local area network for Gautam’s iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network
      as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for iPhone 11. Ensure the device is unlocked and attached with a cable or associated with the same local area network as
      this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
[✓] Network resources

• No issues found!

Hi @GautamSharma05. Thanks for filing this! I see this issue seems similar/related to https://github.com/flutter/flutter/issues/53477. Can you check this out please??

Hey @dam-ease. Thanks For helping. But #53477 does not work for me. Can you suggest me more or any other fixes availaible?

Thanks for your response @GautamSharma05. Okay, but can you confirm the issue being described in https://github.com/flutter/flutter/issues/53477 is similar to yours?


Teams PowerShell Set-CsPhoneNumberAssignment no -WhatIf switch

The Teams PowerShell command Set-CsPhoneNumberAssignment does not have a -WhatIf switch. This should be added so scripts can be tested first before committing changes.

We have added it to our backlog, but currently no ETA.
Feel free to close this issue.

@JensTrier Thank you very much for sharing this explanation. @keithmweaver  as this is in the plan and future work item we proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.

@JensTrier or @yogkumgit, any update on this?

@keithmweaver As there is no ETA, please keep checking. Thanks for your patience.


[MLIR][XLA] Polish LHLO copy operation removal

In this PR, we

Created a separate file for lhlo-copy-removal pass.
Created a separate test file with dedicated test cases for lhlo-copy-removal pass.
Adapted Hlo-To-Lhlo-Legalization tests.

We addressed all the comments we received in this PR

@dfki-ehna Can you please fix the build failures? Thanks!

This PR was commited as https://github.com/tensorflow/tensorflow/commit/efff893c709b585da9771cb3a2997321efef36ae.  I am not sure why was it not automatically closed.

Changes have been merged into master by commit efff893. So closing the PR.


TS definitions not up to date

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/a176b84419c707516be04a8397cdd90e1f49ed38/types/baseui/index.d.ts#L28
It says LightThemePrimitives are exported. But lightThemePrimitives are exported actually. I can send PR, just not sure I'm right.

Hey @simPod 👋
Thanks for spotting this. Please feel free to open a PR on DefinitelyTyped 👍

Closing as the PR was merged 🙌


Added mentor - Parisa

Description
Added mentor Parisa.
Parisa was a mentor with us but had not consented for data transfer. She has registered as a new mentor.
However her registration is using old registration form hence we don't have the months she is available for ad-hoc.
Will contact her and update the months later.
Change Type

[ ] Bug Fix
[ ] New Feature
[ ] Code Refactor
[x] Mentor Update
[ ] Data Update
[ ] Documentation
[ ] Other

Screenshots

Pull request checklist
Please check if your PR fulfills the following requirements:

[x] I checked and followed the contributor guide
[x] I have tested my changes locally.
[x] I have added a screenshot from the website after I tested it locally

Closing this PR because mentor has declined to be added to the website


Add basic service dependency validation

This adds basic validation for enabled services. This can/would be further improved (ex. validating when cinder backend for glance is enabled etc).

/retest

/retest


Support multiple Open Seadragon Viewer windows on a single page

If you attempt to provide multiple images with Open Seadragon view modes selected (e.g. a view displaying multiple nodes with the Open Seadragon display mode selected) only one viewer will work. The rest are all black rectangles.
We should allow multiple viewers to work on the same page. PR incomming.

@seth-shaw-unlv this sounds like it's related to https://github.com/Islandora/documentation/issues/1242.

@mjordan, looking at the original issue, I'm not convinced that they are. In the 1242 ticket is was about displaying multiple Service Files attached to a single node. In this case I have a view displaying two nodes with the open seadragon viewmode enabled. The trouble with this ticket is specific to the openseadragon viewer.

Correct, it is a bit different, and specific to OSD. Thanks for the clarification.

@seth-shaw-unlv OK to close this?

Huh, I guess we forgot to close this when the PR merged.  Thanks for the heads-up, @mjordan.
Resolved by https://github.com/Islandora/openseadragon/commit/f99e4a288688de5cf52b5ba8e92e7997cfbe0869.


Friendship Percentage Level Calculator

Developer Checklist

[ Y ] Followed guidelines mentioned in the readme file.
[ Y ] Followed directory structure. (e.g. ProjectName/{USERNAME}/...yourfiles)
[ ] Starred ⭐ the Repo (Optional)

Summary
This project is all about a fun game for finding the friendship percentage level. The algorithm for the calculation is mentioned in the link provided below.
https://hariiikrishnan.github.io/frndshp_calci/algo.html
Screenshot

Live Project Link
https://hariiikrishnan.github.io/frndshp_calci/

Please go through readme file for directory guidelines.


Create a Github action for MCAD CI check

Fixes https://github.com/project-codeflare/multi-cluster-app-dispatcher/issues/480

I have been testing this in my fork branch and will update the PR once testing is done

AFAIK the current GitHub runner has 2 CPU and 7GB of memory. Not sure if the memory difference may cause some issues.

Tested this workflow in my fork repository , tests are looks good https://github.com/Srihari1192/multi-cluster-app-dispatcher/actions/workflows/mcad-CI.yml

These changes look good to me so far, but I think you should consider the following enhancements:

Pre-install the following things:

kind (latest version available)
kubectl
kuttl (kubectl plugin)

Configure the docker daemon to only have

2 CPU
8 GB of RAM.

The last bit is important for getting the end to end to run correctly, as they assume a certain amount of CPU's available to MCAD's kind cluster.

@z103cb Thanks for review
For now we are using existing scripts run-e2e-kind.sh to install and run the test. I think we can refactor Pre-install things when we remove completely travis CI , as the changes may impact to Travis CI main branch merge build trigger

These changes look good to me so far, but I think you should consider the following enhancements:

Pre-install the following things:

kind (latest version available)
kubectl
kuttl (kubectl plugin)

Configure the docker daemon to only have

2 CPU
8 GB of RAM.

The last bit is important for getting the end to end to run correctly, as they assume a certain amount of CPU's available to MCAD's kind cluster.

@z103cb Thanks for review For now we are using existing scripts run-e2e-kind.sh to install and run the test. I think we can refactor Pre-install things when we remove completely travis CI , as the changes will impact to Travis CI main branch merge build trigger

@Srihari1192 Hopefully this (line) [https://github.com/z103cb/multi-cluster-app-dispatcher/blob/4473faca363dfa1899530bc98fd9a0d409eac98a/hack/run-e2e-kind.sh#L63] is not causing a problem for your test.

AFAIK the current GitHub runner has 2 CPU and 7GB of memory. Not sure if the memory difference may cause some issues.

I don't think they would most of the e2e tests depend mostly on available CPU.  @Srihari1192 would be possible to view the output of your run ?

These changes look good to me so far, but I think you should consider the following enhancements:

Pre-install the following things:

kind (latest version available)
kubectl
kuttl (kubectl plugin)

Configure the docker daemon to only have

2 CPU
8 GB of RAM.

The last bit is important for getting the end to end to run correctly, as they assume a certain amount of CPU's available to MCAD's kind cluster.

@z103cb Thanks for review For now we are using existing scripts run-e2e-kind.sh to install and run the test. I think we can refactor Pre-install things when we remove completely travis CI , as the changes will impact to Travis CI main branch merge build trigger

@Srihari1192 Hopefully this line is not causing a problem for your test.

Yes the mentioned line is not causing a problem in test and also Unit test and E2E tests results looks good https://github.com/Srihari1192/multi-cluster-app-dispatcher/actions/runs/5619138250/job/15225780359

@Srihari1192 we need to make sure that these variables are set when calling make images.
"---"
"MAKE GLOBAL VARIABLES:"
"  "BIN_DIR="_output/bin"
"  "GIT_BRANCH=""
"  "RELEASE_VER=""
"  "TAG=""
"  "GO_BUILD_ARGS=""
"---"
# Check for

Yes Build is failing to fetch branch and tag.. looks like some permission required, looking into it

This is looking good to me. Letting @asm582 chime in.


node 4 not supported?

testing show an error ... missing dep?
https://travis-ci.org/Apollon77/ioBroker.deconz/jobs/324301916

Fixed with version 0.1.3


Linting for tests

:+1:, though I'd personally prefer switching to require trailing commas.

@spicyj I wouldn't object :smile: I think trailing commas lead to better diffs, but I figured we might as well be consistent for now.
I know some browsers don't like trailing commas. I assume the transpilation that we do in WebPack makes that a non-issue?

Obviously for tests, the issue of what browsers do/don't like is even more minimal.

I think our current config doesn't strip trailing commas, but IE9 and up don't mind them and I don't think we support IE8.

Got it. That sounds about right.

Merging this for now so that our existing rules pass. We can revisit the rule later.


report ru consumption to tidb

What problem does this PR solve?
Issue Number: close #8688
Problem Summary:tidb needs tiflash ru consumption to show in explain analyze
What is changed and how it works?

MPPTask record its own local ru consumption in the root executor's execution summary.
MPPTask merge remote ru consumption in TiRemoteBlockInputStream.
In finishWrite() and reportStatus(), send execution summary to parent MPPTask.
tidb pr: https://github.com/pingcap/tidb/pull/50406
Disable ru consumption to PD, instead ru consumption will sent by tidb. Because we want only compute ru consumption of successful query, we need tidb to decide this.

Check List
Tests

[ ] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)

using tpch50 Q9, check explain analyze and log, they are same

[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/hold

/unhold

/retest


Publish a final v2.1 release

Removed a library directive causing the API docs to be hidden.
Fixed a number of documentation comment issues.
Now requires Dart 2.10.0.
Allow the latest package:http.

CC @jonasfj


Remove unused FSDP1 components

Context
What is the purpose of this PR? Is it to

[ ] add a new feature
[ ] fix a bug
[ ] update tests and/or documentation
[X] Clean up

Please link to any issues this PR addresses.
Changelog
What are the changes made in this PR?

#1897

Test plan
Please make sure to do each of the following if applicable to your PR. If you're unsure about any one of these just ask and we will happily help. We also have a contributing page for some guidance on contributing.

[X] run pre-commit hooks and linters (make sure you've first installed via pre-commit install)
[ ] add unit tests for any new functionality
[X] update docstrings for any new or updated methods or classes
[X] run unit tests via pytest tests
[ ] run recipe tests via pytest tests -m integration_test
[ ] manually run any new or modified recipes with sufficient proof of correctness
[ ] include relevant commands and any other artifacts in this summary (pastes of loss curves, eval results, etc.)

UX
If your function changed a public API, please add a dummy example of what the user experience will look like when calling it.
Here is a docstring example
and a tutorial example

[X] I did not change any public API
[ ] I have added an example to docs or docstrings

Probably need to remove relations to docs

Thanks for the PR! Looking at the code changes now, but at least for the doc build job failure you will need to remove this line (you can check other rst files the same folder for any other APIs you've removed, their references will need to be removed as well)

Probably fine now

Looks like CI is red?

I think you also need to remove the reference to validate_state_dict_for_lora in the API docs @krammnic

Hey @krammnic - think there's some merge conflicts to fix before I can kick off CI again.

@krammnic I’m gonna close this now that #2016 has landed. Thanks for your work on this one!


Fix eslint error from deprecated rule space-after-keywords

Fixes eslint errors from a deprecated eslint rule space-after-keywords.  Check out the docs for more details
dougwade code/lerna ‹master› » eslint .

/Users/doug.wade/code/lerna/bin/lerna.js
  3:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/bootstrap/bootstrapPackages.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/bootstrap/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/bootstrap/linkDependencies.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/bootstrap/linkDependenciesForPackage.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/diff/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/ls/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/publish/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/publish/npmPublishAsTemp.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/publish/npmPublishSemiAtomic.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/publish/npmUpdateAsLatest.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/publish/publishChangedPackages.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/publish/updateChangedPackages.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/run/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/run/runScriptInPackages.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/commands/updated/index.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/init.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/checkUpdatedPackages.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/execSync.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/exit.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/fsUtils.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/gitUtils.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/logger.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/npmUtils.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/packageUtils.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/lib/utils/progressBar.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

/Users/doug.wade/code/lerna/test/api.js
  1:1  error  Rule 'space-after-keywords' was removed and replaced by: keyword-spacing  space-after-keywords

✖ 29 problems (29 errors, 0 warnings)

dougwade code/lerna ‹master› » git checkout -                                                                                1 ↵
Switched to branch 'fix-eslint-errors'
dougwade code/lerna ‹fix-eslint-errors› » eslint .
dougwade code/lerna ‹fix-eslint-errors› » eslint -v
v2.3.0

Well according to travis this replaces deprecations with errors:
> eslint lib
/home/travis/build/kittens/lerna/lib/commands/bootstrap/bootstrapPackages.js
  1:1  error  Definition for rule 'keyword-spacing' was not found  keyword-spacing
/home/travis/build/kittens/lerna/lib/commands/bootstrap/index.js
  1:1  error  Definition for rule 'keyword-spacing' was not found  keyword-spacing
/home/travis/build/kittens/lerna/lib/commands/bootstrap/linkDependencies.js
  1:1  error  Definition for rule 'keyword-spacing' was not found  keyword-spacing

Well, that's embarrassing -- I didn't notice the npm run lint command, and was using the cli directly.

Thanks for the PR! Yeah we should add some instructions to the readme or make a contributing.md


Feat/navigation

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update pypi release

Hi, thanks for the great tool! I had a lot of trouble following the README at first until I realized the package on pypi is out of date. Once I installed from git, it worked as advertised.

I just release version 0.2.0 on pypi, thanks for making this bug ticket!


Hw03 - Razvan Perial

Implemented unit tests and property-based tests using Tasty, similar to the code presented in the lecture.

ok