implement streaming for assistants

Addresses the Python API part of #185.

The current state implements the idea in https://github.com/Quansight/ragna/issues/185#issuecomment-1840399070. The UX is now as follows:
main
import asyncio
from ragna import Rag, assistants, source_storages

async def main():
    async with Rag().chat(
        documents=["ragna.txt"],
        source_storage=source_storages.Chroma,
        assistant=assistants.ClaudeInstant,
    ) as chat:
        message = await chat.answer("What is Ragna in ten words or less?")
        print(message)

asyncio.run(main())

 Ragna is an open source framework for building RAG-based AI applications.

PR
import asyncio
from ragna import Rag, assistants, source_storages

async def main():
    async with Rag().chat(
        documents=["ragna.txt"],
        source_storage=source_storages.Chroma,
        assistant=assistants.ClaudeInstant,
    ) as chat:
        message1 = await chat.answer("What is Ragna in ten words or less?")
        print(message1)
        print()
        print(await message1.content())
        print()
        print(message1)

        print("#" * 20)

        message2 = await chat.answer("What is Ragna in ten words or less?")
        print(message2)
        print()
        async for chunk in message2:
            print(chunk, end="")
        print()
        print()
        print(message2)

asyncio.run(main())

...

 Ragna is an open source framework for building RAG-based AI applications.

 Ragna is an open source framework for building RAG-based AI applications.
####################
...

 Ragna is an open source framework for building RAG-based AI applications.

 Ragna is an open source framework for building RAG-based AI applications.

So the trade-off for the ability to stream the answer is that user needs to await twice. Once to get the message object from the chat and a second time to get its content (either await message.content() or async for chunk in message). Printing the message when it hasn't been awaited yet currently just shows ..., but that also could be a source on confusion.
I'm not a 100% happy with the result. One option might be to put a stream: bool = False parameter on Chat.answer() and unless that is True, i.e. the user explicitly needs to set it, we exhaust the stream inside the function and thus remove the requirement of awaiting again.
Thoughts @nenb?

One thing that also bugs me is that we no longer can access the message.content attribute from the outside. After the message is awaited, we can only access it, by "awaiting Message.content() again" (we'll just return the stored value) or by Message.__str__. I'll have another look at the response classes of HTTP clients on how they do it.

Ok, now I'm actually happy with it:
import asyncio

from ragna import Rag, assistants, source_storages

import dotenv

assert dotenv.load_dotenv()

async def main():
    async with Rag().chat(
        documents=["ragna.txt"],
        source_storage=source_storages.Chroma,
        assistant=assistants.ClaudeInstant,
    ) as chat:
        print("Without stream=True")
        message = await chat.answer("What is Ragna in ten words or less?")
        print(message)

        print("#" * 20)

        print("With stream=True and iterating")
        message = await chat.answer("What is Ragna in ten words or less?", stream=True)

        try:
            print(message)
        except RuntimeError as error:
            print(f"{type(error).__name__}: {error}")

        async for chunk in message:
            print(chunk, end="")
        print()
        print(message)
        print(message.content)

        print("#" * 20)

        print("With stream=True but no iterating")

        message = await chat.answer("What is Ragna in ten words or less?", stream=True)
        print(await message.read())
        print(message)
        print(message.content)

asyncio.run(main())

@pmeier Nice work. The code snippet looks quite sensible and intuitive to me.
Let me know if you need me to look over the PR in more depth (but a quick skim seemed fine to me!)

@peachkeel I could use some input from you on this. You rightfully advocated in #242 to trim the output of the answer REST API endpoint to avoid unnecessary data being sent. I'm currently in the process of deciding what the "message chunk" object looks like if one streams from answer endpoint. As of the latest commit we are using
https://github.com/Quansight/ragna/blob/c9fd83dd3116649cb007cc384cb70cf178623d9a/ragna/deploy/_api/schemas.py#L50-L57
in which the content attribute is just the message chunk. Meaning, for every chunk we transmit the full source object. While already wasteful, this will be greatly amplified by #248, which we agreed to implement. So we need to come up with a better scheme.
One option could be to transmit the chunk on its own for most of the stream and only on the first or last chunk transmit the remaining message data as well. If we go for this, I would prefer sending the message data together with the first chunk for a two reasons:

All the other information is available when we get the first chunk. Thus, there is no reason to not send it to the client right away.
This would match the Python API. In there we have direct access to .sources etc. attributes when the object is created.

Happy for other opinions on this or completely different suggestions on how to handle streaming for the REST API.

Your preference for how to implement this feature is eminently reasonable. The only reason not to send sources with the first chunk might be the added latency. If that's a factor for people, maybe having an option like /chats/{id}/answer?sources=none or /chats/{id}/answer?sources=last would be the best way to go so all bases are covered.

If that's a factor for people, maybe having an option like /chats/{id}/answer?sources=none or /chats/{id}/answer?sources=last would be the best way to go so all bases are covered.

Let's wait for demand on this. Thanks for the input.

With #261 finally merged, adding streaming support for the UI was a breeze. Or so I thought. It kinda works, but we have an horrible "blinking" due to the rapid updates:
Screencast from 2024-01-05 00-13-32.webm
@ahuang any idea where this is coming from or how to fix it?

I have had a look and my understanding is that the flickering is due to the repeated calls to ChatMessage._update_object_pane when updating message.object here.
I've tried various things to fix this but haven't found a proper solution yet.

My first thought is that it looks like CSS being reset then reloaded every time so it jumps around.
Also, this is how we stream internally: https://github.com/holoviz/panel/blob/main/panel/chat/feed.py#L379-L387

@ahuang11

Can you check the browser console to see if that's true?

How would I do that?

If on Chrome, if the stylesheets are updated, it should show flashing / highlighting I think?
I am expecting the styles to be cached, but if not, it could be a bug in Panel.

Also, I find it strange that your Copy / Source Info buttons disappear and re-appear. Are they implemented in ReactiveHTML?

@ahuang11

If on Chrome, if the stylesheets are updated, it should show flashing / highlighting I think?

Previous screengrab was from Firefox. The one below is from Chrome. I see some flashing style attributes. More important, on Chrome the message is not rendered at all until the very end:
Screencast from 2024-01-10 21-21-47.webm

Also, I find it strange that your Copy / Source Info buttons disappear and re-appear. Are they implemented in ReactiveHTML?

They are:

https://github.com/Quansight/ragna/blob/20ecade8992ecf458575a668a944b229e45e6f11/ragna/deploy/_ui/central_view.py#L47-L87
https://github.com/Quansight/ragna/blob/20ecade8992ecf458575a668a944b229e45e6f11/ragna/deploy/_ui/central_view.py#L151-L170

We didn't find a better way to move them below our message than by replacing the original object pane with a column that includes the message and the buttons:
https://github.com/Quansight/ragna/blob/20ecade8992ecf458575a668a944b229e45e6f11/ragna/deploy/_ui/central_view.py#L137-L149

Thanks! Can you expand that flashing style attribute?
If I understand Ragna's codebase correctly, I think rather than calling _update_object_pane repeatedly, through message.object += chunk["content"], I think you can store a _contents_pane internally
_contents_pane = pn.pane.Markdown()
message.object = pn.Column(_contents_pane, ...)  # include the other two things you have

Then, call
message._contents_pane.object += ...
So you're only affecting the contents pane, and not updating an entire column each time.

I've refactored the message class a little after an offline chat with @ahuang11. Previously, we created with a str as object and had a renderer set that turned it into a pn.pane.Markdown down the line. Now, we do this inside the constructor and pass that up to the base class constructor. This has two benefits:

We don't need to overwrite private functionality from the base class to get our buttons in. In case we have a message from an assistant, we just wrap the markdown into a pn.Column right away.
We can create a self.content_pane object that can be updated while streaming the message without rendering anything else anew.

This is the result:
Screencast from 2024-01-16 23-56-44.webm


BUG: Navbar Require changes for better appearence

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
The navbar is in need of significant changes to enhance the appearance of the website, as it is the first element that visitors notice.
Current appearance of the damaged navigation bar.

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@Durgesh-Vaigandla "Kindly label the task under GSSOC24 with the appropriate level."

@Durgesh-Vaigandla, The issue has been resolved in both the Navbar and the Next and Previous sections has been resolved. Their appearance is now looking good. Kindly Merge it into the main.


Add angular-storage definition file

Add npm's angular-storage module from https://github.com/auth0/angular-storage.

angular-storage/angular-storage.d.ts
check list

[ ] is collect naming convention?

https://www.npmjs.com/package/angular-storage
http://bower.io/search/?q=angular-storage
others?

[X] has a test file? (angular-storage/angular-storage-tests.ts or others)
[ ] pass the Travic-CI test?

@mdekrey thanks mate!


set-up

1

This PR seems to be directed toward your own repository. The parent repository shall remain unchanged.


case converter added

Description 📜
Please include a summary of the change and which issue is fixed.
Fixes #<issue_number_here>

Type of change 📝
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[ ] Add a new project
[ ] Modified or enhanced the existing projects
[ ] Improve the readme of any project

Domain of Contribution 📊
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[ ] Project using only HTML & CSS
[ ] Project using HTML, CSS & JS
[ ] Project using ReactJs

Checklist ✅
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[ ] I have performed a self-review of my own code or work.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] My changes generates no new warnings.
[ ] I'm GSSoC'22 contributor

Screenshots / Gif (Optional) 📸
Add the screenshot of the changes you have made

Description 📜
Please include a summary of the change and which issue is fixed.
Fixes #<issue_number_here>
Type of change 📝
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[ ]  Add a new project
[ ]  Modified or enhanced the existing projects
[ ]  Improve the readme of any project

Domain of Contribution 📊
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[ ]  Project using only HTML & CSS
[ ]  Project using HTML, CSS & JS
[ ]  Project using ReactJs

