correct command to configure function app

In the command example for configuring the function app with the storage account connection string, I think the variable $blobStorageAccount should be $functionstorage.
This should be the full command based on the context above:
storageConnectionString=$(az storage account show-connection-string --resource-group $resourceGroupName \
  --name $functionstorage --query connectionString --output tsv)

https://docs.microsoft.com/en-us/azure/event-grid/resize-images-on-storage-blob-upload-event?tabs=dotnet#configure-the-function-app
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: cad5909e-e1c6-aa8e-82f1-f2851c1caced
Version Independent ID: 42292330-aa69-9df0-5bd7-e07c9daed995
Content: Tutorial: Use Azure Event Grid to automate resizing uploaded images - Azure Event Grid
Content Source: articles/event-grid/resize-images-on-storage-blob-upload-event.md
Service: event-grid
GitHub Login: @spelluru
Microsoft Alias: spelluru

oops, I didn't read this clearly - this is relying on a storage account created in a previous tutorial.


Fix/rclcpp ts libs ownership

This PR fixes an issue discovered within https://github.com/mvukov/rules_ros2/pull/113. Turned out that type-support shared libraries are deleted (deallocated) too soon when one deletes e.g. a publisher (happens in another PR). As a result of that, apps segfault.
In the provided, new, rclcpp path I took a different route now: the node holds now a ts_libs shared ptrs as well, ensuring that the ts_libs live long enough (well, until the node is destroyed). This introduces extra deps in ROS 2 Node class, but IMO changes are fairly small. I admit this is a yet another band-aid until I can allocate some time to refactor how type support libs are built by Bazel.
@ahans PTAL.

BTW, I tested this with #113 and this PR helps -- no more segfaults when a published/client is removed.


Fixes

Fix message links and word word space in about messages
Update ssb-avatar dependency

thanks! merged into 1.7.4


Image was recycle while fling, scrolling in list view Xamarin forms

This plugin is great!
But I have a problem:
My list cells have over 300 cells. When fling or scrolling listview, images are recycled, user can see the old image before the new one loads (about 0.5 ~2 seconds), causing flicker and unpleasant artifacts for the user. This was occured on both Android and iOS.
I'm using viewcell renderer for my listview
Please refer to link https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/viewcell/
I see that this listview loaded imageview in cell and disposed image before the new one loads, maybe that is reason performance faster.
I tried on my listView when using FFImageLoading version 2.2.9 on viewcell renderer.
My viewcell renderer is based on fastcell solution: https://github.com/twintechs/TwinTechsFormsLib
But I don't know how to set dispose image.
How to user can fling with image that is not recycle old image? I want to create a listview the same as loading friends list on Facebook app. That is if the cells's image loaded then when use rescrolling to that cell, it can display image immediately.
Please check it.
Thank you for reading!
Update: I also refer to #216 but set image.Source = null, it will hurt performance in Xamarin Forms.

We noticed this same issue, our solution was to use a tiny transparent png as the PlaceHolder property and that prevented the previous image from showing in recycled cells while scrolling/flinging

Two solutions:

As @petersondrew said, set any placeholder
Set image source to null before loading:

Xamarin.Forms:
cachedImage.Source = null;

Native:
ImageService.Instance.LoadFile(null).Into(imageView);

That's all.

https://github.com/luberda-molinet/FFImageLoading/wiki/FAQ#faq

@petersondrew , @daniel-luberda
Thanks for your help!
I'll try.

Hi Sorry, i dont understand this. I am using Xaml. how can I set  cachedImage.Source = null; how can we solve this using xaml only with mvvm binding?

It's not FFImageLoading issue, but binding issue. Read this for a solution:
https://github.com/luberda-molinet/FFImageLoading/wiki/Xamarin.Forms-Advanced#usage-in-listview-with-listviewcachingstrategyrecycleelement-enabled


calculating distance of schools to providers

is this a worthy task to pursue?
if so, would you recommend using {sf}, perhaps the st_distance() function? Would this require creating {sf} objects for both the nces/school and the providers data? I'm imagining something like the below as a way to think about how to do this for one school, after which we could apply it to all), but wanted to touch base before going any further than this:
one_school <- nces[1, ]

find_distance_of_providers_for_one_school <- function(school_data, providers_data) {

### PSEUDOCODE
school_sf <- create_sf_object(school_data)
providers_sf <- create_sf_object(providers_data)

distance_of_every_provider_to_school <- map(providers_sf) %>%
    st_distance(school_sf)

# something else
}

find_distance_of_providers_for_one_school(one_school, providers)

Is st_distance different than as-the-crow-flies distance? Probably a bit more accurate because it  probs takes into account the curvature of the earth, but I wonder if this is sufficiently different from just calculating Mahalanobis distance.
I liked your idea though of maybe hitting a google API or something for street directions. That might give the most accurate estimate.

Also, though, this seems like something we could refine later. For now, I would suggest we just calculate Mahalanobis distance and begin to try to fit the model as just sort of a proof of concept for the modeling framework. Thoughts?

I think I forgot how... space works. Can you calculate the Mahalanobis distance without using {sf} - ust from the lat ane lon, right?

I was (incorrectly) thinking that we needed to use {sf} to calculate even the Mah distance.

I'm pretty sure that's right, but I just did some sleuthing and maybe it's not quite as easy as I thought... I unfortunately can't devote time to this today but will try to circle back early next week.

sounds good

I can close this for now, and plan to circle back to this if/when we use the Google Maps API.


Pass the formNode to the RdfForm component

It seems we were accidentally passing undefined into the RdfForm component, which causes some strange issues instead of hard erroring. We now pass the actual form node.

FYI @Rahien, merging since it's a small fix and it unblocks a project.


Segment Radial Distances added in features

Added the aforementioned feature that I used for the glial cell analysis. Sorry for the mess with the merge conflicts :P

Current coverage is 100.00%

Merging #306 into master will not affect coverage as of 10598e7

@@            master    #306   diff @@
======================================
  Files           41      41
  Stmts         1861    1862     +1
  Branches         0       0
  Methods
======================================
+ Hit           1861    1862     +1
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 10598e7

Powered by Codecov. Updated on successful CI builds.

Could you squash these changes? 18 commits seems like a lot for one feature.

So... how can I squash changes?

I found this. I haven't tried it yet though. It might require that we close this pull request, you do some jiggling on your side because you already pushed the commits to your origin.

tbh I am kinda lost... I tried the interactive rebase for my latest 8 commits but it throws an error that it cannot apply the segment radial distances commit. Maybe you should close the pull request?

OK, I'll close it.


Suggestion: Save animation properties as layer metadata

@niittymaa congrats on making an awesome plugin. Such a great start!
One quick suggestion: You can save animation properties as layer metadata instead of using the layer name (which is prone to errors since layer names can easily be changed by users). It's easy to set the metadata using MSPluginCommand (docs for reference: http://developer.sketchapp.com/reference/MSPluginCommand/)
For example, to set the value:
var layer = context.selection.firstObject();
context.command.setValue_forKey_onLayer_forPluginIdentifier(animationProps, "animationProps", layer, "com.creatide.sketch.animatemate");

To read the value back:
var layer = context.selection.firstObject();
var animationProps = context.command.valueForKey_onLayer_forPluginIdentifier("animationProps", layer, "com.creatide.sketch.animatemate");

Looking forward to seeing how you take this plugin forward. Good luck :+1:

I was just going to suggest the same thing. Layers can now store data like
json constructs!
On Sat, Mar 12, 2016 at 8:44 AM, Aby Nimbalkar<EMAIL_ADDRESS>wrote:

