List/Map button showing wrong on Wix site

https://www.aanc24.org/meetings is a wix site using the below code to display the TSML UI. Has a change occurred in TSML that would cause this?
`<div
id="tsml-ui"
data-src="https://docs.google.com/spreadsheets/d/1mi8Ndpt2wAYP0cskn8BUDj9TcwkLLrMFD5Ig9l0-zE0"
data-google="AIzaSyACOer5YGSkXx1BHF5k7KrXadd4UenWDgU"
data-mapbox="pk.eyJ1IjoiZG9uZWxsMTAwMCIsImEiOiJjbGl1czJxNTgwMWN2M2Zua2RoMHU2NXJiIn0.FxjhYUv9FVVfmKIovI2MfQ"
data-timezone="America/New_York"

`

hm, very strange! i'm not seeing it on other tsml ui sites like
aasanjose.org/meetings
aasfmarin.org/meetings
sussexaa.org/meetings/
i'm tempted to say it's something wix is doing but i can't quite tell yet - going to keep looking

ah i think i see what is happening. looks like you're embedding the embed code in an iframe, but it needs to have a HTML5 doctype. try changing your code to
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, shrink-to-fit=no"
    />

That did it! Thank you so much, Josh!
On Tue, Aug 29, 2023 at 4:01 PM Josh Reisner @.***>
wrote:

ah i think i see what is happening. looks like you're embedding the embed
code in an iframe, but it needs to have a HTML5 doctype. try changing your
code to

—
Reply to this email directly, view it on GitHub
https://github.com/code4recovery/tsml-ui/issues/327#issuecomment-1698252786,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEJH7IZDXASZF2FBZECZAQDXXZYELANCNFSM6AAAAAA4DQSS3E
.
You are receiving this because you authored the thread.Message ID:
@.***>


Eliminate use of genny for SAC test resource set fixtures

Description
Getting rid of a bunch of code, courtesy of generics.
Checklist

[ ] Investigated and inspected CI test results
[x] Unit test and regression tests added
[x] ~Evaluated and added CHANGELOG entry if required~
[x] ~Determined and documented upgrade steps~
[x] ~Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)~

If any of these don't apply, please comment below.
Testing Performed

CI

This PR only affects unit tests, so the failures cannot be related.


Hello, where can I download this dataset?

Hello, where can I download this dataset?

Hi @HelloSar, thanks for your interest in our work!
We are currently preparing the dataset and the website, please stay tuned!
Many thanks!

Hi @HelloSar, thanks for your interest in our work!
We are currently preparing the dataset and the website, please stay tuned!
Many thanks!

Thank you！ really appreciate your work and look forward to the release of the dataset.

Any update on a possible release date?

Hello,
Thank you very much for your work.
Any update regarding the dataset release date ? Looking forward to working with it
Many thanks !

Hi @HelloSar @nshahrestani @AurelienBrn,
The dataset is available now, please fill this sheet and download the dataset!

Hello,
Thank you for your work!
I have submitted the form, but link for Baidu Netdisk failed.
Could you please update a new one？
Many thanks!


Rename all ol* default exports

The transform to ES modules generated names for imports and exports that start with _ol_.  These should be changed to more natural names.  For example, _ol_View_ can be renamed to View.  Some care is needed in doing the renaming to ensure that existing variable and argument names do not shadow the renamed imports or new export variable names.  In general, we should favor short names.  Where we need to disambiguate, we can make names longer.  For example, _ol_Tile_ can become Tile and _ol_source_Tile_ can become TileSource.  Module names should not be renamed (this is only about changing identifiers within the modules).
See #7610, #7607, and #7591 for inspiration.
See #7779 for a related ticket about using named exports from utility modules.  This issue is just about renaming the remaining default exports modules that just export a constructor or an enum.  At the time of this writing, there are 17 more of these to be reworked:

