Reclaim policy for microk8s-hostpath set to Retain

Updating reclaimPolicy for microk8s-hostpath Storage Class from Delete to Retain.
#Fixes https://github.com/canonical/microk8s-community-addons/issues/11 (seems as issue created in a wrong repo)
❯ kubectl get pvc
NAME                    STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS        AGE
pvc-microk8s-hostpath   Bound    pvc-b30f6bd8-08e4-4ea9-9b5f-9c0defa811ca   100Mi      RWO            microk8s-hostpath   22s
❯ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                           STORAGECLASS        REASON   AGE
pvc-b30f6bd8-08e4-4ea9-9b5f-9c0defa811ca   100Mi      RWO            Retain           Bound    default/pvc-microk8s-hostpath   microk8s-hostpath            9s
❯ kubectl exec busybox-6497c7699d-m2l58 -ti -- sh
/ # touch /mount1/abc
/ # ls /mount1/abc
/mount1/abc
/ # exit
❯ kubectl get po
NAME                       READY   STATUS        RESTARTS   AGE
kube-bench-2z728           0/1     Completed     0          3d12h
busybox-6497c7699d-m2l58   1/1     Terminating   0          88s
❯ kubectl get po
NAME               READY   STATUS      RESTARTS   AGE
kube-bench-2z728   0/1     Completed   0          3d12h
~                                                                                ⎈ microk8s-systemd 08:19:17
❯ kubectl get pvc
No resources found in default namespace.
~                                                                                ⎈ microk8s-systemd 08:19:19
❯ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                           STORAGECLASS        REASON   AGE
pvc-b30f6bd8-08e4-4ea9-9b5f-9c0defa811ca   100Mi      RWO            Retain           Released   default/pvc-microk8s-hostpath   microk8s-hostpath            2m8s
❯ kubectl describe sc microk8s-hostpath
Name:            microk8s-hostpath
IsDefaultClass:  Yes
Annotations:     kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"},"name":"microk8s-hostpath"},"provisioner":"microk8s.io/hostpath","reclaimPolicy":"Retain","volumeBindingMode":"WaitForFirstConsumer"}
,storageclass.kubernetes.io/is-default-class=true
Provisioner:           microk8s.io/hostpath
Parameters:
AllowVolumeExpansion:
MountOptions:
ReclaimPolicy:         Retain
VolumeBindingMode:     WaitForFirstConsumer
Events:

Thank you for this PR @jkosik. However, I feel that we would be leaking storage with the reclaim policy set to retain. Right?

@ktsakalozos,  PR is implementation of Reclaim Policy defined in the open Issue 11

I think the right path forward for this is to have the reclaim policy configurable during the microk8s enable step.

@ktsakalozos good point, please check update.

This looks much better. Could you please use --foo type of arguments to the addon? See [1] as an example.
[1] https://github.com/canonical/microk8s/blob/master/microk8s-resources/wrappers/microk8s-config.wrapper#L16

Thank you for this PR @jkosik.
Your work has been included in https://github.com/canonical/microk8s-core-addons/pull/77


Emacs sounds not working

Summary
Emacs sounds (e.g. bell) not working
Environment
Windows 11
Build 22000.675
WSL version:
Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      22000  653

Description
I installed Emacs 28 via sudo apt install emacs. When I enter keystrokes that should result in an audible bell, e.g. ctrl-g in the Emacs splash page, no sounds are made. Another: scrolling past the end of the current buffer using ctrl-v.
I also have Chrome installed, and sound is working, via the Pulse Audio plugins.
Tried setting (visible-bell nil) to no effect, while (visible-bell t) results in a visible flash as expected.
Expected behavior
Audible bell sounds are made.

@steve-solomon, thanks for reporting the issue. To address this issue, pluseaudio in our system distro needs to load "module-x11-bell" module with appropriate wav file uploaded. We will look into the fix, thanks!

Fixed in WSLg 1.0.41


copySymlinkAsSymlink

Hi @dbkaplun, I couldn't find any reference for this option in the docs, or in the code for grunt-contrib-copy itself.  If this is a useful option for you, you can easily add it in your individual project, but we won't be making it a default.


About Camera Geometry

Can you please add the information about the camera geometry (eg: camera spesification, camera positioning, angle of view, angle of camera). I think it is important to know, related to the vehicle speed measurements. I hope you can explain it, thanks.

Hi @iwan21p ,
The camera is from the Raspberry v2 kit and was installed over the road at 5.5 meters.
Since or method does not require a full calibration setup, we didn't measured the exact angle with respect to the vertical. The intrinsics parameters we can find here: https://www.raspberrypi.org/documentation/hardware/camera/


Include new forcing variables in mates list (llc_rearrange) for transforming topology

OceanSpy version:
newest

Description
Transforming (rotating+transposing) llc-data, requires to know the mate variable when transforming data variables associaed with a vector field. For example, in a rotated facet, the local U-variable is actually -V since the local I-index (or X in oceanspy) is parallel to latitude, and increasing i (or 'X') yields a lower (southern) latitude.
The way oceanspy works with this, is through a function name mates (line 619 in llc_rearrange.py), which iterates through all variables of a dataset and associates its mate as long as said variable is defined in a list of mated-vars vars_mates. The function in hand is:
def mates(ds):
    vars_mates = [
        "ADVx_SLT",
        "ADVy_SLT",
        "ADVx_TH",
        "ADVy_TH",
        "DFxE_TH",
        "DFyE_TH",
        "DFxE_SLT",
        "DFyE_SLT",
        "maskW",
        "maskS",
        "TAUX",
        "TAUY",
        "U",
        "V",
        "UVELMASS",
        "VVELMASS",
        "dxC",
        "dyC",
        "dxG",
        "dyG",
        "HFacW",
        "HFacS",
        "rAw",
        "rAs",
        "CS",
        "SN",
    ]
    for k in range(int(len(vars_mates) / 2)):
        nk = 2 * k
        if vars_mates[nk] in ds.variables:
            ds[vars_mates[nk]].attrs["mate"] = vars_mates[nk + 1]
            ds[vars_mates[nk + 1]].attrs["mate"] = vars_mates[nk]
    return ds

