feat 💥: message operations with InteractionContext

What type of pull request is this?

[ ] Non-breaking code change
[x] Breaking code change
[ ] Documentation change/addition
[ ] Tests change

Description

A nice chunky PR. Primarily this PR does three things:

Add support for editing and deleting messages with InteractionContext
Refactor Message.edit to use kwargs
Refactor Message.delete to be all round nicer

This adds support for editing and deleting ephemeral messages.
Deleting
message = await ctx.send("test", ephemeral=True)
await context.delete(message)
# or
await message.delete(context=ctx)

message = await ctx.send("test", ephemeral=True)
await context.edit(message, content="test edit")
# or
await message.edit(content="test edit", context=ctx)

Kwarg edit
Message.edit should really have been kwarg only this whole time.
Changes

Refactor message.delete
Add HTTP method for interaction message deletes
Add InteractionContext.delete
Add InteractionContext.edit
Add interaction deletion support to Message.delete
Add interaction edit support to Message.edit

Checklist

[x] I've formatted my code with Black
[x] I've ensured my code works on Python 3.10.x
[x] I've tested my code

Test fail related to check changes upstream. This pr passes all checks


OCM-9784 | test: automate case id:72538

Successfully tested for all HCP profiles. For profile with autoscaling enabled test will not work as specific number of subnets have to be used.

I agree with the automation, but I'd like to leave it to the ROSA HCP QE members to double-check the checkpoints.

/retest


[fix] Removing duplicate serviceAccountName

The serviceAccountName config is duplicated, which is causing helm chart to fail when deploying using kustomize.

Thanks @fallard84!  This has been deployed:

https://github.com/impart-security/impart-helm/commit/12ee0ff8b7d24308ce45313b224ce292d6dcac25
https://artifacthub.io/packages/helm/impart/sidecar-injector

Currently, this repo is a mirror.


69 warnings with the 0.14.2 compiler

Currently, building master of this library with 0.14.2 yields 69 warnings (mostly from use of MonadZero and from unused names).  Would a PR that fixes these warnings be welcome?  If so, for unused names, would it be preferable to prefix with _ or replace the whole unused name with _, or best judgement case-by-case?

Yes! PRs fixing warnings are very much welcome throughout the contrib libraries. For unused names I would generally omit them altogether with _.

Ugh, I'm sorry I misread the build output, and this library has no warnings, it's all in the dependencies.  I'll close this issue and thank you for the instruction.  I'll focus any effort on the upstream contrib libraries.


Backbone.history.navigate( '/' ) strips slash

If my root is set to /path/to/root/, Backbone.history.navigate( '/' ) should not navigate to /path/to/root.
See #2656 and especially 151bd73d26ab92de3c224ded656e535a06d7e85b.

Is there a PR to address this?

@jashkenas: https://github.com/jashkenas/backbone/pull/3443 would solve it, but is a breaking change.

Hi, was wondering if I could help here.
Is this still an open issue ?

I'm trying to get a solution to this as well. I would like my routes to look like:
domain.com/#/route1 as opposed to domain.com/#route1 and I cant figure out how.

(Bringing issue back from the dead)
This does result in a technical wart if you're marrying Backbone to a server-side framework that requires trailing slashes.  Right now with my Django code everything works, however Backbone modifies the URL to lose the trailing slash; the result is a request to Django which sends a redirect to include the trailing slash.  So a completely unproductive round trip happens every time.
It does feel inconsistent to only strip a trailing slash when we match the "root" and not at any other time.
I have a code change that keeps or strips the trailing slash based on whether the root was set with one or not.  Would a PR on that be welcome?  It's 2 lines of code and then tests.

Would a PR on that be welcome? It's 2 lines of code and then tests.

Happy to take a look, if you want to open the PR...

Great, I have to push it through a corporate-review process before I can submit it, so that will take a little while; but it is happening.

Hey, @jashkenas, I'd really appreciate it if you could take a look at the PR for this.  Thanks.


CldImage renders image with wrong url

I am trying to use next-cloudinary in my Next.js project:
"use client";

import {CldImage} from "next-cloudinary";

export default function ExampleComponent() {
    return (
            <CldImage
                width="100"
                height="100"
                src="testimage"
            />
    );
}

I added NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME= (+ cloud name at the end) to my .env file.
I am running locally in dev mode (npm run dev).
The rendered image is shown like this:

Why is the URL of the image not automatically generated to use Cloudinary?

I've identified the issue:
If you've globally enabled the unoptimized flag (link to the documentation) in your next.config.js file, the Cloudinary URL will not be generated.
I've disabled this to minimize Image Optimization costs.
I have a couple of questions and suggestions:

Do I understand correctly, that enabling this optimization while just using CldImage will NOT trigger any image optimization costs on Vercel?

If this is correct, I'd like to suggest the following:

The CldImage component should set the unoptimized flag to false by default. This would ensure that the CldImage component works as expected out of the box, even with a globally enabled unoptimized flag.

@pschaub i haven't seen this one before, thanks for flagging it!
as far as the unoptimized flag, it looks like it things its a local file, so the localhost/file is trying to reference that, which is not accurate.
The CldImage component delivers a Cloudinary URL via the Loader pattern: https://nextjs.org/docs/pages/api-reference/components/image#loader
My understanding is this completely bypasses anything that Vercel would do, unless somehow they're doing something when deployed? But it's ultimately giving you a Cloudinary URL, so I'm not sure what the effect would be there. I'd love to hear if you have a different understanding or have seen something different.
i'm kind of surprised that this impacts the component as I would expect the loader to still be used to transform the image, where clearly it's not. so perhaps what i need to do is recognize the unoptimized flag and transform the src that gets passed into the Image component in that case
would you like to explore this in a PR? otherwise I can try to get to this sometime soon. i would just like to understand the impact first of that flag and the loader solution

@colbyfayock I believe I may have found some relevant information that might clarify the situation regarding the unoptimized prop and its interaction with a custom loader function.
According to the issue https://github.com/vercel/next.js/issues/50764, it appears that the unoptimized prop and the loader prop can't be used together.
I'm not entirely certain if disabling unoptimized would result in Vercel performing some optimizations that could incur additional costs. Given the financial implications, I believe it's essential to have a clear understanding of this interaction before implementing any changes.
I would greatly appreciate if anyone could provide further insights on whether using CldImage with the unoptimized flag disabled would trigger any extra optimizations on Vercel's end, and if so, whether these would come with any cost implications. This information would allow us to ensure that we're offering the best and most cost-effective solution for CldImage usage.

@pschaub I remove the global unoptimized:true in next.config.js then fetch some images using the <CldImage> and next/image Image component at the same time.
This is the <CldImage:
<img alt="text" loading="lazy" width="500" height="500" decoding="async" data-nimg="1" class="Packshot-sc-c9707e0a-0 yNoLj" style="color:transparent" srcset="https://res.cloudinary.com/iant1359/image/upload/c_limit,w_500/e_grayscale/f_auto/q_auto/v1690518705/nanohome/website/others/lrkel3iiu4cvs725thpq?_a=BAVAXgGd0 1x, https://res.cloudinary.com/iant1359/image/upload/c_limit,w_500/e_grayscale/f_auto/q_auto/v1690518705/nanohome/website/others/lrkel3iiu4cvs725thpq?_a=BAVAXgGd0 2x" src="https://res.cloudinary.com/iant1359/image/upload/c_limit,w_500/e_grayscale/f_auto/q_auto/v1690518705/nanohome/website/others/lrkel3iiu4cvs725thpq?_a=BAVAXgGd0">
And this is the next/image component:
<img loading="lazy" width="200" height="300" decoding="async" data-nimg="1" style="color:transparent" srcset="/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fiant1359%2Fimage%2Fupload%2Fnanohome%2Fremote_media_website%2F1af0c1a531394eac6b4ba5b79f83719f%2F90647195%2Fwhite-background-image-of-fritz-hansen-swan-3320-lounge-fully-upholstered-walnut-grace-leather-brushed-aluminum-base-recqzobns48epntpu.jpg&w=256&q=75 1x, /_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fiant1359%2Fimage%2Fupload%2Fnanohome%2Fremote_media_website%2F1af0c1a531394eac6b4ba5b79f83719f%2F90647195%2Fwhite-background-image-of-fritz-hansen-swan-3320-lounge-fully-upholstered-walnut-grace-leather-brushed-aluminum-base-recqzobns48epntpu.jpg&w=640&q=75 2x" src="/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fiant1359%2Fimage%2Fupload%2Fnanohome%2Fremote_media_website%2F1af0c1a531394eac6b4ba5b79f83719f%2F90647195%2Fwhite-background-image-of-fritz-hansen-swan-3320-lounge-fully-upholstered-walnut-grace-leather-brushed-aluminum-base-recqzobns48epntpu.jpg&w=640&q=75">
So all the images optimized by next/image has the src like /_next/image... and the <CldImage> has Cloudinary url, so I think It's same to assume that only the next/image will trigger the source image count in billing.
If you wanna make sure, you can have a look on Vercel usage. This list down the image source optimized by vercel.

that make sense. the docs are hosted on vercel and don't have a single instance of usage

as far as what to do to address this, it looks like to resolve this, i can update the src to use a fully constructed Cloudinary URL and it works, where normally we would need and image configuration for an allowed list, it seems that with unoptimized it bypasses that
additionally, what it can do is disable the f_auto and q_auto from occurring on the Cloudinary URL, which will deliver it "unoptimized"
the thing im only unsure of now is how this works with the globally configurable unoptimized flag. the only thing i cna think of is once getImgProps is available  i might be able to use that, but it would only work from that version forward
https://twitter.com/leeerob/status/1674250190432116736
for now this PR addresess the prop, but i would imagine the globally setting is the more common use case:
https://github.com/colbyfayock/next-cloudinary/pull/250
thoughts on the global option? i can't seem to figure out a way to access the value from within the library component

good news, found out from Vercel that the flag is available to inspect through process.env.__NEXT_IMAGE_OPTS
Fixed in: https://github.com/colbyfayock/next-cloudinary/pull/253


Observing through a Proxy

Thanks for a fantastic library. So elegant!
I am trying to use it in a scenario where I have another proxy in order to make the object more elegant to use. I want to create an object which acts like an array, but also stores other data. However observe() doesn't flow through the proxy. I am not surprised it doesn't work, but I am looking for ideas on how to make it work.
import { observable, observe } from '@nx-js/observer-util';