[x] src/ol/proj/EPSG4326.js (see #7782)
[x] src/ol/proj/EPSG3857.js (see #7782)
[ ] src/ol/renderer/webgl/tilelayershader/Locations.js (see #7788)
[ ] src/ol/renderer/webgl/defaultmapshader/Locations.js (see #7788)
[ ] src/ol/ImageBase.js
[ ] src/ol/webgl/Vertex.js
[x] src/ol/webgl/Shader.js (see #7787)
[ ] src/ol/webgl/Fragment.js
[x] src/ol/webgl/Context.js (see #7787)
[x] src/ol/webgl/Buffer.js (see #7787)
[ ] src/ol/render/webgl/Immediate.js
[ ] src/ol/render/webgl/texturereplay/defaultshader/Locations.js (see #7788)
[ ] src/ol/render/webgl/linestringreplay/defaultshader/Locations.js (see #7788)
[ ] src/ol/render/webgl/circlereplay/defaultshader/Locations.js (see #7788)
[ ] src/ol/render/webgl/polygonreplay/defaultshader/Locations.js (see #7788)
[ ] src/ol/Image.js
[ ] src/ol/format/GML.js

Please leave a comment here if you are going to take on some of this work so we can avoid redundant efforts.

I'll take on src/ol/proj/EPSG4326.js and src/ol/proj/EPSG3857.js.

I'll take src/ol/Image.js and src/ol/ImageBase.js now.

And src/ol/format/GML.js.

I'll do the remaining WebGL names now.

We did it!


#897 resolved

closes #897

Changes proposed

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] My change requires changes to the documentation.
[x] I have updated the documentation accordingly.
[x] All new and existing tests passed.

@MonalikaPatnaik @TechSpiritSS please review and merge this PR


add vanilla csv to search endpoint

Add a csv writer path to the search endpoint that is used when the format in the API request is "csv".
The response mime type should be text/csv.
Given the clean design of zqd/search, this task should be trivial by following the pattern of the zng responder using an csvio.Writer and dropping control messages.

Verified in zqd commit 2608a46.
If a user wants to see CSV output, they now have two ways to functionally arrive at that:
$ zapi -s foo get -f csv > /tmp/f.csv
$ zapi -s foo get -e csv > /tmp/e.csv

$ ls -al /tmp/*.csv
-rw-r--r--  1 phil  wheel  1057 Sep 17 15:48 /tmp/e.csv
-rw-r--r--  1 phil  wheel  1057 Sep 17 15:48 /tmp/f.csv

$ diff /tmp/e.csv /tmp/f.csv
$ echo $?
0

The difference is that for -f csv, the response comes back from zqd as ZNG and it's up to the client to format it (into CSV in this case). As sniffed on the wire, the response begins:
Content-Type: application/x-zng
X-Request-Id: 15
Date: Thu, 17 Sep 2020 22:50:03 GMT
Transfer-Encoding: chunked
...

For -e csv, the response comes back from the server already rendered as CSV.
HTTP/1.1 200 OK
Content-Type: text/csv
X-Request-Id: 17
Date: Thu, 17 Sep 2020 22:51:01 GMT
Transfer-Encoding: chunked

421
_path,ts,peer,mem,pkts_proc,bytes_recv,pkts_dropped,pkts_link,pkt_lag,events_proc,events_queued,active_tcp_conns,active_udp_conns,active_icmp_conns,tcp_conns,udp_conns,icmp_conns,timers,active_timers,files,active_files,dns_requests,active_dns_requests,reassem_tcp_size,reassem_file_size,reassem_frag_size,reassem_unknown_size
stats,2018-03-24T17:35:20.601137Z,zeek,282,5467567,3398705931,-,-,-,1535999,1535998,4239,146,305,193639,4731,2510,879701,25895,35230,88,6,0,455128,0,0,0
...

As explained by @mccanne, this (along with the similar NDJSON response recently added) could allow users to make REST calls to zqd with everyday tooling (curl, Python, etc.) and start immediately processing the response as opposed to getting back ZNG or zjson and not knowing what to do with it or having to use a tool like zapi to convert it.
Thanks @mccanne!


Exmaple + CDN files does not delete any cookie

Hi,
I copied your example and use it with the CDN files provided.
Am I missing something obvious in that configuration?????
 // obtain cookieconsent plugin
    var cc = initCookieConsent();

    // run plugin with config object
    cc.run({
        delay : 0,
        autorun : true,
        current_lang : 'en',
        force_consent : true,
        cookie_expiration : 365,
        autoclear_cookies : true,
        theme_css<EMAIL_ADDRESS>        gui_options : {
            consent_modal : {
                layout : 'cloud',
                position : 'bottom',
                transition : 'slide'
            },
            settings_modal : {
                layout : 'box',
                transition : 'slide'
            }
        },

        onChange(cookies){
            alert("ONCHANGE")
        },

//*******************************************************************
onAccept: function(cookies){
            console.log("I'M IN ONACCEPT")

            var categories_to_reject = []

            if (!cc.allowedCategory("analytics")){
                categories_to_reject.push("analytics")
            }

            console.log("cc.allowedCategory('analytics'):", cc.allowedCategory("analytics"))
            console.log('R', categories_to_reject)

            cc.accept('all',"analytics")
        },
//*******************************************************************
       languages : {
            en : {
                consent_modal : {
                    title :  "TITLE",
                    description :  'DESCRIPTION',
                    primary_btn: {
                        text: 'ACCEPT ALL',  // cookies.level --> All categories
                        role: 'accept_all'				//'accept_selected' or 'accept_all'
                    },
                    secondary_btn: {
                        text : 'SETTINGS',
                        role : 'settings'				//'settings' or 'accept_necessary'
                    }
                },
                settings_modal : {
                    title : 'PREFERENCES',
                    save_settings_btn : "SAVE PREFERENCES",
                    accept_all_btn : "ACCEPT ALL", // cookies.level --> All categories
                    reject_all_btn : "REJECT ALL", // cookies.level --> All categories
                    cookie_table_headers : [
                        {col1: "NAME" },
                        {col2: "DOMAIN" },
                        {col3: "DESCRIPTION" },
                    ],
                    blocks : [

                        {   title : "NECESSARY",
                            description: 'NECESSARY_DESCRIPTION',
                            toggle : {
                                value : 'necessary',
                                enabled : true,
                                readonly: true
                            },
                            cookie_table: [
                                {   col1: 'cc_cookie',
                                    col2: 'localhost',
                                    col3: 'MY_DESCRIPTION',
                                },
                            ]
                        },
                        {   title : "ANALYTICS",
                            description: 'ANALYTICS_DESCRIPTION',
                            toggle : {
                                value : 'analytics',
                                enabled : false,
                                readonly: false
                            },
                            cookie_table: [
                                {   col1: '_ga',
                                    col2: 'localhost',
                                    col3: 'MY_DESCRIPTION',
                                },
                                {   col1: '_ga_86XY962EK4',
                                    col2: 'localhost',
                                    col3: 'MY_DESCRIPTION',
                                },
                            ]
                        },{
                            title : "MORE_INFO",
                            description: 'MORE_INFO_DESCRIPTION',
                        }
                    ]
                }
            }
        }
    });

Hi @SumentsJavi,
the second parameter on cc.accept('all',"analytics") must be an array, otherwise the plugin will simply ignore it and will treat it the same as cc.accept('all'):
cc.accept('all', ['analytics']);

aside from that, I don't see anything weird. You can also check if the plugin is at least trying to delete the cookies (it will output a message on the console) if you use the src version:
<EMAIL_ADDRESS>

Great point. I have already done the change:
cc.accept('all', ['analytics']);
To reproduce this, I close and open the browser and the go to my localhost to test it. The sequence of buttons I follow is:

Settings
Save preferences

The console output is:
(index):49 I'M IN ONACCEPT (index):57 cc.allowedCategory('analytics'): false
I cannot see any attempt of deleting any cookie.

Is the google analytics script properly configured to be loaded/enabled through the plugin? Could you please show me the snippet?

I have added the file at the end of this comment.
As I understood the documentation of "onChange" and "onAccept", if the GA script loads the cookies on every page, I can delete those with "onChange" as it will execute in every page that is loaded. So I do not have to interfeer with the GA script installation.
The full file I am using is:
`

    Hola

`

This is interesting:
I have changed the configuration of the "necessary" block for:
{   title : "NECESSARY",
    description: 'NECESSARY_DESCRIPTION',
     toggle : {
        value : 'necessary',
        enabled : true,
//**********************************************
        readonly: false
//**********************************************
    },
    cookie_table: [
        {   col1: 'cc_cookie',
        col2: 'localhost',
        col3: 'MY_DESCRIPTION',
        },
    ]
,

So now, "onAccept" method is executed once, and "onChange" is executed twice.
Also, on "onAccept", I have changed the input parameters of "cc.accept" for:
        cc.accept([])
Interestingly, now the only cookie I can see is cc_cookie

I don't recommend your approach as it looks a bit "hacky". The main problem with it is that you cannot guarantee that cookies are always set before the plugin is loaded. Another issue is that you might still be tracking users, as the analytics script is always active.
I would personally use the route with page_scripts: true. I also recommend to stop the gtag function — if user has opted out of analytics — by using google's suggested consent mode:
gtag('consent', 'default', {
    'ad_storage': 'denied',
    'analytics_storage': 'denied'
});

There is an issue on how the name of the cookies are interpreted in Chrome and Firefox.
Chrome adds a blank space at the begining of some cookies. In this case " _ga". Firefox does not do it.
That was the root issue.


AnyType omits values that are equal to values that are already written to the output

Product
Hot Chocolate
Version
13.9.6
Link to minimal reproduction
https://github.com/wietlol-org/HotChocolateIssues/tree/main/HotChocolateIssues.AnyTypeDataOmission
Steps to reproduce
Run the unit tests in the HotChocolateIssues.AnyTypeDataOmission project.
The test GetBooks will fail.
After running the tests, the output is written to the TestFiles folder where the erroneous response is presented.
What is expected?
When creating a query/mutation with output of type AnyType.
The data should all be present in the output.
What is actually happening?
Data that was already written to the output is omitted.
Given the following query definitions:
[GraphQLType<AnyType>]
public List<Book> GetBooksAny() =>
    GetBooks();

public List<Book> GetBooks() =>
[
    new Book(
        Title: "C# for dummies",
        Author: new Author(
            Name: "Jon Skeet"
        )
    ),
    new Book(
        Title: "Hot Chocolate: A .NET GraphQl server",
        Author: new Author(
            Name: "Michael Staib"
        )
    ),
    new Book(
        Title: "C# in depth.",
        Author: new Author(
            Name: "Jon Skeet"
        )
    ),
];

Running the following query:
query {
    books {
        title
        author {
            name
        }
    }

    booksAny
}

Gives the following output:
{
	"data": {
		"books": [
			{
				"title": "C# for dummies",
				"author": {
					"name": "Jon Skeet"
				}
			},
			{
				"title": "Hot Chocolate: A .NET GraphQl server",
				"author": {
					"name": "Michael Staib"
				}
			},
			{
				"title": "C# in depth.",
				"author": {
					"name": "Jon Skeet"
				}
			}
		],
		"booksAny": [
			{
				"title": "C# for dummies",
				"author": {
					"name": "Jon Skeet"
				}
			},
			{
				"title": "Hot Chocolate: A .NET GraphQl server",
				"author": {
					"name": "Michael Staib"
				}
			},
			{
				"title": "C# in depth."
			}
		]
	}
}

As you can see, the author is omitted in the booksAny output because the value is already present in the same output.
The equality is based on the class' implementation of Equals and HashCode, which for records is value-equality by default.
But this would be the same effect for any class/struct that has an implementation of Equals and HashCode that would consider it equal to another value that is in the output.
Looking at HotChocolate.Types.AnyType.cs line 151, the AnyType deliberately skips values that are already processed.
if (set.Add(value)) uses a HashSet<object> to check if the value was already processed.
This is probably added to prevent some form of recursive tree structure of generating an infinite recursion.
But this breaks the usage in the above example, where data is just not present and it becomes impossible to know what data should be there.
The output of books and booksAny should be the same.
Relevant log output
No response
Additional context
No response

Well spotted :)

@glen-84 in addition, this probably should also still work if the objects are reference equal
for example, when this data comes from Entity Framework, the Authors would probably be cached by EF to reuse the same references (not sure if EF actually does that, but I wouldn't be surprised if many data sources would do it)

Just tested with version 14.0.0-p.139 and the issue is indeed resolved, thanks!


2410.1 Find better Windows Server patches

Update search strings for Windows / .NET Framework updates to get more consistent and reliable results

Tested and working.

Merged current 2410.1 into pull request and resolved conflicts

Outstanding changes to merge:

Windows Server 2022 should be patched with 21H2 CUs, just like the .NET Framework patches it receives
Windows Server 2025 update search strings
Minor formatting issues

Merged current 2410.1 into pull request.

Updated branch to use the correct search string for Windows Server 2025 release.


fix: Revert "fix(Dashboard): Only apply changes when editing properties"

Reverts apache/superset#17392
We found that the onlyApply tag was only partially working as the implementation was partial in both the frontend and the backend. I am working on the full implementation here https://github.com/apache/superset/pull/17570. However, we should revert the apache/superset#17392 PR in the meantime to avoid issues with the upcoming release.

🏷 2021.46

@geido @rusackas I removed the v1.4 label as the original code that this PR reverts isn't in v1.4.


Missing AddArg.addArgVector?

Hi,
v0.55.0 changed the Scala type for OpenAPI's type: array from IndexedSeq to Vector, but I noticed AddArg doesn't provide an implicit addArgVector: is this a bug or the intended behavior to have clients migrate to Iterable?
Note that query params defined as array of strings are generated as Iterable[String], not Vector[String]!
Thank you so much for the amazing library!

Definitely a bug, sorry to hear this slipped through the tests!
As a stop gap you can:

define your own instance of AddArg[Vector[A]] based on the implementation of the IndexedSeq or Iterator implicits, then import the instances using the ScalaClient(..., imports=...) parameter in your build.sbt
Use x-scala-array-type: IndexedSeq to use the previous behavior (migration notes for 0.55.0)

Either way, thanks for reporting it! If you've got the time to open a PR with the fix and a regression test (should be as simple as adding a failing specification to the list in build.sbt) that would be very much appreciated, otherwise I'll try to do it beginning of next week.

So, coming back to this...
I tried to replicate the issue with the following spec:
openapi: 3.0.2
servers:
  - url: "http://localhost:1234"
paths:
  /foo:
    post:
      operationId: doFoo
      responses:
        '204':
          description: No response
      parameters:
        - name: vector
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
              format: int64

... but I got the following method generated:
def doFoo(vector: Option[Iterable[String]] = None, ...): EitherT[Future, Either[Throwable, HttpResponse], DoFooResponse]

... which is compatible with Vector, as Vector[A] <:< Iterable[A]:
scala> Vector.empty[Long]: Iterable[Long]
res0: Iterable[Long] = Vector()

How can I reproduce the issue you are seeing?

Hi @blast-hardcheese,
I used the following descriptor, which generated Client doesn't compile: could not find implicit value for parameter ev: swagger.Implicits.AddArg[Option[Vector[String]]]
openapi: 3.0.2
servers:
  - url: "http://localhost:1234"
paths:
  /foo:
    post:
      operationId: doFoo
      responses:
        '204':
          description: No response
      parameters:
        - name: vector
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MyVector'
components:
  schemas:
    MyVector:
      type: array
      items:
        type: string

Oh! It looks like the type: array is not being dereferenced properly through the $ref -- if you inline that definition as a workaround, there should be a usable client generated.
Thank you for the spec, I'll see what I can do 😊

@francescopellegrini OK! Just pushed up 0.57.4. It may take some time to sync with maven central, but I believe this will resolve the issue you were facing.
Your initial PR actually turned out to be exactly on the right track, though actually pushing it over the line required a little more in-depth knowledge than I anticipated.
I thought it was going to be a 3-10 line change, which is why I put the "good first issue" tag on.
I really misjudged that, I apologize.

Hi @blast-hardcheese, thank you very much for the quick fix and the kind response. No need to apologize, cheers!


Improve UI of dropdown menu

Is your feature request related to a problem? Please describe.
I am proposing to improve the UI of dropdown menu of selecting the time, on chat page.
Describe the solution you'd like
A css can be used to improve the dropdown manu, that can make it user interactive.

Go on.
Good luck.

Any update @mryashsinghal

Hi @princekhunt
I'm currently working on the task and making progress; I'll provide a detailed update soon.

I wanted to let you know that my recent UI improvements to the dropdown menu on the chat page have been successfully done. I’ve verified that everything is working as expected.

Kindly make the pull request.

I have submitted a pull request that you have already merged.


fix: Use double time everywhere

This PR adds a double-based alternative to Time.time to the NetworkTime class (NetworkTime.localFrameTime). This is then used instead of Time.time for most things
Time.time is not precise enough, it will cause skipping (and since the pull->push change, dropping) of serialization updates after 5-6 days of server run time.
See the added test, it fails with the old float timestamps.
I've gone through and replaced it everywhere, even the NetworkTransform/NetworkAnimator/.. components - so this should get a thorough review before merging, don't want to break peoples projects.
The breaking changes are:

NetworkConnection.lastMessageTime which is public and used to be a float, and now is a double
NetworkRigidbody and NetworkRigidbody2D.nextSyncTime which is public and used to be a float, and now is a double

So nothing super bad, I'd say most people aren't touching those anyways
All tests still pass with the changes

rebased to fix conflicts

notes from discord to consider:

2021 has double time
NetworkTime.localTime: consider making it frame time like in Unity (would be easier for NT & tests too)
make sure it doesn't break anything (Update/FixedUpdate/Early/LateUpdate etc.)

converting this to a draft for now
#2815 is a better no-risk fix for the specific bug, the other timing issues have been in mirror forever (and won't cause breakage) and a more gradual fix is probably better.

Rebased onto master again, now only replaces all Time.time usage with double frame-time
this is what happens to the tank example after the server time is > 30 days (not fps lag), produced by search&replacing Time.time with (30 * 24 * 3600 + Time.time) everywhere, thats of course an extreme example to make the issue very visible.
https://user-images.githubusercontent.com/1426904/125005428-00cd4e00-e05c-11eb-8e97-1072b481615c.mp4

any chance we could do this one component at a time?
for example, we don't necessarily need localFrameTime since the bug was fixed and we get it in 2021.
and it would be better if we don't modify NetworkTransformBase as this would make rebasing NTv2 very difficult.
in other words, just the obvious NetworkAnimator, NetworkTime, NetworkRigidbody etc. components and simply Time.time => NetworkTime.localTime?

Partial prs are now being added, closing this one in favor of those.


Need a way to catch redirect errors when not using MsalAuthenticationTemplate

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.14.0
Wrapper Library
MSAL React (@azure/msal-react)
Wrapper Library Version
1.0.0-beta.1
Description
Hi
I am trying to set up my React SPA to allow for unauthenticated routes (for now, just a page with a login button) as well as authenticated routes (most of the routes, once user is logged in).
because of this, i am using
<UnauthenticatedTemplate> and <AuthenticatedTemplate> instead of <MsalAuthenticationTemplate> (which would automatically popup or redirect the users to auth all the time, which I don't want)
however, I can't seem to find a way to catch the errors this way
MsalAuthenticationTemplate  has the errorComponent prop and that passes an {error} prop to whatever component you give it, so you can get the details of the error,
however,
there's no errorComponent option for <UnauthenticatedTemplate> and i don't see a way to pick up errors from the instance or other parts of the hook
note: i am using redirect auth, not popup,
so i try to catch errors from the login redirect call (when a login button is clicked), but i dont think that will work with redirect
so when there's an error, I see flash of a hash with params in the URL, such as http://localhost:3000/#error=access_denied&error_description=AADB... but then it goes away
MSAL Configuration
No response
Relevant Code Snippets
<Button

          onClick={() => {
            azureAADPublicClientApplication.loginRedirect().catch((error) => {
              console.log(error);
              setLoginError(error);
            });
          }}
        >
          Login
        </Button>

Identity Provider
Azure B2C Custom Policy
Source
External (Customer)

wonderful, that worked
thank you so much for the response! might i suggest adding something around this to the newer msal-react or msal-browser docs specifically around error handling? ie:

if youre using UnauthenticatedTemplate and AuthenticatedTemplate instead of MsalAuthenticationTemplate, use event API to catch errors. otherwise with MsalAuthenticationTemplate you can use the errorComponent as shown here...

code sample in case anyone comes across this and finds it helpful later:
export const myComponent = () => {
const [loginError, setLoginError] = useState<Error>();

  useEffect(() => {
    // This will be run on component mount
    const callbackId = instance.addEventCallback((message: { eventType: EventType; error: Error }) => {
      // This will be run every time an event is emitted after registering this callback
      if (message.eventType === EventType.LOGIN_FAILURE || message.eventType === EventType.ACQUIRE_TOKEN_FAILURE) {
        console.error(message);
        setLoginError(message.error);
        // Do something with the result
      }
    });

    return () => {
      // This will be run on component unmount
      if (callbackId) {
        instance.removeEventCallback(callbackId);
      }
    };
  }, []);

return (<div>{loginError}</div>);


with statements should have weak references to combinational groups

I ran into a bug where even though a combinational group had been detached from a component (using drain on component.comb_groups), it was retained in memory by an invoke-with statement. Probably the right thing here would be for with statements to carry weak references to combinational groups and have the ownership of the combinational group associated with only the component's field.

Good point! However, in this case, I want to turn things into weak references to explicitly model the fact that they are invalid. I don't think that even in a flat representation, you truly want everything to have the lifetime of a program or even a component.
Building from your blog post, one trick to play here is using the upper bit of the index for a flat representation to denote whether something is valid or not and using that to perform this kind of invalidation

Ah yes, you are very wise—integers-as-pointers wouldn't itself solve the problem of "notifying" the invoke AST node that the comb group it refers to is gone. Good idea to play tricks with the reference integer itself to denote validity.

Hm, this change would also imply that we should carry WRCs for Group and StaticGroup in Enable and StaticEnable which would be a pretty dramatic change. However, I think the overall idea of clarifying the ownership policy for these structs---that only the component owns then and once removed from it, they are no longer valid---seems sane to me.


Test Spring Boot/Cloud snapshots on the CI

We have recently seen that's very useful to be able to test Spring Native against next Spring Boot snapshot but also that using it on master was impacting our velocity because of the dependency download and the introduction of too many moving parts.
A potential solution could be to parameterize our build in order to be able to customize Spring Boot and Spring Cloud versions, and have dedicated daily CI pipeline.
In order to not multiply too much the combinations, we can focus on testing only Java 11 variant with latest stable GraalVM version, so currently build-21.0-dev-java11-samples. A first step would be to have the next patch release snapshot tested, so currently Spring Boot 2.4.5-SNAPSHOT and related Spring Cloud snapshots.
The challenge is that we have various places where that need to be configured:

Spring Native pom.xml.
Samples parent POM.
Each Gradle sample.

A second step could be to setup a Spring Boot 2.5 snapshot or milestone build, but that may require doing a Spring Native branch so let's do that later.
Happy to hear if you have some ideas about that @snicoll.

This seems too much efforts regarding to the potential gain, and we were pretty successful y switching to Spring Boot snpashots at the end of the dev cycle. For 0.10 we will also already have Spring Boot 2.5.0-RC1 so we should be fine. As a consequence I close this issue.


Some Saturn games not loading

The RetroArch cores and the Yaba Sanshiro 2 Pro app are all having trouble running Grandia. Observed in vanilla GammaOS on RG405M and beta on RG405V...
Any suggestions?

Not a GammaOS issue, Saturn is notoriously difficult, and the emulators don't have the greatest compatibility / performance.  I also can't run Shienryu - without graphics or performance issues.
Per your other question about GammaOS 1.5.1 "fixing" Saturn. Yaba Sanshiro 2 hasn't been updated to work with scoped storage on newer versions of Android. This breaks launching games located on SD from all front-ends including Daijisho. On GammaOS 1.5.1 you can now manually add the media and storage permission, to fix this.


Name mismatch

I do not use bower, but in npm this is a little surprising. Not sure how important this is.
Installing bower-videogular-analytics results in folder videogula-angulartics.
$ npm i 2fdevs/bower-videogular-analytics --save-dev
<EMAIL_ADDRESS>node_modules/videogula-angulartics

Yes, that's because someone made a plugin in bower called videogular-analytics so I changed the name to videogular-angulartics because I was using the excellent angulartics module.
It's not a problem, it is intended, but thanks for the warning ;)


x509_lcl.h is required for X509_LOOKUP_METHOD definition

With OpenSSL 1.1.1a, x509_lcl.h header, which is included in the list of headers for export, contains this line:
#include "internal/refcount.h"

Which breaks the build.

x509_lcl.h header, which is included in the list of headers for export

Wait what?  Where is it listed for export?  I can't see that in our source.

Sorry, you are right, it is not included into the list of headers for export, it was manually included by our engineers. I changed topic to reflect that.
Ok, the issue is, the header is required for X509_LOOKUP_METHOD to work. This struct is used if you want to create wrapper to external certificate store, for example, to Windows Certificate Store.
This header should be somehow exposed. Thank you.

You don't need the header file; the struture is opaque on purpose. You have to use the "new" function, and then set the various lookup functions.  Maybe they need to be more documented?

Yes, you are right, methods like X509_LOOKUP_meth_set_get_by_subject, X509_LOOKUP_meth_set_get_by_issuer_serial, X509_LOOKUP_meth_set_get_by_fingerprint can be used to set struct values.


pg_hba.conf

How can I edit pg_hba.conf ?

There are 2 ways:

You use something like the portainer-addon or SSH access, and edit the file in the /data/postgres directory of the addon-container itself.

You patch the file using init-commands (see the configuration of the addons. pg_hba.conf is located in /data/postgres/ from the viewpoint of your script.

Did this answer your question?

ok, that solves the problem


fixes YAMLException that occurs on some openapi yaml

➜  ion-swagger git:(bunsen-singular) bootprint -d openapi v1-bunsen-swagger.yml target
Loading bootprint-openapi 0.16.0
Loading bootprint-json-schema 0.8.6
Loading bootprint-base 0.7.2
Serving "target" at http://<IP_ADDRESS>:8181

/usr/local/lib/node_modules/bootprint/node_modules/q/q.js:155
                throw e;
                ^
YAMLException: duplicated mapping key at line 158, column 1:
    definitions:
    ^
    at generateError (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:162:10)
    at throwError (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:168:9)
    at storeMappingPair (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:305:7)
    at readBlockMapping (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1065:9)
    at composeNode (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1326:12)
    at readBlockMapping (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1056:11)
    at composeNode (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1326:12)
    at readBlockMapping (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1056:11)
    at composeNode (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1326:12)
    at readBlockMapping (/usr/local/lib/node_modules/bootprint/node_modules/js-yaml/lib/js-yaml/loader.js:1056:11)

Ooops, that was too fast. I actually had a few questions about the PR.
Could you explain a bit more what the actual problem was that you were facing?
Could create another PR with a unit-test that was failing with the old code? Could you describe what the js-yaml option is doing?
When this is done, I'll be more than happy to release a new version with your fix.

For sure.  Will try and get to this next week.  My comment above shows the error - it's valid OpenAPI spec, but errors on something.  Honestly, I don't know why it would bonk on the 'definitions' in this particular spec, and not others.  But, I found the resolution in another project that had the same issue:
https://github.com/nodeca/js-yaml/issues/242
The fix isn't the version bump on the js-yaml package, that part was just a friendly courtesy.  :)
I'm not a NodeJS dever so it might take me a bit to dig into the unit-test.

It would be enough to modify the input.yaml test-fixture so in a way that the corresponding test fails without your fix.
Or add another test like the yaml-test into the main-spec.js.

@nknapp - I've created a branch in my fork, showing the failure:
https://github.com/kitplummer/bootprint/tree/failing-openapi-spec
It appears to be if there are multiple endpoints defined in the OpenAPI spec, it will fail without the fix.
Not sure how to best get this merged, and everything updated.  Thoughts?

Could you make another pull-request containing just the test-case based on the master-branch on this repository? Just one thing: You've made a change to test/fixtures/handlebars/index.html.hbs that doesn't really seem necessary. It would be nice if you could leave this out of the commit.
I'll merge the PR and publish the next version (or I'll invite you to the team if you like, so you can merge it yourself) as soon as your done.


Upgrade controller-runtime to latest version

I noticed that the version of controller runtime used is v0.9.0
Is it possible to bump this to a latter version of controller runtime? It seems that v0.9.0 of controller runtime uses an older version of spf13/cobra which has a few security vulnerabilities (which aren't actually ever executed)
Happy to open a PR! Thanks much!

@jpmcb Happy to receive a PR if you 've got the bandwidth 😄

I can work on that tomorrow if that is fine


PUT method to overwrite any old data of devices like a fresh device for same device_id in netbox

Hi,
I'm beginner. Please guide me if I'm wrong.
My query:
Is there any PUT method in pynetbox which does exactly as PUT in /api/dcim/devices/{id}/ ? As far as I know save() or update() will only overwrite fields which I specify explicitly.
For example, I want to erase all the old data of a devices and want to update new data for same device_id. The save() will work fine if new data has all the fields which are in old data. And if there are some non-compulsory extra fields in old data which are not in new data, these extra fields will not get NULL (or default) value like a fresh devices and old value of those fields will remain in case of save() or update(). But in case of PUT in /api/dcim/devices/{id}/ , these absent fields in new data (present in old data) will automatically get erased or get default value.
I know I can use loop on each fields of object and assign NULL (or default) for absent fields in new data (present in old data) and then save object with new values of only required fields.
If there is such PUT method for devices (or dcim), please tell me how to use it as I'm not able to find it.
If there is no such method, can it be implemented?

Unfortunately that's a pretty niche use-case we probably won't plan on supporting unless there's tons of requests for it.


Hunter/rate limit

Add rate limit lib with two types of stores: memory & redis

can you also go into the examples/listener/ app and implement a default Limiter with config and everyting enabled in app.go

Added


Webpage: Add plausible.io back to Library docs and UserGuide

plausible.io is our technique to gather some anonymous visitor numbers on our pages.
We have had this in BuiltIn and other Libraries.
We have to implement this into "Release Pipeline" so that with every release it is still in.
I can do this later before RF 7.0 release.

Is it possible to it off to avoid connection to plausible.io?

Ping @Snooz82. Should we do something to this?


Clean up code

Signed-off-by: Kirill Batyshchev<EMAIL_ADDRESS>

Lots of linter mistakes, closing.


fix(Observable): use more granular Observable exports in compat mode

Description: Use more granular exports in compat/Observable.ts to enable tree shaking optimization even if the consumer is compiling to CommonJS (instead of ES2015) modules.
Related issue (if exists): https://github.com/ReactiveX/rxjs/issues/3971
Importing Observable and calling Observable.create, with "module": "commonjs" vs "module": "es2015" in tsconfig.json:
Before patch

"module": "commonjs"
"module": "es2015"

rxjs
79.6 KiB
14.7 KiB

rxjs-compat
80 KiB
80.1 KiB

After patch

"module": "commonjs"
"module": "es2015"

rxjs
79.6 KiB
14.7 KiB

rxjs-compat
18.6 KiB
18.7 KiB

Coverage increased (+0.2%) to 96.923% when pulling 01e3414d0b98a686a3ba689da0edeaae920900e1 on bcherny:master into eba335bd2cf6f343fabd7589ca1555f8ca6f8b8f on ReactiveX:master.

Great find, @bcherny!


Indexing into uniform array of sampler2D in a custom shader fails with variable index

Tested versions

Reproducible in: v4.3.rc2.official [3978628c6], v4.2.2.stable.mono.official [15073afe3]

System information
Godot v4.2.2.stable.mono - Fedora Linux 40 (KDE Plasma) - Wayland - Vulkan (Forward+) - dedicated AMD Radeon RX 6700 XT (RADV NAVI22) () - 12th Gen Intel(R) Core(TM) i9-12900K (24 Threads)
Issue description
I am working on a heightmapped terrain system divided into tiles. Each tile has a 1024x1024 heightmap for 1025x1025 vertices, so the right and bottom edge vertices must sample from a neighbouring tile's heightmap.
To accomplish this, I'm using a uniform sampler2D array[4] and dynamically indexing into it in the shader. I've been taught that branching in shaders is bad, so I sought to do this without branching like this (simplified from reproduction project below):
int heightmap_index = 0; //Bitflag. 0: this tile, 1: right neighbor, 2: bottom neighbor, 3: bottom right neighbor
heightmap_index |= 1 * (texel.x / 1024);
heightmap_index |= 2 * (texel.y / 1024);
texel = texel % 1024; //wraps 1024th vertex back to zero so it's sampled from top/left edge of neighbor
h = texelFetch(u_terrain_heightmap[heightmap_index], texel, 0).r;

However, this fails to work, and after debugging it for two days I suspect I'm either dealing with a compiler bug or inadvertedly hitting UB.
In this screenshot, I've coloured vertices red or green based on their heightmap_index value (as such: debug_color.r = float(heightmap_index & 1); and debug_color.g = float((heightmap_index & 2) >> 1);) to verify that the bitflag is getting set correctly. As you can see, vertices on the right and bottom edge are red and green respectively, with the bottom right one being yellow, yet they are not being sampled from the correct sampler2D:

Here is a screenshot where I circumvent the issue by using branching code. This is how the heightmap is supposed to look:

In this screenshot, I have replaced the bit shifting above with these if statements:
if (((u_tile_neighbor_flag & 3) != 0) && texel.x == 1024 && texel.y == 1024) {
    debug_color = vec3(1.0, 1.0, 0.0);
    h = texelFetch(u_terrain_heightmap[3], texel % 1024, 0).r;
}
else if (((u_tile_neighbor_flag & 1) != 0) && texel.x == 1024) {
    debug_color = vec3(1.0, 0.0, 0.0);
    h = texelFetch(u_terrain_heightmap[1], texel % 1024, 0).r;
}
else if (((u_tile_neighbor_flag & 2) != 0) && texel.y == 1024) {
    debug_color = vec3(0.0, 1.0, 0.0);
    h = texelFetch(u_terrain_heightmap[2], texel % 1024, 0).r;
}
else {
    h = texelFetch(u_terrain_heightmap[0], texel % 1024, 0).r;
}

Steps to reproduce
The minimal reproduction project below contains two scenes: broken.tscn and working.tscn, which contain four PlaneMeshes that each have their own ShaderMaterial that uses the same shader (broken.gdshader in the broken one and working.gdshader in the working one) with different shader parameters (different u_tile_neighbor_flag and different textures assigned to u_terrain_heightmap).
Minimal reproduction project (MRP)
shader_repro.zip
shader_repro2.zip (simpler and lighter)

I don't see any difference between default working and broken scene (Windows 11/GTX 4080):

Interesting, thanks. That to me suggests that this is AMD or Linux specific. Bit-twiddling is probably somewhat unorthodox in a shader, so it being a driver issue or something sounds plausible... but I'm not familiar enough with the stack involved here to know how to approach something like that. My understanding is that Godot would compile the shader into SPIR-V after which the driver takes over, is that right?

FWIW this also occurs on my laptop which has an Intel 5300U iGPU, so it's probably either something Linux-specific or Mesa-specific.

Sorry for the triple post...
Is there a way to get the SPIR-V code of the shader out of Godot? I think that would help with debugging. I tried looking in the shader cache but the files there seem to be in a Godot-specific format that I don't know how to read.

I created a simpler repro [shader_repro2.zip] for this that only uses one PlaneMesh and two textures, then indexes into the textures alternatingly like this:
ivec2 texel = ivec2(VERTEX.xz);
index |= 1 * ((texel.x + texel.y) % 2);
float h = texelFetch(height[index], texel, 0).r;

I then tried to reproduce this with a simple C++ OpenGL application (https://gist.github.com/brndd/2c94d3d3d76cc8b5426e00e8c0ce5e69), but a comparable shader on a comparable mesh seems to work fine there (but I had ChatGPT write all the boilerplate for me, so there could be differences I am not accounting for -- not least that Godot uses Vulkan):

I then tried to reproduce this with a simple C++ OpenGL application

You can check it on ShadeRED (https://shadered.org/) or shadertoy (https://www.shadertoy.com) rather than create an own OpenGL app.

Reproducing it with Shadertoy isn't possible because this syntax isn't legal in GLSL versions before 4.00. Judging from the fact that I couldn't reproduce it with OpenGL, it's probably a Vulkan-specific issue. I suspect it's probably a bug in Mesa, but I'll hold off for a few days before reporting this upstream to see if someone with an Nvidia card on Linux wants to test the MRP.

You can run Godot with the --generate-spirv-debug-info command line argument. Note that this argument isn't forwarded from the project manager to the editor, or from the editor to the running project, so make sure to add it to the Main Run Args project setting if running from the editor.

Thanks. Debugging the shader with RenderDoc was mostly going over my head, so I elected to pass this on to the Mesa folks, as I feel it's pretty likely at this point to be a Mesa issue: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11675
Let's see what they have to say.

The Mesa folks told me that the way I'm doing this is in fact UB.
However, there's a GLSL hint/function that makes this not UB: nonuniformEXT(). This currently doesn't seem to be supported in Godot's shading language.
This hint is part of a Vulkan 1.2 device feature called shaderSampledImageArrayNonUniformIndexing. It seems quite well supported in practice (desktop hardware newer than Intel's Skylake iGPUs seem to support it), so perhaps it could be enabled in Godot?
This blog post seems to explain it quite well: https://anki3d.org/resource-uniformity-bindless-access-in-vulkan/

After researching this a bit more I felt confident enough to post a feature proposal: https://github.com/godotengine/godot-proposals/issues/10423. Closing this to continue the discussion there.


Update CONTRIBUTING.md

creat -> create

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


Fix output on short version flag (#5348)

Keep -V behavior same with v2.x
Signed-off-by: lucklove<EMAIL_ADDRESS>
What have you changed?
The -V output format of tikv-server and tikv-ctl.
The output of -V in v2.x is something like:
TiKV
Release Version: 2.1.14
Git Commit Hash: 32ca82bc067f7529dc07bf8ddb594b8c060b7f49
Git Commit Branch: HEAD
UTC Build Time: 2019-07-04 10:32:40
Rust Version: rustc 1.29.0-nightly (4f3c7a472 2018-07-17)

However, in v3.x, it's something like:
TiKV 3.0.2

And in the newest master, it's:
TiKV 0.0.1

We should keep the output format same with v2.x, because the tidb and pd's output format is that. I think they should have a unified behavior.
What is the type of the changes?

Bugfix (a change which fixes an issue)

How is the PR tested?
manual test
Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No
Does this PR affect tidb-ansible?
No
Refer to a related PR or issue link (optional)
Benchmark result if necessary (optional)
Any examples? (optional)

/run-all-tests


Hotfix

Just decreased webext-buildtools-chrome-crx-builder dependency version as a workaround. Tested on my workflow and it works for now.

This PR tries to fix below issue:
https://github.com/cardinalby/webext-buildtools-chrome-crx-action/issues/10


Dataset for discrete and synchronized targets

In the case of discrete in time target variables, windows has to be synchronized with the target. This functionality is not provided by the current dataset classes.
We identified two types of datasets that should be implemented in braindecode:

discrete (in time) and synchronized targets
constant (in time) targets valid for a whole signal window

Braindecode already works for targets constant in time.
For discrete targets we decided to store target variables values in the mne.Raw object together with the signal. Target channels will be filled in between samples with np.nan. For each window form the datasets, the window will be processed in __getitem__ by a method that extracts the target variable and removes target channels from the mne.Raw. The __getitem__ method will then return also the position of the target variable from the start of the window.
We will prepare loading for BCI IV comepetition Dataset 4 from the matlab file to the braindecode dataset.

Targets and signal have usually the same sampling rate (by up/down sampling the original targets).
The dataset should return a timeseries of (multi)targets per compute window.
We also want to implement a number of simple preprocessing (resampling, filtering, etc.) to the signal and the targets without loosing synchronization.

Created this mne issue also https://github.com/mne-tools/mne-python/issues/9496

I see a number of issues for cropped decoding with the current implementation, which uses targets as anchor (stop) points and then slices a window with the specified size before the target.

Depending on the specified window size, we could end up with windows that span a number of targets. However, currently, only the last target is returned. This is the expected behavior for Trial-wise decoding, but not in cropped decoding. We can control this behavior by adding a new optional parameter to WindowsDataset to return all targets within the window or just the last one.

In cropped decoding, the new create_windows_from_target_channels windowing function implemented by this PR would create overlapping windows and duplicate targets, which is not desired, because targets are assumed to appear one in a single dataset iteration. However, we can use the old windowing functions from braindecode to iterate over the entire trial, but we want to emphasize the difference between trials-wise and cropped decoding windowing functions in the documentation and the tutorial.

Proper validation that accounts for the receptive field of the models by considering fixed number of targets (specified by the user) for validation.


Adding a remove-clusters command

As per https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/issues/58, adding a new kubemci remove-clusters command that users can use to remove an existing MCI from some clusters.
Things left to be done:

This still causes downtime. Filed https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/issues/145 for that.
This doesnt use --force yet.
Adding more tests.

This PR has already become too big, so will do those in follow up PRs.
cc @csbell @G-Harmon

This change is

Pushed a new commit to add a few more unit tests

Reviewed 16 of 17 files at r1, 2 of 2 files at r2.
Review status: all files reviewed at latest revision, 17 unresolved discussions.

app/kubemci/cmd/remove_clusters.go, line 59 at r2 (raw file):

// Overwrite values when they differ from what's requested. If
// the resource does not exist, or is already the correct
// value, then 'force' is a no-op.
ForceUpdate bool
Is "Force" meaningful for remove-clusters?

app/kubemci/cmd/remove_clusters.go, line 62 at r2 (raw file):

// Optional.
It's inconsistent that some members say "required", some say "optional", and some don't say either....

app/kubemci/cmd/remove_clusters.go, line 101 at r2 (raw file):

params
nit: s/params/options/ ? or s/params/flags/ ?

app/kubemci/cmd/remove_clusters.go, line 148 at r2 (raw file):

	// Delete ingress resource from clusters
	err = ingress.NewIngressSyncer().DeleteIngress(&ing, clients)

shouldn't we check NewIngressSyncer() for returning nil? (I know it doesn't know, but isn't the pattern to check for nil from a New* func?)

app/kubemci/pkg/gcp/backendservice/backendservicesyncer.go, line 273 at r2 (raw file):

}

func (b *BackendServiceSyncer) desiredBackendServiceWithoutClusters(existingBE *compute.BackendService, removeIGLinks []string) *compute.BackendService {

minor: can you add a comment please for my benefit?

app/kubemci/pkg/gcp/backendservice/backendservicesyncer_test.go, line 221 at r2 (raw file):

if len(be.Backends) != 1 {
t.Fatalf("expected the backend service to have 1 backend for ig: %s, actual: %v", ig2Link, be.Backends)
}

Can you please verify that the right ig is left?

app/kubemci/pkg/gcp/backendservice/fake_backendservicesyncer.go, line 66 at r2 (raw file):

func (h *FakeBackendServiceSyncer) RemoveFromClusters(ports []ingressbe.ServicePort, removeIGLinks []string) error {
	// TODO: Implement this.

put in a glog.Fatal? Would be better for folks to know that this doesn't work if they try it.

app/kubemci/pkg/gcp/firewallrule/firewallrulesyncer.go, line 101 at r2 (raw file):

func (s *FirewallRuleSyncer) removeFromClusters(lbName string, removeIGLinks map[string][]string) error {
I don't understand why you have both RemoveFromClusters and the helper removeFromClusters. In this case, the functions have the same signature and there's loop in the outer func.

app/kubemci/pkg/gcp/firewallrule/firewallrulesyncer.go, line 257 at r2 (raw file):

// TODO(nikhiljindal): Fix this if it becomes a problem.
File an Issue so we can point to a known issue if necessary?

app/kubemci/pkg/gcp/forwardingrule/forwardingrulesyncer.go, line 212 at r2 (raw file):

// Update HTTPS status first and then HTTP.
// This ensures that get-status returns the correct status even if HTTPS is updated but updating HTTP fails.
// This is because get-status reads from HTTP if it exists.
// Also note that it continues silently if either HTTP or HTTPS forwarding rules do not exist.
I don't quite follow all this logic, but might not be a big deal.

app/kubemci/pkg/gcp/forwardingrule/forwardingrulesyncer.go, line 219 at r2 (raw file):

}

// ensureForwardingRule ensures a forwarding rule exists as per the given input parameters.

copy-pasted comment needs updating.

app/kubemci/pkg/gcp/instances/fake_instancegetter.go, line 24 at r2 (raw file):

Zone: igUrl,
seems fishy to use the same URL for Name and Zone and Tag.

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 138 at r2 (raw file):

portsand
s/portsand/ports and/

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 266 at r2 (raw file):

// DeleteLoadBalancer deletes the GCP resources associated with the L7 GCP load balancer for the given ingress.
func (l *LoadBalancerSyncer) RemoveFromClusters(ing *v1beta1.Ingress, removeClients map[string]kubeclient.Interface, forceUpdate bool) error {
	// TODO(nikhiljindal): Dont require the ingress yaml from users. Just the name should be enough. We can fetch ingress YAML from one of the clusters.

Why is this TODO placed right here? I would either put this in the function comment, or next to ing's first use.

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 291 at r2 (raw file):

igsForBE := []string{}
for k := range removeIGLinks {
igsForBE = append(igsForBE, removeIGLinks[k]...)
}
What's this doing?

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 383 at r2 (raw file):

// Also note that this returns all named ports on the instance group and not just the ones relevant to the given ingress.
Is this a problem? or, what problem might this cause?

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer_test.go, line 366 at r2 (raw file):

	ing, err := setupLBCForCreateIng(lbc, nodePort, igName, igZone, zoneLink, ipAddress)
	if err != nil {
		t.Fatalf("%s", err)

nit: include some text besides the error

Comments from Reviewable

Review status: all files reviewed at latest revision, 17 unresolved discussions.

app/kubemci/cmd/remove_clusters.go, line 59 at r2 (raw file):
Previously, G-Harmon wrote…

// Overwrite values when they differ from what's requested. If
// the resource does not exist, or is already the correct
// value, then 'force' is a no-op.
ForceUpdate bool
Is "Force" meaningful for remove-clusters?

https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/issues/58 has an idea of what we can use it for.

app/kubemci/cmd/remove_clusters.go, line 62 at r2 (raw file):
Previously, G-Harmon wrote…

// Optional.
It's inconsistent that some members say "required", some say "optional", and some don't say either....

Good catch. Fixed so that required params explicitly say Required.

app/kubemci/cmd/remove_clusters.go, line 101 at r2 (raw file):
Previously, G-Harmon wrote…

params
nit: s/params/options/ ? or s/params/flags/ ?

Done.

app/kubemci/cmd/remove_clusters.go, line 148 at r2 (raw file):
Previously, G-Harmon wrote…
shouldn't we check NewIngressSyncer() for returning nil? (I know it doesn't know, but isn't the pattern to check for nil from a New* func?)

Done.

app/kubemci/pkg/gcp/backendservice/backendservicesyncer.go, line 273 at r2 (raw file):
Previously, G-Harmon wrote…
minor: can you add a comment please for my benefit?

Sure, done

app/kubemci/pkg/gcp/backendservice/backendservicesyncer_test.go, line 221 at r2 (raw file):
Previously, G-Harmon wrote…

if len(be.Backends) != 1 {
t.Fatalf("expected the backend service to have 1 backend for ig: %s, actual: %v", ig2Link, be.Backends)
}

Can you please verify that the right ig is left?

Done.

app/kubemci/pkg/gcp/backendservice/fake_backendservicesyncer.go, line 66 at r2 (raw file):
Previously, G-Harmon wrote…
put in a glog.Fatal? Would be better for folks to know that this doesn't work if they try it.

Implemented it :)

app/kubemci/pkg/gcp/firewallrule/firewallrulesyncer.go, line 101 at r2 (raw file):
Previously, G-Harmon wrote…

func (s *FirewallRuleSyncer) removeFromClusters(lbName string, removeIGLinks map[string][]string) error {
I don't understand why you have both RemoveFromClusters and the helper removeFromClusters. In this case, the functions have the same signature and there's loop in the outer func.

Makes it easier to prefix "error in removing clusters from firewall rule" to all errors.

app/kubemci/pkg/gcp/firewallrule/firewallrulesyncer.go, line 257 at r2 (raw file):

This assumes that the ordering of target tags has not changed on these instances.
// A potential solution to that problem is to recompute the target tags for the existing clusters,
// rather than removing the ones for old clusters.
// But we do not want to change existing tags for clusters that are already working.
// Ideally network tags should only be appended to, so this should not be a problem.
// TODO(nikhiljindal): Fix this if it becomes a problem.

Good idea. Filed https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/issues/147 and added link to comments in code.

app/kubemci/pkg/gcp/forwardingrule/forwardingrulesyncer.go, line 212 at r2 (raw file):
Previously, G-Harmon wrote…

// Update HTTPS status first and then HTTP.
// This ensures that get-status returns the correct status even if HTTPS is updated but updating HTTP fails.
// This is because get-status reads from HTTP if it exists.
// Also note that it continues silently if either HTTP or HTTPS forwarding rules do not exist.
I don't quite follow all this logic, but might not be a big deal.

Reworded. Hopefully its better now

app/kubemci/pkg/gcp/forwardingrule/forwardingrulesyncer.go, line 219 at r2 (raw file):
Previously, G-Harmon wrote…
copy-pasted comment needs updating.

Done.

app/kubemci/pkg/gcp/instances/fake_instancegetter.go, line 24 at r2 (raw file):
Previously, G-Harmon wrote…

Zone: igUrl,
seems fishy to use the same URL for Name and Zone and Tag.

Its a fake :)

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 138 at r2 (raw file):
Previously, G-Harmon wrote…

portsand
s/portsand/ports and/

Done.

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 266 at r2 (raw file):
Previously, G-Harmon wrote…
Why is this TODO placed right here? I would either put this in the function comment, or next to ing's first use.

Good point. Moved to function comment. Did the same for DeleteLoadBalancer, which had the same comment.

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 291 at r2 (raw file):
Previously, G-Harmon wrote…

igsForBE := []string{}
for k := range removeIGLinks {
igsForBE = append(igsForBE, removeIGLinks[k]...)
}
What's this doing?

This is converting a map of clustername to IGs for that cluster into a flat array of all IGs.
Added comment in code.

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer.go, line 383 at r2 (raw file):
Previously, G-Harmon wrote…

// Also note that this returns all named ports on the instance group and not just the ones relevant to the given ingress.
Is this a problem? or, what problem might this cause?

That depends on the caller :)
This method clarifies that it returns all the ports.

app/kubemci/pkg/gcp/loadbalancer/loadbalancersyncer_test.go, line 366 at r2 (raw file):
Previously, G-Harmon wrote…
nit: include some text besides the error

Done at all places in this test.

Comments from Reviewable

Thanks for the detailed review @G-Harmon
Updated as per comments. PTAL.

Reviewed 9 of 9 files at r3.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

app/kubemci/pkg/gcp/backendservice/fake_backendservicesyncer.go, line 66 at r2 (raw file):
Previously, nikhiljindal (Nikhil Jindal) wrote…
Implemented it :)

nice!

app/kubemci/pkg/gcp/firewallrule/firewallrulesyncer.go, line 101 at r2 (raw file):
Previously, nikhiljindal (Nikhil Jindal) wrote…
Makes it easier to prefix "error in removing clusters from firewall rule" to all errors.

haha, ok.

app/kubemci/pkg/gcp/firewallrule/firewallrulesyncer.go, line 257 at r2 (raw file):
Previously, nikhiljindal (Nikhil Jindal) wrote…

This assumes that the ordering of target tags has not changed on these instances.
// A potential solution to that problem is to recompute the target tags for the existing clusters,
// rather than removing the ones for old clusters.
// But we do not want to change existing tags for clusters that are already working.
// Ideally network tags should only be appended to, so this should not be a problem.
// TODO(nikhiljindal): Fix this if it becomes a problem.

Good idea. Filed https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/issues/147 and added link to comments in code.

thanks

app/kubemci/pkg/gcp/forwardingrule/forwardingrulesyncer.go, line 212 at r2 (raw file):
Previously, nikhiljindal (Nikhil Jindal) wrote…
Reworded. Hopefully its better now

yes, i follow now.

Comments from Reviewable


Fix all high priority Findbugs issues (#502)

This PR does the following:

Fix/exclude 36 of the high priority Findbugs warnings so that Findbugs report passes.
2 exclusions added are as under:
a) One error is for find field of type play.db.ebean.Model.Finder not being final (MS_SHOULD_BE_FINAL) but ignored this because we do not gain much by making the Model.Finder final i.e. even if its reassigned its not an issue. And also there are no current instances of it being modified. Can be fixed but went with not fixing it because of no impact. Excluded it in a manner that all future invocations would also be excluded if same format of usage is used.
b) Error for creating a Random object and using that object only once(DMI_RANDOM_USED_ONLY_ONCE). This in the context of AnalyticJobGeneratorHadoop2 is fine as Random is supposed to be used only once, hence ignored.
Uncommented the code in travis.sh which was leading to build not failing even if findbugs warnings are generated. Now every build which induces findbugs warnings will fail. Either the warnings will have to be fixed or excluded.

Testing Done:

Verfied that no findbugs warning are generated post the change. Refer to image below:

Ran travis.sh to ensure build passes. This can be verified from Travis CI result of this PR as well.

@pralabhkumar, kindly review

LGTM

Thanks for the review and commit


Where can I get dailyInterestRate?

How to calculate it?
$dailyInterestRate = 0.000383;

Hey, in order to calculate dailyInterestRate, you can do following, assuming your annual rate is 10%

Convert the percentage rate to a decimal: 10 ÷ 100 = 0.10
Convert the annual rate to a daily rate: 0.10 ÷ 365 = 0.00027397
hope that helps

@Vovke  Thank you.


save callback not called when Clear button is clicked

Do you want to request a feature or report a bug?
bug
What is the current behavior?
When the clear button is clicked, only the change event is fired, not the save event.
I use pickr (inited with components.interaction.clear = true) to allow the users to not select a color, by clicking the Clear button. It's crucial to know when the user does this... I expect to get the save handler to be called.
The fix is very simple:
    _clearColor() {
        ....
        // Fire listener
        this._emit('change',null);
        this._emit('save',null); // Add this
    }

Your environment:
Pickr-version (see Pickr.version): 0.4.0
Browser-version:  All
Operating-system:  All

Whoops, save should be called with null, not the change event. Fixed in 22aa5e64b210c8d7d284b37c7a6e03bdd8538594 :)

Btw when you click clear, on save event the color argument is null

@sergeizhukov It has historical reasons and stays there for backwards compatibility (for now at least) :)

@Simonwep ah ok. I just click clear button and see something like you can't invoke toHEXA() on null. wat? I don't invoke toHEXA() on null. I don't have here's code at all. No I understand why.


chore: retry command

Description
Retries a failed transaction by calling retry function on bridge contract.

Closing this as we in the end chose another tool for the cli and this is obsolete


Verify static type annotations of ocioview with Pyright.

It would be worth checking that the ocioview annotations are complete.

I would like to grab this one for DevDays!


HmIP-MOD-HO: Unknown Parameter value for value key: ERROR_CODE

I agree to the following

[X] I have read the documentation
[X] I am aware of the latest release notes
[X] The Backend (CCU/Homegear/...) is working as expected and connected devices are controllable by its own UI.
[X] I am running the latest version of the custom_component (and Home Assistant)

The problem
The following error is shown in the Home Assistant Core log:
DEBUG (MainThread) [hahomematic.client] GET_VALUE: channel_address <device_id>:1, parameter ERROR_CODE, paramset_key, VALUES, source:hm_init
DEBUG (MainThread) [hahomematic.client] GET_VALUE failed with ClientException [(<Fault -5: 'Unknown Parameter value for value key: ERROR_CODE'>,)]: <device_id>:1, ERROR_CODE, VALUES

The device is a HmIP-MOD-HO (Modul für Hörmann-Antriebe).
What version of HomematicIP (local) has the issue?
1.40.0
What was the last working version of HomematicIP (local)?
No response
What type of installation are you running?
Home Assistant OS
What type of installation are you running for your homematic backend?
CCU3
Which version of your homematic backend are you running?
<IP_ADDRESS>30626
What hardware are you running for your system?
Pi4
Which config details do you use

[X] Username and password
[ ] TLS
[ ] callback data (see)

Which interfaces do you use?

[X] Homematic IP
[ ] Homematic (Bidcos-RF)
[ ] Groups (Heating-Group)
[ ] BidCos-Wired (HM-Wired)

Diagnostics information
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response

Einige Parameter können nicht gelesen, obwohl das möglich sein sollte. Das ist aber kein Problem, und daher wird das auch unter DEBUG geloggt.


issue 2265

Add a new parameter which is not in the dictionary while having check_already_exists=True and implemented a similar error that throws an error if while having check_already_exists=False the user tries to change an existing parameter.
Fixes #2265

Before we can review you should ensure tests pass. Note that now are not passing due to the new error you introduced (as expected, so that's a good sign!). You now need to fix the tests that fail. You can find which ones they are by checking the tests log.

@ayeankit any updates on this?

@ayeankit how is this going?

Closing this as it has been inactive for 6 months


Fix cache mode determination

This PR fixes 2 things:

cache mode determination in coalesce.go (https://github.com/kubernetes-sigs/prow/blob/main/pkg/ghcache/coalesce.go#L242)
add additional paths for repository API calls that we use and triggered a warning in ghproxy and asks to raise an issue with the project

in coalescer RoundTrip method, the cache Mode is determined at the end by inspecting the final response object. However, at this point the response object is not the original 304 response from the GitHub server anymore, but the cache response which has usually a status code of 200. So the method cacheResponseMode never returns ModeRevalidated but Changed which is also reflected in the disk cache.
This does not seem to have another negative effect afaict apart from being confusing and triggered me to inspect whether ghproxy really correctly cached and revalidates requests. Instead of looking at the status code (which is not reliable anymore at this step of the processing), the fix looks at the X-From-Cache header that is set by the httpcache package in case a cached version is returned.
A test case had to be adapted to take that change into account correctly.
This is my first go PR so please bear with me. With this fixes ghproxy runs pretty nice for our use-case (https://github.com/eclipse-csi/otterdog)
Thanks a a lot for this very helpful piece of software.

Wow, thanks for looking into this :+1:
/ok-to-test


Feature/boas 120 application name and description

Describe your changes

Template, style and validators for the first step of the CreateApplications form
Handle the resuming (although with a mocked api) of both the first and second step

also contains:
-the nunjuck filter for the GovUk radio component now accepts the field 'checked'
Issue ticket number and link
https://pins-ds.atlassian.net/browse/BOAS-120
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[ ] I have performed a self-review of my own code
[ ] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[ ] I have referenced the ticket number above
[ ] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

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

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

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

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

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

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

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

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

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

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

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


Access controls for Mobile and desktop need User agent tag AND Client app

Access policies for Mobile and desktop need  User agent tag AND Client app specified, otherwise they do not trigger. Just Client app does not seem to be enough.

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

ID: 87824868-8913-dac8-b8c0-365ccf8110c4
Version Independent ID: ce8dd4b6-0562-8f42-e30f-e5cb58a68b90
Content: Protect with Microsoft Cloud App Security Conditional Access App Control
Content Source: CloudAppSecurityDocs/proxy-intro-aad.md
Service: cloud-app-security
GitHub Login: @dcurwin
Microsoft Alias: dacurwin

Feel free to reach out, I also started an e-mail thread with<EMAIL_ADDRESS>

@AlexFilipin  - Thanks for your comment. We'll investigate the issue and get back to you.

@AlexFilipin  - Was<EMAIL_ADDRESS>able to resolve your issue? This doesn't appear to be a documentation issue, so resolving it through Support would seem to be the best approach.

@dcurwin No feedback from casfeedback - However I have confirmed in several test and customer tenants that the product requires client app and user agent tag being specified. Is it a product bug? Not sure. Will the current documentation work? No

@AlexFilipin  - Thanks for the quick response. We'll continue to investigate.

@AlexFilipin  - I've been told that there is no reason the user tag needs to be used. Therefore, to determine what's happening in your particular scenario, please open a support ticket:
https://docs.microsoft.com/en-us/cloud-app-security/support-and-ts


docs: clarifications to Priority Levels section of load_balancing.rst

Docs Changes: In intro/arch_overview/load_balancing.rst, rearranged how Priority Levels are explained, and fixed a couple of incorrect numbers in the examples.

@cpakulski @snowp I think you are both familiar with this area, can you take a look at these updates and make sure there are no confusions?

Thanks both for the encouragement. I couldn't be sure I wasn't just rewriting in a way that makes more sense to myself specifically, rather than actually making it clearer for everyone.


Stuck on opening camera

Stuck while trying to open camera : Adding visible gpu devices: 0

Hi! Did you install all the dependencies?

Yes, I've found that problem was memory. After restarting error has gone but camera won't open now.

Can you try to run this code?
import numpy as np
import cv2
cap = cv2.VideoCapture("nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)300, height=(int)300,format=(string)I420, framerate=(fraction)20/1 ! nvvidconv flip-method=0 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
grey_3_channel = cv2.cvtColor(grey, cv2.COLOR_GRAY2BGR)

numpy_horizontal = np.hstack((frame, grey_3_channel))
numpy_horizontal_concat = np.concatenate((frame, grey_3_channel), axis=1)

# Display the resulting frame
cv2.imshow('Numpy Horizontal Concat', numpy_horizontal_concat)
if cv2.waitKey(1) & 0xFF == ord('q'):
    break

When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Write back if it works!


Fix !important ast

Description:
Fix AST of !important, because important work is identifier we should use Ident AST node here, also it allows to parse and keep how important was written
BREAKING CHANGE:
Yes
Related issue (if exists):
No

@kdy1 Done :+1:


--format=json might need to generate more info

Problem
In some cases, we could not know which package the test belongs to.
Like
    Finished test [optimized + debuginfo] target(s) in 0.08s
     Running unittests src\lib.rs (target\debug\deps\regex_automata-f9e1a19184899f86.exe) // <-- good, it's from regex-automata
...
     Running unittests src\lib.rs (target\debug\deps\regex_lite-0cc4b285a45dbfa1.exe) // <-- good, it's from regex-lite
...
     Running tests/lib.rs (target\debug\deps\integration-d60a2e8ec89aaeb3.exe) // <-- oh no, it's from regex-lite or regex-automata?
...
     Running tests/lib.rs (target\debug\deps\integration-67b4427e13c6296c.exe) // <-- oh no,, it's from regex-lite or regex-automata?
...

In this example, when running for unit tests, we could know the package name.
However, when running for integration tests, we have no idea which integration test is running.
Proposed Solution
For the output event:
{ "type": "suite", "event": "started", "test_count": 3 }
Maybe we could add some more meta info, like
{ "type": "suite", "event": "started", "test_count": 3, package_name: "xxxx" }
Is this possible?
Or we need to change rustc?
Notes
No response

The json output is owned by libtest.  Moving this issue over there


loadgenerator build failed

Question
I want build the loadgenerator service ,run :
docker build -t otel-demo-loadgenerator:1.0.0 -f ./src/loadgenerator/Dockerfile .

I got an error:
#9 55.03 Failed to build psutil
#9 55.03 ERROR: Could not build wheels for psutil, which is required to install pyproject.toml-based projects
#9 55.03 WARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.
#9 55.03 You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
------
executor failed running [/bin/sh -c pip install --prefix="/usr/local/" -r ./requirements.txt]: exit code: 1

dev env:
os: macos 12.3.1
cpu: M1
IED:golang

is there someone encounter the same err or help me out ?

MacOS: 12.3.1
CPU: Intel Core i7

not reproduce
Because I don't have an m1 mac, I can't help you troubleshoot. I personally think
This is not the problem of this repo. Because the base image used is the official python:3.10-slim.
and I recommended

Update your docker for mac
Manually pull docker image "docker pull python:3.10-slim" to make sure the local image is up to date.
Retry again

@Frapschen if it's helpful I ran into this error as well and was able to resolve it by replacing python:3.10-slim with python:3.10 in /opentelemetry-demo-webstore/src/loadgenerator/Dockerfile

MacOS: 12.3.1
CPU: Intel Core i7

not reproduce
Because I don't have an m1 mac, I can't help you troubleshoot. I personally think This is not the problem of this repo. Because the base image used is the official python:3.10-slim. and I recommended

Update your docker for mac
Manually pull docker image "docker pull python:3.10-slim" to make sure the local image is up to date.
Retry again

think for your advice :)

@Frapschen if it's helpful I ran into this error as well and was able to resolve it by replacing python:3.10-slim with python:3.10 in /opentelemetry-demo-webstore/src/loadgenerator/Dockerfile

think for your advice :) this method work for me.


Switch to official logging library

Let's start using the slog package instead of go-kit logger.

Fixed by https://github.com/promhippie/github_exporter/pull/390


Potential fix for imports

Maybe fixes issue #1165 ?
This style of import:
import tuf.download
is incompatible with vendoring tool (typically vendoring modifies from X import Y into from vendored.path.X import Y but this can't be succesfully done with our style).
So I'd like to talk about changing the import style. Unfortunately just switching to the style from tuf import download means massive code churn as the local name changes from tuf.download to download: at least 700 lines of change and significant chance of namespace collision.
This PR is a exploration of another way: using package imports to keep the code mostly as is.
Description of the changes being introduced by the pull request:

Removes all cases of import tuf.something
Introduces package level default imports tuf and tuf.client, so a plain "import tuf" or "from tuf import client" is enough to get the basic imports in place with minimal changes to source code
Leaves repository_tool, repository_lib, developer_tool and unittest_toolbox as they are: not part of a default import set
leaves log out of the default import set because importing it has side-effects, and fixes the local naming issues resulting from that

This should be 100% backwards compatible: all import styles still work.
The important changes in functionality are:

importing any tuf module typically ends up importing one or both default sets
tuf.log is no longer imported uselessly in a lot of places (this should be a good thing)

Please verify and check that the pull request fulfills the following
requirements:

[ ] The code follows the Code Style Guidelines
[ ] Tests have been added for the bug fix or new feature
[ ] Docs have been added for the bug fix or new feature

closing this: it was useful as a test for the workaround I'm going to use in pip , but will never be a real solution we'd want to merge


Added Yeelight Arwen Ceiling Light 450C support

Tested on mine one — it's working.

I have no way of testing this, but it seems reasonable. Thanks @pfrankov


fix: Support aarch64 linux systems

tree-sitter labels these as arm64 in the version downloads for linux, macos and windows.

Thanks, @jsamuel1!