Not the most elegant way to do this, but the easiest I could think of. This has worked so far with LLC4320 since these are all the data variables and grid variables that we had available.
However, there is a pair of forcing variables (from the newly available forcing variables) that need to be included in the list above, so that these can be properly transformed when necessary. These are:
['SIuice', 'SIvice']

In addition, the list above has TAUX and TAUY, but their default name is oceTAUX and oceTAUY (that is also how they appear when reading theEGshelfIIseas2km_ASR_full dataset -- see Kogur.ipynb) .
Before, those variables weren't available so it never caused an issue. This is a super quick fix.

closed by PR #325


Update package.json to be used with our npm account

We plan on having this package on our npm account temporarily. Hopefully we'll get our change approved on the original project, and at that time we can remove our own version and this whole repo.

Sorry, I didn't mean to open this up here.


Infrastructure Registry

HI Steve,
I was trying to implement Infrastructure registry to remove reference of Infrastructure project from Web. But now code uses Autofac and your article on ardalis.com refers structuremap. I tried a lot but couldn't resolve it. can you please guide?

I think the comment is redundant and registry no longer required as structure map is not used.

See issue 51 for the same:
https://github.com/ardalis/CleanArchitecture/issues/51

We switched to Autofac and it has Modules like this one:
https://github.com/ardalis/CleanArchitecture/blob/master/src/CleanArchitecture.Infrastructure/DefaultInfrastructureModule.cs


MINOR: KIP-631 KafkaConfig fixes and improvements

Add the new KIP-631 configs to KafkaConfigTest.
Rename InitialBrokerRegistrationTimeoutMs to
InitialBrokerRegistrationTimeoutMsProp for consistency with the other
properties.
Add ControllerListenerNamesProp as specified in KIP-631.
Give nodeId and brokerId the same value in KafkaConfig.

Failing test is org.apache.kafka.connect.mirror.integration.MirrorConnectorsIntegrationTest.testReplication() which is not related


move changelogs to standalone folders

What does this PR do?
pesonaly I would rather see the changelog outside the package/python tree

Before submitting

Was this discussed/agreed via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
Did you make sure to update the documentation with your changes? (if necessary)
Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
Did you list all the breaking changes introduced by this pull request?
Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

Reviewer checklist

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified

I'm also for getting rid of the standalone folders entirely. We can already see that contributors get confused, and make source code modifications in the wrong files (lightning_fabric instead of lightning/fabric).

Since the standalone packages get generated anyway, one could just move/generate these files and if you want, also remove the changelogs from the subfolder. Just an idea.

We can already see that contributors get confused, and make source code modifications in the wrong files (lightning_fabric instead of lightning/fabric).

This won't change with del dir as you can see, it was one line cnage, so user created PR from state before refactoring

Things like master/src/lightning/app/components/multi_node/trainer.py#L51 where we actually need to import from both packages when present to make sure it also works with standalone PL (or Fabric), require me to delete the standalone folders to not get ImportErrors just because of the folder existence.

Not sure how delete folder helps here as this line need to stay uncless we abendent stanlone packages (not only folder for it)


Share corona-warn-app usage by Twitter, Instagram, Facebook WhatsApp Status

There should be a option to share that "I'm" using the Corona-Warn-App to protect us from Lockdown 2 and stop corona.
In case the button is pressed, you can select on which channel (like twitter, facebook, instagram, Whats App Status) you want to tell others, that you are using the app and the others should follow.
When installing the app, this window should appear automatically.
The reason for this feature is, that we need more users of the Corona-Warn-App and we need  to let everyone know, that it's no risk to use this app.

Hi @sbernhard ,
Thank you for your proposal. All issues in the cwa-wishlist repository will be discussed with our contracting entities.  As soon as we have any updates, we will let you know about the details.
Best regards,
SG
Corona-Warn-App Open Source Team

@svengabr There is already an Issue (also from @sbernhard) #212, so maybe this could be closed?

Sure, close this one.


The Given Docs doesn't work for webpack stream (gulp)

I am trying to use this in Gulp + Webpack workflow but this doesn't seem to work.
I Implemented as per the mentioned docs but doesn't seem to work https://github.com/IamManchanda/gulp-webpack/pull/7/files
Am I missing something?

@IamManchanda sorry it is not QA service - stackoverflow, gitter, etc, please use this resources for question. It is bug tracker.

ohk thanks posted it here => https://stackoverflow.com/questions/51821330/uglify-js-webpack-plugin-for-webpack-stream-gulp-webpack


Not able to create user

I installed panoramix with python 2.6 and I am getting this error when I try to create user. There were some issues while installing the whole package and I install numpy, cryptography separately.
root@hostname:/home/user# fabmanager create-admin --app panoramix
Username [admin]: admin
User first name [admin]: admin
User last name [user]: admin
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>Password:
Repeat for confirmation:
2016-02-18 07:29:29,306:WARNING:flask_appbuilder.security.manager:No user yet created, use fabmanager command to do it.
2016-02-18 07:29:29,308:INFO:flask_appbuilder.base:Registering class MyIndexView on menu
2016-02-18 07:29:29,313:INFO:flask_appbuilder.base:Registering class UtilView on menu
2016-02-18 07:29:29,317:INFO:flask_appbuilder.base:Registering class LocaleView on menu
2016-02-18 07:29:29,321:INFO:flask_appbuilder.base:Registering class ResetPasswordView on menu
2016-02-18 07:29:29,334:INFO:flask_appbuilder.base:Registering class ResetMyPasswordView on menu
2016-02-18 07:29:29,343:INFO:flask_appbuilder.base:Registering class UserInfoEditView on menu
2016-02-18 07:29:29,355:INFO:flask_appbuilder.base:Registering class AuthDBView on menu
2016-02-18 07:29:29,363:INFO:flask_appbuilder.base:Registering class UserDBModelView on menu List Users
2016-02-18 07:29:29,401:INFO:flask_appbuilder.base:Registering class RoleModelView on menu List Roles
2016-02-18 07:29:29,435:INFO:flask_appbuilder.base:Registering class UserStatsChartView on menu User's Statistics
2016-02-18 07:29:29,455:INFO:flask_appbuilder.base:Registering class PermissionModelView on menu Base Permissions
2016-02-18 07:29:29,478:INFO:flask_appbuilder.base:Registering class ViewMenuModelView on menu Views/Menus
2016-02-18 07:29:29,499:INFO:flask_appbuilder.base:Registering class PermissionViewModelView on menu Permission on Views/Menus
Was unable to import panoramix Error: invalid syntax (views.py, line 547)