class Foo {
  constructor() {
    this._collection = [111]

    return new Proxy(this, {
      get(target, prop, receiver) {
        if (prop in target._collection)
          return target._collection[prop]
        else {
          return Reflect.get(target, prop, receiver);
        }
      },
      has(target, prop) {
        if (prop in target._collection) {
          return true
        } else {
          return Reflect.has(target, prop)
        }
      }
    })
  }

  get data() {
    return this._collection
  }
}

const counter = observable(new Foo);
const workingObserve = observe(() => console.log(`Working: ${counter.data[0]}`));
const notWorkingObserve = observe(() => console.log(`Not working: ${counter[0]}`));

counter._collection = [1,2,3]
counter._collection = [7,8]

Note that the notWorkingObserve function is not executed when the collection is updated.
I am testing by just running this code in https://repl.it/languages/babel

Try to replace return target._collection[prop] with return Reflect.get(target._collection, prop, receiver._collection) in the get trap. That should fix it.
I suggest you to read the Proxy, exotic object and ordinary object related parts in the EcmaScript spec to fully understand Proxy traps and JS get/set operations. It's not an easy read but I found no article that really explains these in the required depth.
As a rule of thumb, whenever you return something from a Proxy trap make sure to do it with Reflect equivalent that forwards all of the arguments (or their custom transformed variants) of the Proxy trap.

Yes, that works. Thanks for the help and the advice.


AGP upgrade fails

Gradle upgrade wizard is shown but auto upgrade fails.
Works only when changing
buildscript {
    apply from: 'versions.gradle'
    addRepos(repositories)
    dependencies {
        classpath buildscriptDeps.androidGradle
        classpath buildscriptDeps.dependencyUpdates
        classpath buildscriptDeps.detekt
        classpath buildscriptDeps.googleServices
        classpath buildscriptDeps.kotlin
        classpath buildscriptDeps.kotlinSerialization
    }
}

to
buildscript {
    apply from: 'versions.gradle'
    addRepos(repositories)
    dependencies {
        // Keep this here so that AGP auto upgrade works
        classpath 'com.android.tools.build:gradle:7.0.0-rc01'
        classpath buildscriptDeps.dependencyUpdates
        classpath buildscriptDeps.detekt
        classpath buildscriptDeps.googleServices
        classpath buildscriptDeps.kotlin
        classpath buildscriptDeps.kotlinSerialization
    }
}

Even though this solves the problem is not consistent with how we define dependencies. we are migrating our dependencies to catalog #171 until today build script was not supported when we update that we can try if that solves the issue.


Fix heater controller warning on reload

This PR addresses an issue in the HeaterHvacController where a warning was logged unnecessarily when no specific case matched for turning off the heater.
The change updates the logging to debug level and provides more context in the log message to avoid confusion.
This ensures the system behaves correctly during reloads without logging misleading warnings.
Fixes #261

Could you please run black . and update this PR to pass the linter?

Sure, now with black :)


Duplicate file names are overwritten without warning

We should generate at least a "This filename already exists." (Update file) (Cancel) dialogue.

duplicate of #729


should we split this package into multiple apps?

First, to be clear- it could still be one repository (or not.. depending on what we decide)
That said, it might make sense to separate this out into multiple django apps, I'm thinking something like:
core.models -> People, Organization, etc. (essentially popolo & support models)
legislative.models -> Bill, VoteEvent, etc.
campaign_finance.models -> PR #81
elections.models -> PR #82
I know this came up briefly before but I feel like looking at the potential scope of the new models we should discuss this

Could you articulate the perceived pros and cons?

Sure thing.
Pros of splitting:

possible to only install the class of models that you want (I believe w/
auxillary models we're already at 60+ in what would become core &
legislative)
better organized in Django Admin (grouped by app name)
if we want to (either now or later) split into multiple repos it would be
possible.  this would have other benefits, such as easier to have multiple
maintainers

Cons of splitting (someone else might want to add to this):

possible increase in complexity (what is in core app, etc?)
more things to add to INSTALLED_APPS if you are indeed using all of them
depending on how we do it, it might require people making the upgrade to
run a one-time script to rename their tables

On Wed, May 10, 2017 at 9:10 PM, Forest Gregg<EMAIL_ADDRESS>wrote:

Could you articulate the perceived pros and cons?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/opencivicdata/python-opencivicdata-django/issues/83#issuecomment-300654531,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAfYhUZH9Tk-Wa0bx9rDKONHoqcQxATks5r4mAEgaJpZM4NXYKc
.

This seems like it would better fit use cases of the CCDC, which doesn't touch any of the legislative models. Not sure I'm thinking carefully enough about the cons, though.
It might help to think this through further by mapping out the dependencies between these separate apps. So:

core has no dependencies.
elections relies on core.
campaign finance relies on elections (and also core).
???

If we do want to I think the questions to answer would be:
One repo or many?

my vote is for one, I think dependencies will be easier that way, in fact i'm sort of regretting/reconsidering the python-opencivicdata-divisions split)

Should underlying table names all be set to 'opencivicdata_modelname' or should they become something like 'core_jurisdiction', 'core_person', 'legislative_bill'

the latter is how Django would name them if we don't specify table names, so if we prefer to keep them as they are we'd need to manually set them on each model now & going forward
changing them would require a script to be present for people to migrate from existing names to new ones, Django's normal migrations couldn't handle this case since it is cross-app

Don't have strong feelings about one vs many repos. Though, wondering what implication that has for having multiple maintainers.
For the second q: Seems better for the db tables to include the prefix "opencivicdata_", as I suspect many django projects already have a "core" app, and figuring out which tables go with which app could be annoying/confusing. And it doesn't require the migration for current opencivicdata_django users
Manually setting the db tables on the Django models doesn't seem that awful to me. You could even have a CI test that checks to ensure contributors remember to do this.

Actually, it's not all that obvious to me why one repo would be preferable, especially if we're talking about dividing up maintainer responsibilities. @jamesturk what are the regrets about splitting divisions off from opencivicdata_django?

I'm with you on the tables not changing, it seems unnecessary & you're right that it could introduce other issues.
one repo makes releases easier since there won't be the need for synchronized releases, avoids the namespace problem (making Py2 compatibility easier for those that need it for now), makes things like PRs/issues simpler since they can be to one repo instead of possibly having interdependencies (which has happened quite a few times)

As for split ownership, I think it'd make sense to give commit access to maintainers of any particular subset, and just ask that they're extra careful to not merge anything that affects core/common module without consultation w/ the rest of the maintainers.  I think in practice that won't be any harder than trying to coordinate across 3-4 repos