@niittymaa https://github.com/niittymaa congrats on making an awesome
plugin. Such a great start!
One quick suggestion: You can save animation properties as layer metadata
instead of using the layer name (which is prone to errors since layer names
can easily be changed by users). It's easy to set the metadata using
MSPluginCommand (docs for reference:
http://developer.sketchapp.com/reference/MSPluginCommand/)
For example, to set the value:
var layer = context.selection.firstObject();
context.command.setValue_forKey_onLayer_forPluginIdentifier(animationProps, "animationProps", layer, "com.creatide.sketch.animatemate");
To read the value back:
var layer = context.selection.firstObject();
var animationProps = context.command.valueForKey_onLayer_forPluginIdentifier("animationProps", layer, "com.creatide.sketch.animatemate");
Looking forward to seeing how you take this plugin forward. Good luck [image:
:+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/Creatide/AnimateMate/issues/1.

You're totally right, but in this stage when you have no other indicators about animations/properties it will lead confuses users because you need to remember where's the animation exist. This is absolutely the right way when we have more visual way to manage animations e.g. some kind timeline UI. But with current basic dialog windows this will not work so well. So we need to investigate how to make UI dialogs that can overlap with Sketch (similar as in Craft).

I close this now at this point. But this is something that will be investigated more in the future after we got more visual workflow with UI.


Fix changes discovery in action definition

More info: https://github.com/developer-friendly/blog/issues/38

Thanks for the help @rafrafek :heart:


Keras Little Endian model into SAS Big Endian platform

If I have a Keras model generated on a Little Endian platform. Can that be imported seamlessly into the SAS Viya which runs on a Big Endian platform ?

@antoajayraj - The best answer I can give is "maybe" as I don't think any of our developers have tried this.  We rely in part on Keras, so if Keras does not support your scenario, then we won't either.  If you have a way of testing, could I suggest running this example and seeing if you get the correct results?  Here I am assuming that your Viya client computer is the little endian part of your scenario while the Viya server computer is the big endian part of your scenario.

@antoajayraj - have you tried the example I suggested?

Closing issue as there has been no feedback from @antoajayraj.


Only add endpoint for Routable LRP

What is this change about?
As part of readiness health checks work route emitter should only add endpoint for routes that are Routable.
This PR accompanies executor PR Once executor emits ContainerRunning event rep will send information to BBS in StartActualLRP call, which would include information whether the container is routable.
How should this change be described in diego-release release notes?
Support readiness health checks
Please provide any contextual information.
RFC
Thank you!

also... what about windows? Does this work on a windows cell?

Have not tested this on windows. My expectation it should work the same.


Load Balancer Proper listing properly.

Fixes #411
In Supergiant there are two types of LoadBalancer. Ones created and
ownded directly by Supergiant. And ones owned by Kubernetes. The ones
owned by Kubernetes as technically services. So have been only been
displayed on the services page. This change makes those Loadbalacers
show up in the LoadBalancer section of Supergiant to reduce confusion.

Coverage remained the same at 55.122% when pulling 504d94b3929e1f7787fdf9b16b21bd5ebf15b78b on gopherstein:master into b3df6aa1e5e732b9d2fc557feba27813ea031bea on supergiant:master.


special field creation issue

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (develop@fa0911d). Click here to learn what that means.

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #1945   +/-   ##
==========================================
  Coverage           ?   76.13%
==========================================
  Files              ?      283
  Lines              ?     9198
  Branches           ?        0
==========================================
  Hits               ?     7003
  Misses             ?     2195
  Partials           ?        0

Flag
Coverage Δ

epictrack-api
76.13% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Release 10.1.0

Changelog
[10.1.0] - 23.06.2022
WCAG

Support for legibility and usability when zoomed 200% (in the design guide)
Correct placement of Toast when called on
Update alternate text and captions documentation
Update alt-text and captions for all images in DG
Added aria-expanded for sidebar-component, both component and the one used in DG
Update error icons and error messages in form components
Conditional reveals in Patterns/Forms example
Update text color for inactive state (badge)
Update close buttons to have same style for all components

Added

Inactive example in status badge documentation

LGTM 👍


loadingClass not used?

Is loading class used for anything in the current build? It's in the docs, but I don't see it referenced anywhere in the code.

If you're using Semantic-UI, the loading classs will show a loader by default. But if you're using other CSS Framework, you can use that to style your loader as you like.

@ratiw - how do you use the loadingClass? tried inspecting the element and no class is being appended on the ''.
is there a vue property that I can access that determines if vuetable is currently fetching data from the server?

@chrislandeza The loadingClass is where you specify your CSS class to display the loader while the data is being loaded from the server. By default, it will work with Semantic UI. But if you're using Bootstrap, you can try following the instruction here. It was written for the first version of Vuetable but the technique still can be applied (I guess).
Vuetable fires a few events before and after the loading of data from the server.
vuetable:loading --> vuetable:load-success or vuetable:load-error --> vuetable:loaded
You can listen to those events to determine the state of the data requested from the server.

@ratiw I've got an issue trying to use Javascript Events here.
I can't get the events fired... I tried with vuetable:loading and vuetable:load-success but none of these worked.
Do you have any idea why ?

@bellissi1u Event object has been removed in Vue 2, so you can no longer use it. Can you explain on what do you want to do?

@ratiw Oh ok.
Actually, I changed my data table to yours, and I had a loading screen (just a div showing on a v-if and a boolean). So i'd like to show this div when the table is loading.
Basically, I just have to toggle a boolean true / false, but I can't get how.
Do you have any idea of how I could do that ?

@bellissi1u Basically, you've have to listen to vuetable:loading and vuetable:loaded events and called appropriate event handler to set/clear the flag to show the loading screen. See the code here


Should Unlock() clean up things on error?

What is your question?
In the documentation for https://github.com/caddyserver/certmagic/blob/master/storage.go the Unlock() interface is described as such:
// Unlock releases the lock for name. This method must ONLY be
// called after a successful call to Lock, and only after the
// critical section is finished, even if it errored or timed
// out. Unlock cleans up any resources allocated during Lock.
Unlock(ctx context.Context, name string) error

So it is fairly clear that there is an expectation that Unlock() should clean things up. What I am unsure about is what is expected if an operation done in Unlock() fails. Here is a sample from an etcd3-using-backend I have written (for clarity, the mutex is a https://pkg.go.dev/go.etcd.io/etcd/clientv3/concurrency#Mutex, not the standard library sync.Mutex() which is why it can return an error):
	err := mutex.Unlock(ctx)
	if err != nil {
		s.logger.Debug().Msgf("Unlock(): failed releasing lockKey '%s', ", lockKey)
		// TODO(patlu): Not sure if we should clean up map here
		// or leave it. The documentation comment above states
		// "Unlock cleans up any resources allocated during
		// Lock" without regard for success or error, so for
		// now clean it up, but it also means the caller can not
		// retry Unlock() requests that failed.
		s.deleteLockFromMap(lockKey)
		return err
	}
	s.logger.Debug().Msgf("Unlock(): released lockKey '%s'", lockKey)

	// Cleanup the map entry
	s.deleteLockFromMap(lockKey)

So I guess the real question is, will an Unlock() ever be retried if it returns an error? The locks created in etcd already has a TTL attached to them, so they will eventually expire by themselves. If an Unlock() is not retried "cleaning things up" as I am already doing in the error path is the correct thing to do. If it can be retried however then I would need to keep things around for a later attempt.
What is expected here?

Hi, sorry for the late reply. Got a little busy with something else unexpectedly last week.

So I guess the real question is, will an Unlock() ever be retried if it returns an error?

Not directly. In the case of a cert renewal, for example, those are retried upon any error, after a backoff period. But in general, no, we can't say or assume that Unlock will be retried. The user would probably need to just restart the process or something.
If a retry is all it takes to fix the error, though, then I think the implementation should do that.
If a TTL will automatically cause it to unlock later, then maybe just return the error -- hopefully it says something about TTL -- and then a later retry happening after the TTL would succeed in acquiring the lock. In theory.
Does that help?

Sounds good! Yep. Sometimes retrying to unlock doesn't make sense, it's really up to the implementation to decide that.


fix(deps): Allow Splunk-sdk to be compatible with .16

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

v4.3.3
GitHub release

Your semantic-release bot :package::rocket:


add signal valve

About the PR
can be controlled with signals like a door: open, close, toggle
behaves like a manual valve otherwise
Media
signals controlling
https://user-images.githubusercontent.com/39013340/227511629-b2fbbf7d-d0e8-4810-9266-d6fc55452ace.mp4
operating as a valve
https://user-images.githubusercontent.com/39013340/227511642-7f909be5-a06c-44c1-9143-d7068b438702.mp4

[X] I have added videos to this PR showcasing its changes ingame

Changelog
:cl:

add: Added the signal valve for advanced atmosians.

if you are referring to #10584:

We talked about it on discord and this needs to be something you attach to the atmos device (at least visually) you want to link to so it's visible what devices have a link to something.

that's exactly what this is, if you see a signal valve you know that whatever its attached to can be controlled remotely

Ah, aight.

@moonheart08 so is there anything i should change or is it good as it is

this is good as is imo


add test for "nullable bug"

see https://github.com/microsoft/llguidance/issues/11

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 58.50%. Comparing base (b424a32) to head (c0cd1c7).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

:exclamation:  There is a different number of reports uploaded between BASE (b424a32) and HEAD (c0cd1c7). Click for more details.
HEAD has 111 uploads less than BASE

Flag
BASE (b424a32)
HEAD (c0cd1c7)

112
1

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1025       +/-   ##
===========================================
- Coverage   70.27%   58.50%   -11.78%
===========================================
  Files          62       62
  Lines        4468     4468
===========================================
- Hits         3140     2614      -526
- Misses       1328     1854      +526

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thanks @mmoskal.  Good to know the parser doesn't have the nullables bug.


GLUtil renamed to GLAbstraction

The package name is different now.  OpenGL test fails due to use of old name.
bvanevery@snazzy ~/.julia/v0.3/Processing/test $ julia basic2DOpenGL.jl
INFO: loaded GLFW 3.0.4 X11 GLX glXGetProcAddress clock_gettime /dev/js shared from /home/bvanevery/.julia/v0.3/GLFW/deps/usr64/lib/libglfw
ERROR: GLUtil not found
in require at loading.jl:47
in include at ./boot.jl:245
in include_from_node1 at ./loading.jl:128
in eval at no file
in include at ./boot.jl:245
in include_from_node1 at loading.jl:128
in process_options at ./client.jl:285
in _start at ./client.jl:354
in _start_3B_1713 at /usr/bin/../lib/x86_64-linux-gnu/julia/sys.so
while loading /home/bvanevery/.julia/v0.3/Processing/src/Processing2DOpenGL.jl, in expression starting on line 5
while loading /home/bvanevery/.julia/v0.3/Processing/test/basic2DOpenGL.jl, in expression starting on line 14

Done.


Missing documentation on how to couple telephone number to voice bot

Hi, I cannot seem to find any documentation that explains how to route a telephone number (bought via the calling plan) to a voice enabled bot. Please provide this documentation.
One would expect documentation about the following simple use case:

Buy a telephone number
Create a teams bot app that has calls enable
Allow external user to cal this telephone number and interact with the bot
This is the basic scenario of an IVR. There is described how to build an IVR, but, there is no documentation on how to make the IVR available for people that call in via PSTN

@wimvanhouts - Check this Document.

Thx, figured it out also via one or two other articles. However, added some remarks from experience to that article which was giving me headaches. Maybe it saves time of other people. You can close this ticket


Module naming and test setup improvements

Changed module name from mailings to base; Introduced tox as a test requirement; Force usage of python 2.7 for coverage tests

Coverage remained the same at 100.0% when pulling 53a73eb8af95429d5133b713dd4deff332176752 on fix/modules into d8c385aefe1452d196fd9764be9331956fa61e16 on master.


Apache reverse proxy configuration

Hello,
I'm trying to setup an Apache (2.4) in front of your apps. I tried to adapt the nginx configuration without success for the moment.
Do you have the equivalent for apache as for nginx as reverse proxy configuration ?
Especially the websockify part, or if you can explain me the meaning maybe I can find the apache workaround.
Regards,

Hi, unfortunately I don't have an example for Apache.  However, I found this that looks interesting:
https://www.happyassassin.net/2018/11/23/reverse-proxying-websockets-with-apache-a-generic-approach-that-works-even-with-firefox/

Hello Jocelyn,
Thanks for the nice link. I found how to do it.
Here is the block to use, if you want to put it in the Reverse proxy part of your documentation :
<VirtualHost *:443>
# Your stuff here name, ssl, logs ,

ProxyPreserveHost On
ProxyRequests Off
SSLProxyEngine On

RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule .* "wss://<IP_ADDRESS>:5800%{REQUEST_URI}" [P]

ProxyPass "/"	"http://<IP_ADDRESS>:5800/"
ProxyPassReverse "/"	"http://<IP_ADDRESS>:5800/"
</VirtualHost>

Merci
Nicolas.

Great, thanks!


Change binary to push to dcos-1.11 instead of 1.12

This is the first part of addressing https://jira.mesosphere.com/browse/DCOS_OSS-4365
We'll also need to replace it with actual 1.12-patch.x

run continuous-integration/appveyor/pr


hubble: add the cluster name to a flow's source and destination endpoints

The cluster name is present in the set of labels associated to a Cilium endpoint. Adding the cluster name to a flow's source and destination endpoints will allow API clients such as Hubble UI to show if a flow is internal cluster traffic or going/coming from a different cluster (for instance, in a cluster mesh context).
hubble: add the cluster name to a flow's source and destination endpoints

/test

Added the blocked label to wait on https://github.com/cilium/cilium/pull/32130 and rebase on top.

Added the blocked label to wait on #32130 and rebase on top.

#32130 is now merged, removing the blocking label.

/test


bug(strings): default error message translation issue

Browser: any
OS: any
Clappr Version: master
There is a small issue with default error messages where not defined for language : it returns "default_error_title" and "default_error_message" instead of fallback to english version. (reason is that current code expects that translation keys exists).
@jhonatangomes i suggest you rollback changes from e21ec7063cafda7f890b71f7b4758ed5aafdb71c but try to translate with Google from the english strings, you should get better translation results. (i assume you translated from portuguese ? :stuck_out_tongue: )
Steps to reproduce:
Simply go to this page link. (Clappr demo page).

#1643 fixes this bug.
About the rollback: I prefer to wait for PRs with these messages translated like on #1634 to guarantee it'll be right.
I don't remember if it was translated from portuguese :smile:, maybe it was, but I really don't remember. I did the rollback just to prevent possible wrong messages.


update parsing for terraform v0.14

Prior version of terraform plan output something like
<...>
some_resource: Refreshing state... [id=some_resource]

------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place
  - destroy
<...>
------------------------------------------------------------------------

But latest terraform no longer output the first ------ line:
<...>
some_resource: Refreshing state... [id=some_resource]

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place
  - destroy
<...>
------------------------------------------------------------------------

So the parsing strips all the actual diff.
This PR fixes the parsing by stripping out the lines containing Refreshing state... instead of looking for content between the ---- lines.

Thanks @xinluh 🙌
I'll merge this in to the base branch now. I have a few other changes I'd like to get in before moving the v1 tag on the action, but it should be in the next few days!

Thanks @xinluh 🙌
I'll merge this in to the base branch now. I have a few other changes I'd like to get in before moving the v1 tag on the action, but it should be in the next few days!


Can't access the host from container using transparent network

Describe the issue
I want to access the host from the container, the name host.docker.internal exists on the container, but the request always timed out when I pinged it. the host can access the container. but not vice versa.
I'm using a transparent network. the container and the host share the same subnet and gateway.
I'm sorry I can't share the docker inspect because I'm using the transparent network.
did I miss something when creating the container with NavContainerHelper?
Thanks in advance.

Have you checked that host.docker.internal is in fact the host?
I add that to the hosts file inside the container and set it to the gateway (as the host is the gateway when using NAT).
When you are switching to transparent network you might need to get the IP address from somewhere else.

Have you checked that host.docker.internal is in fact the host?
I add that to the hosts file inside the container and set it to the gateway (as the host is the gateway when using NAT).
When you are switching to transparent network you might need to get the IP address from somewhere else.

Yes, I checked the hosts file inside the container and confirm that the host exists.
the transparent network and the host share the same subnet and gateway.
I'm sorry, I don't know what you mean by get the IP address from somewhere else.

I would like to understand why you are switching to transparent networking?

because I want to share the container with my private network.

You could do that by publishing ports on the host as well.
I must admit that I have never used transparent networking and all that I have done is setup using NAT - primarily because using transparent networking will heavily rely on the network and how it is setup.
In our corporate network - we cannot use transparent networking (would be like somebody would plug in a foreign computer on the network) that is not allowed.

I'm not sure why I can't access the host. But, because I'm using transparent network, now the container is becoming the part of my local network, and I realized, i can access another computer from that network.
I think that's enough to fulfill my requirements for now.


Introduce a test case schema

Here's what I have in mind.
What about creating a @dataclass or NamedTuple or ish that will describe using a model what is a test case?
This should make it easier to maintain a code IMHO.
A suggestion, if you are interested :)

Can you please share an example?

An example could be something like:
class TestCase:
   name: str
   main: str
   out: Optional[str]
   ...

we could load into such a model and perhaps develop, using Github Actions, a solution to introspect members and generate such a table each time model changes :)
It is more or less really fancy idea :)