Checklist ✅
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[ ]  I have performed a self-review of my own code or work.
[ ]  I have commented my code, particularly in hard-to-understand areas.
[ ]  My changes generates no new warnings.
[ ]  I'm GSSoC'22 contributor

Screenshots / Gif (Optional) 📸
Add the screenshot of the changes you have made

Please fill the detail of PR template like issue number, project description and so on

Resolve the conflicts as well.

ok the conflict has been resolved . plzzz do merge

well this is my first contribution . I'm not aware of things but if there are no conflicts do merge plzzzzzzzzzzz.

Please mention the issue number.

issue number is 236

is there still anything I'm doing wrong in order to get my PR merged ?

I added the readme file. If all goes right plzz merge my first PR


Wrap data cache reader with BufReader

Description of change
Opening this mainly to observe if there's any improvement, but we should probably merge anyway.
We're currently making individual system calls for reading from the chunks on disk. We should be using buffered readers. Since we're only doing this a little at the start of each 1MiB file, it's probably not that much of an impact.
Relevant issues: N/A
Does this change impact existing behavior?
It doesn't change behavior but may impact performance when using the data cache.
Does this change need a changelog entry in any of the crates?
No changelog entry required, small change to how we read the data cache.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

As expected, nothing special in benchmark results. That being said, we should be preferring buffered reads where possible.

Closing this for now.


Clarify units in settings

Is your feature request related to a problem? Please describe.
The various sizes, offsets, widths, etc. don't say what units they are or what they relate to.
For example I entered 5 in an nameplate offset not knowing what it expected, and it seemed to do nothing.
Describe the solution you'd like
Better documentation.
Describe alternatives you've considered
Sadness.

Added in 1.3


Assigning & returns a parsing error

Using sass-lint cli 1.3.2.
Both these declarations are setting the parser off:
$parent: #{&};
$parent: &;

Stacktrace:
/Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/lib/groot.js:21
    throw new Error('Parsing error' + fileInfo + ': ' + e.message);
    ^

Error: Parsing error at ui/dependencies/core.scss: Please check validity of the block starting from line #10
    at module.exports (/Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/lib/groot.js:21:11)
    at Function.sassLint.lintText (/Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/index.js:36:13)
    at /Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/index.js:91:21
    at Array.forEach (native)
    at Function.sassLint.lintFiles (/Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/index.js:90:9)
    at detectPattern (/Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/bin/sass-lint.js:15:18)
    at Object.<anonymous> (/Users/kdeloumeauprigent/workspace/salesforce/design-system-internal/node_modules/sass-lint/bin/sass-lint.js:77:3)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)

I'll look into whether this is still the case with the current build of gonzales-pe.
Thanks for the report!

Could you drop an example of this in use? Thanks!