We only run the tests on 2.7 and 3.4.
No one should be running 2.6 at this point.

Reopen if you see the issue on a supported version.


To be able to change RenderTexture initial size

I would suggest for RenderTexture to have resize method.
function create()
{
    var rt = this.make.renderTexture({ x: 0, y: 0, width: 800, height: 600 });
    rt.resize(200, 300);
}

Thank you for submitting this feature request. We have implemented this and the feature has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.

It works!


Add sample code for SliverAppBar

This PR adds an another example for SliverAppBar, showing the use of stretch and onStretchTrigger
https://user-images.githubusercontent.com/68919043/235420973-2bfb9871-9e05-4d87-9538-941d43178c76.mp4
Fixes #125651
Adds sample code for SliverAppBar [stretch, onStretchTrigger]
This PR adds an another simple and easily understandable example code for SliverAppBar.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Hi @Piinks !
This is my first contribution. The issue I'm facing is I can't sign CLA.

It's logging in automatically with my another email address<EMAIL_ADDRESS>instead my github email address<EMAIL_ADDRESS>from where I submitted this PR, and I can't change the logged in email address to get the License Agreement.
Is there any support or doc that can help me?

Hi @Piinks ! This is my first contribution. The issue I'm facing is I can't sign CLA.
It's logging in automatically with my another email address<EMAIL_ADDRESS>instead my github email address<EMAIL_ADDRESS>from where I submitted this PR, and I can't change the logged in email address to get the License Agreement.
Is there any support or doc that can help me?

Hello @Istiak-Ahmed78, I was also facing the same problem. I just tried to access the cla site with another browser that I hadn't linked any Google account to before, so I was prompted to sign in.

Hi @Istiak-Ahmed78! Welcome, thanks for contributing. :)
Can you sign the CLA so we can review this PR? Also, it looks like there are some analysis failures here.

Hello @Piinks , can you please check again? I signed CLA.

@Piinks, thanks for you suggestions.
I have cleared the whitespaces and also added stretchTriggerOffset to the sample.
Would you please check again?

Oh right, let me find a second reviewer for this. :)

LGTM with nits 👍
Thanks for making the docs better!

Hello @justinmc , I think I need 'autosubmit'  label to finish the last merging process. I don't have access to do that. Can you please add this? thanks!


Update readme.md

Fixed url to see created secret page

Thank you @teinett for the fix!

Pushed a commit to resolve a merge conflict I introduced.
Thank you for the fix @teinett!


ibctest.User/ibctest.RelayerWallet types could maybe be combined

the difference is seems to be only in use case of the type and not the type itself.
for example, currently, we have to do things like this chainAWallet.Bech32Address(chainB.Config().Bech32Prefix) to get the bech32 address from a User type, but the RelayerWallet type offers it out of the box. just a little confusing as from the chain/SDK POV these could be the same account address types right?

Thank you for the issue @charleenfei, that should be a relatively quick change.


Azure App Service CORS vs. ASP.NET Core CORS

What happens, if I enable CORS in the Azure App Service Settings but also have CORS enabled in the code of my ASP.NET Core Application for example? Which config wins?
Code sample:
// CORS
services.AddCors(options =>; options.AddPolicy("CorsPolicy", builder =>;
{
    builder
        .WithOrigins("http://localhost:4200")
        .AllowAnyMethod()
        .AllowAnyHeader()
        .AllowCredentials();
}));

Azure sample:

Both allow different origins (:4200 and :5000)
Edited: Trimmed PII info from screenshot.

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

ID: dbcc24f0-9856-a7db-f229-c383e5e5c57d
Version Independent ID: 55d51b2a-c8fe-086e-a1c2-b0592f57967c
Content: Host RESTful API with CORS - Azure App Service
Content Source: articles/app-service/app-service-web-tutorial-rest-api.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@robinmanuelthiel
Thanks for your feedback! We will investigate and update as appropriate.

@robinmanuelthiel, Kindly do not try to use App Service CORS and your own CORS code together. When used together, App Service CORS takes precedence and your own CORS code has no effect.
Additionally, you can use your own CORS utilities instead of App Service CORS for more flexibility. Since App Service CORS lets you specify one set of accepted origins for all API routes and methods, you would want to use your own CORS code. Check this doc for more details.

Great, thanks for the reply!

The documentation has also been updated: App Service CORS vs. your CORS


Unable to validate GPG signature

I hope I am doing something wrong, but I spent a lot of time at this point trying to track down possible issues in the code without any success. I am going step by step in order to show my problem.
Creating things with GPG
The private key
First step, let's create a private key with GPG. I am using GPG 2.4.5 (see details at the end).
$ gpg --verbose --quick-generate-key Test-rgpg
gpg: enabled compatibility flags:
About to create a key for:
    "Test-rgpg"

Continue? (Y/n) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: pinentry launched (111176 qt 1.3.1 /dev/pts/7 alacritty :1 20620/1002/5 1002/1002 0)
gpg: pinentry launched (111217 qt 1.3.1 /dev/pts/7 alacritty :1 20620/1002/5 1002/1002 0)
gpg: writing self signature
gpg: EDDSA/SHA512 signature from: "21510E7107F3E5FA [?]"
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: writing key binding signature
gpg: EDDSA/SHA512 signature from: "21510E7107F3E5FA [?]"
gpg: writing public key to '/home/user/.gnupg/pubring.kbx'
gpg: using pgp trust model
gpg: writing to '/home/user/.gnupg/openpgp-revocs.d/45F655DA377CD07B8B9E3F2221510E7107F3E5FA.rev'
gpg: EDDSA/SHA512 signature from: "21510E7107F3E5FA Test-rgpg"
gpg: revocation certificate stored as '/home/user/.gnupg/openpgp-revocs.d/45F655DA377CD07B8B9E3F2221510E7107F3E5FA.rev'
public and secret key created and signed.

pub   ed25519 2024-09-03 [SC] [expires: 2027-09-03]
      45F655DA377CD07B8B9E3F2221510E7107F3E5FA
uid                      Test-rgpg
sub   cv25519 2024-09-03 [E]