MetaMask + Discord integration - with Weba-Wallet

Added Login modal with two buttons, MetaMask, and Discord respectively.
Integrated Discord Login
Integrated Weba-Wallet storage module.
Flow:
On login, a popup will be opened, along with the postMessage carrying the user's privateKey(mnemonic).
If the user is not already using storage, he will enter a password(a popup will be open) and weba-wallet will be creating the user's data object and return encrypted mnemonic.
By using that encrypted mnemonic user can either get his data or save new key-value data in weba-wallet storage (using hidden iframe).

This PR also needs a description.

Is this a hardcoded password? If so it should at least be a constant.

It is now being handled by weba-wallet.

This PR also needs a description.

Added description and updated Title.


can localStorage be injected before webview opened ?

Environment
Flutter version:
Plugin version:
Android version:
iOS version:
Xcode version:
Device information:
Description
What you'd like to happen:
Alternatives you've considered:
Images:

Same issue. Have you fixed it now?

Same issue. Have you fixed it now?

No, you can’t do that because there is no official native API that allows injecting local storage data before the page is loaded.
For example, one way could be to use cookies through the CookieManager class, setting a cookie that is available on the client side without the HttpOnly flag.


Missing Number #138

Related issue?
closes: #138
Checklist:

[x] I have followed the Code of Conduct.
[x] I have checked there aren't other open Pull Requests for the same update/change.
[x] I have you tested the code before submission.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm (HSOC) Hack-Club-Rait Summer of code '22 Contributor.

Pls add some more explanation

@Chaitalishetty done


Briefly ran into this error with teachable agent.

I had a teachable moment and when I exited chat I encountered an error within the teachable agent.
NOTE:
pyautogen                                0.1.14
I've yet to make the 0.2 swtich due to system requirements
Another note: Fix at the bottom.
The lecture notes "Optimization for Machine Learning" by Elad Hazan discuss the concept of generalization in the context of machine learning optimization. Specifically, the notes address the relationship between regret minimization in online learning and generalization in statistical learning. This relationship is crucial for understanding how well a model trained on a given dataset can perform on unseen data.

Generalization refers to the ability of a machine learning model to perform well on new, previously unseen data, and it is a fundamental aspect of a model's performance. The notes likely cover how optimization techniques can influence the generalization capabilities of a model. For instance, the use of regularization is introduced as a technique to prevent overfitting to the training data, which in turn can improve the model's generalization to new data.

Regularization methods, such as L1 and L2 regularization, are commonly used to impose constraints on the model complexity, thereby encouraging simpler models that are less likely to overfit. The notes also mention adaptive regularization, including algorithms like AdaGrad, which adapt the learning rate during training to improve performance and potentially enhance generalization.

In summary, "Optimization for Machine Learning" by Elad Hazan discusses the importance of optimization techniques in achieving good generalization in machine learning models, with a focus on the role of regularization and the connection between online learning and statistical learning theory.

--------------------------------------------------------------------------------
Provide feedback to ResearcherAgent. Press enter to skip and use auto-reply, or type 'exit' to end the conversation: exit

REVIEWING CHAT FOR USER TEACHINGS TO REMEMBER
Traceback (most recent call last):
  File "/home/codeninja/autogen/.venv/lib/python3.10/site-packages/openai/openai_object.py", line 59, in __getattr__
    return self[k]
KeyError: 'lower'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/codeninja/autogen/src/pipelines/research.py", line 67, in <module>
    researcher.agent.learn_from_user_feedback()
  File "/home/codeninja/autogen/.venv/lib/python3.10/site-packages/autogen/agentchat/contrib/teachable_agent.py", line 143, in learn_from_user_feedback
    self.consider_memo_storage(comment)
  File "/home/codeninja/autogen/.venv/lib/python3.10/site-packages/autogen/agentchat/contrib/teachable_agent.py", line 159, in consider_memo_storage
    if "none" not in advice.lower():
  File "/home/codeninja/autogen/.venv/lib/python3.10/site-packages/openai/openai_object.py", line 61, in __getattr__
    raise AttributeError(*err.args)
AttributeError: lower
(.venv) 412) codeninja[~/autogen](research-v2)$

Here is the code for the main agent class.
This agent handles using the executor to search a site and download some data, then it leverages the analyser with a custom prompt to generate structured notes for the content and remember what was said about the paper.
The goal is to create  a research agent which holds a diverse set of knowledge about a subject matter from multiple sources.
# autogen agent responsible for creating structured notes about a subject or corpus of text.
# is able to read the text from a file or from a url. (fetch, fetch_file)
# is able to be provided the text directly by the user
# is able to iterate over the text in chunks using create notes about the text which get compiled into a single note.
# final note is stored in the /learnings chroma database.
from autogen.agentchat.contrib.teachable_agent import TeachableAgent

from .researchers.research_executor import ResearcherExecutor
from .researchers import arxiv_executor