Ok, this is hypothetical code but still close to my real world use case:
`ˋˋscss
@mixin parent() {
@if (&) {
$parent: &;
@warn '#{$parent}';
}
}
.foo {
@include parent { bar: baz; }
}
ˋ

So the original issue is fixed, but the example is still failing with the AST 😢

This is fixed in the newly released version v1.11.0. Please let me know if you still have issues. Thanks!


Corrupt labeling of CustomScale at RangeSlider with newest UI5 patch level

OpenUI5 version:
1.71.43
Browser/version:
Chrome 99.0.4844.51
Any other tested browsers/devices:
Same problem exists for firefox, safari
Steps to reproduce the problem:

Add a sap.m.RangeSlider

<RangeSlider id="rangeSlider" range="0,12" min="0" max="12" step="1" enableTickmarks="true"/>

Set a custom scale to sap.m.RangeSlider

this.oCustomScale = sap.ui.core.Element.extend("sap.xx.custom.CustomScale", {
				metadata: {
					interfaces: [
						"sap.m.IScale"
					],
					library: "sap.xx.custom"
				}
});

this.oCustomScale.prototype.getTickmarksBetweenLabels = function () {
  return 2;
};
this.oCustomScale.prototype.calcNumberOfTickmarks = function () {
  return 12;
};
this.oCustomScale.prototype.getLabel = function (iValue) {
  if (parseInt(iValue, 10) === 12) {
	  return "Max";
  } else {
	  return iValue;
  }
};
this.getView().byId("rangeSlider").setScale(new this.oCustomScale());

What is the expected result?
The custom scale gets applied correctly. Like it worked in previous OpenUI5 versions. For example 1.71.25 did work.
But also newest version 1.99.0 does look like expected:

What happens instead?
For the version 1.71.43, the "0" gets rendered double. And instead of just showing "Max" as custom label, it also shows 12.

Any other information?
I customized the css for the labels. If anyone else searches for a temporary fix:
.sapMSliderLabels{
	visibility: hidden;
}

Hello @marc4F
Thank you for sharing this finding, I was able to reproduce the issue.
I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Regards,
Nikolay

Hi @MapTo0
we are stuck for a while at 1.71. Can't update anytime soon.
Could you please fix it for 1.71 too.
Thanks!
Best regards
Marco


Constructor Error when using MarkupExtension

I get the following error:

The type "PackIconFontAwesomeExtension" does not include a constructor that has the specified number of arguments.

When I try to use the following demo material (using the Markup Extension in WPF):
<Button Content="{iconPacks:PackIconFontAwesome StarOutline}" />
My Visual Studio Designer shows an Invalid Markup error message also.
My workaround right now is to use the general ("generic") markup extension:
Content="{iconPacks:PackIcon  {x:Static iconPacks:PackIconModernKind.Settings}}" />
Can you check, if you can reproduce this error?

@eluchsinger Which NuGet package do you use?

The general one, it should be. I will check and report back as soon as possible.

@eluchsinger This should work (self-tested™ with a clean project). Make sure you use the latest version. Also clean bin/obj folders and make a rebuild.

MahApps.Metro.IconPacks, v1.6.0
I don't know, weird. Maybe you can see something? If not, I will just work around it.

@eluchsinger Is this project public? So I can take a look to the complete situation. Which target do you use? AnyCPU, x86, x64?

@punker76 it's not public, but I can give you access to the repo. I target AnyCPU. It's just a demo project in the university, and I am testing out new stuff.

@eluchsinger Thx for the access to the project! I cloned it and restored the NuGet packages. After that I added the Button from your screenshot... and it works 🙈

So another try could be by deleting all your downloaded packages and restore it again. Maybe there is a wrong reference to an old version of IconPacks or whatever...

Sometimes it's also good to delete the designer ShadowCache folder
C:\Users\<USER>\AppData\Local\Microsoft\VisualStudio\14.0\Designer\ShadowCache

Hmm weird effect. Ok I will try that. Thanks for the help though!

Ok. I deleted the designer ShadowCache Folder and it worked! I will remember that trick for the next time. Thanks!


message "java.io.FileNotFoundException: sdk.properties"

why?

https://github.com/twitterdev/twitter-api-java-sdk/issues/45

thx, i just created an empty file sdk.properties in project's root folder then that message was gone


PVC spec inconsistent with k8s

We see that our kubevirt java client generated from kubevirt swagger file fails to unmarshall virtual machines with data volume defined. I investigated the issue and it seems there is a difference in PersistentVolumeClaimSpec definition.
In k8s we have:
    "io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
      "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes",
      "properties": {
        "accessModes": {
          "description": "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
          "items": {
            "type": "string"
          },
          "type": "array"
        },

and in Kubevirt:
   "v1.PersistentVolumeClaimSpec": {
    "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes",
    "properties": {
     "accessModes": {
      "description": "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
      "type": "array",
      "items": {
       "$ref": "#/definitions/v1.PersistentVolumeAccessMode"
      }
     },

Please make the api consistent so we can regenerate our client. @mhenriks reported there was similar issue open in CDI. https://github.com/kubevirt/containerized-data-importer/issues/1084

We found exactly the same issue for 2 more types EvictionStrategy and VolumeMode. Please check whether there are more types defined in this way.

I went over swagger file and I see that there are more types defined like this. It seems like we are generating the file using buggy or different tools than k8s. I checked PodQOSClass and it is defined as string in k8s api definition:
        "qosClass": {
          "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md",
          "type": "string"
        },

but in kubevirt we have PodQOSClass type instead of a string.

@rmohr @fabiand fyi

As discussed offline, @pkliczewski it would be great if you switch kubevirt to use the k8s api generator when you find some time.

Fixed in #3357. See https://kubevirt.io/api-reference/master/definitions.html#_v1_virtualmachineinstancestatus.

Will be part of 0.30.0.
/close


Remove unused annotation parameter imports

What's changed?

This change the RemoveAnnotation recipe/visitor to remove unused annotation parameter imports
Checklist

[x] I've added unit tests to cover both positive and negative cases
[x] I've added the license header to any new files through ./gradlew licenseFormat
[x] I've used the IntelliJ IDEA auto-formatter on affected files

I suspect this might not work when an annotation attribute has a Class type or a primitive type, where the expression references a constant from another type.
Also, there could be static imports to consider. I think the implementation should visit the expression trees and also collect field types to remove imports for.

Thanks @ammachado !


🔧 no-trailing-spaces	has wrong link in description

🔧 no-trailing-spaces | Disallows trailing blank spaces forwards to https://github.com/FabiowQuixada/isml-linter/blob/master/docs/rules/no-isscript.md

Thanks for the tip, @OleksandrMisiuga ! The issue is now fixed.
Thanks!


Plus addressing, Subdomain addressing and identities

Expected behavior
I have currently an account on Fastmail<EMAIL_ADDRESS>which allows subdomain addressing<EMAIL_ADDRESS>is automatically forwarded to user@example.com).
Being able to create many emails on the fly is very useful to track how our email is used by companies (for instance I am giving<EMAIL_ADDRESS>to the company whateveryoulike).
The same thing can also be achieved through "Plus Adressing" (user+whateveryoulike@example.com).
However on K9mail, we have to manually create identities before being able to use them as sender's email (while composing a new email or while replying to).
It would be nice to have a new feature to handle that automatically.
For instance if I received an email addressed to<EMAIL_ADDRESS>if I click Reply, the sender's address can be populate with<EMAIL_ADDRESS>as well instead.
Actual behavior
if I received an email addressed to<EMAIL_ADDRESS>if I click Reply, the sender's address is filled with the default identity.
Steps to reproduce
1.Send an email<EMAIL_ADDRESS>2.Email is automatically forwarded to<EMAIL_ADDRESS>3.Reply to the email within K9
4. Sender's address is the default identity<EMAIL_ADDRESS>instead of<EMAIL_ADDRESS>Environment
K-9 Mail version:
v5.203
Android version:
6.0
Account type (IMAP, POP3, WebDAV/Exchange):
IMAP

Duplicate of #935


Project: Symptom Checker

Project Name
Symptom Checker
Description
Our RAG app is a symptom checker that helps users identify potential diseases based on the symptoms they input. We utilized publicly available medical datasets and integrated APIs as our primary data sources. Modifications were made to enhance the data ingestion and prompting flows to improve the accuracy of disease predictions. This app is beneficial for individuals seeking quick insights into their symptoms and healthcare professionals looking for a tool to assist in preliminary diagnoses.
Technology & Languages

[X] JavaScript
[ ] Java
[ ] .NET
[ ] Python
[ ] AI Studio
[ ] AI Search
[ ] PostgreSQL
[ ] Cosmos DB
[ ] Azure SQL

Project Repository URL
https://github.com/Noel9907/Rag_Hack
Deployed Endpoint URL
No response
Project Video
https://drive.google.com/drive/folders/1J0W_e94er7qjHSvIPuPwcMCrwxeZSXK0?usp=drive_link
Team Members
Vyshnav Pradeep( @vyshnavpradeep2004) , Rahul R P (@rprahul07) , Vedha V K(@vedhavk) , Noel S (@Noel9907 )  , Soorya A P ( @Soorya005)

Hello @Soorya005, thank you for participating in RAG Hack!
The team is working hard to distribute badges. Please have each team member fill out this form:
aka.ms/raghack/badge-dist
Thank you!


Add explanatory docs on catalog database

Goals:

Give overview of database schema
Capture examples motivating parameter and num, added in https://github.com/bluesky/tiled/pull/584

Good note. I moved the diagram (replacing it with a link in its original location). I added a one-line description of each table below the diagram. It all fits on one screen. Seems good to have.

(CI failure on Python 3.11 is #715, unrelated.)


Time tracking only updates on second attempt

Hi. I checked if I have the latest version and it seems that I do, version 7.4.11. I have to do everything two times for it to appear. For example I assign a project and a client. When I close the menu window it does not stick. I have to open the menu window again, select a project and a client again and then it works. This also happens with duration, time range etc. It's pretty annoying. Especially when you forget and you think you are tracking time but then you are not.
Also the time suggestions are pretty bad. If I add time tracking and enter start time 8:00 PM and I want to end it at 9:30 PM it only works if duration is not set. Duration is always set if I have changed the time range before. So let's say I have a duration of two hours then it disregards my input in the time range and sets the time from 8:00 PM to 10:00 PM. I think time range fields should have priority.

I have this same issue and it's really frustrating, especially if trying to enter times from the day before. As mentioned above this happened with the latest update.

@naglalakk
The latest update that addresses the saving issue is available on our website (7.4.52). The version on the AppStore is a bit behind. We'll try to get the AppStore version up to date. If you want the newest version that is updated faster I suggest you use the version from our website. It has automatic update and gets all the new stuff faster. https://support.toggl.com/toggl-on-my-desktop/
As for the second part:

Also the time suggestions are pretty bad. If I add time tracking and enter start time 8:00 PM and I want to end it at 9:30 PM it only works if duration is not set. Duration is always set if I have changed the time range before. So let's say I have a duration of two hours then it disregards my input in the time range and sets the time from 8:00 PM to 10:00 PM. I think time range fields should have priority.

There is a setting that should make range field a priority
( Change duration when changing start time ):


How to speedup queue delivery

Hey,
Is there any way to speedup the delivery process? I'm looking for something like...2 messages per second.
Any hints?
Thank you,
Razvan

have you added more workers as per https://github.com/atech/postal/issues/290 ?

Can you please let me know what is the difference between "quantity" and "threads"? I couldn't find anything in the Docs.

Each worker is a process on the system and each worker process can have many threads.
The default is for one worker so you probably want to increase the quantity to begin with.
We haven't increased the threads per worker yet but read this issue for some helpful information https://github.com/atech/postal/issues/235


added details for the swiftui topic

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection
[ ] Something that does not neatly fit into the binary options above

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[ ] Content (and my changes are in index.md)

Please replace this line with an explanation of why you think these changes should be made.

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

The SwiftUI framework has grown significantly since release and is generally thought to be the future of app development on Apple platforms

Something that does not neatly fit into the binary options above

[ ] My suggested edits are not about an existing topic or collection, or at least not a single one
[ ] My suggested edits are not about curating a new topic or collection, or at least not a single one
[ ] My suggested edits conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Please replace this line with an explanation of your proposed changes.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

👋🏾 @ArnavMotwani It looks like you have a CI build error. Are you able to take a look?

Ah, I'll have to find a image with a higher resolution. Should I make a new pull request?


Only call setActiveContentItem if item to be set is not already active.

In current state, setActiveContentItem sets active item even if item to be set is active already.
This PR prevents this behaviour.

Thanks for your ptach; manually merged in d56cf73 after handling a few minor merge conflicts.


gRPC: authorize requests

Apply a similar approach to the CQL module: store the authenticated user in the connection's clientInfo, then serialize it into the custom payload for every request.
This allows us to leverage the existing checks in StargateQueryHandler.authorizeByToken.
No test yet but I think we can do something like JwtAuthTest. I'll push a follow-up commit.

FYI this will do authz but not the same sort of RLAC as the other HTTP services do.

FYI this will do authz but not the same sort of RLAC as the other HTTP services do.

With this PR gRPC is going to be on par with CQL as far as authZ goes, right?

FYI this will do authz but not the same sort of RLAC as the other HTTP services do.

With this PR gRPC is going to be on par with CQL as far as authZ goes, right?

Correct. gRPC is closer to CQL than the other HTTP services: requests come in as plain query strings, so in order to perform fine-grained RLAC we'd have to parse them.

I think we can do something like JwtAuthTest

Actually no, that test delegates all checks to the internal Cassandra authorizer, so it does not cover the code we're interested in here.
I don't think we can write that test with the current test infrastructure, none of the built-in authorization services handle table-level permissions.


Readme.MD broken links

Latest Release and All Releases buttons return 404 page.

Those aren't actually supposed to be links. They're just download stats shields from www.shields.io.


What is the correct way to sample a task in the regression case to avoid overfitting (current way might overfit)?

I want to raise awareness that the current way pytorch-meta (and perhaps related algorithms) sample tasks in regression might give skewed results (over optimistic).
If one sample a function as a task then the inner adaptation loop could overfit because it is only seeing examples from a specific function. This does not happen in classification because we sample N classes to define a task. But we do not sample N functions to sample a task in regression.
In the past I've made the mistake of defining a class as a single class and I got an accuracy of 100% every time in the query set (even when the raw image was fully random). This was because the inner loop just change the params to output that class label no matter what (since it only saw example from that class).
I wonder if this might a similar problem for regression. Perhaps sampling N functions might be safer and give more realistic results?
I documented this in this SO question:
https://stats.stackexchange.com/questions/472353/what-is-the-standard-way-to-define-task-in-meta-learning-for-few-shot-classifi
Code where torch-meta samples a single task as a function:
https://github.com/tristandeleu/pytorch-meta/blob/5ab670d674bf1bf063e206dd046f44d73deaec25/torchmeta/toy/sinusoid.py#L83

I think there is indeed some confusion in what you describe as to what we call a task, and the process of adaptation.

The goal of the inner-loop (the adaptation) is to produce a predictor adapted to one specific task. The algorithm during the inner-loop only sees examples from that one task it is trying to solve, and no other task. Seeing examples from that specific task doesn't mean that you are overfitting, this is simply the goal of the inner-loop
In the context of regression (at least for the toy regression tasks available in Torchmeta), a task is a function. Given a task/function f, you can sample data to put in your support set as pairs (x, f(x)). The goal of the inner-loop here is to recover this function f using data from the training/support set. The one specificity of Torchmeta is that there is a one-to-one correspondence between a task (the function) and a dataset: if you pick the same task twice (this has zero probability of happening), then you'll get the same support and query datasets. This is to ensure reproducibility.

I suggest you have a look at the ICML 2019 tutorial on meta-learning, this might make things clearer. These general questions are not specific to Torchmeta, and I suggest you ask them on Stack/MathOverflow (like the question you linked to) where you'll probably get more answers.

Just two comment:

I understand the point of inner loop adaptation.
I guess we just disagree on the definition of tasks for regression (wether Chelsea defines it the way you did I am arguing is wrong).

Nevertheless, thanks for the link to the tutorial, looks useful (though from skimming it seems they are re-using slides from talks I've already seen).


Update CONFIG-COMPOSER-HLEXPLORER.md

Signed-off-by: Aviral Agrawal<EMAIL_ADDRESS>

Thanks for the contribution! However, this is a read-only mirror. please read the contribution guide. Also, feel free to join us on chat!


Launcher crashes on Windows 11

We still have reports of users with crashes using the latest version of the launcher.
https://user-images.githubusercontent.com/7646450/174849860-d6df0c18-cd0b-4665-a066-56f169ebab99.mp4
That user didn't have a crash dump either.

Its been a while since we got reports of this happening, will close it until we have more information or repro steps


Fixed Documentation regarding installation of kfctl on windows using WSL

I have added a note in AWS, AZURE, and IBM kubeflow installation docs regarding the installation of kfctl on windows using WSL as it is available for Linux and macOS users.

/assign @Bobgy

/assign @PatrickXYS

Thanks, @sulabh2000
I want to confirm whether we succeeded in test windows by using WSL or not, in a word, do we have a manual test for this?

Thanks, @sulabh2000
I want to confirm whether we succeeded in test windows by using WSL or not, in a word, do we have a manual test for this?

yes, I have tested kfctl installation on wsl, and it's working fine. Any user working on windows can install wsl as given in Microsoft documentation and then install kfctl with it's help.

@8bitmp3 ok...I will do all the changes suggested by you.

/assign @Bobgy

/assign @PatrickXYS @sudivate @Tomcli

@8bitmp3 done with linting..please check!

Overally lgtm on AWS side

Thanks you!
This PR covers three groups, each of which have their OWNERS - please chase them to give you the /approve label. For future PRs, I'd suggest to submit one PR for each workgroup to make things move faster.
As the bot mentioned earlier, check the OWNERS files under (links above) for get the right approvers to OK this work, so this PR can get merged.
content/en/docs/aws/OWNERS
content/en/docs/azure/OWNERS
content/en/docs/ibm/deploy/OWNERS

/lgtm
/approve

Thanks @PatrickXYS
/lgtm on my side
PTAL and /approve if all is 👍:
/assign @eedorenko @berndverst @animeshsingh
Thanks all!

thanks, everyone...waiting for the approval from @berndverst @eedorenko @animeshsingh

/approve /lgtm

@animeshsingh Please check it..And approve it if everything is fine.

Hi, @animeshsingh waiting for your approval.

@Tomcli @pvaneck @adrian555 Can you take a look at IBM change?

thanks @sulabh2000, LGTM on my side

Thanks @Tomcli Can you please reply with /approve so this can get merged? 👍

/approve

@Tomcli looks like @animeshsingh is the sole approver for this IBM workgroup. I'd propose your team adds 1 more approver to OWNERS to speed up future PR reviews 🙏

Thanks, everyone!!


[Add] Let's Talk Animated Button

Details
I would like to add a "Let's Talk" Animated Button.
Screenshots

Type of Contribution

[ ] Update to an existing Animated Button
[X] Adding a new Button
[ ] Resolving a bug
[ ] Proposal to the Repository
[ ] Changes related to documentation or README.md
[ ] Other Changes

Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I am willing to work on this issue
[X] I am a GSSoC'23 contributor

@Souravvmishra @Spyware007 please assign this task to me


Update gulp-lesshint to include universalSelector linter

Would it be possible get an update to include the option to enable or disable the universalSelector rule like in lesshint?
See the PR for lesshint: https://github.com/lesshint/lesshint/pull/336
Thanks!

Clearing your node_modules folder should do it, since gulp-lesshint depends on lesshint ^3.0.0 :)

Does that mean I have to change the universalSelector to false in the defaults.json in the lesshint package or can I access it somewhere in gulp-lesshint?

No, just set it to whichever value you want in your local .lesshintrc and it'll pick it up.

Excellent that worked. Thank you!


Gatsby tinacms manual init

Original work by @DaniTulp.
Merged into this branch to run CI and do one more change.

[x] Move CMSConfig["sidebar"] definition to tinacms

@all-contributors please add @DaniTulp for code


Router unable to withdraw funds

Describe the bug
This router he cant withdraw with metamask
https://connextscan.io/router/0x49a9e7ec76bc8fdf658d09557305170d9f01d2fa
Said that in his other router this happened but it was fixed
I can connect you if it helps
To Reproduce
Steps to reproduce the behavior:

Go to '...'

Additional context
Add any other context about the problem here.

need to know the chain they're trying to withdraw from, and ideally the asset as well (though that is less important)

trying to withdraw from optimism.
looking at the onchain config, I see this:
config for: 0x49a9e7ec76bc8fdf658d09557305170d9f01d2fa
- owner    : 0x52a568eaACD288A984bbaE0c421099626A6e7735
- recipient: 0x8c3a8f18870E618562d359f25F6A2B9FD9AfFC86

I set up a router on testnet with some liquidity and the following config:
config for: 0xF39085c993fc37C16e07Cee0375Fb3eEA43D3A55
- owner    : 0xa2Ee8DCd2A8A3A54Cf37F6590E5108BbE502B006
- recipient: 0xF39085c993fc37C16e07Cee0375Fb3eEA43D3A55

Then tried to withdraw a portion of the liquidity on the connextscan UI while being connected with the owner in the config. This transaction succeeded: https://goerli.etherscan.io/tx/0x53806db0b501fcde5fed7f548b530774eb00742a8f10dfdc7a68edf04c97c651
Trying the max button also worked, but could be because I have artificially round numbers

worked for router without changes, could be metamask connection issue.


cmd/dist: building with GOFIPS140=latest fails with unexpected stale targets

Go version
go version go1.24rc1 darwin/arm64
Output of go env in your module/workspace:
GONOPROXY='github.com/FiloSottile/*,filippo.io/*'
GOPROXY='https://proxy.golang.org'

What did you do?
GOFIPS140=latest ./make.bash

What did you see happen?
go tool dist: unexpected stale targets reported by /Users/filippo/go+go1.24/pkg/tool/darwin_arm64/go_bootstrap list -gcflags="" -ldflags="" for [cmd/asm cmd/cgo cmd/compile cmd/link cmd/preprofile] (consider rerunning with GOMAXPROCS=1 GODEBUG=gocachehash=1):
	STALE cmd/asm: not installed but available in build cache
	STALE cmd/cgo: not installed but available in build cache
	STALE cmd/compile: not installed but available in build cache
	STALE cmd/link: not installed but available in build cache
	STALE cmd/preprofile: not installed but available in build cache

Full log https://gist.github.com/FiloSottile/503e0c566fb76ec4decf5a753da72efd
What did you expect to see?
A successful build resulting in a toolchain with GOFIPS140=latest baked in, per #70200.

Like all the other target configuration variables (for example, GOOS, GOARCH, GOARM, CC, CGO_ENABLED, ...), the GOFIPS140 setting during make.bash is "baked" into the toolchain as the default setting for builds with that toolchain.

/cc @rsc

Related Issues

cmd/go: staleness-related failures in make.bash #22531 (closed)
cmd/dist: toolchain3 fails in external linking mode due to stale targets #53865 (closed)

Related Code Changes

cmd/dist: add GOFIPS140 setting

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

I see the problem. The solution not as much, but I'll figure it out.


Password encryption in settings.txt file

Hi,
We are using version 1.8.1 of Orchard, and our connection string is in the Settings.txt file as plaintext. We now have a requirement to encrypt this connection string. Are there any subsequent versions of Orchard that supports this?
Also, we could not find version 1.8.1 source code in github. Could you please provide the link?
Thanks,
Anish

You can create a custom implementation of IShellSettingsManager like this one: https://github.com/OrchardCMS/Orchard/blob/4043df7a0d158dfc70cea65480b61fbd8191bbb3/src/Orchard/Environment/Configuration/ShellSettingsManager.cs
The during load/save events you can use a private key to do the encryption.
There are tags for each release: https://github.com/OrchardCMS/Orchard/tree/1.8.1

@areghunandanan please let us know if you've got something regarding connection string encryption, I'll close this for now.


Elixir 1.12.0-rc.1

Hi - When trying to compile with 1.12.0-rc.1 I get the following error:
== Compilation error in file lib/geocoder/worker.ex ==
Error: ** (CompileError) lib/geocoder/worker.ex:82: function tap/2 imported from both Monad and Kernel, call is ambiguous
    (elixir 1.12.0-rc.1) expanding macro: Kernel.|>/2
    lib/geocoder/worker.ex:82: Geocoder.Worker.run/3
    (elixir 1.12.0-rc.1) lib/kernel/parallel_compiler.ex:319: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
could not compile dependency :geocoder, "mix compile" failed. You can recompile this dependency with "mix deps.compile geocoder", update it with "mix deps.update geocoder" or clean it with "mix deps.clean geocoder"

hey @knrz - i didn't spot a new release yet, is there anything blocking?

just released 1.1.2

Thanks


Generate CRD example

It may not be the optimum way to generate but better than nothing I believe.
cc @nmagnezi @rollandf

Not sure why but there still seems to be a CI failure.

CI is a bit flaky. I don't know the exact reason. I'm on a bad strake with CI runs recently, CIs just hate me.
I'll re-run it if it fails.


fix(audit): list event meta api add export result set

Summary

audit meta list  add export result set
Solution Description

return audit list add EXPORT_RESULT_SET

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.尧彬 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Api implementation

Fixes for issue #4 ready for merge.

for now the glue to send json is not committed yet, but that will be next thing to commit. It works but i need to clean it up and integrate it with the rest of the code.


Migrate the corporate content PP upload from Support app

The monthly upload of corporate content stats to the PP used to live
and run within the Support app, but belongs within the Support API,
closer to the data.
This upload was originally added to the Support app in https://github.com/alphagov/support/pull/156.
This data supports provides data to the feedback modules of the
performance platform GOV.UK web traffic dashboards
(https://www.gov.uk/performance/web-traffic).

Do this and https://github.com/alphagov/support/pull/233 need deploying together?

Do this and alphagov/support#233 need deploying together?

The upload runs on the 1st of every month, so the timing is very forgiving.


Edit in browser

please add "Edit in browser "
now this option is not enabled,
at least tell me know how to enable this option. of course I know for enabling this button we have to set this properties (UserCanWrite, HostEditUrl, HostViewUrl, EditModePostMessage) but it doesn't work.
please help

You need to make sure SupportsUpdate and UserCanWrite are set to true.
Wopi only supports editing a few specific formats. For example, .doc is not supported.

@ethendev
Thank you for your response
both of those properties are true, Edit in browser button is enable but, when in I click it, it doesn't redirect to edit url. of course I use for docx format.

@HSan88
I think there is something wrong with your office online server configuration. You can refer to office installation guide to check whether the configuration is correct.


change default password

I can't find documentation anywhere on changing the default password. I installed through the umbrel app store.

The password is set here: https://github.com/getumbrel/umbrel/blob/master/apps/lightning-terminal/data/.lit/lit.conf
You should be able to change it in that file directly on your Umbrel. Though it might change back if the software is updated.
Closing this as the documentation would need to be added on Umbrel side.


Load issue? Browser instance closed automatically when several client connect to it with headless mode

Hi, I have a performance issue when using puppeteer to do a large amout of page navigation.
Environment:
CentOS7
Puppeteer 1.0
Google Chrome 65.0.3325.162
First, in order to save memory and reuse browser instance,I just launch browser with headless mode and then get browser wspoint('ws://<IP_ADDRESS>:35487/devtools/browser/c996362b-12a5-4928-aff7-ce43b1296c32') by calling browser.wsEndpoint();
Second, I created a 'app_content.js' file just like this:
const puppeteer = require('/usr/local/lib/node_modules/puppeteer');
var arguments = process.argv.splice(2);
const url = arguments[0];
(async () => {
      const browser = await puppeteer.connect({'browserWSEndpoint': 'ws://<IP_ADDRESS>:35487/devtools/browser/c996362b-12a5-4928-aff7-ce43b1296c32'});
const page = await browser.newPage();
page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36');
await page.goto(url);
console.log(await page.content());
browser.disconnect();
})();

the nodejs file works fine when you manually call it with url param
Finally,I have a java program which running in a multi-thread mode, thread is controlled by FixedThreadPool and each thread calls the 'app_content.js' independently. After ThreadPool finish successfully running about 10 thread, the browser is closed unexpectedly.
I have tried many times and the browser always closed in the final.I guess maybe google chrome is designed not support for multi-page navigation in the same time? or any performance limit for using puppeteer communication with chrome?

i don't know if it's related to your problem but both setUserAgent and browser.disconnect are promises and both should be run with the await keyword.
Also worth adding a try catch on both files to see if you can pinpoint the error.

Seems like it hausted all system memory and killed by centos.
Just close the issue,thanks~


[$500] Chat-No unread marker when chat with the latest text is from you and marked as unread from LHN

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.2-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Launch New Expensify app
Mark a chat where the latest message is not from you, as unread
Open the chat
Note that it shows the unread marker
Send a few messages to the chat
Return to LHN
Long press on the chat and mark it as unread
Open the chat

Expected Result:
The unread marker will be displayed
Actual Result:
The unread marker is not displayed. This only happens when the latest message comes from the current app user
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/8cc92344-0e78-4cfd-9024-50e4823be06a
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01c2b3a63cdf2318c4
Upwork Job ID:<PHONE_NUMBER>139188736
Last Price Increase: 2023-11-29

Proposal
Please re-state the problem that we are trying to solve in this issue.
No unread marker when chat with the latest text is from you and marked as unread from LHN.
What is the root cause of that problem?
https://github.com/Expensify/App/blob/14abfa118d473baeba163f15e6042180892f71cf/src/pages/home/report/ReportActionsList.js#L341-L343
Currently, shouldDisplayNewMarker function prevents showing unread marker if the sender of last message is the current app user.
As a result, we can't see unread marker if the current user sent the last message.
What changes do you think we should make in order to solve the problem?
We might delete this code part to show unread marker although the last messgae is sent by the current user.
What alternative solutions did you explore? (Optional)
N/A

cc: @MonilBhavsar

Thanks for the mention. I'll take a look

This issue is only reproducible on Mobile devices

I'm still confused about the expected result. I think we shouldn't allow the user to unmark their message.

We need to allow users to unmark their own messages. Many chatting apps including slack has this ability. Reason: in case user wants to catch up from that later

Thanks @MonilBhavsar, for confirming it.
@akamefi202 @dukenv0307 Why is it working fine on the Web and Desktop?
I found a different result for the messageManuallyMarkedUnread value between Web and mWeb. On the Web, we have the value timestamp, but on the mWeb it's remains 0.
https://github.com/Expensify/App/blob/089ddf472cc1fb125d3b1153ede647f2c8737b5d/src/pages/home/report/ReportActionsList.js#L341-L343
I think that might be why it's checking the marker it's not displayed.

@mollfpr Because LHN and Report page is separated in mobile app.
So Report component dismounts & remounts when the user navigates to LHN and back to Report page.
And this resets messageManuallyMarkedUnread as 0.
https://github.com/Expensify/App/blob/0863b6a36a1c4dce755b55d1922a669d5b2bd7f8/src/pages/home/report/ReportActionsList.js#L219-L220

Can you also confirm that once unmarking their own message, we should do the same as Slack does, which is to mark the "latest message that doesn't come from current user" as unread?
(Slack will not show the marker above current user's message)

Pretty sure this has changed recently with Slack. One was able to mark any message as unread in slack previously. I think we should keep that out of scope for now, and handle in new issue. Not a priority though.
For this issue, we can mark the last message as read like Web

@akamefi202 Do you propose removing the check for the current user accountID?
https://github.com/Expensify/App/blob/1682be47d71b5a84c20c2396e833c0a015829252/src/pages/home/report/ReportActionsList.js#L340-L343

Proposals in review...

That line you mentioned in the code is for - we don't want to display unread markers above sender's message, except unread message. In unread message, currently user can mark any message as unread, including their own messages.

Also why don't we fix so that it aligns with that intention and also aligns with Slack? https://github.com/Expensify/App/issues/31748#issuecomment-1823817127 is quite straight forward.

It is currently out of scope of this issue and we would need a major change for that? How straightforward are the code changes? Do we need to iterate over report actions to find the last message from the recipient?

Okay, let's do it 👍

@mollfpr, @dukenv0307's proposal looks good to me. let me know what do you think of it

@MonilBhavsar The proposal from @dukenv0307 looks good to me too.
🎀 👀 🎀 C+ reviewed!

@mollfpr have you had a chance to review this yet?

@miljakljajic Yup, we still discussing the other case for the mark to show.

@mollfpr seems like the offer expired without being accepted - can you accept the new offer and let me know here? Then I can get it paid right away.
@dukenv0307 - paid!

@miljakljajic Could you give the payment summary for the manual request in NewDot? Also, I'm completing the checklist now.

[@mollfpr] The PR that introduced the bug has been identified. Link to the PR:
[@mollfpr] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

No offending PR here. We do some improvement on the marking the user own message.

[@mollfpr] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

The regression step should be good.

[@mollfpr] Determine if we should create a regression test for this bug.
[@mollfpr] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Launch the New Expensify app
Mark a chat where the latest message is not from you as unread
Open the chat
Note that it shows the unread marker
Send a few messages to the chat
Return to LHN
Long press on the chat and mark it as unread
Open the chat
Verify that the unread indicator appears in the latest report action that doesn't come from the current user.

Did the test case @miljakljajic.

@mollfpr , of course - payment summary below:
@mollfpr is owed 500 USD for their work as a C+ on this issue.

$500 payment approved for @mollfpr based on comment above.

FYI: there was regression which was caught during regression period

@dukenv0307 please check the regression linked by @situchan. Thank you!

Seems this issue is not fully fixed please this issue https://github.com/Expensify/App/issues/35122

@MonilBhavsar what's your thoughts on this one?

@MonilBhavsar can I get some feedback on @Santhosh-Sellavel 's comment above - is https://github.com/Expensify/App/issues/35122 a regression from this issue?

Seems this issue is not fully fixed please this issue https://github.com/Expensify/App/issues/35122
@Santhosh-Sellavel this issue involves marking the rpeort as unread from LHN and other issue does not involve marking as unread flow?
@dukenv0307  @mollfpr any thoughts on this.
Also cc @situchan since you're looking at the other issue.

Yes exactly, that's what I thought.


Support for AthenaEngineVersion option in Athena workgroups

Support for AthenaEngineVersion option in Athena workgroups

Hi @pdpark thank you for opening this. As soon as the upstream issue is resolved, we will automatically pick it up in the following release of the Pulumi provider. As there's nothing specific to be done here, I'll close the issue and let's track upstream.


[MEDIUM] graphql Uncontrolled Resource Consumption vulnerability

Github reported a new dependabot security alert at: https://github.com/cdk8s-team/cdk8s-core/security/dependabot/14

Closed via https://github.com/cdk8s-team/cdk8s-core/pull/1709


feat: More specific error messages

Hi, thank you for this awesome plugin! I faced the issue, that the payment sheet wasn't showing up. It turned out, that I missed to add the Apple Pay Capability to the Debug Section in Xcode. I only added it to the Release Section. The error that showed up was the following:

Also merchantCapabilities is set to optional in typescript, but if it's missing, another error appears.
I had no clue, that merchantCapabilities could be the problem here:

This error messages aren't very specific. Also, the messages are displayed in the language of the device. Instead of using error.localizedDescription, please use a more specific way to display error messages. This would make this plugin perfect! :)
This was a good support for me: https://stackoverflow.com/a/53231548
Best regards,
Marius

@kondratk also supportedNetworks should not be optional.. I used the stackoverflow link provided by @mariusbolik and it was really helpful..


chore: run dos2unix on start-container.sh to overcome CRLF issues

Adds a call to dos2unix on the start-container.sh file in app/Dockerfile to overcome issues with the line endings being converted to CRLF on windows.
Context: https://twitter.com/kviglucci/status/1251678252999028737
Cheers :)

The install command here would pause the build since there's no -y flag, but also I think I'd like to handle this on our end rather than install more deps into the container (if we can!). Is this still an issue in the latest Vessel?


make the Counter util use BigInt to create 32bit or larger counters

Related issue: #1362

Type of change: feature request

Impact:  API addition (no impact on existing code)

Development Phase:   implementation
Release Notes

It seems impossible to do this without breaking source compatibility because of the type of Counter.n, but the source incompatibilities could be minimized by defining an alternate constructor and alternate companion-object apply method that accept Int.

It seems impossible to do this without breaking source compatibility because of the type of Counter.n, but the source incompatibilities could be minimized by defining an alternate constructor and alternate companion-object apply method that accept Int.

I'm afraid I don't follow, could you give me an example as to when the Counter.n would cause an incompatibility issue? I'm running this version in my project so it would be very kind of you to tell me when it does work

I mean that existing code that access the n field of a counter and expects it to be of type Int will break.

Sure, but I was thinking that unless you're explicitly type checking Counter.n is of type Int, in which case it will break. Otherwise the arithmetics doesn't break, right?

Arithmetic itself is OK, but passing it to a function checks the type, e.g.
scala> def foo(x: Int) = x
foo: (x: Int)Int

scala> foo(BigInt(1))
<console>:13: error: type mismatch;
 found   : scala.math.BigInt
 required: Int
       foo(BigInt(1))

Sure, that makes sense. I wasn't really thinking about that. Thanks a lot for your help.

Just to clarify, I don't think there's necessarily a need for you to be closed (and I don't think Andrew was advocating for that), just that the PR may want to explore what Andrew is talking about to minimize backwards incompatible breakages.
APIs can and do break, just there's an effort to try to be disciplined about it. The 3.3 merge window is basically closed, but we can aim to get something like this, with any breakages, in for

Yeah, what @seldridge said.  Counter.n seems like a tenable API breakage, kind of like what we did for Mem a while back.  Primarily, I was trying to point out that we can obviate the API breakages for the constructor and companion object.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@seldridge @aswaterman @albert-magyar I reopened the PR, let's think of a better way to handle the API change. I only closed it because I think it requires a significant amount of change to the existing API that I didn't really think through, but maybe we could lessen the impact.

I guess we should wait for others to opine on the acceptability of changing n's type to BigInt.

 All committers have signed the CLA.

I think we can use @albert-magyar 's suggestion on the accompanying issue to keep it backwards source compatible. If so, this can be 3.3.x.

Here is a quick thought.
Still use the companion object for counter, but have another class for BigCounter
The file would look like this
class Counter(val n: Int)
class BigCounter(val n: BigInt)
object Counter {
def apply(n: Int): Counter = Counter(n)
def apply(n: BigInt): BigCounter = BigCounter(n)
}

This should be easy to implement ( albeit a little dirty ) and keep backward compatibility.


Change position of widget icons

Description
Currently, widget icons are shown on the upper left side of widget. Also, if widget title has more than one line, it is being centered between those lines. We agreed that it does not look good in such case.
In the scope of this task

Move widget icons to the right side
If title has more than one line, icon should be shown in the first line

Tested & accepted


Cannot override config per platform

Bug Report
Ionic version:

[x] 4.x
Current behavior:

We currently provide ways to set certain config options on app boot (https://github.com/ionic-team/ionic/blob/master/core/src/utils/config.ts), but we do not provide a way to do it on a per-platform basis.
We used to provide this functionality in v3: https://ionicframework.com/docs/v3/api/config/Config/
Expected behavior:

I would expect to have the ability to override config options on a per-platform basis.

@liamdebeasi any update on this one? This per platform config really comes in handy.

We use workaround overriding ionic config based on platform using APP_BOOTSTRAP_LISTENER.
However,  Config.set() method is deprecated (https://github.com/ionic-team/ionic/pull/19104).
So we hope this feature will be included in ionic 5.

Thanks for the feature request. This has been resolved via https://github.com/ionic-team/ionic/pull/21308, and this feature will be available in an upcoming release of Ionic Framework.
When the feature ships, the documentation will be updated to reflect this new functionality. Here is an example of how you would do this in your app:
Ionic Angular:
import { isPlatform, IonicModule } from '@ionic/angular';

@NgModule({
  ...
  imports: [
    BrowserModule,
    IonicModule.forRoot({
      animated: !isPlatform('mobileweb') // Disable animations when running in a mobile browser
    }),
    AppRoutingModule
  ],
  ...
});

Ionic React:
import { isPlatform, setupConfig } from '@ionic/react';

setupConfig({
  animated: !isPlatform('mobileweb') // Disable animations when running in a mobile browser
});

You can view all the docs changes here: https://github.com/ionic-team/ionic-docs/pull/1423. They contain several more usage examples that may be helpful when developing. For any bugs you encounter when trying to use these utilities, please open a new issue. Thanks!


Inject kubeclient to snow provider

Issue #, if available:
#1106
Break down the POC upgrade PR #1968
Description of changes:
Inject kubeclient to snow provider thats sharable between cli and controller.
Testing (if applicable):
unit tests
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/override codecov/patch

/override tide


Help: setParams in nested navigators

Hey, community!
I want to make this structure:
Stack
-- Modal
-- Tabs
     --Tab1(Stack)
         -- Screen1
         -- Screen2
     --Tab2(Stack)
         -- Screen3
         -- Screen4

I tried to setParams on Screen3 (componentDidMount). But when I go to Tab2, params on Screen3 disappear (because of action NAVIGATE to Tab2)
How to save params on Screen3 or catch action when user go to Tab2?
Thanks in advance.

I'm having this issue too with a stacknavigator nested in each tab of a tab navigator. trying to setparams of the tab navigator on some screens so i can hide the tabs sometimes.

Duplicate of #80 and #42


Can't install calibre

info of calibre is wrong

PS > scoop search calibre
'extras' bucket:
    calibre-normal (3.39.1)
    calibre (3.39.1)

PS > scoop info calibre
Name: calibre
Description: Powerful and easy to use e-book manager.
Version: 3.39.1
Website: https://calibre-ebook.com/
License: GPL-3.0 (https://spdx.org/licenses/GPL-3.0.html)
Manifest:
  D:\scoop\apps\scoop\current\bucket\calibre.json
Installed:
  D:\Scoop\apps\calibre\3.39.1
Binaries:
   calibre-portable.exe

The path of manifest   D:\scoop\apps\scoop\current\bucket\calibre.json is wrong.

And when I try to install calibre I got

PS > scoop install calibre
WARN  Scoop uses 'aria2c' for multi-connection downloads.
WARN  Should it cause issues, run 'scoop config aria2-enabled false' to disable it.
Installing 'calibre' (3.39.1) [64bit]
Loading calibre-portable-installer-3.39.1.exe from cache.
Checking hash of calibre-portable-installer-3.39.1.exe ... ok.
Running installer... done.
Linking D:\Scoop\apps\calibre\current => D:\Scoop\apps\calibre\3.39.1
Creating shim for 'calibre-portable'.
Can't shim 'calibre-portable.exe': File doesn't exist.

though the file is just there.

I have the same problem.

I'm getting the same issue.
PS C:\Windows\system32> scoop search calibre
'extras' bucket:
    calibre-normal (3.40.1)
    calibre (3.40.1)

PS C:\Windows\system32> scoop install calibre
Installing 'calibre' (3.40.1) [64bit]
calibre-portable-installer-3.40.1.exe (54.8 MB) [=============================================================] 100%
Checking hash of calibre-portable-installer-3.40.1.exe ... ok.
Running installer... done.
Linking ~\scoop\apps\calibre\current => ~\scoop\apps\calibre\3.40.1
Creating shim for 'calibre-portable'.
Can't shim 'calibre-portable.exe': File doesn't exist.

Fixed in https://github.com/lukesampson/scoop-extras/pull/1834


Use Ansible in place of remote-exec?

It might make more sense to switch to a tool like Ansible in place of remote-exec to do post-provision configuration

No need for Ansible - cloud-init works much better.
Closed by 3d1860c42e07e0a59edc3f497b81171a2e6722ad


Migrate from ESLint + JSCS to just ESLint

http://eslint.org/blog/2016/04/welcoming-jscs-to-eslint

Please let us know why you are removing JSCS as it is good linter.

The JSCS team released 3.0 and announced they were merging the teams with ESLint, see the blogpost posted in the OP.
Agree @sscotth, we should do this sometime. It's imo not super high priority since it works, but I'd merge a PR making this happen!

Agreed on not being high priority, but with JSCS not being maintained any more a path forward is necessary.

We will continue to support JSCS for three months fixing bugs but will not be implementing any new features.

https://medium.com/@markelog/jscs-end-of-the-line-bc9bf0b3fdb2

Done by @glennreyes in #417! :fire:


ImportError: No module named openstate_v1_0

Following these instructions : https://github.com/OpenState-SDN/ryu/wiki/DDoS
when i type the

ryu-manager ddos.py

command .. I get the following :

Traceback (most recent call last):
File "/usr/bin/ryu-manager", line 9, in
load_entry_point('ryu==3.30', 'console_scripts', 'ryu-manager')()
File "/usr/lib/python2.7/dist-packages/ryu/cmd/manager.py", line 88, in main
app_mgr.load_apps(app_lists)
File "/usr/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 401, in load_apps
cls = self.load_app(app_cls_name)
File "/usr/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 378, in load_app
mod = utils.import_module(name)
File "/usr/lib/python2.7/dist-packages/ryu/utils.py", line 91, in import_module
import(name)
File "/home/el3ankaboot/BACHELOR/ryu/ryu/app/openstate/ddos/ddos.py", line 8, in
import ryu.ofproto.openstate_v1_0 as osproto
ImportError: No module named openstate_v1_0

Any help ?

Hi Gamal,
Did you install the OpenState-enabled version of ryu?
git clone https://github.com/OpenState-SDN/ryu.git
cd ryu
sudo python setup.py install

It is possible that when you invoke ryu-manager, it considers only the modules exposed by the original version of ryu, which does not include openstate_v1_0. That's why you need to install the OpenState-enabled version of it.
As a side note, the OpenState repositories of ryu and ofsoftswitch13 are deprecated. We moved efforts into the BEBA project. Here you'll find the most updated version of the code supporting OpenState:
https://github.com/beba-eu
Carmelo

Hi.
I copied the openstate_v1_0 file to ryu/ofproto/ but still it tells me "ImportError: No module named openstate_v1_0".

Hi,
did you execute the commands suggested by Carmelo?
Davide

May I install the OpenState-enabled version of ryu, overriding the old version?
Or I have to uninstall it, first?

Hi,
OpenState is based on Ryu 3.29. If you don't need any feature from Ryu > 3.29 you can just run the commands reported by Carmelo.
Best,
Davide

Thanks a lot.
My Ryu version is 4.14.
Should do it.
Bests.
2017-06-14 5:50 GMT-03:00 Davide Sanvito<EMAIL_ADDRESS>
Hi,
OpenState is based on Ryu 3.29. If you don't need any feature from Ryu >
3.29 you can just run the commands reported by Carmelo.
Best,
Davide
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/OpenState-SDN/ryu/issues/12#issuecomment-308366837,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ab_-AkNzactrOPo1rzYkyECX2QBk0H79ks5sD57IgaJpZM4MVYkR
.

--
Todos querem um mundo melhor. Poucos colaboram.
Prof. Edison de Queiroz Albuquerque, BSc, Msc, Dr.
Adjunto da Escola Politécnica de Pernambuco, Universidade de Pernambuco
(POLI/UPE)
Professor do Curso de Engenharia de Computação
Líder do Grupo de Pesquisa em Protocolos de  Redes de Computadores
Membro do IEEE (ComSoc), do SBrT, do IECOM e da APEET
Universidade de Pernambuco/Escola Politécnica de Pernambuco
Rua Benfica, 455 (Bl. 'C' 2. andar) - Bairro: Madalena
CEP 50720-001 - Recife, Pernambuco - Brasil
Fone: +55 81 3184-7542 - Fax: +55 81 3184-7581

@DavideSanvito : i have the same question.. i didn't understand. Let me rephrase this (correct me if im wrong), Since OpenState is based on Ryu 3.29, it doesn't matter if use Ryu version 3.29-Later.
it will work by default.
If this wrong, please correct me.

Hi @harimau99,
I mean that if you don't specifically need functions from Ryu > 3.29 you can simply use the Ryu version provided in our repo (3.29). However, since OpenState is self-contained in few files, it might work also on the latest version of Ryu, provided that there are no big changes in the Ryu core files.


Posts never get updated

Once a feed has been added (along with its posts at that time), they never get updated. Figure out a way to find and process new posts on a schedule. Maybe utilize cron or something fancier like Celery (w/ Beat).

Added a "syncfeeds" management command and scheduled it to run hourly via Cron.


Examples: link to rate for new users

Can you somehow fix the DCO here? Thanks!

Reviewed and fixed up during bug scrub.


Performance issue with setupEngine

We are seeing some performance issues when calling setupEngine with more recent versions of SRE. Here's an flamegraph of calling SRE within our product:

Running the demo on this page: https://mathjax.github.io/MathJax-a11y/Semantics-Lab/walker/ results in the following flamegraph:

It's better than what we're seeing, but still not great.
I think the issue is twofold:

The code is parsed as Javascript, rather than JSON. Perhaps it would be faster to process these files as plain JSON?
The mathmaps for all locales are loaded, regardless of whether or not they are used. Seems like they should only be loaded for the locale given when calling setupEngine

I am aware of that problem and we always knew that the old way of handling the Unicode mappings will not scale well for multiple locales, rule sets etc. So indeed my idea is to load them selectively, handle alphabets smarter etc.
I have started redesigning the module handling the unicode mappings, but have not found the time to make much progress on its implementation. I barely started putting together the unit tests for regression testing. Hopefully there is a bit more time in the New Year. But watch this branch https://github.com/zorkow/speech-rule-engine/tree/character-tests and its follow-ups.
The files are actually parsed as JSON. They just use .js extension as some of the CDNs MathJax uses (notably cdnjs) do not serve files with .json extension. I would assume that the extension name has no influence on performance but have never really tested that.
Also note that the page https://mathjax.github.io/MathJax-a11y/Semantics-Lab/walker/ uses MathJax 2.7, which runs an older version of sre.

Ahh, I did not realise the .js files were parsed as JSON.
I will keep an eye on the character-tests, thanks! If there's anything I can help with, let me know.

I finally found the time to make some progress on this. I've just made a major merge into develop branch, which contains a new approach at generating the majority of math alphabets (Latin, Greek, and digits) programmatically, rather than from JSON. This reduces the number of objects that need to be parsed considerably and speeds up the initial load process.
This gain is somewhat cancelled out by my working on completing Unicode mappings for Spanish and French to cover a lot of symbols that we did not have before. Still, according to my measurements I get a speed up of around 30% at startup.
In the mean time I have started working towards having a single JSON file per locale, in the single_json_locale branch. This simplifies the loading process and makes it more homogeneous across the different versions of SRE (in browser, in MathJax, node package, command line, interactive). This might affect how you webpack the files, so you should have a look.
The next step is to move to loading the single locale JSON file only if and when needed (at least everywhere, except for in IE, as that is a real pain). But that's not quite there yet.
@ryan-codingintrigue if you find some time to do some testing, that would be really helpful.
I will definitely want to see this go into the system before the German localisation lands as otherwise startup will get even slower.

@ryan-codingintrigue can you also have a look at branch lazy_locale_loading. This only loads a single locale only when needed. It works fine for all the scenarios I test. Let me know if it works for you, too.

Hi Volker, thanks for looking into this! I would concur with your 30% estimate on the develop branch - we're seeing a measurable difference here in user being able to interact with the document during setupEngine.
lazy_locale_loading is even faster, though I don't think there's quite as much of a difference as the changes to the develop branch.
What you've done with lazy_locale_loading is exactly what we've done too. We went one step further though and moved the whole library into a Web Worker. This means that, while it still takes time to load the locale information, it does so on another thread meaning the UI does not get blocked whilst processing. Not sure if this option is feasible for speech-rule-engine given the number of different places it needs to work.

Thanks @ryan-codingintrigue for the feedback. Sorry for the delay, I got a bit distracted with CSUN preparations and then I nearly got stuck over there.
At some point I would like to have a look at the web worker, if you can share that.
I am putting also this into a beta now, as it works in all the use cases I test for.


TP: Remove calls to deprecated TO API endpoints

I'm submitting a ...

[ ] bug report
[ ] new feature / enhancement request
[x] improvement request (usability, performance, tech debt, etc.)
[ ] other

Traffic Control components affected ...

[ ] CDN in a Box
[ ] Documentation
[ ] Grove
[ ] Traffic Control Client
[ ] Traffic Monitor
[ ] Traffic Ops
[ ] Traffic Ops ORT
[x] Traffic Portal
[ ] Traffic Router
[ ] Traffic Stats
[ ] Traffic Vault
[ ] unknown

Current behavior:
TP currently makes calls to API endpoints that will soon be deprecated with api 1.x. These calls need to be removed or changed to another suitable endpoint.
You can determine which calls TP makes to soon-to-be-deprecated api 1.x routes as they look like this:
$http.get(ENV.api['legacy']
API calls are made in the following services: https://github.com/apache/trafficcontrol/tree/master/traffic_portal/app/src/common/api
Expected / new behavior:
TP does not make any API calls to deprecated (legacy) endpoints.
Minimal reproduction of the problem with instructions:

this is done


Allow resource explorer to accept the set of declarative type registrations

Fixes #3019
Description

Allow resource explorer to accept the set of declarative type registrations.
Specific Changes

Added ResourceExplorerOptions

Testing

Pull Request Test Coverage Report for Build 400316582

0 of 0   changed or added relevant lines in 0 files are covered.
12 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.03%) to 84.769%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-dialogs-declarative/src/resources/resourceExplorer.ts
12
80.65%

Totals

Change from base Build 399650268:
-0.03%

Covered Lines:
17355

Relevant Lines:
19544

💛  - Coveralls


Feature Request / suggestoin

May I suggest changing from bcrypt to bcryptjs? They are the same with the exception that bcryptjs has no dependencies and is platform agnostic.
There wil lbe no change needed to the current code as they both stem from the same base code.

@johntom are you going to tackle this one?  We need to close some issues out soon :)


Package fails to ignore iOS project

Hello.
I have an Unity project for both Android and iOS. The package tries to run the code even if I build addressable asset in iOS platform. But Google hides the code when the platform is not in Android. The package failed to run and thus addressable asset cannot be built.

Is there any solution rather than comment out the scripts one by one in my iOS side project?

This was actually already been resolved by #24 , I just have been not really been paying attention to this package as I don't really use it at the moment. Sorry.
I've merge the PR and should be working now in rc5.


[android] new pull request with android support not download on npm

When I do install react-native-video --save npm install old version plugin without support android.

New version isn't out yet. Meanwhile, you can add the following line to your dependencies instead:
"react-native-video": "git://github.com/brentvatne/react-native-video.git#f4c3e1"

ok, tnx


Dropped safeguards against very old versions of gettext.

gettext 0.19 was released in 2014.

Mmmh, I found some more possible deletions. Updates follow...

Thanks for the review!


Control events (From @gablm)

This PR adds support for keyboard shortcut events inside Collapse. This is a requested feature and will be seeing light in the next Preview release, 1.72.4. A list of non-exhaustive features include:

Keybind remapping for most of Collapse's UI features
Custom dialog window allowing for easy-to-see keybinds

Merged!


update documentation on ordering guarantees of raw<T>

Currently the documentation of the raw<T> method says that there are no guarantees on the order of components, when in fact they are in reverse order as imposed by the sort method.

Implementation detail?

@codylico It's (was?) an implementation detail but nowadays it's also guaranteed, so why not to leverage it if needed.


catalog: Rename ListServiceAccountsForService to ListServiceIdentitiesForService

This PR renames ListServiceAccountsForService to ListServiceIdentitiesForService
The type changes will arrive with another PR.
No functional code changes in this PR.

This is one of the few steps towards addressing: Use ServiceIdentity type in catalog APIs instead of service.K8sServiceAccount #2218

This is a small chunk from #3170

All PRs in the series:

[ ] catalog: Rename ListAllowedInboundServiceAccounts to ListAllowedInboundServiceIdentities #3176
[ ] catalog: Rename ListAllowedOutboundServiceAccounts to ListAllowedOutboundServiceIdentities #3178
[ ] catalog: Rename ListServiceAccountsForService to ListServiceIdentitiesForService #3180
[ ] identity: Adding K8sServiceAccount.ToServiceIdentity() and ServiceIdentity.ToK8sServiceAccount() #3179

Codecov Report

Merging #3180 (26eebe4) into main (51c71e5) will increase coverage by 0.17%.
The diff coverage is 55.55%.

@@            Coverage Diff             @@
##             main    #3180      +/-   ##
==========================================
+ Coverage   66.03%   66.20%   +0.17%
==========================================
  Files         161      161
  Lines        7401     7401
==========================================
+ Hits         4887     4900      +13
+ Misses       2487     2474      -13
  Partials       27       27

Flag
Coverage Δ

unittests
66.20% <55.55%> (+0.17%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/catalog/mock_catalog_generated.go
0.00% <0.00%> (ø)

pkg/kubernetes/client.go
87.31% <ø> (ø)

pkg/kubernetes/mock_controller_generated.go
0.00% <0.00%> (ø)

pkg/kubernetes/types.go
100.00% <ø> (ø)

pkg/catalog/fake.go
71.02% <100.00%> (ø)

pkg/catalog/service.go
90.47% <100.00%> (ø)

pkg/envoy/sds/response.go
89.90% <100.00%> (ø)

pkg/endpoint/providers/kube/client.go
78.00% <0.00%> (-1.00%)
:arrow_down:

pkg/configurator/validating_webhook.go
81.04% <0.00%> (+9.15%)
: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 51c71e5...26eebe4. Read the comment docs.


Basic Usage of FluentCheck For Katas

Hi @csparpa, @mikeckennedy ,
This is probably a question first rather than an issue.
Using fluentcheck for Katas can be really nice.
As an example, here's a sample gist from hackerank:
# Complete the hourglassSum function below.
def hourglassSum(arr):
    tgv = [[v[x:y] for x,y in zip(range(4), range(3,7))] for v in arr[:4]]
    mgv = [row[1:-1] for row in arr[1:-1]]
    bgv = [[v[x:y] for x,y in zip(range(4), range(3,7))] for v in arr[2:]]

    return max(sum(t)+m+sum(b) for t,m,b in zip(chain(*tgv), chain(*mgv), chain(*bgv)))

if __name__ == '__main__':
    arr = [[1,1,1,0,0,0],
           [0,1,0,0,0,0],
           [1,1,1,0,0,0],
           [0,0,2,4,4,0],
           [0,0,0,2,0,0],
           [0,0,1,2,4,0]]

    Is(hourglassSum(arr) == 19).true
    # or
    Check(hourglassSum(arr) == 19).is_true()

So I noticed, this could have been nicer to have something like:
Is(hourglassSum(arr)).equal_to(19)
# or
Check(hourglassSum(arr)).is(19)

What do you guys think?

Hey @deanagan I remember that I thought about introducing the equality checks but eventually decided not to because "equality" is quite a complex concept to tackle.
I mean, checking that  1 == 1 si easy, but saying that object A equals object B involves a deep check of the objects' parameters
That's why I opted not to add it
In your specific case, instead of
Is(hourglassSum(arr) == 19).true
# or
Check(hourglassSum(arr) == 19).is_true()

you can do the old Python way:
hourglassSum(arr) == 19

which is - BTW - shorter than the fluentcheck idioms (fluentcheck's value relies mostly in being concise)

Hi @csparpa ,
Point taken. I will close this. Thanks.


TABL can support more entries

Updated whats new with TABL support of more entries in November 2023

@chrisda could you please approve this for me?


Implement some rudimentary underrun protection for duplex streams

For now, it leaves at most 100ms in the buffer. It seem to behave well. I've used this to test:
diff --git a/test/test_duplex.cpp b/test/test_duplex.cpp
index 427b503..f17634d 100644
--- a/test/test_duplex.cpp
+++ b/test/test_duplex.cpp
@@ -17,11 +17,14 @@
 #include <memory>
 #include "cubeb/cubeb.h"
 #include "common.h"
+#include <iostream>
 #include <atomic>

 #define SAMPLE_FREQUENCY 48000
 #define STREAM_FORMAT CUBEB_SAMPLE_FLOAT32LE

+static std::atomic<int> rounds = 0;
+
 struct user_state_duplex
 {
   std::atomic<int> seen_audio{ 0 };
@@ -50,7 +53,11 @@ long data_cb_duplex(cubeb_stream * stream, void * user, const void * inputbuffer
     output_index += 2;
   }

-  u->seen_audio |= seen_audio;
+  for (uint32_t i = 0; i < nframes * rounds; i++) {
+    if (ib[i % nframes] <= -1.0 && ib[i % nframes] >= 1.0) {
+      u->seen_audio |= seen_audio;
+    }
+  }

   return nframes;
 }
@@ -118,8 +125,13 @@ TEST(cubeb, duplex)
     cleanup_stream_at_exit(stream, cubeb_stream_destroy);

   cubeb_stream_start(stream);
-  delay(500);
-  cubeb_stream_stop(stream);
+  std::string str;
+  while (getline(std::cin, str)) {
+    std::stringstream iss(str);
+    int temp;
+    iss >> temp;
+    rounds = temp;
+  }

   ASSERT_TRUE(stream_state.seen_audio.load());
 }

On my windows machine, I can make it glitch by typing, say, 5000<enter>, and then bring it back to normal by doing 1000<enter>.
If I backout the actual patch in this PR, delay accumulates between input and output.

@ChunMinChang Would you mind reviewing this PR please?

I think I am not able to help this now since I am not familiar with this part and I am working on seamless looping. Sorry for that.

Updated, please have a look. I'm not sure how much we should keep. 100ms is pretty random. I'll do some testing next week.

I've updated to 50ms. Note that a single callback usually has 10ms worth of audio on on Windows.
@achronop, can you have a final look here, so I can land and get this in Nightly ?

FYI, from chatting on Slack:
The "right" way to do it is to a) resample to match rates, b) keep enough buffer to avoid underruns, but no more.  This obviously can fail if the environment/load changes, which is why it has to be adaptive (basically it has to be a form of jitter buffer).  In most cases, it should run at "no extra buffering" (i.e. we haven't seen underruns) which means max one capture "frame" (typ 10ms or less - and if you're not having to resample (no drift), it should be 0 in that case.  When the buffer starts to grow, you slew the resample rate to stop the growth and get it back near your target depth.  If you see underruns, you glitch, and you slew the resample rate to increase the amount of buffering (and bump the target for buffering probably).
This is classic jitter-buffer design.  For "extra" fancy, you can minimize pitch warbles when slewing (and slew faster) by using some of the magic in NetEq to add or remove cycles of the dominant frequency (TDC - Time Distortion Compensation IIRC)
IMHO


Refactor linkify-code and shorten-links

Fix #4688
Fix #4758
Resolve #4710
Changes for linkify-code:
I found .highlight is presented on all code blocks except for review comments, which can be targeted via .js-suggested-changes-blob.
However, we still need to prevent .highlight on file blocks parsing down to review comments, so we skip if parent .inline-comments exist.
Changes for both feature:
linkify-code should only work in code blocks, while shorten-links should not work in code blocks. Therefore, linkifiedURLClass is tweaked to be directly used by both features. linkify-code directly targets linkifiedURLClass while shorten-links skips if parent linkifiedURLClass exists.
Test URLs

linkify-code should work on:

URLs in PR files: https://togithub.com/Homebrew/homebrew-core/pull/18015/files#diff-ed6db8b67e8b93cafa69dc68f4a78202f7f89dda1e260ab66d76f7d3337f3190L4

URLs in regular files: https://togithub.com/sindresorhus/refined-github/blob/3f5fc489e417d4f4a14da5ea423775e9ca9246fd/source/features/copy-markdown.js#L45

URLs in embeded code:
https://github.com/sindresorhus/refined-github/blob/3f5fc489e417d4f4a14da5ea423775e9ca9246fd/source/features/copy-markdown.js#L45

URLs in <pre> code blocks
// https://example.com/
const example = 'https://example.com'

Issue reference in file: https://togithub.com/sindresorhus/refined-github/blob/2ade9a84b1894c7879fab9d3e2d045e876f941a6/source/features/sort-issues-by-update-time.tsx#L18

Issue reference in embedded code
https://github.com/sindresorhus/refined-github/blob/2ade9a84b1894c7879fab9d3e2d045e876f941a6/source/features/sort-issues-by-update-time.tsx#L18

linkify-code should not linkify links multiple times when GitHub Issue Link Status is installed:

Review comment on Conversation tab: https://togithub.com/sindresorhus/refined-github/pull/3225#discussion_r439535538
Review comment on Files changed tab: https://togithub.com/sindresorhus/refined-github/pull/3589/files#r493534691

shorten-links should not shorten links when OctoLinker is installed:

Regular files: https://github.com/oakserver/oak/blob/main/deps.ts

There is a slight catch: it seems OctoLinker will linkfy the code again after Refined GitHub, however the link does not break so it is fine.

Screenshot

Rather than excluding specific links, it should just not be applied to links inside code blocks. Probably you just need to add if closest(code), return after adding the class, inside the observer.

Note to self: this should also include blocks without highlight:

Note to self: this should also include blocks without highlight:

Not sure if it's easily doable. Might be best to merge this soon and then extend it later

Will it work just like https://github.com/sindresorhus/refined-github/pull/4856#discussion_r721167511?