In this case the key password has been set to testtest (it is not strictly relevant, but I want to describe all the steps).
(Optional) Dumping the private key
This is not necessary, but it can be helpful to being able to reproduce the issue.
$  gpg --verbose --export-secret-keys --armor Test-rgpg
gpg: enabled compatibility flags:
gpg: writing to stdout
gpg: key DA7DAF6C1F9D83C1E258CE20B26FE54AF57172B9: asking agent for the secret parts
gpg: pinentry launched (115067 qt 1.3.1 /dev/pts/7 alacritty :1 20620/1002/5 1002/1002 0)
gpg: key 670B5B546CED731B27602DF3C294210B1B60C6B3: asking agent for the secret parts
-----BEGIN PGP PRIVATE KEY BLOCK-----

lIYEZtcKxxYJKwYBBAHaRw8BAQdA1uaHPmg9MzAdNihSXFYVqRaePzIUureeodxn
vd1R/Pn+BwMCbldULdNoQaP/vmKGPUg3W5ge2QV1mMu2y3onqfoZbZp//dqwWqdn
dlODT5zh3jXOB50lnmhjxE0Bw+v6W+urBvg0eThqhXXsy26ievOAFbQJVGVzdC1y
Z3BniJkEExYKAEEWIQRF9lXaN3zQe4uePyIhUQ5xB/Pl+gUCZtcKxwIbAwUJBaOa
gAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRAhUQ5xB/Pl+k63AQDRYU8X
DCQiclMj17K7puxgNddEL0E9KomCKfxzvpqQSwD/X7zJSQ0GV5AzkUDE9fcR+LDj
UKRZm7pejLW61S+RPwqciwRm1wrHEgorBgEEAZdVAQUBAQdAYQAM3k+FjXo5RGCo
wBfJrXEEzxvhEmsOw2CWk6zGqhIDAQgH/gcDAsQxzfYJ+1Mg/2e3Mg0Hj7n7ObiA
vJydPuNwgs6/VLn9lLbMvcQFnooao0+/s3NTCO0VEs8lAZiMOVjZR4q1RqgTOJYO
0xX0HnUlOrGXBfiIeAQYFgoAIBYhBEX2Vdo3fNB7i54/IiFRDnEH8+X6BQJm1wrH
AhsMAAoJECFRDnEH8+X6jOABANCDglWVn7dDSm7j+irSwvjGHtq50JCVrc8Z7VNW
TK4WAP9RA8RBhoOKK8mQoY5rqkI+jGD5K4JTrl1UuJXuf/aEAQ==
=W0uf
-----END PGP PRIVATE KEY BLOCK-----

You can eventually import the same key I was using as test. As I said before, the password is testtest.
Creating the message
Simple enough:
$ echo -n "hello world" > /tmp/message.txt

Signing the message
Now we can use gpg to sign the message. For my specific case, I am using a detached sign. Moreover, I want the armored version of the signature, in order to easily import it with rgpg.
$ gpg --verbose --armor --detach-sign --default-key Test-rgpg /tmp/message.txt
gpg: enabled compatibility flags:
gpg: using pgp trust model
gpg: using "Test-rgpg" as default secret key for signing
gpg: writing to '/tmp/message.txt.asc'
gpg: EDDSA/SHA512 signature from: "21510E7107F3E5FA Test-rgpg"

$ cat /tmp/message.txt.asc
-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQRF9lXaN3zQe4uePyIhUQ5xB/Pl+gUCZthYlwAKCRAhUQ5xB/Pl
+kAhAQCAogoTEWARKyXiphVarAF+jkpBeSAiyC9EDei+3CpGTQEA1voKLRFjO5Tq
DwPu0ZxyHgGm8TKWSvszD4kujyg7vw4=
=JlvV
-----END PGP SIGNATURE-----

Dumping the public key
Now we need the public key.
$ gpg --verbose --export --armor Test-rgpg
gpg: enabled compatibility flags:
gpg: writing to stdout
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEZtcKxxYJKwYBBAHaRw8BAQdA1uaHPmg9MzAdNihSXFYVqRaePzIUureeodxn
vd1R/Pm0CVRlc3QtcmdwZ4iZBBMWCgBBFiEERfZV2jd80HuLnj8iIVEOcQfz5foF
AmbXCscCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQIVEO
cQfz5fpOtwEA0WFPFwwkInJTI9eyu6bsYDXXRC9BPSqJgin8c76akEsA/1+8yUkN
BleQM5FAxPX3Efiw41CkWZu6Xoy1utUvkT8KuDgEZtcKxxIKKwYBBAGXVQEFAQEH
QGEADN5PhY16OURgqMAXya1xBM8b4RJrDsNglpOsxqoSAwEIB4h4BBgWCgAgFiEE
RfZV2jd80HuLnj8iIVEOcQfz5foFAmbXCscCGwwACgkQIVEOcQfz5fqM4AEA0IOC
VZWft0NKbuP6KtLC+MYe2rnQkJWtzxntU1ZMrhYA/1EDxEGGg4oryZChjmuqQj6M
YPkrglOuXVS4le5/9oQB
=RXG6
-----END PGP PUBLIC KEY BLOCK-----

This can be also dumped to file, but we are going to copy-paste that in the Rust sources in order to verify the signature of the message.
Verifying the message
Now the Rust code that should verify the signature.
src/main.rs
use std::fs::{self, File};

use pgp::{
    crypto::hash::HashAlgorithm, types::PublicKeyTrait, Deserializable, SignedPublicKey,
    StandaloneSignature,
};
use sha2::{Digest, Sha512};

const PUBLIC_KEY: &str = "\
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEZtcKxxYJKwYBBAHaRw8BAQdA1uaHPmg9MzAdNihSXFYVqRaePzIUureeodxn
vd1R/Pm0CVRlc3QtcmdwZ4iZBBMWCgBBFiEERfZV2jd80HuLnj8iIVEOcQfz5foF
AmbXCscCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQIVEO
cQfz5fpOtwEA0WFPFwwkInJTI9eyu6bsYDXXRC9BPSqJgin8c76akEsA/1+8yUkN
BleQM5FAxPX3Efiw41CkWZu6Xoy1utUvkT8KuDgEZtcKxxIKKwYBBAGXVQEFAQEH
QGEADN5PhY16OURgqMAXya1xBM8b4RJrDsNglpOsxqoSAwEIB4h4BBgWCgAgFiEE
RfZV2jd80HuLnj8iIVEOcQfz5foFAmbXCscCGwwACgkQIVEOcQfz5fqM4AEA0IOC
VZWft0NKbuP6KtLC+MYe2rnQkJWtzxntU1ZMrhYA/1EDxEGGg4oryZChjmuqQj6M
YPkrglOuXVS4le5/9oQB
=RXG6
-----END PGP PUBLIC KEY BLOCK-----";