class ResearcherAgent:
    function_definitions = [
        {
            "name": "search",
            "description": "search arxiv for a topic",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "The query to search for.",
                    },
                    "max_results": {
                        "type": "integer",
                        "description": "The maximum number of results to return. Default 20, Max 300.",
                    },
                    "start_date": {
                        "type": "string",
                        "description": "The start date to search from: format YYYY-MM-DD.",
                    },
                    "end_date": {
                        "type": "string",
                        "description": "The end date to search to: format YYYY-MM-DD.",
                    },
                },
                "required": ["query"],
            },
        },
        {
            "name": "get",
            "description": "get downloadable content from a URL. This could be a PDF, or a video, or an audio file, or text transcript.",
            "parameters": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "description": "The url to download the content from.",
                    }
                },
                "required": ["url"],
            },
        },
    ]

    def __init__(
        self,
        name="ResearcherAgent",
    ):
        # use query_function_default to define the default query function and use it in the query_function_map if no query_function is provided.
        self.research_executor_map = {
            "arxiv": arxiv_executor.ArxivExecutor(),
            # "youtube": youtube_executor.YoutubeExecutor(),
        }

        self.function_map = {"search": self.search, "get": self.get}

        self.agent = TeachableAgent(
            name=name,
            llm_config={
                "model": "gpt-4-1106-preview",
                "temperature": 0,
                "max_tokens": 2048,
                "functions": self.function_definitions,
                "timeout": 600,
            },
            system_message="""You are an expert researcher and you intereact with the User, Business, Product, and Development teams.
            You have 3 main responsibilities:
            * Search for information using executor agents and remember the information in the form of structured notes.
            * Answer questions about the information you have stored in your structured notes.
            * Analyze the information you have stored in your structured notes and make recommendations to the User, Business, Product, and Development teams.

            When you need to preform a search for new, use the search() method.
            When you are asked about a topic, you first search for any internal memos, and then if nothing is found you may issue a search() request for the researchers to perform.
            When you are asked for recent or trending content, always perform a search() request.
            You can interact with the user to perform tasks related to research and data analysis. Please ask clairifying questions if you get confused.""",
            default_auto_reply="Researcher Agent: I am a researcher agent. I can interact with the research user proxy agent to perform tasks related to research and data analysis.",
            teach_config={
                "verbosity": 0,
                "reset_db": False,
                "path_to_db_dir": ".cache/research",
                "recall_threshold": 1.5,
                "timeout": 600,
            },
        )

    def get_agent(self):
        return self.agent

    def search(self, **kwargs):
        # results = self.research_executor.search(*args, **kwargs)
        # iterate over results and get() them, then analyze() them, then consider_memo_storage.
        # for each item in the research_executor_map call the search function and then get all results and then analyze them and then consider_memo_storage.
        print("searching from researcher agent", kwargs)

        results = []
        print("self.research_executor_map", self.research_executor_map)

        for name, executor in self.research_executor_map.items():
            search_results = executor.search(**kwargs)
            search_results = [
                executor.get(result["download"]) for result in search_results
            ]
            # print first 100 characters of the first result
            print("downloaded_results", search_results)

        analyzed_results = [self.analyze(result) for result in search_results]

        stored_results = [
            self.agent.consider_memo_storage(result) for result in analyzed_results
        ]

        return analyzed_results

    def get(self, url):
        pass

    def internal_memo_search(self, query):
        pass

    def analyze(self, data):
        instructions = """You are an expert in the field of research and software development.
        You are to create structured notes on this content. You must capture source and identifying information.
        You must remember all relevant data that would be necessary to know during software planning sessions for futre features or product development.
        This remember but is not limited to:
        - the source of the information
        - the date of the information
        - the author of the information
        - A short summary of the information
        - Detailed notes about the information and how it relates to the work we are doing.
        - Potential applications of the information
        - Potential future research topics related to the information"""
        analysis = self.agent.analyze(data, instructions)
        print("analysis", analysis)
        return analysis

from .research_executor import ResearcherExecutor
import feedparser
import requests
import os
import re
import autogen.retrieve_utils as retrieve_utils

The Arxiv executor that does searching and retrieval
class ArxivExecutor(ResearcherExecutor):
    def __init__(self):
        super().__init__()

    def search(
        self,
        **kwargs,
    ):
        query = kwargs.get("query")
        max_results = kwargs.get("max_results", 20)
        start_date = kwargs.get("start_date")
        end_date = kwargs.get("end_date")

        if not query:
            print("No query was provided")
            return

        print("Searching arxiv for: ", query)
        base_url = "http://export.arxiv.org/api/query?"
        search_query = f"search_query=all:{query}"
        if start_date and end_date:
            search_query += f"+AND+submittedDate:[{start_date}+TO+{end_date}]"
        start = 0
        max_results = f"max_results={max_results}"
        url = f"{base_url}{search_query}&start={start}&{max_results}"
        response = requests.get(url)
        feed = feedparser.parse(response.content)
        print("feed", feed.entries[0])
        papers = [
            {
                "source": "arxiv",
                "title": entry.title,
                "link": entry.link,
                # search links to find the link with the title pdf from the links list
                # links ={'links': [{'href': 'http://arxiv.org/abs/1909.03550v1', 'rel': 'alternate', 'type': 'text/html'}, {'title': 'pdf', 'href': 'http://arxiv.org/pdf/1909.03550v1', 'rel': 'related', 'type': 'application/pdf'}]}
                "download": [
                    link["href"]
                    for link in entry.links
                    if link["type"] == "application/pdf"
                ][0],
                "summary": entry.summary,
                "date": entry.published,
                "category": entry.arxiv_primary_category["term"]
                if "arxiv_primary_category" in entry
                else entry.tags[0]["term"],
            }
            for entry in feed.entries
        ]

        print(papers)
        return papers

    def get(self, url: str) -> str:
        """
        Download a pdf from a url and save it in a topic categorized folder.

        :param url: The url to download the pdf from.
        :return: The path to the downloaded pdf.
        """
        # Sanitize the topic string to create a valid directory name
        filename = url.split("/")[-1]

        # Create the directory path for the topic
        storage_dir = os.path.join(".cache", "research", "arxiv")
        os.makedirs(storage_dir, exist_ok=True)

        # Sanitize the filename string to create a valid filename make sure to include the .pdf extension
        sanitized_filename = filename.strip().replace(" ", "_").replace("/", "")

        # Create the full path for the pdf
        pdf_path = os.path.join(storage_dir, sanitized_filename)

        # Download and save the pdf
        if os.path.exists(pdf_path):
            result = self.read_pdf(pdf_path)
            return result
        else:
            response = requests.get(url)
            with open(pdf_path, "wb") as f:
                f.write(response.content)

            result = self.read_pdf(pdf_path)
            return result

    def read_pdf(self, filename: str) -> str:
        # Read the PDF and generate structured notes
        extracted_text = "No file was found at path: " + filename
        if os.path.exists(filename):
            extracted_text = retrieve_utils.extract_text_from_pdf(filename)

        return extracted_text

My pipeline executer
# Import the autogen library, necessary agent modules, and other required libraries
import autogen
from autogen.agentchat import GroupChat, GroupChatManager
from src.agents.research.arxiv.arxiv_agent import ArxivAgent
from src.agents.managers.vanilla_boss import VanillaBoss

from src.agents.research.research.researcher_agent import ResearcherAgent
from src.agents.research.research.researchers.arxiv_executor import ArxivExecutor

researcher = ResearcherAgent(
    name="ResearcherAgent",
)
researcherAgent = researcher.get_agent()

# Set up user proxy agents for interaction with the system
# (Assuming UserProxyAgent class exists and is imported correctly)
user_proxy_agent = userProxy = autogen.UserProxyAgent(
    name="User",
    human_input_mode="ALWAYS",
    code_execution_config={"work_dir": "arxiv"},
    function_map=researcher.function_map,
    default_auto_reply="Search for the first machine learning article",
)

if __name__ == "__main__":
    # Start chatting with the user proxy agent
    researcherAgent.initiate_chat(
        user_proxy_agent,
        message="What can we help you with today?",
    )

    researcher.agent.learn_from_user_feedback()

FIX
The error comes from the type assumption that Analyxe() will return a string and it can in fact return any | str which causes the problem when we call response.lower(). This is because the implementation for analyze diverts if verbosity is set to 2 and the content of
def analyze(..)
...
if self.verbosity >=2
 return str(self.last_message(self.analyzer)["content"])
else
  return self.analyzer.analyze_text(text_to_analyze, analysis_instructions)

in this implementation content could be any | string
The solution is to cast the result returned from analyze as a string.
def analyze(self, text_to_analyze, analysis_instructions):
        """Asks TextAnalyzerAgent to analyze the given text according to specific instructions."""
        if self.verbosity >= 2:
            # Use the messaging mechanism so that the analyzer's messages are included in the printed chat.
            self.analyzer.reset()  # Clear the analyzer's list of messages.
            self.send(
                recipient=self.analyzer, message=text_to_analyze, request_reply=False
            )  # Put the message in the analyzer's list.
            self.send(recipient=self.analyzer, message=analysis_instructions, request_reply=True)  # Request the reply.
            return str(self.last_message(self.analyzer)["content"])
        else:
            # Use the analyzer's method directly, to leave analyzer message out of the printed chat.
            return str(self.analyzer.analyze_text(text_to_analyze, analysis_instructions))

@rickyloynd-microsoft for your awareness

@codeninja  Thanks for creating the issue! Couple questions. What LLM(s) were you using? Are you able to run the TeachableAgent sample code successfully?

This agent is specifically leveraging the gpt-4-1106-preview for it's enormous context window. (the whole paper fits in context usually)
I was able to run the example file, however the example is very basic and avoids the use of function calls which I believe is the root cause of the issue.
When I implemented function calls in the workflow is when I first encountered the issue.

Thanks for the information. It's true that TeachableAgent doesn't currently work with function calling. #534 is scheduled to address this. I'll change the name of this issue to be more descriptive, and add a mention of it in #534 .

Fixed by #1091


cunn.test() fail

I'm the sys admin of a cluster and I'm trying to make cunn work with our gpu.
I'm installing/compiling from a node without gpu (but with cuda sdk 7.5).
It's compiling fine.
I'm trying to execute the tests:
luajit -l cunn -e 'cunn.test()'
36/148 SpatialAdaptiveMaxPooling_forward_noncontig ..................... [PASS]
37/148 SpatialAveragePooling_backward .................................. [PASS]
38/148 ELU_transposed .................................................. [PASS]
39/148 SpatialBatchNormalization ....................................... [WAIT]THCudaCheck FAIL file=/tmp/luarocks_cutorch-scm-1-6806/cutorch/init.c line=230 error=77 : an illegal memory access was encountered
39/148 SpatialBatchNormalization ....................................... [ERROR]
/home/sagon/torch/install/bin/luajit: cuda runtime error (77) : an illegal memory access was encountered at /tmp/luarocks_cutorch-scm-1-6806/cutorch/lib/THC/generic/THCStorage.c:147

In this node, there are two M2090 (compute capability 2.0)
Driver version 352.79

Hi @ysagon . Someone mentioned that this kind of error occurs if you compile for CUDA compute capability 3.0+ and run it on 2.0.
There's an environment variable you can use at compile time called TORCH_CUDA_ARCH_LIST that can manually let you specify the architecture you care about, in your case 2.0.

