feat: Add new "entity-based context recall" metric

This PR adds a new metric, "context_entity_recall", based on "entities" present in ground-truth and context, to evaluate retrieval mechanisms. I had discussed this metric in #482.
Description:
In use cases where entities like names, places, dates etc matter, it is important that our retrieval mechanism fetches the right context, which has to be fed to the model. An example is tourism industry, names of cities, tourist places, special-dishes, etc matter quite a lot. Other examples could be health or finance domains.
Formulation of  context_entity_recall:
I propose this new metric to be the ratio of number of entities present in ground_truths and contexts both to the number of entities present in ground_truths alone. This is like a measure of coverage of ground_truth entities by the context. I have used a simple formula -  $|CE \cap GE| / |GE|$ - where $CE$ and $GE$ are set of entities in contexts and ground_truths respectively.
Example usage in RAGAS:
from datasets import load_dataset
from ragas import evaluate
from ragas.metrics import context_entity_recall

amnesty_qa = load_dataset("explodinggradients/amnesty_qa")

amnesty_result = evaluate(
    amnesty_qa["eval"].select(range(2)),
    metrics=[
        context_entity_recall
    ],
    llm = LangchainLLMWrapper(llm) # I used llm separately because I am using OpenRouter
)
amnesty_result.to_pandas()

Below is the output:

LLM setting used to generate above example:
import os
from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(
    model = "google/gemma-7b-it:free",
    openai_api_key=os.getenv("OPENROUTER_API_KEY"),
    openai_api_base="https://openrouter.ai/api/v1"
)

Discussions and further thoughts:
As far as I am aware, no other such metric has been used, so this needs to be tested for usefulness and impact. Also, there can be versions of this. Initially I have considered evluating retrieval, so I used ground_truths and contexts.
If we need to evaluate our LLM on how it handles entities in context, we can use this similar metric on answer and contexts.
Or in general, on any pair of the inputs.
I am open to and would encourage discussions, in the community and with mentors, regarding usefulness and additions to this metric. Looking forward for feebback/review.
@shahules786 @jjmachan

Hey bro @sky-2002 , this is totally cool. I'm sure that the community will love it. As you can see I have made some changes to your code. Some feedback that you can keep in mind for your next PR

Always ensure you're using the latest version of ragas, some of the code was written as per older version
Number of calls to llm vs accuracy and reproducibility tradeoff: as of you can see I have simplified the task and made 2 calls instead of one, this is to ensure higher quality and reproducibility of metrics.

By the way it would be great if you can add docs for this, for reference like here. This would help community members educate about your metrics and drive more usage 🚀


Dangerous MutatingWebhook for all "pod" resources that cannot be disabled in Helm values

I'm talking mainly about this part of Helm templates:
https://github.com/openkruise/charts/blob/d1c325e49cedb38ea4793ad87d78dd4367b2eeaa/versions/kruise/1.5.2/templates/webhookconfiguration.yaml#L6-L31
It creates a webhook for any "CREATE" operation of the "pod" resource - this basically affects everything in a Kubernetes cluster. There can be various reasons for OpenKruise controller to be unavailable, thus, it might be very useful to have an option to make the webhook isolated only to resources in "*.kruise.io" API group.
Here's an easy example when I scaled "manager" to 0 replicas and trying to create a dummy pod:
$ kubectl run busybox --image=busybox
Error from server (InternalError): Internal error occurred: failed calling webhook "mpod.kb.io": failed to call webhook: Post "https://kruise-webhook-service.kruise-system.svc:443/mutate-pod?timeout=10s": no endpoints available for service "kruise-webhook-service"

many openkruise features rely on the pod creation webhook ,such as sidecarset and workloadspread, if you does not rely on such features, you can disable the webhook by turning off the PodWebhook feature gates in the helm chart .

@furykerry yes, I can set featureGates: PodWebhook=false in the Helm chart but, unfortunately, it applies only to the Kruise controller application itself (through env vars) and it doesn't directly apply to the MutatingWebhookConfiguration and ValidatingWebhookConfiguration Kubernetes resources.
So I made a PR to fix that (and some other issues): https://github.com/openkruise/charts/pull/91

@vpedosyuk thanks for your contribution, most change of your patch are included in the 1.6.0 chart along with other feature release:
https://github.com/openkruise/charts/pull/95/files#diff-0c128c764f13a0883f1f188d84b75bdd0e4112d272d4e40efd84a54f5af56a43
The one change is missing however, that is the one to change failpolicy of pod-webhook, we think the webhook function is crucial for the feature that rely on webhook e.g. sidecarset, simply skipping the webhook can make kruise working incorrect which may introduce unexpected problem to the cluster. A more complete solution is required which may involve mark the pod that is actually managed by kruise with label, so we can leave the issue open for future implementation.


Add tutorials "One gene across biological resources and formats" and "One protein along the UniProt page"

This pull request will add to the Foundations of Data Science > Other topic the two tutorials:

One gene across biological resources and formats and
One protein along the UniProt page

developed for the BioNT workshop, both labeled as drafts and including the introductory slides.

@Lisanna is it ready?

No, sorry. I was waiting to test it on Friday to send you a reviewed version, as my understanding was that you are ok with running the lesson on Friday with a reference to my fork. If instead you would prefer to have it hosted in the main repository, I can send you an updated version now.

All right, the config fits your settings now. I believe this is ready to be merged.
Thank you for your help!

Thanks @Lisanna, great work! :tada:


Cherry-pick #24391 to release7x

Picks #24391 to the release7x branch.

Issue is https://github.com/gradle/gradle-private/issues/3772

No milestone for this PR. Please set a milestone and retry.

I've triggered a build for you.

Pre-tested commit build failed.

I've triggered a build for you.

Pre-tested commit build failed.

I've triggered a build for you.


Provide a toString() implementation that outputs response body as a human readable string rather than a byte array.

My 2 cents:  I think we should consider truncating the body to some limited # of characters, rather than dumping the entire body out in the toString.  Otherwise, :+1:

I'm open to that -- what seems like a reasonable limit to you?

A couple hundred?  No idea what's a good number.  I've just seen similar logging flood the logs with many K of html error pages, which isn't so useful.  :)

Agreed, and I would even strip out \n and \r, and add the full length and maybe a hash to see whether subsequent items are changing.

Hey @kaiwaldron -- if you limit the body output we can get this merged.
Thanks!


[Enhancement] [API] expose upload-limits on settings endpoint

https://github.com/go-gitea/gitea/blob/master/custom/conf/app.example.ini#L742-L752
(Issue/Pull/Releaes - Attachemnts) ...

and maybe expose allowed mime-types too ...


Idea: Resize features

Hello, could you add a "resize" features? I just tried this package, and i can't see some of my component's name because it a bit longer. Would be cool if you add some responsive sizing so the box's width will fit with the component's name length.

Anyway, nice package! thank you for creating this

@dedotikea
Thanks for the issue.
I will consider it.


Add nuget package restore note to apis.rst

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Thanks. But I don't think this belongs here. This applies to any nuget package you ever gonna add.


Clicking quickly when the first message on the phone is a POV crashes the game when using renpy 8.2.0

Minimal script code to reproduce:
e "A dialogue"
phone discussion "some_chat":
    "e" "A text"

Simply spam click after "A dialogue" and it'll crash with this exception
This did not happen in ren'py 8.1.3, from my tests this is caused by the viewport auto-scroller since removing it fixes it.

this isn't related to 8.2. i'm having this issue on 8.1.0, and i've had it even before, when i started deving this thing on 7.4.something

One of our programmers manged to track down the issue down to this commit it seems that by predicting the screen it tries to access the custom viewport before it actually exists causing a NoneType exception to ocurr.

im assuming not predicting the screen fixes it. i don't have a way of properly reproduce this bug, so if your coder can confirm it'd be helpful

Yes, commenting out the function and the prediction fixes it. This also explains why the issue only happened after we updated the engine since we also updated the library

gotcha


Public review

@VanshKing30
Completed the task.
It is necessary for the user to know the general review of public. For this it is necessary to have a common public review section for each restaurant where we can complement and maybe based on ratings, we can search a restaurant/ canteen as well based on the ratings via search box later.

@VanshKing30 Sir this was level3 issue and you have made it level 2. Please review it make the changes.

Sir just wanted to ask that points were added in the leaderboard earlier according to level 2 will that be also updated.


Updating go-restful to include fix for emicklei/go-restful#185

Fixes https://github.com/GoogleCloudPlatform/kubernetes/issues/5425
First commit generated by running:
godep restore
go get -u github.com/emicklei/go-restful
godep update github.com/emicklei/go-restful
Second commit generated by running:
./hack/update-swagger-spec

LGTM


New security groups are created even though Networking->SecurityGroups of HeadNode and all queues and EFS mount target has the same security group

Hello,
I want' to avoid creation of any new security groups. The ones created by Parallel Cluster v3.5.0 I currently use are like all allowed within them and thus duplicating my existing security group I want to use.
My config is:
Region: <my-region>
Image:
  CustomAmi: <my-ami-id>
  Os: <my-ami-os>
SharedStorage:
  - MountDir: <my-mount-dir-path>
    Name: my-efs-mount
    StorageType: Efs
    EfsSettings:
      FileSystemId: <my-efs-file-system-id>
HeadNode:
  Imds:
    Secured: false
  InstanceType: <my-instance-type>
  Networking:
    SubnetId: <my-subnet-id>
    SecurityGroups:
      - <my-security-group-id>
  Ssh:
    KeyName: <my-key>
  LocalStorage:
    RootVolume:
      Size: 50
Scheduling:
  Scheduler: slurm
  SlurmSettings:
    ScaledownIdletime: 5
  SlurmQueues:
    - Name: queue1
      ComputeResources:
        - Name: <compute-resource-name>
          InstanceType: <my-instance-type>
      Networking:
        SubnetIds:
          - <my-subnet-id>
        SecurityGroups:
          - <my-security-group-id>
      ComputeSettings:
        LocalStorage:
          RootVolume:
            Size: 50