fn main() {
    let message = fs::read("/tmp/message.txt").unwrap();
    let (StandaloneSignature { signature }, _) =
        StandaloneSignature::from_armor_single(File::open("/tmp/message.txt.asc").unwrap())
            .unwrap();

    assert_eq!(signature.hash_alg(), HashAlgorithm::SHA2_512);
    let message_digest = Sha512::digest(message);

    let (public_key, _) = SignedPublicKey::from_string(PUBLIC_KEY).unwrap();
    public_key.verify().unwrap();
    public_key
        .verify_signature(signature.hash_alg(), &message_digest, &signature.signature)
        .unwrap();
}

Cargo.toml
[package]
name = "test-rpgp-issue"
version = "0.1.0"
edition = "2021"

[dependencies]
pgp = "0.13.2"
sha2 = "0.10.8"

Outcome and expected results
When running the provided code, the public_key.verify_signature() fails. But this should succeed, and the following command should confirm that:
$ gpg --verbose --verify /tmp/message.txt.asc
gpg: enabled compatibility flags:
gpg: assuming signed data in '/tmp/message.txt'
gpg: Signature made Tue Sep  3 15:19:49 2024 CEST
gpg:                using EDDSA key 45F655DA377CD07B8B9E3F2221510E7107F3E5FA
gpg: using pgp trust model
gpg: Good signature from "Test-rgpg" [ultimate]
gpg: binary signature, digest algorithm SHA512, key algorithm ed25519

Am I doing something wrong? I also tried a couple of different signature algorithm when creating the private key, but the outcome is always the same.
In case there is something I am doing wrong, maybe it could be worth to add some documentation to describe how to import a public key, a signature and verify the message (I know the doc already explains the steps to create a key, sign a message and then perform a verification, but if I am unable to get what is going on maybe someone else could have the same issue).
Thank you in advance for you support.
(Optional) Clean up the temporary key
$ gpg --delete-secret-keys Test-rgpg
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

sec  ed25519/21510E7107F3E5FA 2024-09-03 Test-rgpg

Delete this key from the keyring? (y/N) y
This is a secret key! - really delete? (y/N) y

$ gpg --delete-keys Test-rgpg
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

pub  ed25519/21510E7107F3E5FA 2024-09-03 Test-rgpg

Delete this key from the keyring? (y/N) y

Software details
$ gpg --version
gpg (GnuPG) 2.4.5
libgcrypt 1.11.0-unknown
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/user/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

$ rustc --version
rustc 1.80.1 (3f5fd8dd4 2024-08-06)

@dodomorandi It seems you're unnecessarily digesting the message here:
    assert_eq!(signature.hash_alg(), HashAlgorithm::SHA2_512);
    let message_digest = Sha512::digest(message);

    let (public_key, _) = SignedPublicKey::from_string(PUBLIC_KEY).unwrap();
    public_key.verify().unwrap();
    public_key
        .verify_signature(signature.hash_alg(), &message_digest, &signature.signature)
        .unwrap();

Could you try to pass the message instead, like so:

    assert_eq!(signature.hash_alg(), HashAlgorithm::SHA2_512);
    // no need for this: let message_digest = Sha512::digest(message);

    let (public_key, _) = SignedPublicKey::from_string(PUBLIC_KEY).unwrap();
    public_key.verify().unwrap();
    public_key
        .verify_signature(signature.hash_alg(), &message, &signature.signature) // use `message` here instead of the digest
        .unwrap();

Since verify_signature takes a data parameter which is then internally hashed.

@wiktor-k thank you for your reply. Unfortunately this not works either, same error (you should be able to verify it). Moreover, if it is true that the message must not be hashed, then two issues arise:

it would be virtually impossible to verify the signature of big files, especially on small devices. This is because, in case the whole message needs to be passed, it also needs to be allocated.
the example in the documentation explicitly uses the digested message, not the message itself.

Unfortunately this not works either, same error (you should be able to verify it).

Yep, sorry, I didn't check it, could you try:
signature.verify(&public_key, &*message).unwrap();

Which seems to do the trick.

the example in the documentation explicitly uses the digested message, not the message itself.

It uses a digest of file + PGP packets which is not the same as the digest of the file itself.

it would be virtually impossible to verify the signature of big files, especially on small devices. This is because, in case the whole message needs to be passed, it also needs to be allocated.

I'm actually working on a solution that passes a hasher state so that the signing is split into client (which does the hashing but instead of finalizing the digest exposes the inner hasher state) and client (which takes the hasher, appends PGP packets and finishes the hasher).
So, while harder than in, say SSH signing, it's possible.

Thank you both @hko-s and @wiktor-k.
@hko-s I added the armored version of the signature in the description of the issue. Here it is to make things easier:
-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQRF9lXaN3zQe4uePyIhUQ5xB/Pl+gUCZthYlwAKCRAhUQ5xB/Pl
+kAhAQCAogoTEWARKyXiphVarAF+jkpBeSAiyC9EDei+3CpGTQEA1voKLRFjO5Tq
DwPu0ZxyHgGm8TKWSvszD4kujyg7vw4=
=JlvV
-----END PGP SIGNATURE-----

@wiktor-k thank you for the suggestion. I think that the documentation could be improved, I am pretty convinced that my use-case is simple enough to be common and that other people could end up in this situation.

I'm actually working on a solution that passes a hasher state so that the signing is split into client (which does the hashing but instead of finalizing the digest exposes the inner hasher state) and client (which takes the hasher, appends PGP packets and finishes the hasher).

Thank you, that would be incredibly helpful.

The rPGP documentation could definitely need work, fully agreed! I am hoping to do some work on that, in the coming months.
Independently, I believe that an API at a higher level of abstraction on top of rPGP would be helpfujl and appropriate for most applications.
I'm working on an attempt at that, and hoping to make more progress soon. For now, however, I'd say my library is in an experimental state and not quite ready for production use yet.