the build log of cunn should tell you what architectures it is being built against...

@soumith thanks, I'm suspecting something like that too.
I have no idea how luarocks works, so I don't know if I do things correctly.
I have installed cunn like this:
export TORCH_CUDA_ARCH_LIST=2.0
[sagon@login1 torch]$ luarocks install cunn
Installing https://raw.githubusercontent.com/torch/rocks/master/cunn-scm-1.rockspec...
Using https://raw.githubusercontent.com/torch/rocks/master/cunn-scm-1.rockspec... switching to 'build' mode
Initialized empty Git repository in /tmp/luarocks_cunn-scm-1-6364/cunn/.git/
remote: Counting objects: 538, done.
remote: Compressing objects: 100% (302/302), done.
remote: Total 538 (delta 357), reused 360 (delta 220), pack-reused 0
Receiving objects: 100% (538/538), 380.09 KiB, done.
Resolving deltas: 100% (357/357), done.
cmake -E make_directory build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/home/sagon/torch/install/bin/.." -DCMAKE_INSTALL_PREFIX="/home/sagon/torch/install/lib/luarocks/rocks/cunn/scm-1" && make -j$(getconf _NPROCESSORS_ONLN) install

-- The C compiler identification is GNU 4.4.7
-- The CXX compiler identification is GNU 4.4.7
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found Torch7 in /home/sagon/torch/install
-- Found CUDA: /usr/local/cuda (found suitable version "7.5", minimum required is "6.5")
-- Automatic GPU detection failed. Building for all known architectures.
-- Compiling for CUDA architecture: 2.0 2.1(2.0) 3.0 3.5 5.0 5.2
-- Configuring done
-- Generating done

It seems it's compiling cunn for every architecture, which seems to be the default if auto-detection failed. Do I have to pass this variable in an other way?
Anyway, I have logged to the node with the gpus, reinstalled cunn, and this time it'w written it's compiled for cuda architecture 2.0 but the tests still failed at same place.

Hi all.
I get a similar error:
 32/134 SparseLinear_backward ........................................... [PASS]
 33/134 SpatialReflectionPadding_backward ............................... [PASS]
 34/134 SpatialAdaptiveMaxPooling_forward_noncontig ..................... [PASS]
 35/134 SpatialAveragePooling_backward .................................. [PASS]
 36/134 ELU_transposed .................................................. [PASS]
 37/134 SpatialBatchNormalization ....................................... [WAIT]
THCudaCheck FAIL file=/tmp/luarocks_cutorch-scm-1-6519/cutorch/init.c line=218 error=77 : an illegal memory access was encountered
 37/134 SpatialBatchNormalization ....................................... [ERROR]
cuda runtime error (77) : an illegal memory access was encountered at /tmp/luarocks_cutorch-scm-1-6519/cutorch/lib/THC/generic/THCStorage.c:158

The GPU in that computer is a TeslaM2075.  I wonder if someone  manage to solve this situation.


Error in streams refresh: TypeError: fields.flat is not a function

[StreamActivity] Update current activity: watching YTNico7171. [TwitchMonitor] Error in streams refresh: TypeError: fields.flat is not a function     at Function.normalizeFields (/home/ytnico7171/timbot-master/node_modules/discord.js/src/structures/MessageEmbed.js:450:8)     at MessageEmbed.addFields (/home/ytnico7171/timbot-master/node_modules/discord.js/src/structures/MessageEmbed.js:266:42)     at MessageEmbed.addField (/home/ytnico7171/timbot-master/node_modules/discord.js/src/structures/MessageEmbed.js:257:17)     at Function.createForStream (/home/ytnico7171/timbot-master/live-embed.js:29:16)     at TwitchMonitor.onChannelLiveUpdate (/home/ytnico7171/timbot-master/index.js:492:32)     at Function.handleChannelLiveUpdate (/home/ytnico7171/timbot-master/twitch-monitor.js:220:21)     at Function.handleStreamList (/home/ytnico7171/timbot-master/twitch-monitor.js:182:23)     at TwitchApi.fetchStreams.then (/home/ytnico7171/timbot-master/twitch-monitor.js:95:24)     at process._tickCallback (internal/process/next_tick.js:68:7)
i need help please

Duplicate of #26.

This most likely means you are using an older version of Node.js, try updating to v12.
See: https://stackoverflow.com/a/61034427/1410310


Add a keybinding to the commit view to easily sign off commits

Partial fix for #36, this will sign-off commits by hitting Super+s.
As with my previous PR, this will need proof-checking, I'm still quite new to Python.

Why the manual sign off message generation. Couldn't this be done by git itself?

I chose this method instead of amending -s (or --signoff) to the commit command (GsCommitViewDoCommitCommand) was to give more of a visual representation to the user that it actually did sign-off.
I suppose my original implementation suggestion from #36 could work fine, but that would require a more verbose output (like suggested in #44) so that the user could verify it.

Looks good to me.  Can you also update the COMMIT_HELP_TEXT to indicate the availability of the shortcut?


Customizable Rollups & Matching Gifts: Find Matched Gifts causes Duplicate Contact Roles and Partial Soft Credits when multiple gifts from the same Contact are associated with a Matching Gift Opportunity and incorrect amount-driven Soft Credit Rollups.

Example Use Case
Jane Doe donates regularly to her favourite nonprofit. Her employer matches any donations she makes. The nonprofit receives a cheque from the matching employer at various points during the year. The cheque is a lump sum of all matched donations by employees during a recent period to the nonprofit. Jane has 3 separate donations in Salesforce that are set up correctly to be matched (Closed Won with a Matching Gift Status of Potential or Submitted). The nonprofit would like to create the Matching Gift opportunity in Salesforce and match the 3 existing donations to it. The nonprofit would also like the Soft Credit Rollups fields on Jane Doe to correctly reflect her soft credits as a matching donor.
Summary of Issues
Issue 1
When a contact has more than one Opportunity linked to a Matching Gift Opportunity via the Find Matched Gifts component, duplicate Contact Roles and duplicate Partial Soft Credits will be created for the Contact on the Matched Opportunity.
Issue 2
As a result of Issue 1, if Customizable Rollups are enabled and the Matching Donor role is included in the Soft Credit filter group, the Soft Credit Total will be incorrect as the amount from only one of the Partial Soft Credit records will be counted in rollup stats. Other Soft Credit rollups may also display incorrect values (e.g Soft Credit Last N Days, Soft Credit This Year, Largest Soft Credit Amount, Last Soft Credit Amount, First Soft Credit Amount)
Note: Legacy Rollups will calculate any amount-driven Soft Credit rollups correctly, but count-driven ones will be incorrect (e.g Number of Soft Credits).
Steps to Replicate
Issue 1

Create an Account:
-- Name: Test Account
-- Matching Gift Company: Checked
-- Matching Gift Percent: 100%
Create a Contact:
-- First Name: James
-- Last Name: Browne
Create an Opportunity for James Browne
-- Record Type: Donation
-- Primary Contact: James Browne
-- Amount: 50
-- Close Date: (yesterday)
-- Stage: Closed Won
-- Matching Gift Account: Test Organisation
Create a 2nd Opportunity for James Browne
-- Record Type: Donation
-- Primary Contact: James Browne
-- Amount: 100
-- Close Date: (today)
-- Stage: Closed Won
-- Matching Gift Account: Test Organisation
Create an opportunity for Test Organisation
-- Record Type: Matching Gift
-- Amount: 150
-- Close Date: today
-- Stage: Closed Won
Navigate to the newly created Opportunity for Test Organisation
-- Click Find Matched Gifts
-- Select the opportunities created in steps 3 & 4 above and then Save
Confirm there are now two Contact Roles and two Partial Soft Credits for James Browne (see screenshot below)

Issue 2

Confirm Customizable Rollups are enabled
Confirm the Opps: Won (SC) Filter Group contains a Filter Rule where Role Name In List contains Matched Donor
Run Rollup Donations Batch
Review the Soft Credit rollup stats for James Browne
-- Soft Credit Total: $50.00 (expected $150.00)
Note: All Soft Credit amount-driven rollup values may be incorrect as only one of the opportunity amounts is being reflected in the rollups

Workaround
When multiple opportunities from the same contact are to be associated with one Matching Gift Opportunity, aggregate the total of the opportunities and add one Partial Soft Credit via the Manage Soft Credits button. This will result in any amount-drive NPSP Soft Credit rollups being calculated correctly.
Or alternatively, remove the Matching Donor role from the Soft Credit filter group in Customizable Rollups and capture your Matching Donor Soft Credits in separate standard Salesforce rollup summary fields on Contacts, as the relationship between Contacts and Partial Soft Credits is master-detail.

W-8021360

Please follow this Known Issue in the Trailblazer Community for updates.


Update to 0.11.0

closes #1

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender


Element Plus Resolver not Tree Shaking

Versions:
"element-plus": "^2.0.1",
"vite-ssr": "^0.11.1",

"unplugin-auto-import": "^0.5.11",
"unplugin-icons": "^0.13.0",
"unplugin-vue-components": "^0.17.18",
"vite": "^2.7.13",

Vite Config:
  plugins: [
    Vue(),
    SSR(),
    AutoImport({
      resolvers: [ElementPlusResolver()]
    }),
    Components({
      resolvers: [
        ElementPlusResolver({
          ssr: true,
          importStyle: 'sass'
        })
      ]
    })
  ]

When  using 1 Element Plus component and running vite-ssr build, all content from Element Plus is put into the JS chunk which reaches over 1 MB. Tree shaking does not take effect.
When I build the SPA version though via vite build, tree shaking does work.

i also have this problem, how to resolve it

The same question.
Now I'm using manual import and also installing unplugin-element-plus for style import.


Remove liked tab from create modal

Fixes #3649, ping @xavijam

Frontend tests were OK :+1: (details)

bump! :)

LGTM :gb:


Flag to return date as object instead of a string

It would be nice to have the option to get date as objects instead of strings.
What do you think? If this would be fine I will add tests and documentation.

@jrast I think that it's can be useful. Add docs and tests, please.


Adding maxPaths option to Router.

Limiting the number of paths returned by the Router
Prior to version 0.4.0, the Falcor Router had a serious DOS vulnerability: requesting a large range of values could pin the CPU of the server running the Router.
Consider the following example in which the name of huge number of genrelists is requested from the Router:
// falcor-router v0.3.0 and below
var Router = require('falcor-router');
var router = new Router(
  [
    {
      route: "genrelists[{integers}].name",
      get: function(pathSet) {
        // code to return the names of each of the requested genre lists
      }
    }
  ]);