My EFS file system mount target has the same subnet and security group as the HeadNode and queue.
(They are all in the same VPC, region, availability zone.)
NOTE: The problem doesn't happen with an FSx Lustre file system created beforehand.
Is there any explicit flag/option to make pcluster CLI avoid creation of any new SGs?
I expect that creation is to be avoided when I set my existing SG to Head Node and all the queues as per documentation.
But by some unclear to me reason this doesn't happen as expected.

Hi mopk,
If you provide security groups to SecurityGroups under HeadNode and all SlurmQueues, and use shared storage created beforehand, ParallelCluster does not create any security groups.
If you ask ParallelCluster to create some FSx or EFS, ParallelCluster has to create some security groups and there is no CLI flag/option to disable it.
Can you tell us why you would avoid creating any security groups? Is it because of security reasons?
Thank you,
Hanwen

Hi mopk,
We have identified the issue: security groups are created by ParallelCluster when external EFS are provided. The security groups are not attached anywhere. This is a problem when users don't want to create any security groups because of their account security policies.
Bug location: https://github.com/aws/aws-parallelcluster/blob/develop/cli/src/pcluster/templates/cluster_stack.py#L811
We will discuss the issue within our team next week.
Thank you for helping us identifying the issue!
Hanwen

https://github.com/aws/aws-parallelcluster/pull/5246 has been merged. This bug will be fixed in the next release.
Thank you for reporting this bug!

Issue fixed on 3.6.0 release: https://github.com/aws/aws-parallelcluster/releases/tag/v3.6.0


Defining a collection of applications

This is an extension to The many meanings of an AsyncAPI file that tries to answer the question, should we have a way to define a larger system i.e. the need to specify applications in the context of the system.
It is a combination of the following conversations #601, comments in 618,  comments in #594 and #628.
This issue tries to capture the possibility of introducing such a feature, it should not necessarily be seen as a complete feature request. Even though the issue is "small", it is a complex discussion and it can be solved in many ways. I am gonna try to break it down into more digestible chunks with examples.
Just to make sure we stay on track in the discussion, these are the main scope of the discussion. Beyond that, feel free to start a new issue or discussion focusing on a single part of the problem if you want to solve it.
Scope of discussion

Defining collection of applications, from now on referred to as "System"

Outside the scope of discussion

Relationships between applications
Message flow and patterns

System context
There are a couple of ways I see we can address this, and it all depends on what we see as most fitting for AsyncAPI. I will be building upon Frans syntax from the proposal to solve the publish/subscribe confusion as this restructure is necessary to further the discussion.
I will be using the social media example as a baseline and show how the suggested changes will affect such an example.
Adapting the syntax from #618 to the examples, will make this our starting point:

Common definitions (common.asyncapi.yaml)

Even though the current social media example have these definitions completely separated, having everything gathered in one file makes more sense.
asyncapi: 3.0.0

info:
  title: Organization-wide stuff
  version: 0.1.0

components:
  channels:
    commentLiked:
      address: comment/liked
      description: Notify all the services that a comment has been liked.
      servers: ['mosquitto']
      message:
        $ref: '#/components/messages/commentLiked'
    likeComment:
      address: like/comment
      description: When a comment like is received from the frontend.
      servers: ['websiteWebSocketServer']
      message:
        $ref: '#/components/messages/likeComment'
    commentLikesCountChanged:
      address: comment/{commentId}/changed
      description: When an event from the broker arrives telling us to update the comment likes count on the frontend.
      parameters:
        commentId:
          schema:
            $ref: '../common/schemas.yaml#/commentId'
      servers: ['mosquitto']
      message:
        $ref: '#/components/messages/commentChanged'
    updateCommentLikes:
      address: update/comment/likes
      description: Update comment likes count in the frontend.
      servers: ['websiteWebSocketServer']
      message:
        $ref: '#/components/messages/updateCommentLikes'
  messages:
    commentLiked:
      payload:
        $ref: '#/components/schemas/commentLikedPayload'
    likeComment:
      payload:
        $ref: '#/components/schemas/likeCommentPayload'
    commentChanged:
      payload:
        $ref: '#/components/schemas/commentChangedPayload'
    updateCommentLikes:
      payload:
        $ref: '#/components/schemas/updateCommentLikesPayload'
  schemas:
    commentLikedPayload:
      type: object
      title: commentLikedPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was liked
    likeCommentPayload:
      type: object
      title: likeCommentPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that should be liked
    commentChangedPayload:
      type: object
      title: commentChangedPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    updateCommentLikesPayload:
      type: object
      title: updateCommentLikesPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    commentId:
      type: string