Wait @wiktor-k and @hko-s , I make a mistake about the issue with the type of message:
I thought you were referring to this verify function, but once I tried in the code, I realized I was using this one instead, which actually supports the Read trait. To be honest, I did not expect that to succeed, but it looks like it is working :sweat_smile:.
At this point, correct me if I am wrong, it is just a problem about the documentation not being particularly clear.
If you agree, I think I can close the issue. In case sorry for the waste of time, you helped a lot and at least there is an issue that can be read by other people.

@dodomorandi Yes, totally agreed about the documentation and adjustments to the API. Great that you managed to solve your use-case :tada:
See you later! :wave:


Whitepaper Taskforce: Role of Blockchain in the Elections process

Introduction/background material:
Various government and public agencies have experimented with using Blockchain as part of their technology stack while conducting elections from a fair and transparent perspective. The idea behind this task force would be

to collect the information already available in the public domain,
reach out to various entities who have developed solutions or experimented with blockchain in this domain,
share lessons learnt, benefits, issues, concerns and disadvantages,
understand from others viewpoints (optionally mention them), share our point of view highlighting which parts of the process are Blockchain more suitable to;
share which technologies can work together to help enhance the transparency and trust in the system.
conclude.
Optionally, as part of this we will also target to come up with a reference architecture for the same.

Task to be completed:

[ ] Create a Whitepaper that highlights the current landscape of Blockchain in Elections and also discuss what the future holds for the technology in this domain.

List of deliverables or work products:
Whitepaper
Time to complete (no more than 6 months): 6 Months
Leader: Vikram Sharma
Initial participant list
Amol Kulkarni
Kamlesh Nagware
Aruna S M
Madhu Bhatia,
Rajesh Krishnan, Sr Architect, Dell
Sunil Kapadia
Samrat Kishor
Anant Avinashi
Ishan Roy, Head Tamil Nadu eGovernance
Sowjanya Segu,
Anil Dongre, Sr Architect, Persistent
Aniket Dhar,
Dhyan Appachu Bollachettira, Founder, Shambala
Pritam Singh
Ranjeet Singh
Shivendra Yadav
Ravi Shankar Gupta
Sandeep Srivastava

The TSC reviewed this proposal on November 4. While the TSC does not want to discourage the interested parties from working on a paper, there was a concern with this being an officially recognized whitepaper from the Hyperledger Foundation. Whitepapers are reports or guides that inform readers concisely about a complex issue and present the issuing body's philosophy on the matter.

The TSC discussed this proposal further on November 11. @arsulegai has connected with the Public Sector SIG, and they will be taking the work on within the confines of the SIG.


How to get the Fig.3 in paper?

How to get it? Can you give some code about it? Thanks. It's a great work...

OK, I think, the alpha is the following item, it's right?

I suppose it's a solution
torch.abs(F.avg_pool2d(mask, kernel_size=31, stride=1, padding=15)-mask)
mask is ground truth


Initial description of how the subtitles were created.

Here is an initial version of "How to create subtitles from the video". Feel free to adapt the look of the content as you see fit.

I think this should be a new README.md under the subtitles folder

What's with the HTML tags in a markdown doc?

mh didn't know that it works without - didn't look so cool in the preview before. Never worked with Markdown before.

https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax 😁

Thank you!


Revert "Support passing number only values as string directly through helm.va…"

Reverts GoogleContainerTools/kpt-config-sync#155
This change does not work for all cases, revert it for now, need a generic solution to support all special value cases.

/retest


Provide additional options to be given to Unicycler

Is it possible to provide options for control unicycler?
For some purpose, I hope can control some actions of unicycler.
e.g
plassembler run --unicycler_options " --no_rotate --spades_options --tmp-dir /tmp"

Thank you for the great tool
Best

Hi @chen1i6c04,
Absolutely I will add this in the next v1.6.0 update.
George


Observability "$invocation$bb29$isError" variable is added twice when using more than 2 db calls with transaction

Description:
$subject
Steps to reproduce:

Setup a MySQL DB with the following table,

CREATE TABLE IF NOT EXISTS Customers(
  customerId INTEGER NOT NULL AUTO_INCREMENT,
  firstName  VARCHAR(300),
  lastName  VARCHAR(300),
  registrationID INTEGER,
  creditLimit DOUBLE,
  country  VARCHAR(300),
  PRIMARY KEY (customerId)
);

Compile,

import ballerina/io;
import ballerina/sql;
import ballerinax/mysql;
import ballerinax/mysql.driver as _;

type TransactionResultCount record {
    int COUNTVAL;
};

public function main() returns error? {
   // Fill in MySQL DB credentials
    mysql:Client dbClient = check new(user = "", password="", database = "");
    int retryVal = -1;
    boolean committedBlockExecuted = false;
    transaction {
        sql:ExecutionResult|sql:Error res = dbClient->execute("Insert into Customers (firstName,lastName,registrationID,creditLimit," +
                                "country) values ('James', 'Clerk', 200, 5000.75, 'USA')");
        sql:ExecutionResult|sql:Error res1 = dbClient->execute("Insert into Customers (firstName,lastName,registrationID,creditLimit,country) " +
                                  "values ('James', 'Clerk', 200, 5000.75, 'USA')");
        io:println(res1);

        var commitResult = commit;
        if(commitResult is ()){
            io:println("committedBlockExecuted");
        }
        io:println(res);
   }

    //check whether update action is performed
    int count = 0;
    stream<TransactionResultCount, sql:Error?> streamData = dbClient->query("Select COUNT(*) as " +
        "countval from Customers where registrationID = 201");
    record {|TransactionResultCount value;|}? data = check streamData.next();
    io:println(data);

    check dbClient.close();
}

If you extract the mainFrame class in the generated jar, you can observe "invocation$bb29$isError" is added twice.
Affected Versions:
Beta 2

https://github.com/ballerina-platform/ballerina-standard-library/issues/120 is blocked due to this. @nadundesilva Shall we prioratise this?


test: fix act warnings in LogoutButton component

This PR fixes #687 (partially).

[x] I've added a unit test to test for potential regressions of this bug.
[ ] The changelog has been updated, if applicable.
[x] Commits in this PR are minimal and have descriptive commit messages.