// pins CPU!
router.
  get(["genrelists", {from:0, to: Number.MAX_SAFE_INTEGER}, "name"]).
  subscribe({
    onNext: function(jsonGraphEnvelope) { console.log(JSON.stringify(jsonGraphEnvelope)); },
    onError: function(error) { console.error(error); },
    onCompleted: function() { console.log("done"); })

The maxPaths option
The DOS vulnerability has been mitigated in v0.4.0 by adding a maxPaths value to the options object accepted by the Router constructor. This value specifies the maximum number of paths which can be returned by a Falcor Router operation (either get, set, or call). The maxPaths value has a somewhat arbitrary default of 9000, which should provide some basic protection against a DOS.
// falcor-router v0.4.0 and above
var Router = require('falcor-router');
var MaxPathsExceeded = require('falcor-router/src/errors/MaxPathsExceeded');
var router = new Router(
  [
    {
      route: "genrelists[{integers}].name",
      get: function(pathSet) {
        // code to return the names of each of the requested genre lists
      }
    }
  ], { maxPaths: 500 });

// prints "You asked for too many paths."
router.
  get(["genrelists", {from:0, to: Number.MAX_SAFE_INTEGER}, "name"]).
  subscribe({
    onNext: function(jsonGraphEnvelope) { console.log(JSON.stringify(jsonGraphEnvelope)); },
    onError: function(error) {
      if (error instanceof MaxPathsExceeded) {
        console.error("You asked for too many paths.");
      }
    },
    onCompleted: function() { console.log("done"); })

Setting maximum path limits for individual routes
The maxPaths value allows you to set a global limit on the number of paths returned by a Router operation. However developers may want to set different maximums for different routes. For example you may want to allow no more than 10 titles and no more than 100 people to be retrieved in a single operation. To accomplish this, developers can test for the size of requested paths manually within a route handler and throw the MaxPathsExceeded error if too many paths are requested.
// falcor-router v0.4.0 and above
var Router = require('falcor-router');
var MaxPathsExceeded = require('falcor-router/src/errors/MaxPathsExceeded');
var router = new Router(
  [
    {
      route: "genrelists[{integers}].name",
      get: function(pathSet) {
        // limit the number of requested genrelists to 200
        if (pathSet[1].length > 200) {
          throw new MaxPathsExceededError("You exceeded the maximum number of genre lists that can be requested in a single operation.");
        }
        // code to return the names of each of the requested genre lists
      }
    }
  ], { maxPaths: 500 });

// prints "You exceeded the maximum number of genre lists that can be requested in a single operation."
router.
  get(["genrelists", {from:0, to: Number.MAX_SAFE_INTEGER}, "name"]).
  subscribe({
    onNext: function(jsonGraphEnvelope) { console.log(JSON.stringify(jsonGraphEnvelope)); },
    onError: function(error) {
      if (error instanceof MaxPathsExceeded) {
        console.error(error.message);
      }
    },
    onCompleted: function() { console.log("done"); })

FYI @sdesai

Reviewed. Looks good to me. Couple of comments inline, mainly just because the diffs are not as clear to read as they could be.

@jhusain I know this already landed, but why don't individual routes support the maxPaths : <integer> option?
I assume I'm missing some hidden complexity, but that seems like a nice way to reduce the amount of boilerplate required if you have lots of routes that want to set their own limits on the number of paths returned.

I think that could be some nice sugar. We'll probably add that in the future. Note that I want to preserve the ability to throw programmatically. One reason is that you might want to set different rate limits depending on the operation (set vs. get vs. call). For example, you might want to only allow setting 10 videos, but getting 100. Given the potential differences in cost for writes vs. reads this seems like it could be useful.

Ah, sure. Something like
// Simple case, applies to all operations
maxPaths : 10,

// Specify defaults per-operation
maxPaths : {
    get  : 100,
    set  : 10,
    call : 1
}

might be nice there too (apologies for the bikeshedding!)
I've got zero issues w/ the ability to throw programmatically, having it be part of the route definition seems like an easy win for reducing the complexity of route-handlers by taking a common-ish thing and making it not manual.

I like your proposal.

And what would happen when the router gets a request for more routes then some handler can handle? Would the router look for other matching routes (with lower priority), or will it fail that subtree (with empty atoms, or errors at leaves), or fail the entire request?

This error is fatal and causes the request to fail. There is no fallback. It is considered a bad request error (400 series).


oCIS 6 support

The following features of oCIS 6 need to be added in the chart (currently this should be place on next branch).

add collaboration service (https://github.com/owncloud/ocis-charts/pull/567 / https://github.com/owncloud/ocis-charts/issues/545)
https://github.com/owncloud/ocis-charts/issues/569
https://github.com/owncloud/ocis-charts/issues/570
OCM support (no issue yet)
https://github.com/owncloud/ocis-charts/pull/633 (6.1)

Backref note: OCSRE-220

@wkloucek Anything missing from the enumeration we did yesterday?

There is now a stable-5 branch where the oCIS 5 compatible chart will be continued to be maintained.
oCIS rolling (6.1) changes can go to main now.

We should also have a look into https://github.com/owncloud/ocis-charts/issues/643

I'm closing here because the only open item is https://github.com/owncloud/ocis-charts/issues/649 for which we already have the PR https://github.com/owncloud/ocis-charts/pull/701


Presentation Click-to-edit fails consistently on second use, for PortableText fields having only a single paragraph (block)

As in the title, the simplest form of this problem shows when you have a PT field with just one paragraph in it. On the web page panel, in the stuudio, you can see its blue outline, click, and the field will be selected properly in the editor panel.  But click the page to work on another field, click back on the page for the PT field, and the editor will fail to respond.
On this fail moment, the blue rectangle on the PT field appears to fade, actually a narrower border width I think, which possibly might help to localize the state that's failing. And if you scroll the editor side to the field manually, edits on it will still propagate immediately to the web result, so the data stream is still correct, though some aspect of the map may not be. But the clickability will not recover, so long as there is only the one paragraph in the Portable Text field.
If you use return to add another paragraph, then you can click that in the web page with its own blue border, and it will respond. After that you can click the initial paragraph, and it will have returned to live targeting action, even if you scroll the editor any distance of offset to test, to properly be editing that item. Any other paragraphs willl also be fine, and the field will appear fully click-editable. But once you click off to another field, and try to click back, now the second paragraph you brought life back with has become neutralized, though the first works again.
There are various maneuvers you can use, but this is the core of what happens. If there are two PT fields in the document, one of them single line/paragraph, as in the otherwise nicely performing college news page Astro Presentation was introduced to, the dance between the two can be particularly frustrating.
Overview
These errors reported hide as a 'small' problem, easily overlooked, as arrangements demonstrating it here  have seemed to test flawlessly over months, but as will be seen, they are actually a quite serious operational situation for Presentation, to the extent that the issue is indeed in Presentation, as seems quite indicated by details of symptoms.
Whether any or all of the three also-reported React warnings on setup contribute, isn't discernable -- some sense that they may not, but that they could. It appears that VisualEditing book-keeping gets mixed up per PortableText blocks, on Studio or page component sides, less likely by the channel between, but possible. Locating the source of the React warnings should indicate whether what they indicated can contribute to this later failure under normal active Presentation activity.
To Reproduce
Start up a Presentation edit of a document having at least the PT field and one other editable. Perform the sequences just described.
Expected behavior
Presentation should always follow a click on a blue-bordered page PT result with a jump in the editor to the paragraph clicked, as other than in this case, it always does.
Screenshots
I'm providing two movies. One of them shows the primary problem, plus a pair of persistent startup warnings React gives on the Presentation -enabled Studio, which I've traced back to happening with versions at least six weeks ago. The code it reports on seems clearly within the Studio.
The second shows a third React warning, which occurs as the web page starts up in the left pane of a Presentation Studio window, or in a tab of its own. Disabling the Presentation VisualEditing component in the Layout of the web page causes that warning also to cease, and the content is clearly from Presentation, referencing as it does Qbservers and so forth.
However, both of the React warnings occur on startup of the Presentation session -- there are no errors or warnings as the click failures occur.
As these are warnings from React's dev-time version, they disappear on production built use, but the faults with Presentation on PT fields that this issue reports, remain as expected fully occurring, whether or not they have relation to what's warned.
Video of the failure sequences in Presentation, startup-only Studio warnings shown towards end
https://github.com/sanity-io/visual-editing/assets/247945/264565a3-6c97-44bf-a2ef-123678e1ab8d
Video of the VisualEditing-related failure on startup of Presentation-enabled web page
https://github.com/sanity-io/visual-editing/assets/247945/eb800c47-e1ec-4fb0-bbf2-fcef3c0a4c02
Zip of the node_modules/.vite/deps chunk file and map, referenced by errors described and viewable towards end of video:
chunk-QWIXSBWO.js.zip
Which versions of Sanity are you using?
$ sanity versions
@sanity/cli (global)  3.36.4 (latest: 3.43.0)
@sanity/image-url      1.0.2 (up to date)
@sanity/react-loader  1.9.19 (up to date)
@sanity/ui            2.1.11 (up to date)
@sanity/vision        3.43.0 (up to date)
sanity                3.43.0 (up to date)
What operating system are you using?
Windows 11 latest up-to-date, carefully maintained, JetBrains WebStorm running node dev server, most observations in Firefox latest, no differences on Chrome latest
Which versions of Node.js / npm are you running?
$ npm -v && node -v
10.2.4
v20.11.1
Additional context
I brought back code with package versions from as early as six weeks prior, and found all in this report happening the same. So it is not a result of recent slight instabilities surrounding product release.
The same problems, unaffected by pnpm framework and more complex schemas, occur on the college system where they were first discovered. That is not the simpler system demostrating here.
It's probably worth mentioning that the Sanity Astro Presentation provision uses a normal ReactLoader operating in a non-presenting (unless debug set) component on the Astro page, sending its data map and streamed results to Presentation-active React elements behind Astro JSX on the page via nanostore atom.
One factor then is that response is probably faster than with a microcaching system as in NextJs implementations, and response speed can sometimes affect how less-than-sychronized code acts, though what happens here is consistent between fast srerverless (Vercel in college case) and local dev runs which are slower.
Security issue?
No issues in what's disclosed here

For Sanity team, I remembered this morning that I've already set up a private repo with the fully implemented  Astro Presentation application/Studio, which s exactly the one that you are seeing in the issue and its movies.
It even includes a sample dataset, so you can immediately run it on dev or your preference of deployment.
This was for other purposes at Sanity, so it's already entirely private for you. All I need is your github Id or an email address to invite and thus enable you at Sanity.

Just a note to explain the referenced post just above -- it's because this same problem identically has shown up in a completely differenrt Presentation implementation.
Thus I think you'll find it in all of them, and that this is the place to have lodged an issue so it 'gets well', which am very confident it will. Best fortune on it.

An update here, and hope that I may not have slowed down attention, by being too explicit above!

this bug continues to show always, on up-to-today current versions, and on several applications

it will absolutely prevent second or later click-to-edit from a Portable Text which has only one block/paragraph, after you've used click-to-edit once

I had to make an 'unusual' workaround for that, to succeed in a Sanity Proof of Concept for a college Marketing director, enclosing the only-ever-single but rich text paragraph's PT with a presentation-aware div.

the workaround suffices for the single-paragraph case, but can't for alternate paragraphs in a single portable text

again, it's a fault that can easily slip through testing, though a test could be devised, but it will certainly show to real content editors, as they won't be able to click-to-edit the previous paragraph they were on -- a fault enterable in several possible ways.

Fully appreciated you've had your hands full entirely, and hope that's alleviating, or soon :)

I've just checked this issue today -- on NextJS.
It is a hard fail, using the cms-sanity example from https://github.com/sanity/nextjs, either a mid-July commit on Next 14, or the. fresh today, on Next 15 and with 'Live'.
I am testing the simplest case, as mentioned in the original issue here. Create a post. Fill in an image and author (must be saved) so that you have basis, then make a  one-paragraph content (which is in Portable Text, the failing type).

Bringing the page up in Presentation, click the one-paragraph content, which will be properly outlined. You will properly go its entry form, and can edit, with live updates.
Now click the title, so you go to its form block. Success again.
But now find the content again, the one paragraph, and click it. You will stay on the Title form block, not go to the Content block. That is the error.
You can notice the blue outline is dimmed, also -- probably has lost a pixel in width.
You can never get out of this blocked state, unless you refresh the entire studio. There are some interesting states besides this, but not relevant to discuss.

So now it is clear this problem has nothing to do Astro, but is a basis visual-editing issue. It shows identically on older and current NextJS, whether from the automated Vercel install or from local pnpm run dev at localhost.
Hoping this helps get it solved, and I am including below a screenshot where you can see the simple one-paragraph content involved, and perhaps the slightly dimmer blue outline, along with the entry form block not entered.
This problem showed originally on a college website which had a single-paragraph Portable Text element. As mentioned above, there are other variants, as you lose actually connection to any paragraph, once having clicked and edited on it, until you click another paragraph. The one-paragraph case just gives no way out like this, though it's not a satisfactory workaround even in that case, for content persons.
Again, very much hoping to help.

_

Very glad to have heard this is in line for fixing now, thanks to team 👍
I've remembered one more case which should be tested, to assure the upgrade.
It uses two paragraphs instead of one, in a Portable Text. The paras caneach  be a single line, not more needed.

bring up the page in Presentation, as you would normally.
pick one of the lines, and click it. The editor in right pane jumps properly to the beginning of that line.
now click something else on the page for edit - the title, the image, etc.. This also selects in the edit pane properly.
but now click the line you clicked at first. It will not go to its editor point, and will have that slightly dimmed blue outline. This is the fault, same as with only one line.
however, now click the other paragraph. It edits properly in the right pane
and now, clicking the first line will also work.

This demonstrates that:

the fault always occurs, blanking further response of the first paragraph clicked in a Portable Text, even if there are other paragraphs. The fail is not restricted to single-paragraph PT elements.
it also demonstrates how it's been easy to miss this fault for so long -- you might think you'd just mis-clicked, if the locked paragraph later becomes responsive again.

Ok, that's it, and should give a satisfying experience, in assuring the fix is in.
Thanks to each,
Clive


New cart sidebar

I want to merge this change because... it moves cart sidebar to @next directory with implemented new style and fixed cart row styles.

Screenshots

Pull Request Checklist

[x] All visible strings are translated with proper context.
[x] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] The changes are tested.
[x] The code is documented (docstrings, project documentation).
[x] Changes are mentioned in the changelog.

Test Environment Config

API_URI=https://master.staging.saleor.rocks/graphql/

@orzechdev I cannot add juices to the cart, not sure if thats issue with PR or staging api?
https://refactor-cart-sidebar.storefront.saleor.rocks/product/carrot-juice/73/

There's an inconsistency which has to be addressed:
See names of products in the cart:

Same products, cart preview in checkout:

And order summary:

Task linked: SALEOR-636 CartSidebar component

passed to QA


Updates on Turkish translation

Would you mind closing this PR and update your fork before repushing it? There are too many conflicts so it's a pain to merge it.

Sure, thanks for the heads up.


ClothDemo runtime Debug assertion in Debug build and crash in Release build

I am getting a debug assertion(debug)/crash(release) build specifically on line 107 TriangleModel.cpp in ClothDemo in TriangleModel::initTriangleConstraint function.
My machine is Windows 8.1 64bit and compiler is VisualStudio2012.

Please try to rebuild the project for x64. Another guy reported a similar problem and this solved it.

yep x64 build solves the problem. I wonder why x86 build does not work?

I fixed the x86 problems. Now also the x86 version should work.

Yes it works fine now. Thanks for the quick resolve.


Sanity Studio v2

Hi, is it possible to use/redo this plugin for Sanity v2?

You're welcome to fork it, but there's no plans to back port

@Igoryoka did you end up forking?


FIX Api shortcode links have double encoded &

Fixes https://github.com/silverstripe/silverstripe-framework/issues/4002
The links that are [api:ClassName] are all going to master (ignoring version) - http://doc.silverstripe.org/en/developer_guides/model/data_model_and_orm/ is an example (see end of file).

@dhensby Cheers, the DocumentationParserTest::testAPIShortcodesParse test fails however?


[Cleanup] readInt8's offset defaults to 0

Made readInt8 offset default to 0, and modified casting to use stdlib's <u32>offset syntax.

@dcodeio looks like he's still learning how to use git :).
Think we can accept this instead?

@RedDwarfian you can close this yourself when you're ready.

All good. Would usually recommend adding these function all at once to reduce reviewing/merging overhead, but if you're ok with it then I'm as well. Great to see a new contributor in the first place :)

The goal was to help him get comfortable with git and writing assemblyscript functions. Lots of practice :)