The backend - WebSocket server (backend.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Website Backend
  version: 1.0.0

servers:
  websiteWebSocketServer:
    url: ws://mycompany.com/ws
    protocol: ws
    kind: local
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: websocketServer

channels:
  commentLiked:
    $ref: 'common.asyncapi.yaml#/components/channels/commentLiked'
  likeComment:
    $ref: 'common.asyncapi.yaml#/components/channels/likeComment'
  commentLikesCountChanged:
    $ref: 'common.asyncapi.yaml#/components/channels/commentLikesCountChanged'
  updateCommentLikes:
    $ref: 'common.asyncapi.yaml#/components/channels/updateCommentLikes'

operations:
  onCommentLike:
    action: receive
    channel: likeComment
    description: When a comment like is received from the frontend.
  onCommentLikesCountChange:
    action: receive
    channel: commentLikesCountChanged
    description: When an event from the broker arrives telling us to update the comment likes count on the frontend.
  sendCommentLikesUpdate:
    action: send
    channel: updateCommentLikes
    description: Update comment likes count in the frontend.
  sendCommentLiked:
    action: send
    channel: commentLiked
    description: Notify all the services that a comment has been liked.

The frontend - WebSocket client (frontend.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Website WebSocket Client
  version: 1.0.0

servers:
  websiteWebSocketServer:
    url: ws://mycompany.com/ws
    protocol: ws
    kind: remote

channels:
  likeComment:
    $ref: 'common.asyncapi.yaml#/components/channels/likeComment'
  updateCommentLikes:
    $ref: 'common.asyncapi.yaml#/components/channels/updateCommentLikes'

operations:
  sendCommentLike:
    action: send
    channel: likeComment
    description: Notify the backend that a comment has been liked.
  onCommentLikesUpdate:
    action: receive
    channel: updateCommentLikes
    description: Update the UI when the comment likes count is updated.

Notification service (notifications-service.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Notifications Service
  version: 1.0.0

servers:
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: notification-service

channels:
  commentLiked:
    $ref: 'common.asyncapi.yaml#/components/channels/commentLiked'

operations:
  onCommentLiked:
    action: receive
    channel: commentLiked
    description: When a "comment has been liked" message is received, it sends an SMS or push notification to the author.

Comments service (comments-service.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Comments Service
  version: 1.0.0
  description: This service is in charge of processing all the events related to comments.

servers:
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: comment-service

channels:
  commentLiked:
    $ref: 'common.asyncapi.yaml#/components/channels/commentLiked'
  commentLikesCountChanged:
    $ref: 'common.asyncapi.yaml#/components/channels/updateCommentLikes'

operations:
  onCommentLiked:
    action: receive
    channel: commentLiked
    description: Updates the likes count in the database and sends the new count to the broker.
  sendCommentLikesUpdate:
    action: send
    channel: commentLikesCountChanged
    description: Sends the new count to the broker after it has been updated in the database.

Public API (public.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Public API
  version: 1.0.0
  description: Public API for others to interact with the system

servers:
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: public-api

channels:
  commentLiked:
    $ref: 'common.asyncapi.yaml#/components/channels/commentLiked'

operations:
  onCommentLiked:
    action: receive
    channel: commentLiked
    description: Get updates for when a comment is liked.

Through no change
Since a system is nothing but a collection of applications, how you group those applications together does not necessarily have to be defined with AsyncAPI.
A very simple example could be a physical directory where all the related AsyncAPI applications are located within the same directory. A complex solution could be something like a developed platform that groups them in some way such as in a database.
Q/A
I am gonna try to answer the questions asked in #628 as to how the changes affect the answers:

Can an application belong to multiple systems?

As there are no restrictions on how you define a collection of applications, it is possible.

How many separate applications are described?

Depends on how you interpret what a collection of applications is.

Which channels are used by which applications?

Through the reusability, we can make a basic search for it.

What messages are read/sent onto the channels by each application?

Depending on the structure, you can look at the applications themselves.

Where are those channels located?

By default, channels are located in all servers unless specifically defined as only related to one server.

If I want to send/receive a message from a specific application, which protocol/server/channel do I connect to?

As each application "know" which operations others can perform, and over what channels. Indirectly we know which servers those operations are performed on.

Can I define servers that all applications must connect to?

No, however, if you can use references for servers you "can".

Through a new simple keyword: Stay with application-centric
The same way we allow you to define a dictionary, we can allow the definition of a system. Say we introduce a simple applications keyword on the root level of the specification, based on your example @nictownsend.
The spec will keep its application-centric approach, where it does not know anything about a system context.
The new structure of the spec will look like this:
asyncapi: 3.0.0
info: ...
##### System-specific ######
applications: ...

##### Application-specific #####
servers: ...
channels: ...
operations: ...

Building upon the existing types mentioned https://github.com/asyncapi/spec/issues/628#issuecomment-968050476, we extend it with a system type. With the new keyword, we add some system types similar to the application and dictionary types.
The system as a non-dictionary
One of the ways to define the system, is by only including applications. The other files still use the common.asyncapi.yaml file.
This means we introduce a new system file:

The system (system.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: The small social media system definitions
  description: The small social media system
  version: 1.0.0

applications:
  - $ref: './backend.asyncapi.yaml'
  - $ref: './frontend.asyncapi.yaml'
  - $ref: './notifications-service.asyncapi.yaml'
  - $ref: './comments-service.asyncapi.yaml'
  - $ref: './public.asyncapi.yaml'

System as a dictionary
You can also use the system definition like a dictionary, meaning we replace the common.asyncapi.yaml file with system.asyncapi.yaml.
Each individual application would then reference the system file instead of the common.asyncapi.yaml.

The system (system.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: The small social media system definitions
  description: The small social media system
  version: 1.0.0

applications:
  - $ref: './backend.asyncapi.yaml'
  - $ref: './frontend.asyncapi.yaml'
  - $ref: './notifications-service.asyncapi.yaml'
  - $ref: './comments-service.asyncapi.yaml'
  - $ref: './public.asyncapi.yaml'

components:
  channels:
    commentLiked:
      address: comment/liked
      description: Notify all the services that a comment has been liked.
      servers: ['mosquitto']
      message:
        $ref: '#/components/messages/commentLiked'
    likeComment:
      address: like/comment
      description: When a comment like is received from the frontend.
      servers: ['websiteWebSocketServer']
      message:
        $ref: '#/components/messages/likeComment'
    commentLikesCountChanged:
      address: comment/{commentId}/changed
      description: When an event from the broker arrives telling us to update the comment likes count on the frontend.
      parameters:
        commentId:
          schema:
            $ref: '../common/schemas.yaml#/commentId'
      servers: ['mosquitto']
      message:
        $ref: '#/components/messages/commentChanged'
    updateCommentLikes:
      address: update/comment/likes
      description: Update comment likes count in the frontend.
      servers: ['websiteWebSocketServer']
      message:
        $ref: '#/components/messages/updateCommentLikes'
  messages:
    commentLiked:
      payload:
        $ref: '#/components/schemas/commentLikedPayload'
    likeComment:
      payload:
        $ref: '#/components/schemas/likeCommentPayload'
    commentChanged:
      payload:
        $ref: '#/components/schemas/commentChangedPayload'
    updateCommentLikes:
      payload:
        $ref: '#/components/schemas/updateCommentLikesPayload'
  schemas:
    commentLikedPayload:
      type: object
      title: commentLikedPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was liked
    likeCommentPayload:
      type: object
      title: likeCommentPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that should be liked
    commentChangedPayload:
      type: object
      title: commentChangedPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    updateCommentLikesPayload:
      type: object
      title: updateCommentLikesPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    commentId:
      type: string

The backend - WebSocket server (backend.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Website Backend
  version: 1.0.0

servers:
  websiteWebSocketServer:
    url: ws://mycompany.com/ws
    protocol: ws
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    bindings:
      mqtt:
        clientId: websocketServer
channels:
  commentLiked:
    $ref: 'system.asyncapi.yaml#/components/channels/commentLiked'
  likeComment:
    $ref: 'system.asyncapi.yaml#/components/channels/likeComment'
  commentLikesCountChanged:
    $ref: 'system.asyncapi.yaml#/components/channels/commentLikesCountChanged'
  updateCommentLikes:
    $ref: 'system.asyncapi.yaml#/components/channels/updateCommentLikes'

operations:
  onCommentLike:
    action: receive
    channel: likeComment
    description: When a comment like is received from the frontend.
  onCommentLikesCountChange:
    action: receive
    channel: commentLikesCountChanged
    description: When an event from the broker arrives telling us to update the comment likes count on the frontend.
  sendCommentLikesUpdate:
    action: send
    channel: updateCommentLikes
    description: Update comment likes count in the frontend.
  sendCommentLiked:
    action: send
    channel: commentLiked
    description: Notify all the services that a comment has been liked.

The system as a mix
This type is just a mix between the two approaches, where the system for some channels/messages, etc, is used as a dictionary, other times applications define it themselves.
Q/A

Can an application belong to multiple systems?

As there are no restrictions on how you define a collection of applications, so it can be possible.

How many separate applications are described?

This can be looked up directly in the system definition.

Which channels are used by which applications?

You would have to go through each application to see what channels they use.

What messages are read/sent onto the channels by each application?

You would still have to walk through each application to find this information. From a design point, through references you could have this information present (if used as a dictionary)  in the system file.

Where are those channels located?

By default, channels are located in all servers unless specifically defined as only related to one server. Nothing changes here. You would still need to look up each application how they define it.

If I want to send/receive a message from a specific application, which protocol/server/channel do I connect to?

As each application hold the information about which operations is performed, and over what channels. Nothing changes here.

Can I define servers that all applications must connect to?

No.

Through a change of perspective: Moving from application-centric to system-centric
To move from an application-centric to system-centric, would require a breaking change in the specification. This would mean that we would not be able to describe a standalone application.
The new structure of the spec will look like this:
asyncapi: 3.0.0
info: ...

##### System-specific ######
applications: ...
channels: ...

##### Application-specific #####
servers: ...
operations: ...

I will center the system around each "server". Meaning I will have two system definitions, one for the MQTT broker and its applications and one centered around the WebSocket server. There are other ways you can structure this, but I will focus on these two.
This would change all our applications to be defined like so:

System definitions for MQTT (system.mqtt.asyncapi.yaml)

Notice the MQTT system has the backend.asyncapi.yaml application referenced as it is part of both the MQTT and WebSocket system.
asyncapi: 3.0.0

info:
  title: The small social media system definitions
  description: The small social media system
  version: 1.0.0

applications:
  - $ref: './backend.asyncapi.yaml'
  - $ref: './notifications-service.asyncapi.yaml'
  - $ref: './comments-service.asyncapi.yaml'
  - $ref: './public.asyncapi.yaml'

channels:
  commentLiked:
    address: comment/liked
    description: Notify all the services that a comment has been liked.
    servers: ['mosquitto']
    message:
      $ref: '#/components/messages/commentLiked'
  commentLikesCountChanged:
    address: comment/{commentId}/changed
    description: When an event from the broker arrives telling us to update the comment likes count on the frontend.
    parameters:
      commentId:
        schema:
          $ref: '../common/schemas.yaml#/commentId'
    servers: ['mosquitto']
    message:
      $ref: '#/components/messages/commentChanged'

components:
  messages:
    commentLiked:
      payload:
        $ref: '#/components/schemas/commentLikedPayload'
    likeComment:
      payload:
        $ref: '#/components/schemas/likeCommentPayload'
    commentChanged:
      payload:
        $ref: '#/components/schemas/commentChangedPayload'
    updateCommentLikes:
      payload:
        $ref: '#/components/schemas/updateCommentLikesPayload'
  schemas:
    commentLikedPayload:
      type: object
      title: commentLikedPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was liked
    likeCommentPayload:
      type: object
      title: likeCommentPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that should be liked
    commentChangedPayload:
      type: object
      title: commentChangedPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    updateCommentLikesPayload:
      type: object
      title: updateCommentLikesPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    commentId:
      type: string

The backend - WebSocket server (websocket.system.asyncapi.yaml)

Notice that the backend server is now both seen as an application and a system. This system comprises of backend server itself and the frontend application.
The backend server is also seen as an application to the MQTT broker - as part of the mqtt.system.asyncapi.yaml.
asyncapi: 3.0.0

info:
  title: Website backend WebSocket server
  version: 1.0.0

servers:
  websiteWebSocketServer:
    url: ws://mycompany.com/ws
    protocol: ws
    kind: local
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: backend-service

applications:
  - $ref: './frontend.asyncapi.yaml'

channels:
  likeComment:
    address: like/comment
    description: When a comment like is received from the frontend.
    servers: ['websiteWebSocketServer']
    message:
      $ref: '#/components/messages/likeComment'
  updateCommentLikes:
    address: update/comment/likes
    description: Update comment likes count in the frontend.
    servers: ['websiteWebSocketServer']
    message:
      $ref: '#/components/messages/updateCommentLikes'

operations:
  onCommentLike:
    action: receive
    channel: likeComment
    description: When a comment like is received from the frontend.
  onCommentLikesCountChange:
    action: receive
    channel: commentLikesCountChanged
    description: When an event from the broker arrives telling us to update the comment likes count on the frontend.
  sendCommentLikesUpdate:
    action: send
    channel: updateCommentLikes
    description: Update comment likes count in the frontend.
  sendCommentLiked:
    action: send
    channel: commentLiked
    description: Notify all the services that a comment has been liked.

components:
  messages:
    likeComment:
      payload:
        $ref: '#/components/schemas/likeCommentPayload'
    updateCommentLikes:
      payload:
        $ref: '#/components/schemas/updateCommentLikesPayload'
  schemas:
    likeCommentPayload:
      type: object
      title: likeCommentPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that should be liked
    updateCommentLikesPayload:
      type: object
      title: updateCommentLikesPayload
      additionalProperties: false
      properties:
        commentId:
          allOf:
            - $ref: '#/commentId'
            - description: Id of the comment that was changed, such as when someone liked it.
    commentId:
      type: string

The frontend - WebSocket client (frontend.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Website WebSocket Client
  version: 1.0.0

servers:
  websiteWebSocketServer:
    url: ws://mycompany.com/ws
    protocol: ws
    kind: remote

operations:
  sendCommentLike:
    action: send
    channel: likeComment
    description: Notify the backend that a comment has been liked.
  onCommentLikesUpdate:
    action: receive
    channel: updateCommentLikes
    description: Update the UI when the comment likes count is updated.

Notification service (notifications-service.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Notifications Service
  version: 1.0.0

servers:
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: notification-service

operations:
  onCommentLiked:
    action: receive
    channel: commentLiked
    description: When a "comment has been liked" message is received, it sends an SMS or push notification to the author.

Comments service (comments-service.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Comments Service
  version: 1.0.0
  description: This service is in charge of processing all the events related to comments.

servers:
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: comment-service

operations:
  onCommentLiked:
    action: receive
    channel: commentLiked
    description: Updates the likes count in the database and sends the new count to the broker.
  sendCommentLikesUpdate:
    action: send
    channel: commentLikesCountChanged
    description: Sends the new count to the broker after it has been updated in the database.

Public API (public.asyncapi.yaml)

asyncapi: 3.0.0

info:
  title: Public API
  version: 1.0.0
  description: Public API for others to interact with the system

servers:
  mosquitto:
    url: mqtt://test.mosquitto.org
    protocol: mqtt
    kind: remote
    bindings:
      mqtt:
        clientId: public-api

operations:
  onCommentLiked:
    action: receive
    channel: commentLiked
    description: Get updates for when a comment is liked.

Q/A

Can an application belong to multiple systems?

Yes, as we can see with the backend application, it is a system in itself for WS, and part of the MQTT system.
It does however require that channel ID's never overlap.

How many separate applications are described?

This can be looked up directly in the system definition.

Which channels are used by which applications?

You would still have to go through each application to see which operations they perform and over what channels.

What messages are read/sent onto the channels by each application?

Since the system defines the channels and their message definitions this can be looked up there. No need to access the application definitions, they only define operations.

Where are those channels located?

By default, channels are located in all servers unless specifically defined as only related to one server. Nothing changes here.

If I want to send/receive a message from a specific application, which protocol/server/channel do I connect to?

As each application hold the information about which operations is performed, and over what channels. Nothing changes here.

Can I define servers that all applications must connect to?

No, because in many cases depending on the application, they need to define specific information, such as for MQTT, `clientId`.

My conclusion
Even though something like a system-centric approach could be an interesting concept, my answer would be we should stay with an application-centric approach. It would then be up to the individuals, how they group multiple applications together. We just provide the building blocks for you to define applications.
Yes, it will mean you need to duplicate many of the definitions, but through $ref we can limit it, at least enough to where I don't see it as a massive disadvantage.
What do you think?

@jonaslagoni Well thought out and I like all of the examples! I want to bring up the discovery usecase. The approach we took for discovery is two phased: 1. grab all of the data you can from the running system (system-centric) 2. use this data to define the application boundaries of your eda (application-centric).
The output of phase 1 is AsyncAPI (using the discovery tool). In this case the "discoverer" doesn't necessarily know the application boundaries, but is just accumulating data to feed into phase 2 where these boundaries are defined. Phase 1 discovery is a transitory use of the spec but I think worthy of consideration. I guess one could argue that AsyncAPI may not be the right output format of phase 1, but no one wants yet another specification.

@gregmeldrum wouldn't the discovery use case be the same as the dictionary use case defined above? You just throw message definitions on an AsyncAPI file but don't know who's publishing or subscribing, i.e., you don't specify operations.

@jonaslagoni , I apologize for this long overdue response to this.  It is a very good analysis.

be up to the individuals, how they group multiple applications together

This works in the context of files stored in github--you can group the files however you want, and the application==file scoping makes sense.  But for non-file implementations, such as registries, things get trickier.  I don't see a way to address the following use cases if there is a registry with a REST API:

Represent all the microservice applications within a system
Respond which applications are using a channel.
etc.

Looking at @boyney123 , @dalelane and @solaceproducts work, I think it would be a mistake to take only a file-exclusive approach. If we don't have a spec object to represent application interactions with registries gets very clunky (zipped binary file responses?).
Not having an application object also means that applications can't refer to each other, which eliminates the possibility of OpenAPI style inheritance.  For instance, defining the bare requirements in an "interface" definition, which is then implemented by the actual application.

I think a live discussion is in order to try and deep dive into some of the perspectives of this. There is a lot to cover, so one might not be enough, but let's start with that and see where it takes us.
So let's do a regular 1-hour live stream where we can discuss the different aspects and what it can mean to define multiple applications.
I suggest we do it a week from now on Monday 28. February 16 UTC.
@fmvilas @derberg these loose meetings that we have from time to time that is not recurring, anything I need to do to set that up?

Good perspective @jessemenning 👏

Looking at @boyney123 , @dalelane and https://github.com/SolaceProducts work, I think it would be a mistake to take only a file-exclusive approach
Remember, the file structure approach was only to highlight, it all comes down to how you as a platform provider would bundle applications together 🙂 Studio could have one way of bundling applications, and solace another.

But yea, it is definitely a valid argument, supporting it explicitly, would probably make sense in a lot of cases 🤔

I suggest we do it a week from now on Monday 28. February 16 UTC.
The recording is out: https://www.youtube.com/watch?v=Vl8Nn3GOJiE

Recap:

Question from @aayushmau5 in terms of what version means if you define it for the system: https://youtu.be/Vl8Nn3GOJiE?t=491
Discussion around changing perspective: https://youtu.be/Vl8Nn3GOJiE?t=1197

@fmvilas raised an idea revolving around removing applications keyword and adding a simple context keyword for each application: https://youtu.be/Vl8Nn3GOJiE?t=1276

Discussion about a menu of channels requirement: https://youtu.be/Vl8Nn3GOJiE?t=1346
Discussion around enabling channels to be defined as a string/reference: https://youtu.be/Vl8Nn3GOJiE?t=1477
Discussion around enabling an operation to reference a channel instead of using the id of the channel: https://youtu.be/Vl8Nn3GOJiE?t=1661
Discussion around No change: https://youtu.be/Vl8Nn3GOJiE?t=1723

I just watched the recording. Thanks for all the discussion you folks drove in there 👏 💯.
I wanted to make a couple of suggestions on the approach for declaring applications.
1. Introduce a new key for defining system info
Instead of using the info keyword we have now, instead introduce a new system keyword which can include several fields such as name, id,  and some metadata like team, or up to any other fields we can think of (yeah, we could always use extensions, I know).
I'm suggesting this because:

We already saw the version field might not match with what a system means. So having a special validation based on an external (from the Info object point of view) field (is it applications defined?) is not very solid. In this case, either systemor info could be defined.
I see systems as a really good solution for defining what a bounded context in a product means, in terms of applications. The same would apply for a team. Answering questions like: "What are the applications team X manages/have" will be then be possible; in consequence, generating documentation, etc etc.
The fact that we let the user to add more data, can empower extensibility.

Example:
asyncapi: 3.0.0
system:
  id: "com.mycompany.payments"
  name: "Payment gateway"
  description: "The main Payment gateway available on example.com"
  metadata:
    team: "platform"

2. To create a new object for each application instead of directly using an array of references.
This is a little bit more tricky and controversial. But I want to drop some of my thoughts (not super elaborated) here.
Define a new application object on the applications array with some extra optional fields like name, description, and also metadata.
I'm suggesting this because:

Some applications could be reused across a whole company, however, the usage each system might do with them could be completely different. Allowing users to add their own descriptions, notes, etc will be IMHO useful in their context.

Example:
asyncapi: 3.0.0

# ...

applications:
  - name: "Core payment service"  # maybe we can remove this, just use the `info.name`
    application:
      - $ref: './backend.asyncapi.yaml'
  - name: "Analytics server"
    description: "The service where all the payments are recorded to. This application is widely shared across the company"
    application:
      - $ref: './analytics.asyncapi.yaml'

Just watched the video nice work and thanks for recording.
Here are some of my thoughts/questions whilst watching

When I saw the use of applications in the spec it was clear to me what it meant and some of its use cases. I can see applications as a great way of teams grouping domains in the future (this feature was a key ask from community over on EventCatalog).
You asked "How could the system.yml" be useful to users, here were my thoughts

If we know applications without the domain like you showed then we could visualise domains / EDA better
Some devs will be focused on their application asyncapi file, and some will want higher picture (system.yml) in this case.
New documentation methods to help us show/document groups of Async APIS (EDA) stuff.
Opens the door to more value I think across the board.

You showed examples of context in the front-end and back-end AsyncAPI files, I'm not sure why/what that would bring? Unless I'm misunderstanding something there? I thought the applications pattern was simple.

Versioning ha... yeah looks interesting, hard to know if systems would be versioned or not, from my own experince I would version my frontend and backend in your example but probably not the domain/system.... as @fmvilas was saying version concept is too loose IMO (in this context)

@smoya I like your idea in number 2 of having additional fields in the applications array rather than just a direct pointer to the asyncapi files, allows us to extend applications in the future without direct tie to async-api files (if that makes sense).

Monday the 7 of March at 16 UTC, we are gonna have another meeting to continue the discussion!

As no one was able to join there are no recording as there was no meeting 😆

Introduce a new key for defining system info

I think this makes sense, IF and only IF there is a huge difference in which properties for the information about the system vs application. I.e. metadata I don't believe makes sense, as it most likely varies a lot between use-cases and cant be well defined, so extensions fit better there in my opinion. That said, creating a separate system info object might still make sense!

To create a new object for each application instead of directly using an array of references

There is something interesting about this cause it actually solves one of the problems that I recently faced.
How do you group, specific applications together (and should you)?
For example, if I had 3 applications that comprise my payment system would I want to group these 3 together? In your suggestion, it enables at least one level of groupings, but not systems in systems (as I read it).
I don't like the applications in applications, maybe another keyword would make more sense 🙂

You showed examples of context in the front-end and back-end AsyncAPI files, I'm not sure why/what that would bring? Unless I'm misunderstanding something there? I thought the applications pattern was simple.

@boyney123 the context came into play when we discussed how the AsyncAPI documents could be used without knowledge of the system, especially when change of perspective is applied.

I am gonna stop pursuing this issue for now as it seems we do not have enough clear use-cases for it, so it would not make sense to force this change as of now. I still believe this is eventually needed, and if you ever encounter such a use case please let us know below.
If you wish to champion this issue, feel free to take it over 🙂


How to build Linux app?

I have build the CarloSharp in Windows, run it, it works ok.
Then I have build in Windows for target Linux, it was built.
dotnet build -r linux-x64
dotnet publish -c release -r linux-x64

I have copied folder to Linux and run. It starts to run but cannot run because:
Unhandled Exception: System.AggregateException: One or more errors occurred. (The environment variable CHROME_PATH must be set to executable of a build of Chromium version 54.0 or later.) ---> System.Exception: The environment variable CHROME_PATH must be set to executable of a build of Chromium version 54.0 or later.
   at CarloSharp.Carlo.FindChromeLinux(Boolean canary) in G:\MyProjects\CrossPlatform\CarloSharp-master\CarloSharp\Carlo.cs:line 191
   at CarloSharp.Carlo.FindChrome(Options options) in G:\MyProjects\CrossPlatform\CarloSharp-master\CarloSharp\Carlo.cs:line 111
   at CarloSharp.Carlo.LaunchAsync(Options options) in G:\MyProjects\CrossPlatform\CarloSharp-master\CarloSharp\Carlo.cs:line 39
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at SystemInfo.Program.Main(String[] args) in G:\MyProjects\CrossPlatform\CarloSharp-master\Samples\SystemInfo\Program.cs:line 15
Aborted (core dumped)

What is wrong?
Thnx.

Hi Oleg,
I’ll try to reproduce the error this weekend.
Regards,
Guilherme
On Sat, May 18, 2019 at 12:05 AM Oleg26Dev<EMAIL_ADDRESS>wrote:

I have build the CarloSharp in Windows, run it, it works ok.
Then I have build in Windows for target Linux, it was built.
dotnet build -r linux-x64
dotnet publish -c release -r linux-x64
I have copied folder to Linux and run. It starts to run but cannot run
because:
petya@ubuntu:~/Desktop/ubu/lx64$ ./CarloSharp.Samples.SystemInfo
Error:
An assembly specified in the application dependencies manifest (CarloSharp.Samples.SystemInfo.deps.json) was not found:
package: 'Microsoft.AspNetCore.WebUtilities', version: '2.0.2'
path: 'lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll'
petya@ubuntu:~/Desktop/ubu/lx64$
What is wrong?
Thnx.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/gkmo/CarloSharp/issues/6?email_source=notifications&email_token=ABHHTIISV33CUQGOFTXUPYTPV6TEFA5CNFSM4HNZWQG2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GUQU4MA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABHHTIMW7ENN7YGPT7W4YQDPV6TEFANCNFSM4HNZWQGQ
.

--
Guilherme Oliveira

Looking at your first stacktrace it seams it didn't find a path to a chrome installation. What version of Linux and Chrome you have installed?

Try installing Chrome in the target machine or select channel * to automatically have Chromium downloaded in case Chrome is not found.
The way your are publishing the app is correct.


Update abieos submodule to point to eosio branch

Change Description

Update abieos submodule to point to eosio branch
Change Type
Select ONE

[ ] Documentation

[ ] Stability bug fix

[x] Other

[ ] Other - special case

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

I don't know why I could not hover over lines where I could add a comment.
Here are my two general comments:

I am a little concern that "#ifndef ABIEOS_NO_INT128" scatters around files. Do we want to keep this as an option or just keep it on?
Do we have test cases for ABIEOS_NO_INT128 being both turned on and off?

I did not make those changes so I’ll defer comment to @tbfleming . This PR is just to update the submodule.

It varies by architecture:

x86-64 compilers support 128-bit
wasm compilers support 128-bit
iOS and Android compilers don't

The default supports 128-bit.

The tests build in the same mode as the library. The only real way to test iOS and Android compatibility is to build abieos for those platforms and integrate into an iOS or Android test bench (probably an emulator).


Assure reproducibility

random sampling
There are many random sampling methods, including random.sample, and other low level within library sampling.
Setting random.seed(0) at the very beginning of a script won't work.
set operations
Sets are unordered, consequently everything handled with sets are not gonna follow a certain order, and this is not controllable.
However, set operations are very efficient.
Alternatives?

This will be checked on #73 a similar solution to shuffling #70 can be done (testing a first pipeline run, saving results and checking that further pipeline runs show the same results, this can also be done with nf-tests I believe).

liked to #40

PR #166 is setting the basis for testing reproducibility. Throught the debug mode. The point is that this issue is much bigger than just checking if output are identical. Because how close to reproducible you are likely depends on the ammount of data, tha size of the model, how long until convergence in learning and the complexity of the problem.


Visualization

Please can you provide further guidance on how to visualize the occupancy.

+1

+1

+1

Sorry for the late reply. We've been busy with other projects.
The visualization code  (tools/misc/visualizer.py) is now uploaded. Feel free to modify it as you need.


Typescript complains about describe.only and describe.skip

I'm using version 6.0.3 and the TS compiler does not recognize the existence of .only or .skip.
Should they not be a part of the definition file?

They should, but I haven't had the chance to figure out how to get it working. Open to a PR.

Looks like this should be fixed in v6.0.3. Can you provide more detail?


Aladdin generated examples for advisor

Sort commands alphabetically in help files for easy diff.
Add Aladdin crafted examples.

I don't think the build failure is happening because of our changes. Is it possible to rerun the 'check module load performance' test?

@haroldrandom please help with this PR.


Added a fix to reset enabledClass on nanoScroller.reset()

Thanks!

 Please review and merge the PR. Hope it will be available in the next release. :)

@kristerkari: Just checking the status. Will there be a minor release with this fix?

Thanks @jeradrutnam 👍

You welcome @jamesflorentino, thanks for merging.


Update libtool.rb

On linux we don't need to add prefix 'g'. Which fails me when brewing neovim.

Thanks for your contribution, @digiter.


PollingBlockStream: Move sync status logic to instance manager

What?
This Pull Request moves the sync status logic of subgraphs from the PollingBlockStream to the instance_manager.
Why?
This is being done so that other streams, such as the Firehose one can benefit from this status update.
Code Review Considerations
To review this Pull Request there are a couple of considerations:

Reading commit by commit you'll see that there's an initial implementation in the first commit. This is further refactored into pure/simpler functions to ease testing. I've kept both versions here to ease discussion on which we should go for;
Also because TriggerData doesn't implement Send, I bumped into this issue to run an async function in the PollingBlockStream environment. I've made two commits with two approaches to the problem:

The first calls handle_subgraph_synced twice. Which I'm not a fan of, but at least doesn't require changing everything to sync (not recommended when dealing with our database connections)
The second changes everything to sync, which it already is internally, but we should avoid as described in the with_conn function docs.

Also I'm open to moving tests around the code and renaming functions. For now the tests are made right after their function definition.
And the reason I've made it all very composed and "extensively" tested is so that we:

Don't have to keep making PR fixes guessing what can fix the issue
Have tested code for the instance_manager, part of the codebase we barely have any

Related issue: #3047

@leoyvens I've addressed your comments and implemented the chain head block cache


Bitotest

Trac ticket number

ticket-XXXXX
Branch description
Provide a concise overview of the issue or rationale behind the proposed changes.
Checklist

[ ] This PR targets the main branch.
[ ] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[ ] I have checked the "Has patch" ticket flag in the Trac system.
[ ] I have added or updated relevant tests.
[ ] I have added or updated relevant docs, including release notes if applicable.
[ ] I have attached screenshots in both light and dark modes for any UI changes.

/review

AI Code Review is in progress (usually takes <10 minutes unless it's a very large PR).


Search component/service Closes #25

CSS (page structure) is not ideal with results displayed.
This should be addressed in #22.


Cannot import { createModelReducer } from 'react-redux-form/immutable' installed via npm

It should be working per this spec: https://github.com/davidkpiano/react-redux-form/blob/master/test/immutable-model-reducer-spec.js
Can I see a full code example of it not working?

same project as here: https://github.com/davidkpiano/react-redux-form/issues/113
try to import in this project
I see that spec is working because imported from .../src/...
but if i try to import it simply by import { createModelReducer } from 'react-redux-form/immutable' the file cannot be find

Sorry, it should be:
- import { createModelReducer } from 'react-redux-form/immutable';
+ import { modelReducer } from 'react-redux-form/lib/immutable';

Is there somewhere in the documentation that has react-redux-form/immutable instead of react-redux-form/lib/immutable?

I couldn't find it in documentation.
You should update README.
Thank you for reply


Codedav not working

Codedav has not been working for several days. After some investigation, the root cause is the git command not installed in the container and Codedav runner using git rev-parse --show-toplevel to get the git root directory.

/assign

/close


period & frequency calculation is incorrect if packets are missed - defect

The period calculation in index.js/calcFrequency does not account for missing packets.
A ruuvi at distance or in a radio isolation area (like a refrigerator ) may miss packets.
Worst case is receiving 1 packet,  missing many, then receiving 2 consequential packets causes the calculation to be the average.
A better algorithm would be   min( last calculation , this calculation ) but that's not really good either.
Calculating the frequency requires the time of 2 consequential packets.

Actually I suppose this means that the frequency/period cannot be calculated in the web page side.

In fact, it's the period and frequency of reception, not emission. So, the math is good :)
But it's true that I must specify it in the docs.
For the period and frequency of emission, we can maybe make something with the measurement sequence number to fill the holes (if tags are in data format 5). I'll think about it.

Please review regarding not calculating in web page.


Change str::as_bytes to hex parsing in tests for clarity

    >The potentially confusing as_bytes is still here but since it's technically correct

Oh, right, I missed checking this in the scrollback.
We should file an issue -- I've read that code multiple times and even with you pointing it out, I keep missing this because all the other tests in this crate have some hex-decoding logic somewhere.
Originally posted by @apoelstra in https://github.com/rust-bitcoin/rust-bitcoin/issues/1412#issuecomment-1333778819

I believe this issue is stale, I looked in script/tests.rs and also went through the output of gg '\.as_bytes\(\)' | grep -v script

No, it's still there, it was just changed to b"...". Try rg "let malformed_key"

Oh yes I saw those, I figured the b in front makes it obvious that it is not a hex string. Hence making this issue stale.

No it doesn't. It looks human-readable and it's just one character difference.
I suggest we just hex-encode it and use hex! on the result.

No stress


Expose option details

Currently it is difficult to implement StoreInterface because you cannot inspect Options or InvalidateOptions.

This fixes #175


fix(utils): support wait_for_input

DEMO before & after
Before

After

:tada: This PR is included in version 2.18.8 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


FPS drop JEI/RS

Issue description and What happens:
When searching for RS in JEI FPS drops form over 70 to low 20s.
Same issue happened in Applied Energistics 2, caching covers
helped.
What you expected to happen:
FPS shouldn't take such hit.
Steps to reproduce:

Open inventory
Search in JEI for RS cover
See how much FPS drop

Version (make sure you are on the latest version before reporting):

Minecraft: 12.2
Forge: <IP_ADDRESS>68
Refined Storage: 1.6.11
JEI: 4.14.0

Does this issue occur on a server? Don't know

you can hide covers via JEI or in RS config and see if it helps

When they are not displayed, just different page, FPS is not affected.
looks like render is not optimized.


Setup cw-gitpod-base docker hub CI push

cw-gitpod-base docker image for speeds up gitpod environment launch.

This PR broke this promise

We have template configurations for both GitHub Actions and Circle CI in the generated project, so you can get up and running with CI right away.

from https://github.com/CosmWasm/cosmwasm-template#ci-support
I wonder if that is really what we want.


Whitespace at the beginning of a sentence is ignored in codeblock.

Describe the bug
Whitespace at the beginning of a sentence is ignored in codeblock.
Steps To Reproduce
When using markdown
\```bash
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
...
\```

->
displayed
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
...

Expected behavior
I want it to displayed as I typed.
Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): 0.27.5
PHP Version: PHP 7.2.19
Hosting Method (Nginx/Apache/Docker): Apache/2.4.29

Thanks for raising @hhk7734.
Have tested and can confirm this is the case.
Also happens on WYSIWYG, but not in the editor itself. Likely to be this line at play:
https://github.com/BookStackApp/BookStack/blob/189a598d560e83e283e8062a73ce8198e5a0553b/resources/js/services/code.js#L102
Have marked to be fixed for the next release.

Patched in master branch, Will be part of the next feature release (v0.28) due at the end of the year.


Tips for implementing Page Transitions

Hi guys, I'm trying to implement page transitions but I'm just stuck right now. Right now I'm wrapping the whole App.js render method with a ReactCSSTransitionGroup but it doesnt do anything. Would redux/middleware/transitionMiddleware.js have anything to do with what I'm trying to achieve?

I've had good luck transitioning components that routes render. So, if there's a route:
<Route component={App}>
  <Route component={MyWidget}>
.....

I would animate in App.js, wrapping this.props.children in a CSSTransitionGroup.

Alright but how do you make it work with the css-loader? The one time I got it working was adding regular css to some file I set to not have their styles afixed, but it had a weird flicker at the same time the dev tools load which made those transitions useless

You'll always have weird flickers on page load due to the dev FOUC. AFAIK, there's not a great way around that without some work.
After initial page load, you'll likely need to use some :global styles in SCSS to define classes that CSSTransitionGroup expects to be defined globally. Alternatively, you may override the expected classnames by passing a param to CSTransitionGroup.

So if I got transitionName="pageload" and make a :global(.pageload.pageload-enter) it will work? Right now I'm just adding the classes to bootstrap.overrides.scss but it's hackey.

Yup, I believe that should work. You can also group them:
:global {
  .some-class {}
  .another-class {}
}```

^^ That's awesome. I didn't know you could do that.

It's working crisply now, thanks! On another note, is it possible to add a class (or styles) to the div that aggregates the app and the dev tools?

Best I came up with was using an attribute selector, but it's hacky, needs to be closely monitored, updated on demand and should probably be avoided.
[data-reactid=".0"] {
    height: 100%;
}

If you find a better solution, let me know.

^^ Man, that's gross! Not that I have a better idea, but....blrgggh!

Only way I could make that sticky footer work. :sweat:

I know right, I also wanted to pass down parent height but that guy just says "nope, im here".
I guess we don't have to do anything on the server since it's the dev tools so maybe deleting it here (client.js line 60) will do the trick? It definitely does work but the problem is if will cause any unexpected behaviour.
if (__DEVTOOLS__) {
  const DevTools = require('./containers/DevTools/DevTools');
  ReactDOM.render(
    <Provider store={store} key="provider">

        {component}
        <DevTools />

    </Provider>,
    dest
  );
}

I'm currently having a similar problem however wrapping the this.props.children with a  ReactCSSTransitionGroup doesn't seem to solve the trick.  Any help?

          <Helmet {...config.app.head}/>

            <ReactCSSTransitionGroup
              component="div"
              transitionName="moveLeft"
              transitionEnterTimeout={500}
              transitionLeaveTimeout={500}
              >
              {this.props.children}
            </ReactCSSTransitionGroup>


Lazy loading fails to initialize correctly when using react components as slides.

I have a slider with about 200 elements. Each element is a react component.
When I have lazyLoad set to true, no slides are loaded. I have to advance the slider first.
The slider initializes and is displayed (if the height of a slide is defined in CSS), but it is empty. The dots appear. When I do a swipe action, the next image is loaded.
Setting 'initialSlide' does not help either.
Autoscroll does not seem to be working either with lazy loading.
When centerMode is set to true, I have to set 'infinite' to false or the slider crashes when going past 0.

@sbaechler You probably are not passing down the props into your React component. Can you see the discussion in #73 helps ??

No, I was using a wrapper div. But even with passing down the props the problem still exists.

@sbaechler Can you write an example so the I can reproduce the issue?

+1 on @sbaechler's issue. Finding the triplication of passing props as well (even with https://github.com/akiran/react-slick/issues/73
 solution).

I got a quick hack to the same issue -> https://github.com/akiran/react-slick/pull/95

I'm having a similar issue:
Hey, here's an example of the problem I'm having:
getVidElement: function (vidId) {

var video = this.props.Annotation[vidId];

var vidElement;

  vidElement = <Video video={video} />;

return (

    {vidElement}

);
 },

 render: function () {
       var vidElements = this.getListOfVidIds().map(this.getVidElement);
       var settings = {
       dots: true,
       infinite: true,
       lazyLoad:true,
        arrows:true,
       speed: 500,
      slidesToShow: 3,
      slidesToScroll: 3
};

return (
  <Slider {...settings} >
    {vidElements}

  </Slider>
);
  }

Even if I pass {...this.props} to both the  and  tags, I still can't get anything initialized. It is 'lazyloading' the entire {vidElements} array. When I click the arrows or the dots, everything is loaded.

Ok, so I removed an unnecessary level of children and it still doesn't work...:
getListOfVidIds: function () {
return Object.keys(this.props.Annotation);
 },

  getVidElement: function (vidId) {

var video = this.props.Annotation[vidId];

var vidElement;

  vidElement =

{video.description}

{video.hashtags}

;

return (

    {vidElement}

       );

  },

  render: function () {

    var vidElements = this.getListOfVidIds().map(this.getVidElement);

    var slidesScroll = 3
    if (vidElements.length <4 ){
      slidesScroll = 1
    }
var settings = {
dots: true,
    lazyLoad: true,
  infinite: true,
    arrows:true,
  speed: 500,
  slidesToShow: slidesScroll,
  slidesToScroll: slidesScroll
};

return (
  <Slider {...settings} >
    {vidElements}

  </Slider>
);

 }

});

I'd really like to resolve this problem in my app. Is there anything further I could do?

I will try to fix it soon

Any update on this? I'm also having this issue

I too am having the same issue

Same here. Seeing the same issue.

Same here. It's been a while since you posted, I wonder what were your workarounds, guys?

I still have this same issue

I think most lazyloading related issues have been fixed. (latest release 0.19.0)
Please refer to this codesandbox example: https://codesandbox.io/s/n9p51n1lo0
If someone still has any problem regarding this, please generate a demo on codesandbox, and feel free to request reopen.


DynamoDBMasterMonitor: Don't publish MASTER_NULL on Dynamo failure

Context
We encountered an issue in which DynamoDBMasterMonitor would emit a MASTER_NULL value in the event of failing to read or decode the lock from DynamoDB. This caused some minor but unncessary churn as our agents believed the master had changed when it in fact had not. This can be further exacerbated by transient failures in Dynamo or throttling when querying Dynamo.
Checklist

[x] ./gradlew build compiles code correctly
[x] Added new tests where applicable
[x] ./gradlew test passes all tests
[x] Extended README or added javadocs where applicable

Just realized I have a commented out test here. Working on a fix.

Fixed.


RTRL

Any chance of getting Real-Time-Recurrent-Learning in?
Seems like there are no libraries that currently support this.

We have no plan about implementing RTRL, since it requires much computational cost compared to backprop. There might be a chance if the fast approximation of RTRL gets competitive to the backprop (e.g. http://arxiv.org/abs/1507.07680), though I do not investigate how to implement it on Chainer.

It is O(n^4) but is easily parallizable though due to the fact that each element of the Jacobian can be computed on a single core


added KP405 to device model whitelist

testing has revealed the KP405 Outdoor Smart Dimmer Plug to be fully compatible
Thanks for the awesome library!

https://www.kasasmart.com/us/products/smart-plugs
There also exists the KP401 and KP400 non-dimmable single and double plug versions, respectively. Seeing as this 'just worked' for me I'd suggest either removing or relaxing the model whitelist functionality, perhaps with a warning. If this works for the HS and (probably) the entire KP series, I see no reason why it wouldn't also work for the EP series devices as well. I've PR'd this change in #7


[#71] No INI

Codecov Report

Merging #73 into master will decrease coverage by 0.96%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #73      +/-   ##
==========================================
- Coverage   89.46%   88.49%   -0.97%
==========================================
  Files          12       12
  Lines         484      426      -58
  Branches       55       52       -3
==========================================
- Hits          433      377      -56
+ Misses         29       28       -1
+ Partials       22       21       -1

Impacted Files
Coverage Δ

src/towncrier/test/test_settings.py
100% <ø> (ø)
:arrow_up:

src/towncrier/_settings.py
60% <100%> (-17.78%)
:arrow_down:

src/towncrier/test/test_cli.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


remove theme attribute

https://github.com/solidjs/solid-styled-components/issues/6

Thanks. I kept forgetting to do this.


qustion

anyone know if i can get my 2fa lost using this?

What is this
On Fri, 4 Oct, 2024, 17:23 adam102020, @.***> wrote:

anyone know if i can get my 2fa lost using this?
—
Reply to this email directly, view it on GitHub
https://github.com/stake-player/stake-api/issues/5, or unsubscribe
https://github.com/notifications/unsubscribe-auth/BLCGOR6L6CA5VDJEAMIYX3LZZZ6RZAVCNFSM6AAAAABPLXFDYSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU3DMMJZGIYDOOI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hey find solutions to your iss ?


[Documentation] Add PR Template

Random thoughts:

Add something like a Background / Problem: basically what's the current state of things and why does it need to change?
Describe the change.
Explain any rationale if there's a deviation from the typical approach or if something was refactored.
Within the testing section: If there are any new screens, add them to the screenshot generator or explain why they are omitted (e.g. too complicated, not yet possible in the screenshot generator). Include relevant screenshots in your PR description.
Maybe also note other tips: "Try to keep your changes limited in scope; if you uncover other issues or improvements along the way, ideally submit those as a separate PR" (yes, I am the worst offender when it comes to PR scope creep...).

This has my support.

I'm merging this as is to start getting feedback so we can make more iterations if this proves to be helpful.


check transformed data for NaN

Feature Request
Version
2.7.0
Description
Is there any reason transformed data isn't checked for NaN after the block?
Example
transformed data {
  real x;
}
parameters {
  real mu;
}
model {
  x ~ normal(mu, 1);
}

This currently tries to run and errors due to NaN.
I suggest this stops immediately, or is that a bad idea?

That was intentional as there's no constraint on x.  Maybe it was the wrong decision.  Do we want to completely disallow NaN values in transformed data?

This is related to #1477 . We need to do something, but we disallow NaN in transformed data now, then it would be very difficult to ever use NaN to represent missing values in the future. That would basically limit us to the last few numerically representable values or negative zero to represent missing values with.

I agree that we shouldn't disallow NaN in the transformed data block, so I'm closing this.


It Doesn't Get Installed

Hi man
I don't know why it gives me an install error? Is it me or is this a bug? Thanks
[root@X rivalcfg]# pip install .
Processing /home/X/rivalcfg
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-lvwqr11g-build/setup.py", line 10, in <module>
        from rivalcfg import VERSION
      File "/tmp/pip-lvwqr11g-build/rivalcfg/__init__.py", line 1, in <module>
        from version import VERSION
    ImportError: No module named 'version'
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-lvwqr11g-build/

Hello,
can you give me your Python and pip version (pip --version) ?

Sure
[X@X ~]$ python --version
Python 3.5.1
[X@X ~]$ pip --version
pip 8.1.1 from /usr/lib/python3.5/site-packages (python 3.5)

rivalcfg was not compatible with Python 3... Bu I just made a branch to add Python 3 support. :)
To test it, first get the python3-support branch:
git clone https://github.com/flozz/rivalcfg.git
cd rivalcfg
git checkout python3-support

And then, install rivalcfg (as root):
pip install .

I think it's done now. Big Thanks man
I got a Rival 100 and now need a good setting to play CS:GO.
[root@X rivalcfg]# pip install .
Processing /home/X/rivalcfg
Requirement already satisfied (use --upgrade to upgrade): pyudev>=0.19.0 in /usr/lib/python3.5/site-packages (from rivalcfg==2.3.0)
Requirement already satisfied (use --upgrade to upgrade): six in /usr/lib/python3.5/site-packages (from pyudev>=0.19.0->rivalcfg==2.3.0)
Installing collected packages: rivalcfg
  Running setup.py install for rivalcfg ... done
Successfully installed rivalcfg-2.3.0

The Python 3 support have been released in rivalcfg 2.4.0. :)


Incorrectly hiding the navigation menu

Hi!
First of all I have to praise a nice theme for a simple gallery.
If the gallery page is scrolled up, the navigation menu correctly hides behind the bottom edge when the zoom mode is activated. I think this applies until the bottom border is equal to the height of the navigation menu. Then the menu moves illogically up to the gallery. Although it is in the background and blurred, it still gives a disturbing impression.
If the page is in mobile mode, then the same applies, but in reverse.
Can you please look at the CSS and adjust the values so that the navigation menu is hidden behind the bottom or top edge always?

I don't see the problems you described and I see that the theme is working the same to the original upstream HTML template https://html5up.net/multiverse. We made no changes to the code, CSS and JS are the same to the HTML template.

You are right, the behavior is the same in the original. So consider it irrelevant, I will try to modify the CSS for my needs and send it to you if necessary.


Bugfix/responsive images

fix #45
Added height: auto so images keep their aspect ratio even if [width] and [height] attributes are set.

Thanks for your contribution @jonaskuske! Great work.


Added lifeparticle

What type of PR is this? (check all applicable)

[x] 🚀 Added Name
[ ] ✨ Feature
[ ] ✅ Joined Community
[ ] 🌟 ed the repo
[ ] 🐛 Grammatical Error
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
My readme profile has been added.
Add Link of GitHub Profile
https://github.com/lifeparticle

@all-contributors please add genesis for doc


Updated README.md about potential Q&A issue

@hyochan thx for review. I've changed it as you required. :)


Android: fallback for requestReview() never triggering

The review dialogs themselves work fine for us on iOS and Android.
We're testing in development mode, which means the iOS rating dialog does always show since their limitations of 3/year don't apply here. But with Android, we can only show the dialog once in testing.
When requestReview() is called another time, the dialog is not shown again, but also the catch() does never trigger as described in the documentation. So we're unable to do anything as a fallback if the rating does not appear.
There's no further logging or anything happening. Just any code we put in the catch() will never run.
Is there anything we have to take into account to get this working?
Does this not work in development mode? And how to test the fallback then?
Thanks!
(P.S.: Otherwise the plugin works great, thanks for making it available 🤓 )
Tested with:
Android 9.0
cordova: 10.0.0
cordova-android: 8.0.0
cordova-plugin-app-review: 2.0.1

Yes, the same happened with me,

Read README carefully, there is a section with description of how to test the dialog for Android. When a test device registered within internal test group at Google Play, no limitation applied on calling inapp review dialog.
As for catch that is never called - expected behavior, this is how Google currently implemented their APIs. No way to determine if a user cancelled dialog or it failed to show.

I have read README, but still is not showing for the internal testing accounts.
Is there a way to register my device through play store console? how?
thanks,

I want to mention to check that the user has not already rated the app in production. Google doesn't let you query a user for this information to prevent abuse. Also make sure you are logged into Google Play store.


feat: show route meta info in pages tab

#175
Since meta is an object, the data is displayed tiled, and the content is likely to be too long, so a title is added
with no data

with full data

and title:

We can show it more clearly with json-editor. Show the basic info in the table and provide a tooltip with detailed json info when users hover over it.
You can check how json-editor works by looking at this file 👉 (https://github.com/webfansplz/vite-plugin-vue-devtools/blob/main/packages/client/pages/component-docs.vue#L75)

json-editor has been added, please check it under review ❤

json-editor has been added, please check it under review ❤

LGTM. Thanks for your contribution ❤.

One small detail, since route meta data is displayed by default, the screenshots in the readme may need to be adjusted

One small detail, since route meta data is displayed by default, the screenshots in the readme may need to be adjusted. 🤣🤣🤣

Sure. I'll update the readme later.


Progress item is not shown and endless scroll could not be triggered if onBindViewHolder() is not triggered.

@davideas, Hello:
I find that progress item will not be shown in the following occasions:

a) In automatic loading scenario, if items could not occupied recycler view window, then after the endless scroll loads with 0 or null items and progress item is dismissed, progress item could not be shown again.(In this occasion, endless scroll could not be triggered again).
b) In user request scenario, if items could not occupied recycler view window, and if progress item is not set before recycler view is shown(i.e. progress item is set firstly after recycler view is fully loaded and shown to user), progress item could not be shown.

I looked into source code, find that, progress item is shown in showProgressItem(), showProgressItem() is only called in onLoadMore(), and onLoadMore() is call in onBindViewHolder()(the other is in setLoadingMoreAtStartUp()). Therefore, if onBindViewHolder() could not be triggered, then progress item could not be shown(neither does endless scroll).
My question is: is there an elegant way to show progress item(and trigger endless scroll) in aforementioned occasions(except calling setLoadingMoreAtStartUp() or add new items)?
Thanks.

@tankpow,
Point a) as done in demoApp you can implement the pull-to-refresh.
Point b) will still work:

hypothesis 1: your initial total items should take more than the screen space if not you are in situation described at point a);
hypothesis 2: initially trigger the setLoadingMoreAtStartUp() that must return many items or complete the endless (because no more items).

@davideas ,
Thanks for reply.
To point b, if:

User doesn't request endless scroll, progress item will not show because, inside  setEndlessProgressItem(), showProgressItem() is not call. And onBindViewHolder() is not triggered either.
User requests endless scroll, if return 0 or null new item, mEndlessPageSize and mEndlessTargetCount are kept default, progress item is still not shown because nothing triggers onBindViewHolder().
If return some new items, because new items are added, notifyItemRangeInserted() is called which will trigger onBindViewHolder(), then progress item will be shown. But after that progress item will not dismiss automatically.
Is what I understand right?
Thanks.

@davideas
BTW, may I ask where is demoApp? I looked in '5.x | Demo App', but still can not find it.
Thanks.

@davideas
Got it, thanks!


Fix deprecations and warnings

[Fixes #167]

Codecov Report

Merging #168 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #168   +/-   ##
=======================================
  Coverage   99.83%   99.83%
=======================================
  Files          11       11
  Lines         619      619
=======================================
  Hits          618      618
  Misses          1        1

Impacted Files
Coverage Δ

lib/public_suffix/list.rb
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


[Epic] Istio support

Istio is micro service management mesh. Need to implement following set of features

[ ] sidecar injection - Kubinject
[ ] Smart canary - RouteRule implementation from pom.xml, yaml file

Shouldn't it only add the label to enable the automatic injection of the sidecar?


turn off dependent resource watching

fixes: https://github.com/kiali/kiali/issues/3322
backport PR: https://github.com/kiali/kiali-operator/pull/163

So do we need to update any docs/comments to go with this? This would mean that some changes would not be picked up and could force the user to do what to run a manual reconciliation?

I don't think we ever documented the dependency watching/auto-reconciliation in the first place.


fullwidth code

Hi, I'd like sometimes to use all the horizontal space, like in the fullwidth class for images, when displaying code snippets. Is that possible?

Yes. I modify css for it. Look at this commits in my fork:
https://github.com/Norgat/tufte-css/commit/3d4579a59886efc7b04bb3872f578a78f054bd87
https://github.com/Norgat/tufte-css/commit/823d1cb6d90793f39d7e5b213ac0adcdfb7cd4cf

Hi @Norgat, that's exactly what I ended doing after my question, but then I returned at a lesser code width because I liked that version more. Now I'm thinking having a background gradient (when I'm using the full width), for added smoothness.
Thanks for your solution! :)


Remove iwgetid dependancy

iwgetid is not necessarily provided by the iwd package, suggest to remove this dependancy in place of iwctl which is already utilized.
This would also resolve #2 by means of removing the core/wireless_tools dependancy

Sorry this notification got buried! Thanks for contributing. :)


chain RPC restarts cause CPU utilisation problem

⚠ Support requests in an issue-format will be closed immediately. For support, go to Swarm's Discord.
Context
@mfw78 reported
Summary
Found one bee node was at 50% CPU utilisation for some bizarre reason. All the nodes had restarted like 2 days ago when I upgraded Nethermind.
Some were stuck at super low depths, just smashing themselves.

It's particular to note - this is what happens when you get into a resource constrained environment.
ie. the "starting inertia" is extraordinarily high in bee.
But, as the system stabilises, it's inertia drops to near 0.

I see this a LOT on my massively pinning upload node.  The pullsync cursorHandler consume copious amounts of CPU per instance and all new peers hit the newly started node at once.  I finally put in a hack to limit the cursors handler to a single concurrent instance, but subsequently increased that limit to 1024 because I also now incorporate a singleflight around the pullsync/cursors database routine so that multiple overlapping requests are served by a single loop of the bins.
I see similar cursorHandler loads on my smaller nodes, but they clear quickly enough to not cause an impact.  But if a node has a large local pinned database, it's pretty ugly.


Different toolchain in buildPhase and in installPhase?

A picture says more than a thousand words, I guess:

Why is a different cargo version used in the installPhase?
The relevant parts from my flake look like this:
{
        pkgs = import nixpkgs {
          inherit system;
          overlays = [ (import rust-overlay) ];
        };

        rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
        craneLib = (crane.mkLib pkgs).overrideToolchain rustTarget;

        tomlInfo = craneLib.crateNameFromCargoToml { cargoToml = ./Cargo.toml; };

        cargoArtifacts = craneLib.buildDepsOnly {
          src = craneLib.cleanCargoSource ./.;
          buildInputs = [
            pkgs.pkg-config
            pkgs.openssl
            pkgs.cmake
          ];
        };

        commonArgs = {
          inherit (tomlInfo) pname version;
          inherit cargoArtifacts;
          src = ./.;
        };

        package = craneLib.buildPackage (commonArgs // {
          doCheck = false;
        });
}

Hope you can help me here with the relatively little info I can give you :thought_balloon:

Thanks for the report @matthiasbeyer ! It looks like the issue is due to the installation hook using cargo from nixpkgs instead of using the override at the library level.
I'll work on fixing this up


fix: fix keyboard onChange not change value

Closes #601
Description

Fix #601  for Slider component

Current behavior (updates)

no

New behavior

no

Is this a breaking change (Yes/No):

no

Additional Information
Root cause:
Obsviously,main cause is the eventSource in  useUpdateEffect is null.
It happen because when value change (or component is updated). The value of latestRef will be re-init.
So that's why we need create a useState for eventSource value for preventing re-init data.
After apply state for eventSource :
https://github.com/hirotomoyamada/yamada-ui/assets/78476413/386a7e8e-b190-4e94-b9eb-7a4847259d91

@quangnmwork
Thanks for the PR.
I believe using useRef is appropriate for this update since it does not affect rendering. What are your thoughts on this?
Additionally, if you switch to useRef, please name it eventSourceRef.
I also think that the RangeSlider component will need a similar update.

@hirotomoyamada
Hey thanks for the reply. Seem like I have found where the bug.
It's look like it's cause from the useLatestRef
const useLatestRef = <T extends any>(value: T) => {
  const ref = useRef<T | null>(null)

  ref.current = value

  return ref as MutableRefObject<T>
}

When value change :
useLatestRef({
    min,
    max,
    step,
    value,
    isInteractive,
    eventSource: null as 'pointer' | 'keyboard' | null,
    focusThumbOnChange,
  })

Then this code ref.current = value will be executed. Then eventSource will be assign to null again that's why in useUpdateEffect the value of event source is always null.
So I think create a computed state as computedValue will solve this.
Or , we will create something like this const sourceRef = useRef({ eventSource: '' }) for controlling the event source value.
What do you think about it? . I will be happy if you have any feedback about my reply. 🙇

@quangnmwork
Hey, thanks for the response.
I agree with your approach.
Could you remove eventSource from useLatestRef and create a new eventSourceRef to control it?
const eventSourceRef = useRef<"pointer" | "keyboard" | null>(null)

eventSourceRef.current = "pointer"

  useUpdateEffect(() => {
    const { values } = latestRef.current

    if (eventSourceRef.current === "keyboard") onChangeEnd(values)
  }, [values, onChangeEnd])

@hirotomoyamada Hi, I have updated the PR.
Also in the range slider useUpdateEffect I found that the values is always mutate and cause maximum call stacks size like this:

I have fixed that and change into [values[0], values[1], onChangeEnd].

thanks!


Egress fails silently in Azure

Both myself and @jpoon have attempted to use the egress functionality while deployed on Azure (k8s 1.5.1 for me), without success. Haven't been able to find any logs on failure either, so it appears to fail silently.
From slack

Trying to get the egress in the pipeline spec to work. I have this:
    "URL": "https://<redacted>.blob.core.windows.net/public"
  }

But don’t see any files or logs :confused:
Joe Doliner [6:35 PM]
you gotta use an as:// or wasb:// style url
[6:36]
I think it's like as://url_endpoint/container
Jason Poon [6:45 PM]
negative.  tried http/as/wasb: as://<redacted>.blob.core.windows.net/public
[6:48]
Don’t see any logs in pachd about egress or ^ above url.

Fixed in #2156


Add sdl packagegroup to genivi dev platform image

#Add sdl-core in genivi dev platform.
Signed-off-by: Phong Tran<EMAIL_ADDRESS>

This related to https://github.com/GENIVI/genivi-dev-platform/pull/66

@phongt  Could you share how to test this feature in GDP?

@chbae Please get https://github.com/GENIVI/genivi-dev-platform/pull/66 and this PR.
$ bitbake genivi-dev-platform
The SDL core will be build and install to the image.
@zeenix  Please review and give your feedback. I will update both commit message and upcoming comments.

@phongt I believe @chbae was asking for a way to actually test these new components, not just build them. :)

Me and @zeenix agree that the build check fails as expected because of dependency on genivi-dev-platform/pull/66

Me and @zeenix agree that the build check fails as expected because of dependency on genivi-dev-platform/pull/66

Indeed but what we might not agree on is that we'll first merge g-d-p change and then this PR should build. :)

@phongt
I would like to know real test in environment. How can I test? Which devices do you test like raspberrypi, qemux86-64 or others?

Apart from missing jira ticket reference there is only 1 minor issue in the patch itself and some nitpicks about commit log:

Would be nice to have a bit more details in the commit log.
Either write "Genivi Development Platform" or "genivi-dev-platform".
"add to" not "add in"

@zeenix I updated the commit log as your review comments.

I would like to know real test in environment. How can I test? Which devices do you test like raspberrypi, qemux86-64 or others?

@chbae  Currently just simple testing by checking sdl_core via 'systemctl  status smartdevicelink'.  And some logs file can found in /var/log/smartdevicelink/. This is tested in QEMU x86_64 environment.

@chbae Currently just simple testing by checking sdl_core via 'systemctl status smartdevicelink'. And some logs file can found in /var/log/smartdevicelink/. This is tested in QEMU x86_64 environment.

Hmm.. This PR made us discuss in the team yesterday if we should always require a UI demo for all new features as "merge policy". Do you think that could be arranged?
We're hoping to have automated UI tests in place at some point soon so a UI for each new feature would mean easy addition of automated tests for all major features.

Hmm.. This PR made us discuss in the team yesterday if we should always require a UI demo for all new features as "merge policy". Do you think that could be arranged?

I'm not sure this appropriate for all applications, but it could be argued that non-frontended applications should be merged into baseline

@tom--pollard sure, but would make sense for frameworks.

@zeenix Updated commit log. Thank you for your checking.

Hmm.. This PR made us discuss in the team yesterday if we should always require a UI demo for all new features as "merge policy". Do you think that could be arranged?
I think, If there is a UI demo for SDL in GDP, It will be more impressive. I will consider about it.

Build checks: Unfortunately I introduced a small bug in all m-g-d PR check pipelines when I added dragonboard to the checks.  But that is now fixed and these are failing for the "right reason" now, i.e. that sdl-core is not yet available.  As @phongt says that's genivi-dev-platform/pull/66

@phongt you might want to see which example UI might be provided in the SDL code base these days (there used to be one if I remember correctly)

For the record it would have been better in this thread, but I mentioned some info on the default UI in genivi/genivi-dev-platform/pull/66

Rebased this on chromium branch (will use chromium for the HMI so might as well) and pushed to update the PR.

Turns out commit 1b9a7e0 is bad and shouldn't have ended up on this branch.  Another rebase attempt and push.

@phongt Since we're tracking this on a feature branch instead, I think the PR can be closed and communication can happen on the [relevant tickets|https://at.projects.genivi.org/jira/browse/GDP-177] instead.
Also, the meta-genivi-dev merge into g-d-p is happening now so I'm trying to remove as many m-g-d PRs as possible since they will not be appropriate after this merge.

@gunnarx   Okay. I closed