@Glazy thanks for this, though I think there might be further changes to this code that might affect this PR.


Added Invoke-BoxstarterFromTask

That squash was soo quick and easy! Thanks again for all the help!

Looks good! I'll merge after running through my integration tests.


Difference between /data/text and /document/text in samples

The sample definition refers to /document/text. However, the sample input does not have anything called document. But, it has something called data (which is not referenced in the sample definition).
Did you intend to use data/text or document/text consistently in config and examples? Or is document or data simply implied? Reading this for the first time it's not clear how the language detection manages to refer to the correct text here.

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

ID: 1bc617fb-5d08-4942-10fe-cd6fd0f397b0
Version Independent ID: 2dfc170d-d529-90bd-ea67-73a35721e3a4
Content: Language detection cognitive skill - Azure Cognitive Search
Content Source: articles/search/cognitive-search-skill-language-detection.md
Service: cognitive-search
GitHub Login: @LuisCabrer
Microsoft Alias: luisca

data is simply the name of the property bag on the skill interface, it is not the name of the element in the enrichment tree.
The sample definition assumes there is a text element in the enrichment tree (that starts with /document, and then goes on to generate other leaves on that tree, such as: "/document/myLanguageCode"
Read this document for more information: https://docs.microsoft.com/en-us/azure/search/cognitive-search-defining-skillset

#please-close


Add to onboarding reproduction logs

setup:

Operating System: macOS Ventura Version 13.5
Chip: Apple M2 Pro
Memory: 16 GB
Environment: Mac Terminal
Python: 3.9.6

status:
everything worked

Thanks for catching the typo!

Providing a detailed example of MRR@10 in this document could be helpful for better understanding.

What exactly do you mean? MRR is explained here, right? https://github.com/castorini/anserini/blob/master/docs/experiments-msmarco-passage.md#evaluation
Do you have any suggestions for how to improve?

An example like this can help better understanding:
Scenario:
Imagine we have a search engine that retrieves web pages based on user queries. We want to evaluate the performance of this search engine using MRR@10.
Steps:
Generate Sample Queries:
Let's say we have a set of queries that users might input into the search engine. For instance:
Query 1: "How to bake a cake"
Query 2: "Best hiking trails near me"
Query 3: "Python programming tutorials"
Run Queries and Retrieve Results:
We run these queries through our search engine, and it returns a ranked list of results for each query. For simplicity, let's assume each query returns 10 results.
For Query 1, the top 10 results might be:
Recipe website with detailed instructions on baking a cake (Relevant)
Online store selling cake decorations (Irrelevant)
Blog post about cake decorating techniques (Irrelevant)
...
Cooking forum discussing various recipes (Irrelevant)
Similarly, we have ranked lists for Query 2 and Query 3.
Determine Relevance:
For each query, we manually assess the relevance of the top result. Let's assume:
For Query 1, the most relevant result is at position 1 (as it directly answers the query).
For Query 2, the most relevant result is at position 5 (as it provides information about local hiking trails).
For Query 3, the most relevant result is at position 3 (as it's a high-quality Python programming tutorial).
Calculate MRR@10:
Using the relevance positions we determined, we calculate the Mean Reciprocal Rank at 10:
MRR@10 = (1/1 + 1/5 + 1/3) / 3 ≈ 0.54

Hi @shayanbali thanks for the suggestion, but IMO this would be over-explaining and breaking the flow of the current narrative.


Hopper crafting not possible

If a player tries to craft a hopper, the hopper item is for 0.5 seconds in the slot, and disappears then.

@jammet This one's yours :)

Thanks. :)
On Fri, May 8, 2015 at 4:41 PM, Mattes D<EMAIL_ADDRESS>wrote:

@jammet https://github.com/jammet This one's yours :)
—
Reply to this email directly or view it on GitHub
https://github.com/mc-server/MCServer/issues/1964#issuecomment-100254427
.


Make sure that hash of SourceId is stable

What does this PR try to resolve?
#11487 discovered that in Rust 1.66.0 Cargo got a new variant SourceId::SpareRegistry making hash value changed. To ensure the stability of hash values, tests are added.
How should we test and review this PR?
This is an extension of the follow test to cover all SourceKind for both ordinary SourceId::hash and SourceId::stable_hash:
https://github.com/rust-lang/cargo/blob/c994a4a638370bc7e0ffcbb0e2865afdfa7d4415/src/cargo/core/source/source_id.rs#L703-L707
Additional information
It seems to be too late to release a point version to mitigate this luckiness?
The regression affects anything depends on hash of LocalRegistry | Directory source kind, so Package is affected as well. I currently cannot recall any tool depending on hash of Package, though I guess there are some directly depending on SourceId hash.

Thanks!
I don't have any particular opinion on doing a point release. Will continue discussion on the issue.
@bors r+

:pushpin: Commit 2179665f67f280cb46f69cccba8550fe18c6da2e has been approved by ehuss
It is now in the queue for this repository.

:sunny: Test successful - checks-actions
Approved by: ehuss
Pushing 9cb39418a57ec7cd833b95eac16a9d89c570df2a to master...


char '[' and ']' not allowed in key

Describe the bug
for example, key Picture and key [Picture] are considered to be duplicated.
Extension Version
2.2.4
Framework/i18n package you are using

Device Infomation

OS: a customized linux distro based on RHEL8
Version:
VS Code Version: 1.45.1

Extension Log
📂 Loading locales under<EMAIL_ADDRESS>	📑 Loading (en-US) en-US.json [1599789429695.662]
		🐛 Failed to load Error: Duplicated key Picture found
	📑 Loading (zh-CN) zh-CN.json [1599789445753.662]
		🐛 Failed to load Error: Duplicated key Picture found

👀 Watching change on<EMAIL_ADDRESS>✅ Loading finished

Screenshots

looks similar with https://github.com/antfu/i18n-ally/issues/360
but the solution you provided does not work for this case.@antfu

i am using vue-i18n which supports [ and ] in key and i have lots of keys similar with [Picture], so i prefer to fix this in i18n-ally without rewrite these keys.

bypassed via setting "i18n-ally.disablePathParsing":true


How to convert http::request or http::response to string?

NT

use operator<< to std:;stringstream

thx for such a quick reply, it works

wait, it compiles successfully but print out empty string.

Did you do std::cout << ss.str() where ss is the stringstream?

Printing messages works, as this example demonstrates:
https://github.com/boostorg/beast/blob/develop/example/http/client/sync/http_client_sync.cpp#L83

because I am writing a proxy server being a daemon, so I have to use syslog() to do logging in /var/log, which gets me to convert the request and response to string first.
and the problem is fixed, just like what you said.


[BUG] capture_MJPEG no timestamp

Hi,
I tried to capture_MJPEG example script for video, and added pts='timestamp.txt' in the start_recording similar to h264.
But the timestamp.txt was empty.

Thanks for reporting this, will work on this soon.
In the meantime if you add the pts parameter in this example - https://github.com/raspberrypi/picamera2/blob/main/examples/capture_mjpeg_v4l2.py
you should get a timestamp.txt file.

Thanks for pointing that out! That appears to be a bug too, it shouldn't be h264 data.

I remember ages ago there was a problem where the mjpeg hardware encoder wasn't (always) getting included in the firmware builds, and it would fall back to h264. Might this be the same thing?

Ah yeah it could well be that.  I checked that I am still setting V4L2_PIX_FMT_MJPEG.
When using 'file' on the output it says -
test.mjpeg: JVT NAL sequence, H.264 video @ L 40

Just found something interesting @davidplowman
If I add start_x=1, to /boot/config.txt I do get -
test.mjpeg: JPEG image data, baseline, precision 8, 1280x720, components 3
I think that might of been the behaviour we saw before

Yes, start_x=1 will be the workaround. But I thought we'd sorted this out... evidently not. I'll have another look. Anyway, it's not a Picamera2 issue, it'll require an OS/firmware update, so no need to hold up our bugfix 0.3.5 release I think.
You can check the state of your image using v4l2-ctl -d /dev/video11 --list-formats. If that doesn't list MJPG then you'll end up with h264.

Thanks, that's a useful command to know.
Added a pull request regarding timestamps for MJPEG here - https://github.com/raspberrypi/picamera2/pull/365

Indeed there is still a problem enabling the MJPEG encoder in non-"start_x" builds. Should be fixed now, but will take a few days to appear via sudo rpi-update (usual caveats apply about that, of course).

This should be available through sudo rpi-update now if you feel like trying it. As I said, it's the bleeding edge firmware so don't try it on a system where there's stuff you can't afford to lose!


Feature/chat history2

Relate to https://github.com/FlowiseAI/FlowiseChatEmbed/pull/39
Previous method: https://github.com/FlowiseAI/Flowise/pull/715
Test

Desc
Result

SQLite with data
chat_message:zep_message:

SQLite delete data
chat_message:zep_message:

SQLite missing Internal Zep Test
chat_message:zep_message:chat_message:zep_message:

MySQL with data
chat_message:zep_message:

MySQL delete data
chat_message:zep_message:

PostgreSQL with data
chat_message:zep_message:

PostgreSQL delete data
chat_message:zep_message:

can we also draft a docs PR,
BufferMemory and their drawback (in-memory, shared memory for multiple users)
Solution using Long Term Memory (Zep, Redis, etc)
How to use via embed and API, how to use sessionId


SCP-855: Add logging to contracts

We can now use 'Control.Monad.Freer.Log' inside of contracts. The type
of log messages is 'Data.Aeson.Value', because all contract outputs are
serialised to JSON when they cross the process boundary anyway.
I also changed the ResumableResult type to include possible errors that happened during contract execution. So we went from
Either e (ResumableResult i o a) to ResumableResult e i o a, which is a bit nicer because it lets you look at the log outputs and the contract state even if there is an error.

(blocked on #2230 due to some missing instances)


Add ROS 2 and real-time introductory document

The goal is to create a document that serves as a starting point for users interested in ROS 2 and real-time. This document would cover:

What real-time really means. Very fast” versus “deterministic”.
What is required to have ROS 2 real-time capable applications
- Design principles of the ROS 2 real-time system.
- What software and hardware to select. Safety aspects consideration.
- Programming Language choice.
- Real-time operating system overview.
- ROS 2 RTOS support.
Current status and future work in ROS 2

We can use this document as a reference: http://design.ros2.org/articles/realtime_background.html. We shouldn't overlap the scope of this document with the concepts section or the best practices guide. Those topics should be covered in separate documents.
Acceptance Criteria

[ ]  Add ROS 2 and real-time introductory document

Moved to https://github.com/ros-realtime/ros-realtime.github.io/issues/8


Draft : [EdgeTPU] To distinguish between compiled tflite files with the edgetpu compiler in Explorer

Related issue : #1622
Before we start...
we designed the .cfg file as shown in the picture below.
If the "one-import-edgetpu" value in the "onec" section is true, it means that you want to compile with the edge tpu compiler.
"output_path" in the "one-import-edgetpu" section means the location of the compiled product.

and this method does not depend on "flatbuffer".
How?
This method uses the "one-import-edgetpu" value in the "onecc" section and the "output_path" value in the "one-import-edgetpu" section to determine whether a file was compiled with the Edge TPU compiler.

Before creating the TreeView component, we first utilize the getCfgList() function from OneStorage to fetch a list of cfg files.
Following this, we collect and save the output path generated by the EdgeTPU compiler into a variable. code
Then, within the _buildChildren() code, we implement a conditional check to determine if the file is a .tflite file representing the baseModel. code
In this check, we verify whether the model exists within the previously collected variables. code
If we find the model in the collection, we've made the decision not to categorize it as a 'baseModel' because it originates from the EdgeTPU Compiler.

Advantage

Simple
Allows custom output_path of edgetpu-compiler's product

Problem

It depends on the output_path in the .cfg file. so if it change, explorer can't find the products

Finally
This is not the perfect way to solve this problem. we keep thinking about it, and as a result, we found a way to use "flatbuffer". However, due to performance time problems, optimization of "flat buffers", or  other methods, must be devised.

From the issue #1622,
          To make long short; we concluded that using _edgetpu.tflite prefix for edgetpu compiled models.

Originally posted by @dayo09 in https://github.com/Samsung/ONE-vscode/issues/1622#issuecomment-1788462541


Add check in CI to reject PRs to master branch

Fixes #8643

This is just adopting the way we handled this in the Azure/azure-rest-api-specs repository.