Unable to supply kms_key to getSecret

Currently you are able to supply a kms_key when putting a key but are not able to supply the kms_key when getting the key with getSecret()
This means that you are able to add a key that you are not able to retrieve through this client.

@alex-luminal This is a pretty big gap if you want to use multiple KMS keys.
Could you look at the PR referenced?

You don't need to pass a key to getSecret(). The ciphertext blob that gets sent to KMS includes a reference to the CMK that's needed to do the decryption. You only need to decide what KMS CMK to use for encrypt and then decrypt will just work.


Auto-install driver, using SimWinGamePad, code cleanup, etc.

Basically:

User no longer has to deal with the ScpVBus dependency; user is prompted to install it upon startup, if necessary, then app startup completes successfully with immediately working controller input.
Utilizes the SimWinGamePad library I made via NuGet to help abstract and simplify that stuff. Reduces about 500 lines of code here while maintaining same functionality. It should also be easier to take updates for than the manually copied ScpBus stuff.
Clean shutdown: Unless forcibly quit worse than Alt+F4, the important ScpVBus disposal logic is now run while shutting down. This helps avoid the Windows device manager getting filled with rogue device information that eventually leads to ScpVBus failing to work anymore.
Changed default Guide key to OemTilde, since Escape exits the current version of the Xbox app's streaming mode, so it wasn't an effective way to bring up the Xbox Guide.
Cleanup: Lots of removed unused usings, some reduction of over-specified explicit namespaces, removed gotos, etc.

@CallumCarmicheal If you have time, take a look.

@fqlx Ill see what i can do but at the moment i got no access to the internet due to a broken install for the neighbours. I have been offline for awhile so i don't know when im getting back online.

Feedback addressed.  Thanks for jumping on this so quickly - love it when open source works like it's supposed to  :)

Sorry for the delay, as i previously stated had internet issues. That is all fixed now when i get home ill locally merge this test it and then go through and rename all the _ variables.


rename TodoAppJavaOnAzureApplication.java to TodoApplication.java

@yungez,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


PD-Table iconConfig

Ok the iconConfig for rows works but not as intended.
If the PdTable.iconConfig has values set to true, they cannot be overwritten by the row.iconConfig
also leaving the PdTable.iconConfig empty (set all values to false) but setting the Icons in row.iconConfig makes the icons overlay the row left to the icons (see Screenshot)

Furthermore we saw in one of the release notes that the ActionMenu is now supported. Could you update the docu to include this feature? How do we set the Items and what actions are called, preferably in the VueJS context

The action menu is supported since the Release 1.2.0.
We add in the next release (5.1.2) some new features that you also can add a menu label.
The documentation is here: https://parlamentsdienstecore.lambda-it.ch/?path=/story/interactions-table--table

The menu prop seems to be missing/not working with the current version. We tried a few different options:
:menus.prop="menu"
:menu.prop="menu"
:menu="menu"

Looking at the code it seems like @Prop() for menu is missing?

I know now what you mean. This bug will also be closed in 1.5.2

iconConfig in #47
table menu label will be closed in issue/pr #51

Could you elaborate? I can now set the menuLabel but not the menu options:
menu: [
        { text: 'Drucken', icon: 'print' },
        { text: 'Contact', icon: 'contact' },
],

with VueJS
<pd-table
  :menuLabel.prop="'Test'"
  :menu.prop="menu"
></pd-table>

Did you tried the following example?
<pd-menu>
    <pd-menu-item text="Print" @click="printIt()">
        <pd-icon size="2" name="print"></pd-icon>
    </pd-menu-item>
</pd-menu>