PR #85 addresses this
(also, since I merged in the work that moves py-ocd-divisions into this repo, things are Py 2.7 compatible again on master, keeping this as one repo will keep that possible as long as y'all need)


The file uploaded by the client in the mode of transfer encoding: chunked cannot be forwarded correctly by the gateway.

problem is still exist
Originally posted by @goodshred in https://github.com/spring-cloud/spring-cloud-gateway/issues/2498#issuecomment-1109298991

Can you add description for the issue?

Looking forward to your reply，Thanks very much

Looking forward for the fix in cloud gateway as we are also facing this issue after upgrading to latest spring boot version.  This issue is preventing us to move to cloud gateway from ZUUL.
Our client(C#) uses WebRequest to upload multipart file. Here is the sample snippet
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(uploadUrl);
wr.SendChunked = true; // This is creating problem in spring cloud gateway.  Same code used to work in ZUUL. We tried different work around suggested but none of it works.
PS: Multipart file upload using HttpClient is working fine.

Closing in favor of the original issue #2498


GitHub as a Provider

As the title suggests, would be nice to set GitHub as a provider at a package level. Sometimes package maintainers do not immediately publish to NPM or bower, and they have fixed bugs sitting in their GitHub repo after a PR or commit. It would be nice to point LibMan to a repository on GitHub to retrive some code.
Allow me to specify:

The GitHub release Tag.
Or the commit hash of a particular branch.
Or just the branch to pull the latest HEAD.

Thanks,
Brian
:hourglass_flowing_sand: :mag: "But I still haven't found what I'm for..."

This is a good idea.

Can other providers be added too? (like jsdelivr or even npm)

Just branstorming some ideas I wanted to put here. To drive the intellisense, each package source implementation likely needs to be custom. Especially for the Library list. Intellisense for the files within a package is a little easier, provided the source provides a way to download the package in it's entirety, then you can build the intellisense from the contents after expanding it to the temp folder. I'm assuming you wouldn't want a GitHub plugin to depend on a full github client? If a developer is willing to sacrifice the intellisense aspect (especially for unique/obscure sources), it gets even simpler as theoretically you could simply provide an HTTP provider and pull files directly from a URL, resulting in a config similar to this example maybe? Could also allow for the library URL to be a zip file and simply have it download that and extract it to keep intellisense for choosing files.
Note: My example below does NOT work. It's just something it'd be nice to be able to do and would be very easy to implement if there was a low level HTTP provider that sacrificed intellisense in favor of wide spread support of disparate package sources.
{
    "libraries": [
        {
            //GitHub
            "provider": "http",
            //Maybe even a path to a release/zip?
            //"library": "https://github.com/twbs/bootstrap/releases/download/v4.1.0/bootstrap-4.1.0-dist.zip",
            "library": "https://raw.githubusercontent.com/twbs/bootstrap/v4-dev/dist/",
            "files": [
                "js/bootstrap.bundle.js",
                "css/bootstrap.css"
            ],
            "destination": "wwwroot/lib/bootstrap_from_GitHub"
        },
        {
            //Gist
            "provider": "http",
            "library": "https://gist.githubusercontent.com/user/commit/raw",
            "files": [
                "myFav.js",
                "popularstyles.css"
            ],
            "destination": "wwwroot/lib/Favourites_from_Gist"
        },
        {
            //Unpkg
            "provider": "http",
            "library"<EMAIL_ADDRESS>            "files": [
                "js/bootstrap.bundle.js",
                "css/bootstrap.css"
            ],
            "destination": "wwwroot/lib/bootstrap_from_Unpkg"
        }
    ],
    "version": "1.0"
}

And of course there's always the more structured approach where you have a full provider for something like GitHub, and have somethings like this
{
    "libraries": [
        {
            "provider": "github",
            "repository": "twbs/bootstrap",
            //Branch, or Commit, or Pull & Commit?
            "branch": "v4-dev",
            "commit": "commit_hash_here",
            "pull": "42",
            "flatten": ["dist"],
            "files": [
                "js/bootstrap.bundle.js",
                "css/bootstrap.css"
            ],
            "destination": "wwwroot/lib/bootstrap_from_GitHub_explicit"
        }
    ],
    "version": "1.0"
}

This is great. Thanks for the suggestion. And thanks for the examples, @nickalbrecht.
Yes, that's pretty much exactly how we see it working, too. We had a full group design session on this earlier in the week. We figured we call it the "URL" provider.
It's likely this will be the very next provider we build.

@tb-mtg yes it is extensible, though I'd like to see a better design around that.  Right now you'd have to do both a build task package and a VSIX to make everything work on par with what's in VS now.

@jimmylewis What would a new provider need to implement on the VS side of things? I would have guessed that the existing contract interfaces would havebeen enough to allow for a single package in order to add support for a new provider to both VS and Build?

@nickalbrecht Currently the Providers get hooked up to VS via the IProviderFactory interface, which requires that you register a MEF component in VS (easiest done with a VSIX).  It's not ideal to have to install these to VS, but currently we don't have a good way to detect which providers to load from the project state and where to load them from.
(I'd love it if we can get to a point where we can detect/load from PackageReference or something.)

@nickalbrecht going off the top of my head, there needs to be a way to load the provider into the build process for the CI integration scenario.  I don't know exactly how that would work offhand, but I imagine it could be done just by having a .targets in the package to hook into the restore step.  It would be good to have an example of how this is meant to be done (@justcla, can you look into documenting how this can be extended?).
The VSIX would provide both IntelliSense and restore-on-save functionality in VS, at least until a different mechanism is available.  So without a VSIX, the VS integration is currently not very extensible; you'd get a pretty vanilla editing experience and then rely on the restore-on-build package to get the files.
We were originally hoping to tackle the extensibility design after the initial release so we could get a better read on which scenarios need to be supported.  That should still be on the roadmap AFAIK, though I haven't been as involved in planning recently.

I just realized we don't need to do this at all, we can just add support for  https://www.jsdelivr.com/ which supports npm, and github

Hey @davidfowl , great idea!
Just one concern, I don't immediately see a way to tell jsDelivr that I want a specific hash on a specific branch. For example, take a look at this repo:
https://github.com/google/diff-match-patch
There are no tags or releases on GitHub. Nor are there any (as far as I'm aware) official NPM packages by Google for this repo. So, attempting to get at any kind of source with jsdelivr.com:
https://cdn.jsdelivr.net/gh/google/diff-match-patch/
Couldn't find the requested release version latest.

<EMAIL_ADDRESS>Couldn't find the requested release version HEAD.

<EMAIL_ADDRESS>Couldn't find the requested release version 9771b5f777e3abf97b842cc2a8c2bca296cde7b4.

So, commit hashes don't seem to be supported. :cry:
Little blocking edge cases like this that are going to either make or break this tool's usability for me.
Also, BTW great talk on Build 2018, SignalR and Bedrock! :)
:dizzy: :boom: Chaos Chaos - Do You Feel It?

@bchavez we might be able to add support for commit hashes to jsDelivr. Is there anything else that would be a problem?

<EMAIL_ADDRESS>works now.

The only thing that I can think of, is that with the GitHub through jsDelivr (or just GitHub in general really) there's no guarantee that a tag is a version number (or wholly parseable as one). This means there's a chance that LibMan will fail to get updates for a package. I'm guessing releases are more reliable for this? And there's definitely no way to check for updates if it's by commit hash. Unless there's some sort of date or something that's exposed in order to sort them?
What would happen if a command was issued to update a package (similar to #82) for a provider that does not provide versioning

The only thing that I can think of, is that with the GitHub through jsDelivr (or just GitHub in general really) there's no guarantee that a tag is a version number (or wholly parseable as one). This means there's a chance that LibMan will fail to get updates for a package.

I think it's a fair deal to say that update only works with semver versions (that's what jsDelivr does) but with a good version parsing algorithm you can make it work with almost any versioning scheme. Most packages provide either npm or GitHub releases so commits should be used only as a last resort.

Is GitHub or jsDelivr support something that is still on the roadmap?

There's a PR with jsDelivr implementation (#338) and related discussion (#344).

I tried using LibMan today and wanted to provide a quick update on this issue to drive home my point on the current state of affairs.
The Microsoft aspnet/jquery-ajax-unobtrusive project is not on CDNJS and the current version on NPMJS here is outdated.
So, The GitHub is probably the best place where you can get the latest 3.2.5 release of aspnet/jquery-ajax-unobtrusive. You can also get the latest from the "ajax.aspnetcdn.com" CDN run by The Microsoft. But, daayymm son... The Microsoft CDN don't work with LibMan.
Hopefully, by now ma point is clear. Whatever the reason, people are busy, lazy, forget, don't care, the physics of life & the universe,  LibMan will ultimately need to deal with the ever increasing world of disorder rooted in the 2nd law of thermodynamics. LibMan, the odds are against you.
Lmao.
It is 2018 and it's still funny, at the end of the day, downloading the JS file (via right-click/save as...) to your PC is still the best way to get the latest JavaScript for your website. Ain't no half-baked tool gonna do it for you.
These are the real world scenarios that LibMan needs to deal with effectively if it wants to be taken seriously. Otherwise it will fall into the category of tools that everybody has but nobody uses.
(... looking at you defrag.exe :eyes:)
:dizzy: :boom: Chaos Chaos - Do You Feel It?
Re: #344

Since yesterday jsDelivr can also serve branches without a specific commit hash so all three links in @bchavez comment work now.

Doesn't seem very "implemented" to me.  I'm constantly (but not consistently) getting errors like this:
2020-08-31T15:08:08.0456799Z   Restore operation started...
2020-08-31T15:09:48.7753980Z libman.json : error LIB002: The<EMAIL_ADDRESS>library could not be resolved by the "jsdelivr" provider [C:{my-folder}_work\r5\a{my-artifact}\drop\src{my-project}{my-project}.csproj]
2020-08-31T15:09:48.7755803Z
2020-08-31T15:09:48.7756176Z   One or more libraries failed to restore
2020-08-31T15:09:48.7756310Z
2020-08-31T15:09:48.8736718Z ##[error]Error: The process 'C:\Program Files\dotnet\dotnet.exe' failed with exit code 1
2020-08-31T15:09:48.8743535Z ##[error]Dotnet command failed with non-zero exit code on the following projects : C:{my-folder}_work\r5\a{my-artifact}\drop\src{my-project}{my-project}.csproj

@pabrams That's a separate issue that is still in need of some troubleshooting. #370


Better generation of optimized search query

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

This is not really a bug so I am marking it as feature
We are productionizing this PoC for corporate usage and found out few things that make the bot works better / smoother and generate more predictable queries that are sent to Cognitive Search - at least in our tests.
Right now in code, optimized search query in chatreadretrieveread.py is generated by gluing together:
prompt -> few shots -> whole history -> user query prefixed by "Generate search query for: "

This works pretty well, however on longer conversation chain we found out that that query can get messy, as after few shots there is real conversation history - with question answers - which seems out of place here.
We came up with a simple idea of keeping history of user questions and queries generated by the bot as separate field in the request and response, which allows as to bounce these and keep the backend stateless.
So in the end - after implementation - generation of optimized search query messages would look like this:
prompt -> few shots -> query messages history (user queries along with optimized query response from OpenAI) -> user query prefixed by "Generate search query for: "

If you guys think this approach sounds good, I can open PR with proposed changes. Thanks!

I am very interested in your suggestions because I also encounter the same problem as you mentioned. Can you state in detail the structure you built for query messages history (user queries along with optimized query response from OpenAI)?

Currently in query messages history we keep only user questions + optimized search query from OpenAI endpoint. Example (I wrote it myself now, didn't copy it from actual queries):
[
  {
    "role": "user"
    "content": "what is abc?"
  },
  {
    "role": "assistant"
    "content": "abc definition"
  },
  {
    "role": "user"
    "content": "what is def?"
  },
  {
    "role": "assistant"
    "content": "def definition"
  },
  {
    "role": "user"
    "content": "define both"
  },
  {
    "role": "assistant"
    "content": "definition of abc and def"
  },
]

As stated, we glue prompt + few shots on start and add current user query in the end (with the prefix). After that prefix is not present anymore in 'real' query messages history.

Thanks so much for sharing your approach!
I'm going to CC @srbalakr from the ACS team who worked most recently on the query generation for their thoughts. I think PRs are always great to share with the community, even those that don't get merged, but if this produces overall better response quality across many queries/knowledge bases, then we may want it in main.

Yes please share the PR, I have also put up a PR to stabilize the generation for lengthy chats using function calls. It should address most of the concerns.

Re-opened, I'm still interested in this. I don't have multi-turn evaluation setup yet, only single-turn (as you can see in https://github.com/Azure-Samples/azure-search-openai-demo/pull/967) so I haven't been able to evaluate this change programmatically.


Fatal error when phpinfo is disabled

If you put the phpinfo function in disabled_functions and try to use class Process with php8.0, it will throw the next error
PHP Fatal error: Uncaught Error: Call to undefined function phpinfo() in .../vendor/react/child-process/src/Process.php:373
There is the next code where it throw error attempting to call phpinfo function https://github.com/reactphp/child-process/blob/master/src/Process.php#L435
    /**
     * Return whether PHP has been compiled with the '--enable-sigchild' option.
     *
     * @see \Symfony\Component\Process\Process::isSigchildEnabled()
     * @return bool
     */
    public static final function isSigchildEnabled()
    {
        if (null !== self::$sigchild) {
            return self::$sigchild;
        }
        \ob_start();
        \phpinfo(\INFO_GENERAL);
        return self::$sigchild = \false !== \strpos(\ob_get_clean(), '--enable-sigchild');
    }

In the comments to the method there is a reference to a similar method from the Symfony class, where the disabled phpinfo state is provided https://github.com/symfony/symfony/blob/5.4/src/Symfony/Component/Process/Process.php#L1377
    protected function isSigchildEnabled()
    {
        if (null !== self::$sigchild) {
            return self::$sigchild;
        }

        if (!\function_exists('phpinfo')) {
            return self::$sigchild = false;
        }

        ob_start();
        phpinfo(\INFO_GENERAL);

        return self::$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
    }

Since phpinfo is disabled for security purposes in my case, is it possible to add this behavior?
Ready to send a Pull Request
Thank you for your time, checking this issue.

Just tagged and released v0.6.4 :shipit:


Updating preview image problem with 2c.

I hope I’ve opened this correctly, I am not used to doing this. Anyway, I have linked the issue I am having.             @sythesigh , I had reverted the implementation of preserving images from streaming after streaming is finished as it was implemented as a temporary solution until event images are fixed.
please open a new request for preserving latest image (either from event or stream, whichever comes last), if it makes sense
Originally posted by @fuatakgun in https://github.com/fuatakgun/eufy_security/issues/820#issuecomment-1594465668

Same Problem. After restart new picture available, but updating does not work.

@Lempomat , you mean new event images are not being updated or latest snapshot of the latest stream does not stay

Yes not being updated, when I restart the addon and the integration, the last pictures is coming. Yesterday for example I load the battery from one camera. In the intergartion I saw only the last baatery status, after restart I saw the actual battery load.
Sometimes the addonlog says "normal abort" so after that nothing works.

You should reach out to the bropat on add-on issue, integration is acting as an interface between add-on and home assistant.
Moreover, what you are describing is very much different than the first one. There is no benefit of overloading here

Ok so you mean it is a problem from the addon with the entity updates?


[now dev] Run prepareCache() asynchronous

And also wait a few seconds before running the actual logic, since the prepareCache() function may be computationally expensive, and its run in the same process as now dev (for now), so allow some time for the current HTTP request to complete.

Codecov Report

Merging #2105 into canary will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           canary   #2105      +/-   ##
=========================================
- Coverage    4.53%   4.53%   -0.01%
=========================================
  Files         243     243
  Lines        8592    8599       +7
  Branches      877     879       +2
=========================================
  Hits          390     390
- Misses       8185    8192       +7
  Partials       17      17

Impacted Files
Coverage Δ

src/commands/dev/lib/types.ts
0% <ø> (ø)
:arrow_up:

src/commands/dev/lib/dev-builder.ts
0% <0%> (ø)
: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 049d6e6...724e0d3. Read the comment docs.

Merging, since @styfle approved. Feel free to open another PR with more improvements.


Added iproute2 to Dockerfile installation command

Fixes https://github.com/perara/wg-manager/issues/74

I'm not sure why the CI build failed, but I can attest that this fixed the issue #74 for me.

Yes, I would agree that the non-existant tests are not the problem here :)
Looks good and thanks!


Functions that return VOID are not approprately handled by Binary Ninja's IL Views

If you take qmgr.dll from any recent Windows 10 system, and try and disassemble the COldGroupInterface::QueryNewJobInterface function within it, you will see something like the following:

Note that EAX is set to 0x80004001 before the last basic block is hit. This value corresponds to E_NOTIMPL according to https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/705fb797-2175-4a90-b5a3-3918024b10b8. Unfortunately I can't label this like in IDA as we don't yet have support for ENUMs but point still stands, the return value should be E_NOTIMPL if this branch is hit.
Now lets see what happens if we go to Low Level IL:

Nothing too bad just yet, but we can see EAX isn't really being used as the return value. Lets continue to Medium Level IL:

Ooof, well thats not good. It seems the call to __security_check_cookie is causing Binary Ninja to think that the return value of this call is the return value for the COldGroupInterface::QueryNewJobInterface function. In reality, rax_7 should be the return value.
For clarity's sake lets see what __security_check_cookie looks like in Binary Ninja's disassembly:

And here it is as a MLIL representation. Note that its just a retn statement, no value is attached.

I think this may be a bug that is caused due to IL views not respecting the fact that a function that returns void doesn't actually return a value at all. This subsequently is affecting all IL views and giving inaccurate results.
For assistance in replicating this issue I have attached my database and my copy of qmgr.dll which should allow people to easily replicate this issue. Please let me know if you have any further questions.
qmgr.zip

@0x1F9F1 Helped me out with this on Slack, turns out that one needed to set __report_gsfailure or __raise_securityfailure such that Binary Ninja realizes those functions don't return a value via current_function.can_return = False. This is cause __report_gsfailure will either call trap(0xd), which is a General Protection Fault according to https://wiki.osdev.org/Exceptions, or it will call __raise_securityfailure which will call TerminateProcess, so in any case this function should never return. Similarly as __raise_securityfailure always calls TerminateProcess, it too should never return anything as the process will be dead; it therefore has no chance of returning anything.
After applying the current_function.can_return = False fix to __raise_securityfailure and  __report_gsfailure  here are the new definitions:

But here is the best part: Binary Ninja now self corrects itself and realizes that there are multiple possible values for the return value, so it now uses the variable rax_6 as the return value register and we can see there are two places where it is assigned:


Should we get rid of the ssl.wire_trace feature?

We had used it for a while in an attempt to debug TLS issues and do some packet capture.  However, we have moved on to use other mechanisms.  If others are not using this feature, we should probably remove it.  I fear that it will fail with other TLS reworks if no one is watching it.

I agree.

+1 we should remove it.

Blocks #5457

Looks like it is now gone.

It was removed in this commit: 6ee5c616d165b969b42a86c4eb2ca0b1be86b881


Cannot use 'super' after return in version 0.3.12

return and super doesn't work together

Temporary solution: wrap a bracket around the super expresssion (super.doit()) will work around this bug.

0.4.1 is published, this issue is closed.


{network}Add tests for two network commands

Description

Add tests for two network commands, below tests will be affected:
test_network_ag_auth_cert
test_network_app_gateway_waf_policy_with_application_gateway
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

network

/azp run

/azp run


New paper about Machine Unlearning in Generative AI

Title: Machine Unlearning in Generative AI: A Survey
arxiv: https://arxiv.org/abs/2407.20516
Thanks if you would consider adding them to this repo!

Thanks a lot for your survey. We have added it into the repo. Hope it helps


To Reproduce
Steps to reproduce the behavior:

Create a batch endpoint with a PipelineComponentBatchDeployment as described here:
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-use-batch-training-pipeline?view=azureml-api-2&tabs=python
Invoke the endpoint like this:

job = ml_client.batch_endpoints.invoke(
                                       endpoint_name="",
                                       deployment_name="",
                                       inputs={},
                                       job_name="test_name"
)

The kwarg "job_name" is not documented:
https://learn.microsoft.com/en-us/python/api/azure-ai-ml/azure.ai.ml.operations.batchendpointoperations?view=azure-python#azure-ai-ml-operations-batchendpointoperations-invoke
But taking a look in to the source code  azure/ai/ml/operations/_batch_endpoint_operations.py you can see that there is really such a kwarg, see the code snippet below.
The Azure CLI has also equivalent argument:
https://learn.microsoft.com/en-us/cli/azure/ml/batch-endpoint?view=azure-cli-latest#az-ml-batch-endpoint-invoke-optional-parameters
Expected behavior
The created batch job should have a display Name "test_name" instead of a random name like "tidy_dress_xjcnyqw1".
Additional context
Setting the kwarg "params_override" like this:
params_override = [{EndpointYamlFields.BATCH_JOB_NAME: "test_name"}]
also does not achieve the desired result.
So there is no way to invoke a batch endpoint and get a job posted with a custom name. A workaround would be to set the description, for example after invoking the endpoint like this:
posted_job = ml_client.jobs.get(job.name)
ml_client.jobs.create_or_update(posted_job, description=f"training-{test_name}")

But this doesn't work as well.
    @distributed_trace
    @monitor_with_activity(logger, "BatchEndpoint.Invoke", ActivityType.PUBLICAPI)
    def invoke(
        self,
        endpoint_name: str,
        *,
        deployment_name: Optional[str] = None,
        inputs: Optional[Dict[str, Input]] = None,
        **kwargs,
    ) -> BatchJob:
        """Invokes the batch endpoint with the provided payload.

        :param endpoint_name: The endpoint name.
        :type endpoint_name: str
        :keyword deployment_name: (Optional) The name of a specific deployment to invoke. This is optional.
            By default requests are routed to any of the deployments according to the traffic rules.
        :paramtype deployment_name: str
        :keyword inputs: (Optional) A dictionary of existing data asset, public uri file or folder
            to use with the deployment
        :paramtype inputs: Dict[str, Input]
        :raises ~azure.ai.ml.exceptions.ValidationException: Raised if deployment cannot be successfully validated.
            Details will be provided in the error message.
        :raises ~azure.ai.ml.exceptions.AssetException: Raised if BatchEndpoint assets
            (e.g. Data, Code, Model, Environment) cannot be successfully validated.
            Details will be provided in the error message.
        :raises ~azure.ai.ml.exceptions.ModelException: Raised if BatchEndpoint model cannot be successfully validated.
            Details will be provided in the error message.
        :raises ~azure.ai.ml.exceptions.EmptyDirectoryError: Raised if local path provided points to an empty directory.
        :return: The invoked batch deployment job.
        :rtype: ~azure.ai.ml.entities.BatchJob

        .. admonition:: Example:

            .. literalinclude:: ../samples/ml_samples_misc.py
                :start-after: [START batch_endpoint_operations_invoke]
                :end-before: [END batch_endpoint_operations_invoke]
                :language: python
                :dedent: 8
                :caption: Invoke endpoint example.
        """
        outputs = kwargs.get("outputs", None)
        job_name = kwargs.get("job_name", None)
        params_override = kwargs.get("params_override", None) or []

Any update on this issue?


Schedule task [pghero:capture_query_stats] do not run inside container.

I'm trying get historical query stats using this docker container, but the command sudo pghero run rake pghero:capture_query_stats fail inside container.

Hmm, do you have any more output?  What is the sudo pghero run part for?


Add a debug option to draw bevy gizmos so we can identify where Tiled objects are

This would allow to identify where Tiled objects are.
Have a look at what's done for physics colliders for inspiration / maths stuff.
Should be gated behind a special "debug" option.

Feature merged in dev branch


integration comments from discourse, especially in Types section

https://discourse.julialang.org/t/excellent-cheat-sheet/7792

👍


Add support for riscv64 arch

Scaleway is now offering easy access to RISC-V servers, so naturally, I wanted to see if I could get Phoenix running on it.
This patch allows the esbuild portion of the Phoenix installer to work on the riscv64 architecture.

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


feat: show multiple command outputs in popup

relates to: #2

Codecov Report
Attention: Patch coverage is 85.71429% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 86.69%. Comparing base (a36b908) to head (8743cab).

Files
Patch %
Lines

src/state.rs
57.14%
3 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #100      +/-   ##
==========================================
- Coverage   86.70%   86.69%   -0.01%
==========================================
  Files          39       39
  Lines        3632     3639       +7
==========================================
+ Hits         3149     3155       +6
- Misses        483      484       +1

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

@golden-expiriensu This now works :)
Think I found another edge-case as well
$ git stash push --staged
No staged changes
$ git stash push --include-untracked

$ git stash pop 1
fatal: log for 'refs/stash' only has 1 entries

Hmm, indeed, I'll fix that


Named mixin application with invalid mixed-in class does not know that is was a mixin application

class A {}
int B;
class C = A with B;

library;
import self as self;
import "dart:core" as core;

class A extends core::Object {
  default constructor •() → void
    : super core::Object::•()
    ;
}
class C extends self::A {
  constructor •() → void
    : super self::A::•()
    ;
}
static field core::int B;
static const field dynamic #errors = const <dynamic>["file:///test.dart:3:7: Error: The type 'B' can't be mixed in.\nclass C = A with B;\n      ^", "Error: The type 'B' can't be used as supertype.", "Error: The type 'B' can't be used as supertype."]/* from null */;

As you can see, it does not have mixedInType set, so when we resynthesize element model we don't know that it was a mixin, and that all its constructors are synthetic.

Similarly to #31007, we don't have an InvalidSupertype yet.


[Snyk] Security upgrade node from 18.17-bullseye-slim to 18.18.2-bullseye-slim

This PR was automatically created by Snyk using the credentials of a real user.Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.
Changes included in this PR

Dockerfile

We recommend upgrading to node:18.18.2-bullseye-slim, as this image has only 53 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.
Some of the most important vulnerabilities in your base image include:

Severity
Priority Score / 1000
Issue
Exploit Maturity

793
Out-of-bounds Write SNYK-DEBIAN11-GLIBC-5927133
Proof of Concept

793
Out-of-bounds Write SNYK-DEBIAN11-GLIBC-5927133
Proof of Concept

614
Out-of-bounds Write SNYK-DEBIAN11-NCURSES-5421197
No Known Exploit

614
Out-of-bounds Write SNYK-DEBIAN11-NCURSES-5421197
No Known Exploit

614
Out-of-bounds Write SNYK-DEBIAN11-NCURSES-5421197
No Known Exploit

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

LGTM
@AlfredoG87 can you verify a deployment with an image from this version passes @release tests


Support format on range

When I try to format selected code with this extension, it prompts:

Extension 'autopep8' is configured as formatter but it cannot format 'Python'-files

But autopep8 actually supports formatting a code fragment, and the Python extension with autopep8 can work properly.

I am experiencing the same issue.

"editor.formatOnSaveMode": "modifications" would be appreciated too :)

Glad to know I'm not alone. Or at least a message that says it is not supported would be helpful

Same issue here:

Just another +1 ...

And another one

I have this issue as well.  It's frustrating since I want to format the code that I've added or modified not the whole file as it would introduce changes to the project that are not related to the scope of my issue.

+1

Same for me, as far as I remember it worked when autopep8 was part of the python extension. Or am I wrong?

Same for me, as far as I remember it worked when autopep8 was part of the python extension. Or am I wrong?

Python extension did not support formatting on range. It formatted the entire document. I think people are running into this because of the shortcut. There are two shortcuts:

This extension supports the editor.action.formatDocument and the actual range formatting is something that we are open to take PR on.

I think this is mis-tagged as a "feature request".
Not supporting the formatSelection is a massive regression from the bundled and now deprecated autopep8 functionality in vscode-python, which now refers to this repo as a replacement.
Please consider adding this to your roadmap.

@Pyrestone I plan on adding this support this milestone. I need to fix an issue with how we generate the edits currently to support this, but intent is to add this support along with the edit fix.

PR for this is up. Still in draft. If some one wants to give it a try here is the build:
https://github.com/microsoft/vscode-autopep8/suites/16845625991/artifacts/962135968


Home-Assistant 2022.4.4 does not load tuya-local

Since 2022.3 the integration does not seem to load anymore.
Tried going back to old 14.4 (which it had before the update) and also to main version.
It tries to load the repository but never shows as integration in HACS (1.24.5). It completes the install it seems.
It is possible to add the integration tuya_local but then this error occurs:

Uninstalling and re-installing did not help.
Any idea what is going wrong here?

After a reboot of the OS, the integration now shows up in HACS. Issue persists when trying to add a tuya device.

Duplicate of #151 and if you are using 0.14.4, #144.  As with #151, the issue has been resolved by restarting HA, though your last comment suggests it is not completely solved, but it isn't clear what the remaining problem actually is.

Indeed is a duplicate.
After many tries, i was able to get it working again ;-)
I used the redownload menu in HACS and rebooted. Now there was a tuya_local and tuya_local.old in the cutom_components directory. The error was only referring to the old, so i removed it and then rebooted again.
Now i could add the Device without a problem :-)
The error was referring to the


Create Gradient Sparse Matrices

Sparse matrices that act as Matrix * vector multiplication and gives a vector of finite differences.
Reshape (columnwise), will produce the classical finite differences

Great! I believe you are already working on this?  On the right you can assign the issue to someone so in this case would make sense to assign to yourself I think. I think it would also make sense that you add it to the Project "Framework Optimisation Enhancements", since we need this to test the gradient operators, which are already added to this project.


Added gamecube support for byte sized packets sent by the NicoHood Ni…

…ntendo API
This adds support to reads packets in the form of bytes that are sent from the NicoHood Nintendo API at https://github.com/NicoHood/Nintendo
The reason for this is that when using the above API, it's incredibly time sensitive to write data that is read from the controller to the console, so to save time we just call a single write for each packet (and write the whole gamecube report) via Serial.write(report.raw8, sizeof(report.raw8)).
It however is in a different format, thus the need for the NICOHOOD_BUTTONS setup.
Currently this only supports gamecube input but will be extended to N64 in the near future.

Looks good, thanks!


do not work with bootstrap

if a page import bootstrap.js, jquery-pjax will not work again, click a tag nothing happening.

test
to be replace

html code above, but i don't know how to insert html code.


Drivetrain

When you get the time, @RoboEagles4828/new-programmers should study up on how to make a drivetrain. This should be good to help you guys get used to everything and whatever. Make a new branch called feature/drivetrain, probably... maybe put your name if you want to work separately: feature/drivetrain-jackie. Or you could work together. Feel free to look through all the other repositories for tips.