You can also see here: https://parlamentsdienstecore.lambda-it.ch/?path=/story/layout--menu
The buttons/links for the menu is not a property to configure.
We implemented them as childs - for the StencilJS-component as a slot.
Was this helpful? I think you tried to set it as property/html attribute.


Change style to improve whitespaces trimming inside inline markdown code (#23093)

Backport #23093 to 1.19.
Given mardown source
x ` a` y
x `a ` y
x ` a ` y

Render

Fixes #23080.

Please name it Change style to improve whitespaces trimming inside inline markdown code (#23093) to include the original PR number in the title

Ok, seems git has cut off the title while cherry-picking.

@silverwind does this need a backport to 1.18 too?


keyBone is broken

Hi, the keyBone seems to be broken, especially when configured as keyBone(multiple=True). It is stored correctly, but loading failed. This just makes it load and store correctly, but I'm unsure if it's necessary to implement singleValueSerialize, singleValueUnserialize or singleValueFromClient for it. What do you think?

Should have been resolved by #121


[Wallet] Adding time metrics to sync and tx events, also new events.

Description
Adding time elapsed to Sync Event and Tx Events.
Tested
Manually on Debug console.
Related issued
Fixes #3653
Backwards compatibility
Some event names where changed, this is not compatible with existing data on Analytics.

For loading geth and sync registering	only a few events 1 of 100 and also moving average, for tx still all events.

Nice work! Left a couple of comments. It seems like you are mostly tracking duration with your timers but FYI we have timestamps included by default and can calculate the duration between any two events by subtracting the timestamps.
Also worth nothing that we have a trackSubEvents method that allows easy grouping of related events and will track duration between subEvents for us.

I am measuring the time with regard to the init of a task, is not between two events. I am only submitting one event per task.

@timmoreton, @joigno and I have done some work on geth analytics instrumentation but it recently occurred to me that this is probably a subset of what you are working on!


Micro benchmarks for containerd.

This is the first in a series of micro benchmarks for containerd.
Performance measurement will use containerd objects and methods
that are not dependent on the grpc API and dont require the daemon
to the running. Test will require containerd-shim and runc.
The motivation is to understand the baseline performance at the lowest
containerd layer. A natural extension to this effort would be to write
macro benchmarks which would include API and daemon.
Note:

Currently measures only one workload (busybox sh) start times. Will
add other bundles and args soon.
Can use integration-test utils for bundle processing. However, json
marshal/unmarshal is currently timing out standard benchmark times. So
going with default spec for now.

Sample run:
BenchmarkBusyboxSh-4    / # / # / #        2     576013841 ns/op
ok      github.com/docker/containerd/runtime    1.800s
Signed-off-by: Anusha Ragunathan<EMAIL_ADDRESS>

@anusha-ragunathan can you also change the files name in your testuitls package to include _test.go at the end?  If you don't do this then the functions will be compiled into the main program and included in godoc and codecompletion for people.

the go test benchmarks are compiled as part of the main program, since it is a unit test that lives with the code. Plus, this is similar to how we have docker/docker/pkg/integration package compiled in as part of docker daemon. It's okay and infact good to have godoc for this.

Running the bench several times fails for me. I'll regenerate the container and try again.

@mlaventure : What's the error? I tried make dbench several times and it works for me.

@anusha-ragunathan
It's actually conflicting when run with the test.

also, the last version doesn't break anymore when I do make bench test 2 times in a row! :)

BenchmarkBusyboxSh-2	--- FAIL: BenchmarkBusyboxSh-2
	runtime_test.go:125: Could not change working directory: chdir /go/src/github.com/docker/containerd/output: no such file or directory

Not sure why it was considered as a successful run by jenkins though.

Updated the Makefile to fix absent directory for tests. Regarding jenkins, the test does fail with Fatalf, which is reported as FAIL. It could be a jenkins config issue?

It loos like a fail in a benchmark doesn't cause go to return a non 0 status :/

https://github.com/golang/go/issues/14307
The fix is only going to be in go1.7

LGTM!

LGTM


More than one (static) color possible for windowrule bordercolor?

Description
Don't know if this could be related to https://github.com/hyprwm/Hyprland/issues/1515
I like moving border colors. The specific part of my configuration is:
general {
[...]
col.active_border = rgba(33CCFFEE) rgba(00FF99EE) 45deg
col.inactive_border = rgba(44475AAA)
}
animations {
[...]
animation = borderangle, 1, 64, linear, loop
}
windowrulev2 = bordercolor rgb(BD93F9),xwayland:1

I can't find a way to set more than one color for active border with windowrulev2, (last line).
If this is possible, I would be happy for any hints.
It would be cool if I could set something like:
windowrulev2 = bordercolor rgba(33CCFFEE) rgba(BD93F9EE) 45deg,xwayland:1

to get color rotating borders with specific colors for specific windows over windowrules.
What do you think?

this is an exact dupe of the issue you linked.

this is an exact dupe of the issue you linked.

Thanks for clearing this up. Seems that my language skills aren't good enough to get this into the right context 🤷


Can you provided the code how to correct the image and show it?

When we  get the illuminant estimate using your experiment，How to correct it using the color we estimated and show the correct image? Can you share your code or method?

Sure, will do it later in an hour.

Thank you !

Oh, I just realized I have to wait for the training to finish before I can do this. They are unlikely to finish before I go to bed so please wait for one day. Thanks!

Ok！

Sorry for the delay. I updated the pretrained model and instructions about how to use it.
Please close this issue if it works for you, or let me know if there are other questions!
I have to go to bed now.. it's already 3 am :-)

Thank you!


KAFKA-4309: Allow "pluggable" properties in KafkaService in System Tests

LGTM, started a system tests run:
https://jenkins.confluent.io/job/system-test-kafka-branch-builder/585/
Ewen said:
"it's ok, normally I'd put that into the template directly in a way that doesn't need any additional params on the service constructor, but this works".

System tests passed, merging to trunk and 0.10.1.


aiohttp.web.run_app partially unknown

I have been using Pylance for a long time in VSCode. I almost never had problems in the static analysis method, but now I found one, I'm not sure if it was due to some configuration change or some other reason
I deleted all the extensions, leaving only the basics for Python, but it still didn't solve the problem
Here, Pylance does not recognize SSLContext and marks it as Unknown, and when I use the function, it shows me reportUnknownMemberType

OS: windows 11
Pylance: v2024.11.3
VSCode: 1.95.3 (user setup)
Python: 3.13.0
Aiohttp: 3.11.9

I presume that you've enabled strict type checking. By default, the reportUnknownMemberType is not enabled by default. Are you sure you want to enable this?  If you didn't intend to enable "strict" type checking mode, I recommend switching the typeCheckingMode back to "standard" or "basic".
If you think you have found a static analysis bug, please provide a minimal, self-contained code sample that demonstrates the issue. Debugging static analysis problems from partial code screenshots isn't really possible.

from aiohttp.web import Application, run_app  # <-- reportUnknownVariableType

app =  Application()

run_app(app)

I have no idea what to show you, since this is not a syntax problem, nor is it a problem with aiohttp since its type annotations are very good

Regarding strict mode, it's fine, I've been using it for a long time, I'm already very familiar with annotations, type checks, typing, _typesheed, and others.
I consider that this error that it shows is a false positive, because

The aiohttp annotations are correct
aiohttp.web.py290 | try:
291 |     from ssl import SSLContext
292 | except ImportError:  # pragma: no cover
293 |     SSLContext = Any  # type: ignore[misc,assignment]
...
463 | def run_app(
...
472 |     ssl_context: Optional[SSLContext] = None,
...
483 | ) -> None:

I don't use stubs distributions with this package

but I wouldn't know what causes it

The code in the aiohttp library is defining the symbol SSLContext in two conflicting ways. First, it's importing the symbol from another library (ssl). Second, it's assigning it the value Any. It appears that the authors are attempting to define a type alias in the except block, but type aliases cannot have more than one assignment and cannot be conditionally assigned. A static type checker cannot determine which of these two code paths are taken at runtime. The SSLContext is therefore treated as a variable. The Python typing spec indicates that variables cannot be used in type expressions. If pyright detects a variable within a type expression, it is treated as Unknown.
So pyright is working as intended here, and I don't consider this a false positive.
The authors of the aiohttp can fix this by making the definition of SSLContext unambiguous for static type checkers. For example, they can do this through the use of a TYPE_CHECKING conditional:
if TYPE_CHECKING:
    # Static behavior assumes ssl is present
    from ssl import SSLContext
else:
    # Dynamic behavior depends on whether ssl is present
    try:
        from ssl import SSLContext
    except ImportError:  # pragma: no cover
        SSLContext = Any  # type: ignore[misc,assignment]

Alternatively, they could replace the SSLContext = Any statement with pass and then use a quoted type annotation form for SSLContext so the annotation expression isn't evaluated at runtime.

If you put it that way, I think a pull is needed for aiohttp. Thank you so much


Low Ink tracking masks for NA and EU

Thanks for the pull request, but this PR includes a unnecessary commit cf1eeea. I'll cherry-pick 492cef0 later. Please leave this open.

#325


Content of PUT samples call

It is not quite clear how the samples call will add (PUT) all the metadata the accompanying GET call attempts to retrieve. Should they not be almost the same variables?

Resolved in V1.1 by another issue


Add docs building to the CI

The docs building to be added to the CI contains at least two stages: doc_build and doc_deploy, where the documentation is built and deployed. The respective jobs should be triggered if PRs targeting main or dev are merged. Therefore, the deployment should be done for both, the development (i.e. latest) version lying on dev and the stable (i.e. released) version lying on main. The actual setup for this could be addressed in another issue.

done in #10


TLS1.3 MVP:Add tls13 compat, not supported version , certificaterequest and HRR tests

Description

Add compatible tests

The test cases are generated by python scripts in #5075

Add not supported versions tests
Add certificate request test
Fix overflow error reported in #5075
Add HRR tests

Status
READY

@gilles-peskine-arm have you planned to review it or do you prefer for us to look at another second reviewer ?

I'm sorry, I don't have the bandwidth to review this. I'm not planning to do any TLS 1.3 code review in December. I can reply to specific queries or follow-up on comments I've made.

I'm sorry, I don't have the bandwidth to review this. I'm not planning to do any TLS 1.3 code review in December. I can reply to specific queries or follow-up on comments I've made.

That's ok no worries. Looking for another second reviewer.

Rebased and resolve conflict