Bonus points/assignment: If you figure it all out, try to make the drivetrain into a library (.e. like a module of code that can be used elsewhere) and compile a JAR that can be imported into the robot code from year to year so that the same code doesn't have to be re-written over and over again.

May or may not have forgotten to tell them about Github Issues. We'll see.

I got an email notification, I'll work on this when I have time.

@jacksondm33 Is this finished?

Ah, if you merge, don't forget to say "Closes #(this number)"

Haven't tested the DriveTrain completely, but so far it works. I also need to test other code in the branch but I should be able to do that today.

I did forget to say "Closes #(this number)"


auto-remove empty zombie fw aliases

[x] Redmine Issue: https://redmine.pfsense.org/issues/9790
[x] Ready for review

auto-remove empty zombie fw aliases
If you create Alias table under Firewall / Aliases / IP with FQDNs,
PF table with such name stays in system after you delete alias.
it just became empty after "deleting".
if works as garbage collector, checking which aliases presents in config and removes other
original issue:
If you create Alias table under Firewall / Aliases / IP with FQDNs,
PF table with such name stays in system after you delete alias.
it just became empty after "deleting".
you can see that empty table on Diagnostics / Tables or with pfctl -sT
it's not deleted if you do "Filter reload".
it seems there is needed "pfctl -t <alias_name> -T kill" command

IMO it would make more sense to delete pf table together when alias is deleted


[Feature]: Add Window-management to chromium browser

🚀 Feature Request
we need to have another grant permissions to allow the windows-management permission popup
Example
No response
Motivation
permissions popup cannot add windows management permission for pop up windows blocking automation

See https://github.com/microsoft/playwright-java/pull/1629#issuecomment-2233075927.


add root calculator

Description
equation details are taken and result we give roots real,distinct and the roots
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

We already have Quadratic and Cubic Equation Calculators, you can add any feature in those if you want to @Sandhyarani23


Support for Agent level tag

Requirement - what kind of business use case are you trying to solve?
I think it would be nice to be able to add tag at the Agent level. It would be similar to adding the tag at the Tracer level via JAEGER_TAGS environment variable
Here's some example of the tags we like to be able to inject into each traces:

AWS Instance metadata (similar to https://github.com/takus/fluent-plugin-ec2-metadata
Kubernetes metadata (similar to https://fluentbit.io/documentation/0.13/filter/kubernetes.html)
IP address (if you run the Agent and the application with the Tracer in different container, they will likely have different IP address)

Problem - what in Jaeger blocks you from solving the requirement?
I don't there's anything blocking this, it's a feature request
Proposal - what do you suggest to solve the problem or improve the existing situation?
Ability to provide Jaeger Agent with tags at startup (via something similar to JAEGER_TAGS)
Any open questions to address

Should these tags be stored and displayed like the Tracer tags? (under the Process section in the Query UI)

edited to remove the plugin proposition and to reflect the latest state of the request

I'm a bit unclear on the uses case here
For e.g.

if you run the Agent and the application with the Tracer in different container, they will likely have different IP address

If this is true, then wouldn't all agent tags be incorrect for the span?

It would be similar to adding the tag at the Tracer level.

Hypothetically, if these tags were to be added at the Tracer level, does it solve your problem?

I think the following information we would be useful to be attached to the traces (for performance but also root cause analysis):
AWS:

Instance type
Instance ID
AZ
Private IP (different than the IP you can get inside a container unless you use --net=host)
EC2 tags (we use tags a lot internally so that's a valuable piece of information)

Note: The EC2 tags can change without any reboot
Kubernetes (we are running the Agent as a sidecar currently):

Pod Name
Namespace
Pod Labels
Pod Id

Note: This could easily be achieved by injecting environment variable using the Downward API
Docker (of the Jaeger Agent container):**

Container tag (Is it using latest? Or is it still hardcoded to 0.6? etc.)
Container sha (because a tag can change overtime)

Why in the Agent?
Mostly because you only need to code it once and not in each Client libraries.
But here's a few other reasons:

In Kubernetes, you would only need to mount the ServiceAccount in the Agent container
If you run multiples containers in AWS, it would reduce the number of API requests (one per host instead of one per instrumented container)

On the other hand, here's a problem I see if it's done in the Agent:

If you run the Agent as a Kubernetes DaemonSet, there's no way to extract the application pod information (because the Agent doesn't really know where the data came from)

+1 to this feature request. I see this as a natural extension to the JAEGER_TAGS env var as seen in the Go and Java clients.

Why in the Agent?
Mostly because you only need to code it once and not in each Client libraries.

@ledor473 I feel that using the JAEGER_TAGS env var could be a potential solution, you can have an independent process that injects whatever is required into this. Are there difficulties doing this?

I see this as a natural extension to the JAEGER_TAGS env var as seen in the Go and Java clients.

@jpkrohling  I'm not convinced that applying these tags for spans reported by a given agent adds a lot of value over setting these environment variables and having the clients inject them into spans.
I'm not against the idea of enriching span data with information from the client, perhaps in the form of tags, but I think that the existing mechanism is good enough for the use case. (We should standardize across all official clients)

I'm not convinced that applying these tags for spans reported by a given agent adds a lot of value over setting these environment variables and having the clients inject them into spans.

On environments making use of containers, the container might not have access to the entire "context", like what's the actual node it's running on, or the DC/Rack. The agent might have this info, as it would potentially be running directly on the node (bare metal/VM), and not inside a container.

I'm a bit confused. If the agent is running as a daemon on the host, it by definition cannot have enough context to enrich the spans from a given service, because it is shared with other services. And if it is running as a sidecar, then I am not sure why it matters who gets the desired metadata via env, the sidecar or the main process.

If the agent is running as a daemon on the host, it by definition cannot have enough context to enrich the spans from a given service

The agent wouldn't care what's inside the spans and which service is submitting it, just that they all should contain the tag tenant: xyz.

I have no objections to supporting something like JAEGER_TAGS in the agent.

Implementing the equivalent of JAEGER_TAGS in the Agent would work for our use case. I can edit the initial post to remove the "plugin" idea and focus around Agent-level tags.
The open question is still valid. It will help guide the implementation of it

Re open question - yes, these should go into tracer tags imo.

I quickly look into implementing this but I couldn't find any easy place to hook into.
Unless I've missed something (totally possible as I've never looked at Thrift), the Agent seems to only forward/proxy what it receives to the Collector (with a buffer).

Note: #1396 implements agent tags, but only for gRPC reporting path (not for TChannel, which we're looking to deprecate).


modified required cpu to resolve prod issue

Tech debt for chd order api + resollving cpu issue in prod.
ticket : JU-519

CI: No IaC security warnings found

CI: No IaC security warnings found


one-pass filtering instead of two-pass filtering

To improve frequency resolution (method as described by @roemervandermeij )
Also make the morlet filter optional functional

Is two-pass filtering still the default? IMO a bigger issue than unexpected bandwidth

as of now, yes. but will fix this in the upcoming change (which will have to be a different API to improve the filtering, see https://github.com/voytekresearch/pacpy/issues/47)


Establishing valid RTC connection on room page render

Which Issue was this PR made for?

Closes #110

What is within the scope with this PR
Establishing a valid connection when the room page loads without relying on the device selector.
What is NOT in the scope with this PR
Related Issue
Other sidenotes that reviewer should be aware of

I wasn't adding the ICE Candidates so I added them.
See:
https://webrtc.org/getting-started/peer-connections
Currently, I'm not using the trickling method suggested above which would theoretically be faster, but instead waiting until all the candidates are gathered and sending them in bulk.
See:
https://muaz-khan.blogspot.com/2015/01/disable-ice-trickling.html
Might want to change that in the future.
Also ontrack seems to be not working (not supported by chrome) so I'd like to change the to onstream. This should allow me to send a offer only once.

Yeeeee


Register with Azure migrate

What permissions does the Azure user registering to Azure migrate require?

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

ID: 3627fc8d-b1f2-0d8e-958b-a6e3a95c939b
Version Independent ID: 47425ae8-9f63-046b-c1f0-daf64cb6734d
Content: Set up an appliance for Azure Migrate Server Assessment/Migration for VMware VMs
Content Source: articles/migrate/how-to-set-up-appliance-vmware.md
Service: azure-migrate
GitHub Login: @rayne-wiselman
Microsoft Alias: raynew

Thanks for your comment. We are actively investigating and will get back to you shortly. Thanks for your patience.

Please take a look at the walkthrough for the scenario you're migrating (links below). You should find the information there. If you don't find what you're looking for let me know Thx!
https://docs.microsoft.com/en-us/azure/migrate/tutorial-prepare-vmware
https://review.docs.microsoft.com/en-us/azure/migrate/tutorial-prepare-hyper-v?branch=release-ignite-migrate

@OffColour I'm closing this since think the required permissions are documented in this article - https://docs.microsoft.com/en-us/azure/migrate/tutorial-prepare-vmware#prepare-azure. If there's something you can't find please reopen and let us know.
Thx
#please-close


Demonstrate AWS SAM CLI support for local testing of API Gateway Lambda authorizers

https://aws.amazon.com/about-aws/whats-new/2023/04/aws-sam-cli-local-testing-api-gateway-lambda-authorizers/

Should we do demonstrations in all languages of Lambda Authorizers?


fix(deps): Remove dev_dependency = True for rules_proto and rules_python.

rules_proto is used in protos/google/cloud/compute/BUILD.bazel whereas rules_python is used immediately below with the python extension.

This change is

/gcbrun


Add keyboard

See 9cd9731.
It's not ready yet, but you can play if you don't have a keyboard now.

This works for now. I'll reopen if I come up with more ideas.


Bump upjet to the commit 3afbb77

Description of your changes
This PR bump upjet to the commit 3afbb77, which fixes the issue of hiding error messages.
I have:

[ ] Read and followed Crossplane's contribution process.
[ ] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

/test-examples="examples/autoscaling/v1beta1/autoscalinggroup.yaml"

/test-examples="examples/ec2/v1beta2/vpcendpoint.yaml"


Amiga (MiniMig core) ADFs don't mount on boot

Thank you for an invaluable addon to MiSTer!
I have a couple of problems to report with the Amiga core and your script. The GamesMenu script finds the disk images (ADFs) and adds them properly to the core list, but when booting into one of those games, the disk isn't mounted into df0.
I'm not sure if the problems are on your side, or on the core itself. The core is unique in that it seems to need the images placed in the root (\amiga), rather than the typical games folder (\games\amiga) - maybe that's related?

It seems to be because it puts the wrong path in -
For files in the root Amiga folder, It generates this:
<file delay="1" type="f" index="0" path="media/fat/Amiga/.....
but in order to boot it needs to be this:
<file delay="1" type="f" index="0" path="../../../media/fat/Amiga/.....


completeJSDocs: false does not fully disable autocompletion

Steps to Reproduce

Add the following options to User\settings.json:"typescript.suggest.completeJSDocs": false,
"javascript.suggest.completeJSDocs": false,

Create a Javascript or Typescript file.
Type /** and press enter.

Results
Expected
A blank new line will be inserted, respecting the user's new line indentation settings.
Actual
A new line is inserted with the following characters: <space>*<space>

VS Code version:
Code 1.45.0 (d69a79b73808559a91206d73d7717ff5f798f23c, 2020-05-07T16:18:48.860Z)
OS version:
Windows_NT x64 10.0.18362
Does this issue occur when all extensions are disabled?:
Yes

These settings only control filling in the JS Doc template. The behavior you show is controlled by the onEnter rules with is closer to bracket machine. I don't think we provide a way to disable the on rules at the moment.
Marking as a feature request

@mjbvz
I'd argue that this is more of an unexpected behavior than a feature request. If I open up Notepad, type /**, and press enter; the editor will add a new line with no additional characters. VSCode is adding unexpected autocompletion functionality that cannot be disabled.
I also don't think the editor-autoindent tag is relevant (or primary, at least). The note about respecting users' new line indentation settings is more of a precautionary statement to ensure the consideration of indentation based settings being applied in a way that would be expected, since that feature also interacts with the scope of the issue. However, that is a separate piece of functionality that is only partially related to the actual issue of unwanted characters being added. Maybe the suggest tag is more relevant, since it is noted with IntelliSense, Auto Complete.

The feature request is to be able to disable this functionality :)


Fixed Column Names in enterprise_rma Table

Removed Backward slashes in the column names.
Added an underscore for the entity_id column that was a blank space.

Can one of the admins verify this patch?


Sync byte (55) repeated

KwpCommon.cs does not catch repeated sync byte 0x55. My cluster always repeat sync byte and a pair of key bytes if it receives response a bit later than ideal timing, and almost always does it even with ideal timing. On the second try it seems happy every time. I made a dirty, but 100% effective hack (since AFAIK KWP1281 block length would never be 0x55):
KW1281Dialog.cs
public Block ReceiveBlock()
...
var blockLength = ReadAndAckByteFirst();
...
        private byte ReadAndAckByte()
        {
            var b = KwpCommon.ReadByte();
            Thread.Sleep(TimeInterval.R6);
            var complement = (byte)~b;
            KwpCommon.WriteByte(complement);
            return b;
        }

        private byte ReadAndAckByteFirst(int count = 0)
        {
            if (count > 5)
            {
                throw new InvalidOperationException(
                    $"Cannot sync with {count} repeated attempts.");
            }
            var b = KwpCommon.ReadByte();
            if (b == 0x55)
            {
                var keywordLsb = KwpCommon.ReadByte();
                var keywordMsb = KwpCommon.ReadByte();
                BusyWait.Reset();
                var complement = (byte)~keywordMsb;
                BusyWait.Delay(25);
                KwpCommon.WriteByte(complement);
                Log.WriteLine($"Warning. Sync repeated.");
                return ReadAndAckByteFirst(count);
            }
            else
            {
                Thread.Sleep(TimeInterval.R6);
                var complement = (byte)~b;
                KwpCommon.WriteByte(complement);
                return b;
            }
        }

There should be a more elegant solution.

Thanks, I'll take a look at implementing this.

Sorry I haven't gotten to this yet. In the meantime, if you have a chance, please give the latest release a try as I fixed a bug that was causing out-of-spec wakeup timing.


Feature request: Request MTU size

First of all, thanks for this awesome project.
I'm write an app using BLE to listen to some sensor data, I was able to receive notify value on a characteristic. But mtu size is 23 bytes by default, so I can only read the first 20 bytes, I didn't find any api to request a large size. My sensor data length is mutable and could be large than 23.
My app is running on > Android API 21. Here I found a stackoverflow post

If you want to send more than 23 bytes on android, use writeWithResponse instead of writeWithoutResponse

@RyanYANG52  @bondjpf @LastMonopoly
I have implemented MTU functionality in the latest version of the plugin (0.6.1).
Please try it out and let me know your feedback.


Python default logging isn't being output to the console

Couple things on python's console output:

I get a lot of "execing" "execed" and "evaling" when running python scripts that belong to LT and not my script (I assume they were part of your debugging output).

The second point is logging. The logging output is not being shown on the LT console (unless I write to the logger on the same file).

Essentially, the output from evaling the code inside LT compared to doing "python foo.py" is very different and most importantly, it's missing all the debugging output from my own code.

I created LightTable/Python#37 for this in the repo for the Python plugin.
Note that we really need someone to commit to maintaining the Python plugin as none of the current members of the core team, nor any frequent contributors, are using Python.


Editing a markdown cell using Keyboard shotcut (Enter key) scrolls markdown cell up and there's no scrolling when using dbl click

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

Create a new notebook
Add a code cell
Add a markdown cell with a few lines such as follows

Markdown cell
# Heading
* 1
* 3
* 3

Go into preview mode in markdown
Edit first cell
Esc to get into notebook mode
Arrow down to select markdown cell and hit enter
Watch how the mardown cell scrolls up in the notebook view
Go back to preview mode
Scroll the notebook to view the first cell again and edit it
Now select the markdown cell using the mouse
Double click the mardown cell to edit it and wathc how it does not scroll!!

I.e. using keyboard vs mouse results in different behaviour with scrolliing of the notebook.
Ideally I would expect there to be no automatic scrolling when editing using keyboard, just as with mouse

given the md cell is already in view we should not scroll this cell

When pressing enter, we try to reveal the cursor selection in the cell editor into view by calling https://github.com/microsoft/vscode/blob/01f46bb5357baa8f3b9da690e1e34eb78e09a72b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts#L2394
which uses the Default reveal type
https://github.com/microsoft/vscode/blob/01f46bb5357baa8f3b9da690e1e34eb78e09a72b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts#L2133-L2135
My expectation is it only scrolls the cell if it's out of the viewport but currently it always reveals the cell to the top of the viewport. Changing the reveal type to CellRevealRangeType.CenterIfOutsideViewport does fix the problem (as it should behave, here I'm not necessarily suggesting we change the reveal type in revealRangeInViewAsync).

Assigning to Feb milestone as the experience is quite bad. What surprised me is we didn't get user reports for this, which made me wonder how many users edit markdown cells after they are initially created.


Change project structure

Description
Necessary project structure adjustments to comply with current requirements of module operator structure (https://github.com/kyma-project/template-operator)
Changes proposed in this pull request:

move operator files from operator directory to root of the repository,
adjust accompanying tools files: Makefile, Dockerfile, .gitignore, PROJECT,
remove operator directory.

Related issue(s)

Resolves #46

/retest


Replace cmake/Modules/FindFreetype.cmake with CMake-provided module

Subject of the issue
CMake already provides a FindFreetype module so we should try to use that instead of keeping our own copy of it. As far as I can tell we don't to make any custom mods to get it to work so this should be theoretically possible. It also has the benefit of letting get to use the Freetype::Freetype target it provides instead of having to use an un-namespaced library.
https://cmake.org/cmake/help/latest/module/FindFreetype.html

For reasons I don't understand, we can't use the Freetype::Freetype target. We're using CMAKE_LIBRARY_PATH so that the find_library call within FindFreetype.cmake will find our macOS Freetype framework in extlibs/. However there's a weird issue with imported targets (Freetype::Freetype is an IMPORTED target) not understanding how to link frameworks. Hopefully there's a viable solution so that we can use more imported targets and fewer custom Find modules.
For now we can delete our copy of FindFreetype.cmake but we still must create our own non-IMPORTED Freetype target so that linking frameworks doesn't fail.
@friendlyanon Do you know what may be going on here?

Here are some relevant links. I still can't figure out if this is a CMake bug or if we're doing something wrong. It sounds like in the past this used to work.
https://gitlab.kitware.com/cmake/cmake/-/issues/18753
https://gitlab.kitware.com/cmake/cmake/-/issues/19410

cmake_minimum_required(VERSION 3.25)
project(freetype_test)

list(APPEND CMAKE_INCLUDE_PATH ~/Projects/sfml/extlibs/headers/)
list(APPEND CMAKE_LIBRARY_PATH ~/Projects/sfml/extlibs/libs-osx/Frameworks/)
find_package(Freetype REQUIRED)

add_executable(main main.cpp)
target_link_libraries(main PRIVATE Freetype::Freetype)

Here's a sample project to demonstrate this failure. Change the two paths to reflect where extlibs/ lives on your machine.

@ChrisThrasher it works on WSL2, cmake version is 3.25.2

In writing #2666 I realized that we have to use our own modified FindFreetype.cmake to support finding frameworks. Once CMake 3.28 ships and we can start depending on it then we can use the upstream FindFreetype.cmake.


Add url-slug to package.json components, Makes prompt easier to find

Fixes #805
Additional description
Adds Modal and Prompts to the page name instead of just Modal so that folks can find prompt. url slugs previously were done by text transforms on the doc site side: start case, kabob case, etc. The site would transform it to kabob and then try to reverse it, but that didn't always work based on capitalization. This adds clarity to what URL gets created on the doc site and should be easier to debug.

REVIEWER checklist (do not remove)

[ ] TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.
[ ] Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
[ ] Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
[ ] Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
[ ] While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

No production code changes.


Feature/contact form

👷 Deploy Preview for delicate-stardust-0dbbb2 processing.

Name
Link

🔨 Latest commit
cf560110ab01ea81c92b5c290e5bec51a6777b4f

🔍 Latest deploy log
https://app.netlify.com/sites/delicate-stardust-0dbbb2/deploys/64fcd8cd8b4bd0000815d9d7


remove unnessary bundle listener triger when topic lookup

Motivation
When call resolveOwnership, it will trigger listener notify, and the registered listeners will trigger onLoad/unLoad operation. However, the resolveOwnership will be called by topic lookup check, thus the registered listeners will be notified on each lookup check.  In fact, the listeners only need to be notified when bundle load/unload.
Changes

remove listeners' trigger notify operation on resolveOwnership

@kezhuw  Would you please help review the code?

/pulsarbot run-failure-checks


Change the method of adding keys from directly modifying files to using the command "tizen security-profiles add".

At the moment peeking this I'm quite nervous. It seems to completely rework the action removing inputs and changing the output. Did you mean to open this upstream?

Yes, indeed. I found the original version to be flawed. Despite inputting all the necessary content, I encountered issues such as being prompted with a password error despite entering the correct one and facing difficulties installing the generated build files onto my device. Therefore, I meticulously revised the build script based on the Tizen CLI documentation to ensure seamless functionality.

Not moving forward with this at this time.


Update troubleshooting.md

As I just learned, having spaces in the path of the directory which you are running npm i better-sqlite3 can cause issues with installation, presumably because, according to the error message, it does not insert escapes for characters like spaces. I just wasted two days, and I don't want anyone else to do so.

I guess it won't hurt having it in there, multiple issues had been opened in the past because of that (e.g https://github.com/JoshuaWise/better-sqlite3/issues/547). But maybe make it a sentence at the end of the node-gyp item, because that's a limitation of node-gyp and not better-sqlite3.

I added @Prinzhorn's suggestion to #814


SLAM algorithms doesn't work on a bagfile

ISSUE TEMPLATE ver. 0.3.0

Which TurtleBot3 you have?

[ ] Burger
[x ] Waffle
[ ] Waffle Pi

Which ROS is working with TurtleBot3?

[ x] ROS 1 Kinetic Kame
[ ] ROS 1 Melodic Morenia
[ ] ROS 2 Dashing Diademata
[ ] ROS 2 Eloquent Elusor
[ ] etc (PLEASE, WRITE DOWN YOUR ROS VERSION HERE)

Which SBC(Single Board Computer) is working on TurtleBot3?

[ x] Raspberry Pi 3
[ ] Intel Joule 570x
[ ] etc (PLEASE, WRITE DOWN YOUR SBC HERE)

Which OS you installed in SBC?

[ ] Raspbian
[x ] Ubuntu MATE 16.04 or later
[ ] Ubuntu Server 18.04 or later
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Which OS you installed in Remote PC?

[ x] Ubuntu 16.04 LTS (Xenial Xerus)
[ ] Ubuntu 18.04 LTS (Bionic Beaver)
[ ] Linux Mint 18.x
[ ] Linux Mint 19.x
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Write down the commands you used in order

$ roscore
$ export TURTLEBOT3_MODEL=waffle
$ roslaunch turtlebot3_bringup turtlebot3_remote.launch
$ export TURTLEBOT3_MODEL=waffle
$ rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
$ roscd turtlebot3_slam/bag
$ rosbag play ./ground.bag

Copy and Paste your error message on terminal

rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
[ INFO] [1592939181.850658835]: rviz version 1.12.17
[ INFO] [1592939181.850723068]: compiled against Qt version 5.5.1
[ INFO] [1592939181.850731910]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1592939181.994656277]: Stereo is NOT SUPPORTED
[ INFO] [1592939181.994763535]: OpenGl version: 3 (GLSL 1.3).

Please, describe detailedly what difficulty you are in
I have tried to execute different SLAM on .bag file, which I have already recorded
I have recorded bag file from simulation environment using the following commands:

roslaunch turtlebot3_gazebo navibot_world.launch

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
rosbag record -o ground /scan /tf  /odom

I hope you can help me

@Dhaour9x Hi, please allow me some time to review this. I'll get back to you as soon as possible. Thanks!

Thank you @ROBOTIS-Will
I am looking forward to your support 👍 -)

Hi, I'm sorry about the late reply.
One of our engineers suggested to record the map data, since fixed frame is based on the map.
The tf may not be connected among scan, odom and the map.

Thank you for your feedback @ROBOTIS-Will
I have recorded a bag  file ![groundTh.bag](https://drive.google.com/file/d/1cDEkcxOhhCL0w9krr1ozmeZVCELl7JsN/view?usp=sharing
with following topics: /tf  /odom /map /scan.  The First issue is the message timestamps on the bag are set to the beginning of UNIX time (Jan 1 1970).
rosbag info groundTh.bag
path:        groundTh.bag
version:     2.0
duration:    6:39s (399s)
start:       Jan 01 1970 01:09:21.55 (561.55)
end:         Jan 01 1970 01:16:00.66 (960.66)
size:        16.4 MB
messages:    25943
compression: none [22/22 chunks]
types:       nav_msgs/Odometry     [cd5e73d190d741a2f92e81eda573aca7]
             sensor_msgs/LaserScan [90c7ef2dc6895d81024acba2ac42f369]
             tf2_msgs/TFMessage    [94810edda583a504dfda3829e70d7eec]
topics:      /odom   11974 msgs    : nav_msgs/Odometry
             /scan    1995 msgs    : sensor_msgs/LaserScan
             /tf     11974 msgs    : tf2_msgs/TFMessage

How can I correct the timestamps? I'm trying to launch the .bag file in the same SLAM launch file, How can I do that in turtlebot3_slam.launch file
Another Issue is the wheels link have no tf (see pic)

So for launching SLAM on bag file I have used the following commands:
roslaunch turtlebot3_slam turtlebot3_slam slam_methods:=gmapping
rosbag play groundTh.bag --clock

Is this correct or are there other launch files I need to run too??
Thank you

@ROBOTIS-Will can you please give me the solution for this issue.
I am looking forward to your reply

@ROBOTIS-Will
please I need your help to solve this issue
Thank you

@Dhaour9x I'm sorry about the delayed response. I'll try to replicate your issue and get back to you. Thank you for your patience!

Thank you @ROBOTIS-Will
I'm looking forward for your feedback

@Dhaour9x
I'm sorry for the late check in, but have you resolved this issue?

not yet, I still have the issue

Apologies for the delayed response. We have assembled a TF team to address TurtleBot3 issues, but as this issue has been open for a long time, we will close it for now. Currently, our team is supporting Noetic and Humble versions. Please try again with the latest version, and if you encounter the issue again, feel free to reopen it.


QGIS: Show data for selected nodes

In QGIS you can select one or more nodes:

This can be used to show the Node table for those nodes:

However, if you want to see the data associated with this node, you need several extra steps. For instance, open the "Basin / profile" table, apply a field filter on node_id, and enter the node ID you selected manually.

Ideally a user can directly see and edit all data for a selected node. Perhaps we can for a node of type X, automatically apply a field filter on all tables X / * to show this. Or perhaps some other way that integrates nicely with existing QGIS functionality exists? Like perhaps automatically doing some kind of joins between these tables.
It looks like this would also be needed for #790.

We are looking for QGIS joining and relations: https://docs.qgis.org/3.34/en/docs/user_manual/working_with_vector/joins_relations.html#setting-relations-between-multiple-layers
I did some small tests. joining is nice when there is a 1-to-1 relation between features in different layers. For example: Basin / state or Basin / area.
I made a model and added Basin / area and Basin / state. Then I set a Joins property on the Basin / area layer. When I then create a layer, and fill in the node_id, it automatically matches the node_id and gives me the information about the node. And I also tried it the other way around. On Node I set a relation to Basin / state, and when you add a new node, it will automatically add a row in the Basin / state if it's not there.

The other option is useful for 1-to-N relations, like Basin / time. Then it's better to use relations and it looks more like this:

Both joins and relations are stored in QGIS project files, which means that we have to initialize all those relations every time we will open a toml file. The other option is that we start working with QGIS project files and let users open their projects that way, instead of the Open button in the Ribasim plugin.

Oh, the relations thing looks very good! Does it provide a good table view as well?
That is, what if you click this button:

Clicking that button will just bring you to the table I guess.
Another option would be to add relationship tables with SQL queries inside of the geopackage. In that way it is not stored in a qgis project, but in the geopackage itself.

A possible risk with storing it inside of the geopackage is that QGIS / OGR will not be smart enough to see through it when it matters.
For example, if you have transient data associated with vector features, one way to make it known to QGIS is by simply duplicating the geometries for each timestamp. This has the unfortunate downside of making QGIS quite slow to draw the vector features. The reason is that it's filtering over all features whenever you pan the map view to decide which ones to show.

More information:

https://gis.stackexchange.com/questions/482335/how-to-store-relationships-in-geopackage-with-qgis
https://github.com/qgis/QGIS/pull/49504

Looks like the second link disproves my guess! That would be excellent news and we would able to keep everything contained in a geopackage.

[ ] Ideally we implement relationships in gpgk (manually writing those tables) as described here https://docs.ogc.org/is/18-000/18-000.html
[ ] Test and document how this works in QGIS

So there are roughly three paths for getting the relationship info in QGIS:

Implement foreign keys in SQLite and use discover relationships in QGIS
Use the GPKG relation extension and populate all the required N-N tables.
Make the relationship in QGIS (only)

I like the first option, but SQLite tables can't be altered after creation, so I need to generate the SQL statements myself. I've got it working for pure pandas (so all non-spatial tables), but spatial tables is another beast (ogr generates the schema, not pandas). Besides, it would require duplicating the functionality in PyQGIS (even harder) for all models created there. Still, we might even keep the non-spatial tables foreign key creation in Python, it makes the GPKG "better" imho.
However, I now implemented the third option, which works pretty well. I haven't yet found a way to quickly filter the attribute table, but this is already useful and should be merged:
Identification results

Form with table view (as asked by @Huite above

Now attribute tables also work with Node selection.

Note it needs a fix for the Edge (it has two relationships), as only the (last) to_node_id is selected, not selecting all related edges.


Errors with EGL

Thanks for this work. When I followed the readme and ran python training.py datamodule.root_data_dir=/path/to/dataset/, it reported an error as Segmentation fault (core dumped) when loading EGL plugin in calvin_env.
I use a Ubuntu 16.04 sever with a Nvidia 2080Ti card, and the driver is nvidia-container-runtime 3.5.0-1 and cuda is 11.2. I have searched the Internet for a while, such as installing mesa assudo apt-get install libglfw3-dev libgles2-mesa-dev, but still did not work.
I would like to inquire if you know how to enable EGL with my hardware setting and what is the function of EGL, for displaying the robot?
By the way, what is the time of training the baseline on the three datasets provided, i.e., task_D.zip, task_ABC_D.zip, task_ABCD_D.zip?
Thanks very much.

Hi @zhaozj89 , thanks for trying out CALVIN!
what pybullet version are you using? Older pybullet versions have spotty EGL support, so maybe installing the latest version might help. We use EGL to move the bullet rendering from cpu (which is the default) to gpu, which is much faster. This way, we can also do rollouts during the training of the agent to track its performance. By changing from cpu to gpu, the rendered textures change slightly, so be aware of this if you plan on testing pretrained models.
Regarding training, we followed the hyperparameters from Lynch et al. as closely as possible (batch size etc.). Training the agent with visual observations from the static camera for the single environment took around 3-4 days on 8 Nvidia 2080Ti cards.
If you want to just play around with CALVIN without learning from pixels and have faster training times, you could use the scene observations as input (position and orientation of the objects, state of the drawers etc.) instead of the visual observations.

Thanks very much for the reply. For the EGL issue, I found out that it may be my nvidia packages are not installed correctly. Anyway, thanks for this work!

Thanks very much for the reply. For the EGL issue, I found out that it may be my nvidia packages are not installed correctly. Anyway, thanks for this work!

To add a bit more context for people with EGL problems:
PyBullet only recently added an option to select which GPU to use for rendering when using EGL (fix was commited in 3c4cb80
on Oct 22, 2021, see
https://github.com/bulletphysics/bullet3/blob/master/examples/OpenGLWindow/EGLOpenGLWindow.cpp#L134 )
So if you have an old version of PyBullet, there is no way to choose the GPU, which can lead to problems on cluster nodes with multiple GPUs, because all instances would be placed on the same GPU, slowing down the rendering and potentially leading to OOM erros. The fix introduced an environment variable EGL_VISIBLE_DEVICES (similar to CUDA_VISIBLE_DEVICES) which lets you specify the GPU device to render on.
However, there is one catch: On some machines, the device ids of CUDA and EGL do not match (e.g. CUDA device 0 could be EGL device 3). We automatically handle this in our wrapper in calvin_env and find the corresponding egl device id, so you don't have to set EGL_VISIBLE_DEVICES yourself, see https://github.com/mees/calvin_env/blob/main/calvin_env/envs/play_lmp_wrapper.py#L31.


deepClone loses prototype.constructor

Bug description
If you clone an object that have prototype constructor from a class, the cloned object have Object as the prototype constructor instead of the class.
Steps to reproduce
class A {
    myMethod() {
        return true;
    }
}

let obj = new A();
let cloned = deepClone(obj);

console.log(obj.constructor);
// class A

console.log(cloned.constructor);
// ƒ Object()

Expected behavior
console.log(cloned.constructor);
// class A

This is correct functionality. ES6 classes, when cloned, default to the Object prototype. If you want to clone a class instance, deepClone should not be used, and you should instead use a different method, such as Object.create(). I will see if we should add notes about this and/or an extra snippet for that case.


Questions which are hard to answer for newcomers in 2021 survey

The survey contains a few questions which a hard or impossible to answer by newcomers or unexperienced users.

In your opinion, have the following aspects of Rust gotten better or worse over the past year?

This one can barely answered by a non experienced user and is impossible for a newcomers which have no idea how good it was before.

Do you agree with the following statements on Rust employment?

That question might be answerable by some participants which recently started learning Rust by taking internship or junior positions. I know at least a few capable to answer people, but for majority this question should be omitted/optional or contain Unsure/Don't know options.

I hope the set of questions for the survey 2023 is more friendly :-)


DBSchema: Fix Application Schema

schema with constraints and indexes in this file
https://drive.google.com/file/d/1vIUDaKf9Zox1kqMgFkOWYkW4q1oU_uNA/view?usp=drive_link

@manimaarans @Ramu-kandimalla @suresh12 - what's the update on this? Can we confirm the latest status?

Hi @subhashini-egov  @atulgupta2024  Need clarity on this ticket @manimaarans @suresh12

@Ramu-kandimalla The DB schema was lacking indexes, foreign keys and basic denormalization. Hence, I had proposed a DB schema and added all artifact details to it including SQL. A decision was made not to take this up due to other. priorities. Would request @suresh12 and @manimaarans to close it with justification.