Indent dictionary key/value entries in TSCN format

Godot version:
godot3 tip
Issue description:
I have two suggestions for making tscn files easier to parse in third party scripting languages.

In a tscn file, multiline values should be indented. The one that affects me the most is in the Animation sub resource.

tracks/0/keys = {
"times": PoolRealArray( 0, 1),
"transitions": PoolRealArray( 1, 1),
"update": 0,
"values": [ Color( 0.45112, 0.09609, 0.18779, 1 ), Color( 0.55547, 0.0429, 0.18366, 1 ) ]
}

This would parse better if multi-line values were delineated in some way. There is no specific method in the INI format for doing so but my preferred option would be an indent like this:
tracks/0/keys = {
    "times": PoolRealArray( 0, 1),
    "transitions": PoolRealArray( 1, 1),
    "update": 0,
    "values": [ Color( 0.45112, 0.09609, 0.18779, 1 ), Color( 0.55547, 0.0429, 0.18366, 1 ) ]
    }

In a tscn file, the AnimationPlayer node value "autoplay" is defined twice. It should probably only be defined once.

Steps to reproduce:

Create a scene with an AnimationPlayer
Create an empty animation.
Set the animation to autoplay
Save the file.

Inside the file the autoplay value is set twice.
Minimal reproduction project:
[gd_scene load_steps=2 format=2]

[sub_resource type="Animation" id=1]

resource_name = "test1"
length = 1.0
loop = true
step = 0.1

[node name="AnimationPlayer" type="AnimationPlayer" index="0"]

root_node = NodePath("..")
autoplay = "idle"
playback_process_mode = 1
playback_default_blend_time = 0.0
playback_speed = 1.0
anims/test1 = SubResource( 1 )
blend_times = [  ]
autoplay = "idle"

Finally, parsing a tscn when there's shader code stored inside could also be problematic but I figure if you're trying to do that then you kind of deserve problems.

The duplicate "autoplay" issue was fixed in #16063. Changed title to match the new status.


Switched to Chrome window does not get focus [switchTo().window(handle)] - Protractor 3/Webdriver 2.53 case

Hi all!
I have a similar problem to this: https://github.com/angular/protractor/issues/55 - though the difference is the expectations working fine, no errors, no exceptions, but it does not switch back to the previous window. I am at my wits end. I tried first with tabs, it did not work, so I switched to windows since them being tabs and not windows is not part of any of our test cases.
How to reproduce it:
http://stackoverflow.com/questions/36578927/protractor-3-0-0-webdriver-2-53-0-switching-tabs-error
it('checks tabs', async () => {
    const url1 = '/login';
    const url2 = config.chatLaunchUrl;

    let windowHandles = {
      oldTab: '',
      newTab: ''
    };

    await browser.get(url1);
    await browser.getWindowHandle().then(handle => {
      windowHandles.oldTab = handle;
    });

    // opening new window sending CTRL+N
    await browser.actions()
      .sendKeys(protractor.Key.chord(protractor.Key.CONTROL, "n"))
      .perform();

    await browser.getAllWindowHandles()
      .then(handles => {
        expect(handles[0]).toEqual(windowHandles.oldTab);

        windowHandles.newTab = handles[1];
        return browser.driver.switchTo().window(windowHandles.newTab);
      })
      .then(() => {
        // this works
        return browser.get(url2);
      })
      .then(() => {
        return browser.driver.switchTo()
          .window(windowHandles.oldTab)
          .then(() => browser.driver.executeScript('window.focus();'));
      })
      .then(() => {
        let handle = browser.driver.getWindowHandle();
        expect(handle).toEqual(windowHandles.oldTab);
      })
      .then(() => browser.sleep(6000));
  });

I have added a sleep to make sure you can see it did not switch. (At least UI is not moved to forward, doesn't get the focus).
Works with FireFox but not with Chrome.
Expectations are all verified in both browsers, though Chrome does not switch, while FireFox does.
I tried out the window.focus() script trick, but it did not switch. On FireFox you don't even need that trick to make it work.

Node Version: v5.9.1
Webdriver Version: 2.53.0
Protractor Version: 3.0.0
Browser(s): Chrome
Operating System and Version Windows 8.1 x64

I will revisit this issue a bit later (I have a deadline today) since I have found a workaround that uses windows instead of tabs. Though I think in case of tabs, it should be better if the actual switch and focus have been done and the actual handle would be consistent with it.

Since then I have found out that the actual switch happens and the test can continue in Chrome as well.
The difference between the FireFox and the Chrome is that if I switch to a Firefox window it gets the focus (moves up in the z order), but Chrome does not and it was hard to see what does it do when the view was blocked by the previous window (from where I was switching form).

I got same problem. It makes my tests fail in Chrome because of opening more browser instances.

Same problem here. And I need to open new tab on chrome. I need test multi browser and multi tab.

I have written these snippets to help with handling browsers. (Then we substituted multibrowser with one of the participant using API). I hope it helps, this is just a draft. It returns an object you can use to handle the browsers naturally. (Sorry for ES7 but ES5 is just pain in the ass).
    let windowHandle;

    async function openNewWindow() {
      // opening new window sending CTRL+N
      await browser.actions()
        .sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'n'))
        .perform();
      let newHandles = await browser.getAllWindowHandles();   // eslint-disable-line prefer-const
      windowHandle = newHandles[newHandles.length - 1];
      return browser.driver.switchTo().window(windowHandle);
    }

    // etc. etc. ...
    const handle = await browser.driver.getWindowHandle();
    return {
      switchTo: async () => {
        return await browser.driver.switchTo().window(handle);
      },
      getHandle: () => handle,
      close: async () => {
        await browser.driver.switchTo().window(handle);
        return await browser.driver.close();
      }
    };


Update Veracode Example.postman_collection.json

Added calls for GET all static findings and GET all SCA findings. In the REST API Quickstart, under Retrieve Scan Results, we tell users to create these calls. With these included, they only need to add their app_guid and select Send.
For example:

There's an older PR for this file that should be merged before this one: https://github.com/veracode/veracode-postman/pull/8

Waiting to merge until pending reviews from @relaxnow and @julz0815 are complete.

I tried this but couldn't get it to work, either with my regular account or my service account. I kept getting a 401 Unauthorized:
{
    "message": "5f46d643-e134-44d9-bd01-8390650794b1",
    "http_code": 401,
    "http_status": "Unauthorized"
}

Also we could use a 'per-request' script for these requests that reminds people to set the 'app_guid':
const app_guid = pm.collectionVariables.get('app_guid');
if (!app_guid) {
    throw new Error("Environment does not have an 'app_guid'. Please ensure you have configured an app_guid in the Collection Variables.");
}

@tjarrettveracode did you verify that this works for you?

Great idea! I was planning to add this when I update the REST API quickstart to match these changes. Since we've named the variable app_guid, should the description mention that the value comes from the guid or context_guid properties in the results? See the examples under Steps 2, 7, and 9: https://docs.veracode.com/r/REST_APIs_Quickstart#optional-retrieve-scan-results

@mhowes-veracode I found and fixed it, the requests were missing the Authorization header.
I also added the per-request script.

I tried this but couldn't get it to work, either with my regular account or my service account. I kept getting a 401 Unauthorized:
{
    "message": "5f46d643-e134-44d9-bd01-8390650794b1",
    "http_code": 401,
    "http_status": "Unauthorized"
}

An application search is working fine. I used the GUID from the application search.

Same for me. I did replace the pre-request script in the collection with the one

@mhowes-veracode I found and fixed it, the requests were missing the Authorization header. I also added the per-request script.

Brilliant! Yes, both working for me now! Thanks!!

With this it's working now, but now I'm a contributor so it would probably be best if @julz0815 gave this a whirl.

@julz0815 could you take a look at this?


actor_infos keep increasing, never cleared up

Hello @oulutan ,
thanks very much for this wonderful repo. I have a few confusions regarding the paper and the implementation itself.

Although you mentioned in your paper how your work differs from and improves upon the Actor Conditioned Relation Network (ACRN) paper, I am still confused about the main improvements. I would highly appreciate if you could provide some intuitions about how your work improves upon ACRN.

It seems that actor_infos keep increasing and never cleared up, whereas, the tracks corresponding to the actors may have been deleted. Shouldn't you delete the actors from actor_infos whose corresponding tracks are deleted?

Thanks.

Thank you!

We do have an updated version of the paper coming up, that will make things more clear. It should be out in a day or two on arxiv. ACRN takes the attention idea from relational reasoning and applies it to actor and context. They use these relation features and apply convolutions on them. In contrast, we leverage these relations to generate attention maps, kind of similar to attention. These attention maps basically alter the original context features to be relevant to each actor. Additionally, since I3D Tail is being used, altering original features work better than generating completely new features (like relation feats).

That is a little bit tricky. I was doing something like that initially, but if you want to keep track of what happened in the video (like a summary) and dump that into some json file, you should keep all the actor information over time. These don't take too much memory and should be okay to keep them unless there are memory issues.

Thank you so much @oulutan ! I appreciate your feedback. I will be eagerly waiting for the updated version of the paper!

Updated version of our paper is now available on arxiv!

Thanks! I will check it out.


Support Trezor Safe 3

As per title. HWI currently reports
[{“type”: “trezor”, “path”: “webusb:001:1", “error”: “Could not open client or get fingerprint information: Unsupported Trezor model”, “code”: -13}]

cc @prusnak @matejcik

cc @prusnak @matejcik

I guess we need to update the hwi local copy of trezorlib to the latest.

cc @prusnak @matejcik

I guess we need to update the hwi local copy of trezorlib to the latest.

Do you have any time estimate?

I think all we need to do is update file hwilib/devices/trezorlib/models.py with new contents from https://github.com/trezor/trezor-firmware/blob/main/python/src/trezorlib/models.py
Can you please do that @achow101 and prepare a new binary for @craigraw to test with?

I think all we need to do is update file hwilib/devices/trezorlib/models.py with new contents from https://github.com/trezor/trezor-firmware/blob/main/python/src/trezorlib/models.py
Can you please do that @achow101 and prepare a new binary for @craigraw to test with?

Hi, I did try doing this myself on my Mac and it doesn't seem to be a solution. Although my device is detected it fails to get the fingerprint information from my device:
[{"type": "trezor", "path": "webusb:001:1:3:1", "label": "My Trezor", "model": "trezor_safe 3", "needs_pin_sent": false, "needs_passphrase_sent": false, "error": "Could not open client or get fingerprint information: InvalidSession: Invalid session", "code": -13}]

Tested 2.4.0-rc.1 on the Trezor Safe 3, no issues to report. Just waiting on the final 2.4.0 release now.


Revert to single ermrest daemon

It seems we should just use the ALTER TABLE ... FORCE ROW LEVEL SECURITY feature to get enforcement over the ermrest daemon who can also own the tables in the catalog, rather than having the split between ermrest and ermrestddl daemon roles.

[x] change ermrest-deploy to reconfigure catalog security

everything owned by ermrest
row level security forced on all tables
no explicit grants necessary
overwrite legacy wsgi_ermrest.conf if it has ermrestddl in it

[x] change wsgi_ermrest.conf to have only one merged daemon again using ermrest account
[x] get rid of automation around ermrestddl account but let syadmins clean up legacy systems

Complications: anybody who currently manipulates the database as ermrestddl to bypass RLS will need to learn a new trick, either:

use a new superuser role in postgres to bypass RLS
use set_config() function to mock up a client authentication context to run under ermrest role

This is now in PR #128 so I will close this issue and we can track review on the PR...


First pass at dependent devices guide

Signed-off-by: Joseph Roberts<EMAIL_ADDRESS>

@josephroberts I guess we can close this for now right?


WIP: Minima next

This is a proposal to a slightly revisited styles for minima by @jglovier

@DirtyF thanks for keeping this going! There appear to be some styling inconsistencies with my mocks. Can't remember if I just never finished working on the branch or if they got introduced elsewhere, but I'll add some commits and post new screenshots to tidy it up. ✨

Also, what's the timeline here? I'd really like to push it a little further like adding a built in color theming generator (thinking of just using some CSS variables and allowing users to set a base hex color in the config file), etc.

What is the possible release day of Minima 3.0?

@ajbozdar No timeline here, @jglovier will work on this whenever he wants.

As for an update, I'm taking some time off in January and plan to get this across the finish line then.

As for an update, I'm taking some time off in January and plan to get this across the finish line then.

😂@jglovier  Did you forget this progress?

@hszhakka It's OK for people to change focus, life happens. feel free to build upon this work if you feel ike to 😉

@hszhakka It's OK for people to change focus, life happens. feel free to build upon this work if you feel ike to 😉

No one can decide to merge this branch to master except for @jglovier ? This style looks pretty for me, very exciting to see it appears in Minima 3.0. Or can I make a PR based on this work?

merge this branch to master except for @jglovier? Or can I make a PR based on this work?

Technically, any maintainer can merge any branch. But in this case, the changes are huge. So, it is not an easy task.
You're free to use parts of the code here as a starting point for your PR. But ensure that you credit the original author properly in the commit message.
This attribution is not just for @jglovier. It is to be followed for every author whose unattributed code is being used in a pull request without their explicit consent.


Retry connecting wallets that are not ready yet

Fixes https://github.com/saber-hq/saber-common/issues/497 by retrying connecting wallets that are not ready yet. Connection is retried for a maximum of 10 times -- this fixed the problem on our end.

Thank you!

Thanks for your review!


Question

is there a way to generate an exe that is not detected by antivirus?

You can obfuscate the exe to try to reduce detections. But you cannot make it undetectable.


Update sbt-scalafix to 0.11.0

About this PR
📦 Updates ch.epfl.scala:sbt-scalafix from 0.10.4 to 0.11.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "ch.epfl.scala", artifactId = "sbt-scalafix" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "ch.epfl.scala", artifactId = "sbt-scalafix" }
}]

labels: sbt-plugin-update, early-semver-major, semver-spec-minor, commit-count:1

Codecov Report

Merging #2590 (911e2ce) into main (2017efd) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #2590   +/-   ##
=======================================
  Coverage   78.44%   78.45%
=======================================
  Files         445      445
  Lines       15653    15653
  Branches     2563     2563
=======================================
+ Hits        12279    12280    +1
+ Misses       3374     3373    -1

see 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Extension documentation view scrolls to top on focus

VSCode Version: 1.12.2
OS Version: Windows 10

Steps to Reproduce:

Click to open the documentation for an extension.
Scroll down a bit.
Click on some file.
Click back on the tab with the extension docs.
You have been scrolled back to the top.

Thanks. Duplicate of #27498 which i'll look into for june

Thank you!

Oh sorry to nit pick - is this the same? I had found that issue myself earlier, but noticed it was called the "Extension Editor" - is that the same thing as the documentation viewer?

Yes, extension editor is just the name was use in the code for extension readme/documentation


POOLS bugs when trying to create a new position

Describe the bug
Found a Bug on the Pools when trying to add a new pool eg. ETH / HORSE after clicking "EDIT" for fee tier  and choosing one of them ( I tried all different fees %) then I when on to type the 2 amount for ETH n HORSE once you type one the other one disappear and the you type one on the bottom and type an amount on top it said " PREVIEW" then "ADD" and it freeze on there the transaction will not go thought
Steps to reproduce
what i have found as a way around is to select the "percentage fee tier"  then click where it said "FULL RANGE" after that it will let you type the amount on the bottom and the other asset automatically fill and match the amounts. everything goes smoothly after with the transaction and i was able to add liquidity to the pools
Spam policy

[X] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

sorry didn't provide the website here it is just in case:    https://swap.katla.taiko.xyz/#/pools

A mi tambien me da error al armar una pool ETH/HORSE.t https://alpha.izumi.finance/trade/add-liquidity

We are using Uniswap protocol, if there is a bug, could you please file a report to Uniswap's repo?

@2manslkh could you verify if this is a frontend issue?

Not an issue


feat: rename ValidationExceptionHandler, extend to handle HandlerMeth…

…odValidationException

Your commit message:

feat: rename ValidationExceptionHandler, extend to handle HandlerMethodValidationException

Technically, this is what you did. But it gives the customers little information what/why you did it. What about rephrasing it like this:

fix(starter-web): return status 422 for all validation exceptions
Since Spring Boot 3.2 validation exceptions caused by Jakara validation annotations on the RequestBody object itself cause a HandlerMethodValidationException. This exception was not handled by our ControllerAdvice resulting in a 400 instead of a 422 response status.

Since Spring Boot 3.2 validation exceptions caused by Jakara validation annotations on the RequestBody object itself cause a HandlerMethodValidationException. This exception was not handled by our ControllerAdvice resulting in a 400 instead of a 422 response status.

commit message changed


docs: Correct comment on toFQDN API definition

This comment was added 5 years ago, and is no longer correct. Removing as discussed in slack conversation: https://cilium.slack.com/archives/C01JALNQAR1/p1692007243176749
This is a change in a comment to a file, so should need no release notes, or testing, just validation that the removal is correct.

@joestringer are you able to trigger the CI tests? Unfortunately the CRD needed updating so these tests probably do need to be run.

/test

Could you squash the two commits together? Also the bpf checks target expects that there is an empty newline between the commit message body until the sign-off-by line, so if you update that then the bot will be pleased. :sweat_smile:

Squashed and bowed to our bot overlords.

/test

@joestringer any idea what Travis is complaining about?

It looks like Travis just timed out. The actual coverage Travis provides is also available in other jobs, Travis just runs on arm64 as well. There's no platform-specific issue here, I'm happy to merge this as-is.

Thanks for the contribution @Alex-Waring!


[MusicBERT] Regarding MMD Dataset

Hi @mlzeng ,
@AniketRajpoot and I are collaborating with the creator of RWKV-LM model for the task of MIDI music generation and the LakhMIDI dataset might prove to be insufficient as we plan to train a model of Billion+ parameter scale.
We were wondering if the MMD dataset that was mentioned in the MusicBERT paper to be 10x larger & containing genre labels can be made available for this purpose?
Thank you.

+1


io.cyanite.engine.writer starting snapshot

Hello,
Cyanite 0.5.1 every second write in log file string "cyanite-snapshot - io.cyanite.engine.writer starting snapshot." is where any way to disable this messages in logs ?

We should convert it to DEBUG. Want to submit a PR?

Fixed with the latest engine


Replace grappelli with django-admintools-bootstrap [feature request]

since you switched site layout to Twitter Bootstrap, maybe you'll switch to django-admin-bootstrap ?
https://bitbucket.org/salvator/django-admintools-bootstrap
Also a lot of mods for django-admin-tools out there. can be plugged some stats etc.

Was just looking at that yesterday :-)
Definitely something worth exploring, but not particularly a priority for 1.0


How to convert an int64 to NodeJs BigInt.

Hi,
I think it's a common issue, but I can not find the answer on the Google.
I want to return BigInt to Nodejs from a C++ int64.
Currently, I'm returning a number but that is not correct.

Was looking for this too and run into the same issue. Still using a Uint32 or Int32 as fallback. Strange, that this is not yet available.


Create component to display address info

My two cents:
I'm thinking about making all the red areas optional and dividing green areas into different components.
That is, a component for the address and copy, open on etherscan buttons (as we can use it for tx hashes, not only for addresses)
Then the final component that we see here.
@alongoni, @nicosampler

Looking further, I think that probably adding an extra level of abstraction will make a quite common component reusable. Something around:


Fix gitRemote property needed for all tasks

If more than 1 remotes are configured, every task will fail with Could not determine 'gitRemote' property for 'releaseChecks' tasks., unless explicitly setting -PgitRemote=<remote>.

Thanks Marco!


Incorporate spdlog

https://github.com/gabime/spdlog

Can be done via https://github.com/Godlike/Mule


Allow default configuration override with annotations

It would be nice to be able to override default pod-reaper settings with annotations.
For example if MAX_DURATION=1d, but a pod had the annotation pod-reaper/maxduration: 12h, then that pod would be reaped in 12 hours.

@JordanSussman Would you propose that the pod defined label(s) should always override the pod-reaper defined behavior? Feels like a minimum the default behavior should be to ignore pod defined labels unless a configuration option has been defined on pod-reaper. Suppose you could also go as granular as to define certain "whitelist" of options that pods are allowed to override.

For simplicity, I think annotations should always override the default configuration if present.

A few thoughts I had on this before I dive into implementation.
There are two kinds of environment variables used to configure pod-reaper. One set is specific to the reaper itself (how often it looks at pods, what namespaces it looks at, etc). The other set defines the rules -- these are the things where we can have pods specify their own overrides.
Overriding rules on a per pod basis means that those rules wouldn't know anything about the first set of rules (this is particularly important for things like random chance -- where checking more/less often matters)
There's another kind of interesting case. Suppose we have a reaper checking every 1 hour for anything that's been running in a specific namespace for > 3 days -- but a pod in that namespace using an annotation to specify an unrelated rule -- like container status is in ImagePullBackoff. That's not really an override, but a declaration of another rule. Would we want this reaper to honor that "new" rule?
Right now, I'm thinking of the following:

add a configurable environment variable/rule to honor rules specified in pod annotations
make sure that rules can load values from pod annotations

Now for some fun stuff!
What do we want the behaviors to be in the following situations?

A rule is defined on the reaper, and the same rule on a specific pods
Assuming that we're honoring pod annotations, this feels like like the pod should override
A rule is defined on the reaper that is not defined on the pod
Default behavior of the reaper
a rule is defined on the pod that is not defined in the reaper
This is where things get dicey. Should a reaper honor a rule specification on a pod when it doesn't have a configuration for that rule? To potentially complicate it even more -- if it should honor them, then do we and the pod specific rules with the other rules defined by the reaper?

So let's say we have pod-reaper/maxduration: 12h annotation on a pod, but the reaper itself isn't configured with any value for MAX_DURATION -- should the reaper honor the annotation? If the answer is "no", then I think this much more simple, but also less powerful.
Additional thought: this really brings to a light a problem with the chaos chance rule because if it's specified as a pod annotation, then there's a separation between where the chance is defined and how often that chance is applied (the reaper's scheduling) which is just begging for trouble. @andrewwipf and I actually did some white-boarding a couple solutions to that problem (that I think I'd like to implement independently of this feature).

a rule is defined on the pod that is not defined in the reaper

My initial idea was “no” to keep things simple. However that will probably lead to confusion.
I think the following pseudo code will handle all three cases:
rules := loadAllRules()
foreach rule in rules {
    pods := getAllPodsInNs()
    foreach pod in pods{
        setting := getEnv(“DEFAULT_SETTING”)
        annotation = getAnnotation(“key”)
        if annotation != nil
            setting = annotation.value
        if setting = nil
            continue

        shouldDelete := evaluateRule(setting)
        if shouldDelete
            delete(pod)
    }
}

I agree with that overall approach!
Weirdly enough, it's more refactoring than I would have originally thought -- but I'm game!
I'll work on a PR for this (hopefully over the weekend here)!

Worked on this a bit. Doing this in a few steps (in part because I'm a lunatic that likes refactoring). I'll be updating a rule-refactor branch as I go.
Originally, with rules only configured at the reaper level, only the rules that were configured were "loaded". This separated the configuration of the reaper (which happened exactly once at startup) from the actual checking of the rules. If we want to enable overrides from things configured outside the reaper itself, rule configuration needs to be more dynamic. To accomplish that, I want to remove the loading phase of this altogether, and instead always be checking each rule -- letting the rule determine if it should be applied or not.
This leads to a ternary situation. There are now three cases for a rule evaluation:

reap the pod
spare the pod
ignore this rule (it's not configured)

We avoided case 3 originally because rules that weren't configured were never loaded.
Here's the priority chain to keep everything consistent:

if any rule saying "spare" --> the pod will not be reaped
else if there are any number rules saying "reap" --> the pod will be reaped
if NO rules say "reap" the pod is spared

So far, I think this is going well. Just taking me a longer than I wanted. I really convinced myself that this could be a fun feature when I thought the use case where rather than overriding settings, instead there was a generic reaper running with no-environment variable defined rules. Instead it's an entirely "opt-in with your own per pod rules".
One more minor side note: chaos chance does NOT work well with a pod level override. It really needs a time factor to be configured WITH the chance in order to make sense. I have a couple ideas about how to do that, but it'll be separate from this work!

update: have a working reaper where rules are evaluated on the ternary logic of {reap, spare, ignore} as well as having implemented one rule in this way. From here the next step is really simple: tweaking the rules to match the changed interface.
After all this, adding pod-level overrides will be straightforward!

Okay. Feeling pretty good about refactoring how rules work in order to help accommodate this request. For right now, the rework should have functional feature parity (I have changed log messages a bit).
There are still a few things I want to test out with this, but it should be a total drop-in-place of an older version.
Docker container: brianberzins/pod-reaper:alpha-02212020
From here, the request to add pod-level overrides should be MUCH easier than before.
I'm also a pretty big fan of how the rework simplified what a "rule" is away from being a structure and instead being type rule func(v1.Pod) (result, string)

#45 has a work-in-progress of a rule refactor, but I feel like I'm hitting a point where "it doesn't feel right" again.
For a rules to have multiple sources of values leaves me with a lot of questions about what pod-reaper looks like it should be doing from the multiple perspectives. So I'm going to try to write out a super specific situation and see what people think. Using the example above!

Suppose we have the following:
Pod reaper is configured with:

MAX_DURATION=1d

A specific pod has the following annotations:

pod-reaper/max_duration: 12h
pod-reaper/pod_status: Evicted

What do we think it should do when it encounters a pod that has been, and is still running (not Evicted) at 12h1m?
If I only saw the pod-reaper configuration, I would describe the reaper as "kills pods that have been running for more than 1 day" so I would say "don't kill the pod".
If I only saw the pod annotations, I would describe the kill conditions as "the pod is at least 12 hours old AND has been evicted" so I would say "don't kill the pod"
If we honor overrides, but only for rules that have been configured (or if we opted to do something like ENABLE_RULE=max_duration and something like HONOR_POD_ANNOTATION_OVERRIDES=true then I would say "only max duration is enabled, ignore the pod_status annotation, and kill the pod". You would really need to see both sides (reaper and pod configuration) for this to make sense.

Maybe that "AND" there is what's really causing my confusion here.
If you want to "OR" two rules, you can just make two reapers (one with each rule) and then if either one says reap, the pod is killed. Pod annotations don't really make sense in this context, as they'd apply to any/all reapers that are looking for them.
Maybe the solution here is to have two specific configuration options here:

explicitly enabling rules, and treating pod annotations as overrides to those specific values
ignore all local rules, and honor the set of annotations on a pod as a collection of rules

At this point it sounds like I'm overthinking things... but what I've done for #45 doesn't really make sense for the first of these (which I think is more in line with the topic of this issue). It also doesn't really make sense of the second of these -- but for different reasons. As much as I like the idea of the second case, it really feels like a super specific use case that I shouldn't consider right now.

Going to keep thinking about this.

In general, I like the direction of the refactor. The rules returning a named result instead of a boolean, makes things much clearer what the expected behavior is without having to jump around in the code.
I liked

if any rule saying "spare" --> the pod will not be reaped
else if there are any number rules saying "reap" --> the pod will be reaped
if NO rules say "reap" the pod is spared

I would add
4. Pod annotations will enable that rule on a pod and override global configuration (if any).

For the Duration example above, since there is an annotation on the pod, I would expect it to be evicted at 12h1m
Consider the reverse scenario:

MAX_DURATION=12h

Pod annotations:

pod-reaper/max_duration: 1d

In this case, I would expect the pod to be killed in 1 day, even though the default is 12h.

I do think explicitly enabling rules would probably lead to the least amount of confusion, but would break backward compatibility with the current configuration. I would release it as v3.0 to indicate that there are breaking changes, and clearly document it.

Alright. Way more thought than I'd have liked later, here's my plan.

move forward with #45 (after any cleanup people would like to see done)
add in the ability to explicitly define which rules are used (if unset, "enabling all" wouldn't break backwards comparability -- all for discussion there)
implement pod level overrides as simply as I can think of.

For implementing pod level overrides.

add a flag to honor pod level annotations
annotations act as overrides (or initial configuration) for any/all enabled rule
add in some level of abstraction for getting the pod-reaper configuration key (env variable), override annotation, and name (for use when explicitly enabling rules)

The goal of the last piece is to reduce code duplication and make it easier to work. I'm not exactly sure how that'll look right now, but they idea would be start with a list of all rules, filter out anything not enabled, then provide common methods for getting their configuration value.
Something like func(r *rule) getConfigValue(p v1.Pod) (configured cool, value string)
which can be generalized for all rules.

@brianberzins Have you made any more progress on annotations? I just ran into a situation where they would be very useful. I'm willing to lend a hand getting this implemented.

@brianberzins Have you made any more progress on annotations? I just ran into a situation where they would be very useful. I'm willing to lend a hand getting this implemented.

I need dive back into this!
It's looking like I was moving towards a very different setup with #45 that would make this a lot easier, but there have been a couple of things since that I'd need to make sure still work as expected.

I need dive back into this!
It's looking like I was moving towards a very different setup with #45 that would make this a lot easier, but there have been a couple of things since that I'd need to make sure still work as expected.

I had an immediate need, so I went ahead and implemented this in #64. I'm open to changes.

I had an immediate need, so I went ahead and implemented this in #64. I'm open to changes.

I owe you a code review! Hoping I can get to it this evening!
On Wed, Jan 20, 2021, 9:32 AM Jason Harmon<EMAIL_ADDRESS>wrote:

I had an immediate need, so I went ahead and implemented this in #64
https://github.com/target/pod-reaper/pull/64. I'm open to changes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/target/pod-reaper/issues/44#issuecomment-763712519,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAS2AGHVS6GQ54N5QTFHH3TS23ZRJANCNFSM4KUTKXSQ
.

I owe you a code review! Hoping I can get to it this evening!
On Wed, Jan 20, 2021, 9:32 AM Jason Harmon<EMAIL_ADDRESS>wrote:

I had an immediate need, so I went ahead and implemented this in #64
https://github.com/target/pod-reaper/pull/64. I'm open to changes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/target/pod-reaper/issues/44#issuecomment-763712519,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAS2AGHVS6GQ54N5QTFHH3TS23ZRJANCNFSM4KUTKXSQ
.


New API call to dump data + geodiffinfo integration

Useful for e.g. for debugging purposes to see how geodiff sees the data

ins't required to add it to pygeodiff too same time?

ins't required to add it to pygeodiff too same time?

I have added a couple of other API calls which are not supported by pygeodiff yet... and we need to discuss what to do for geodiff 0.9 / 1.0 ... whether to kill "old" API calls, whether to rewrite pygeodiff as a proper CPython module or use something else...


Upgrade from 0.9.0 to 0.9.5

OS Error but the upgrade seemed to happen OK.
(yotta workspace) ~ $ mbed --version
0.9.0
(yotta workspace) ~ $ sudo pip install -U mbed-cli
Password:
The directory '/Users/samgro01/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/samgro01/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting mbed-cli
  Downloading mbed-cli-0.9.5.zip (48kB)
    100% |████████████████████████████████| 49kB 1.2MB/s
Installing collected packages: mbed-cli
  Found existing installation: mbed-cli 0.9.0
    Uninstalling mbed-cli-0.9.0:
      Successfully uninstalled mbed-cli-0.9.0
  Running setup.py install for mbed-cli
Successfully installed mbed-cli
Traceback (most recent call last):
  File "/Applications/yotta.app/Contents/Resources/workspace/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/__init__.py", line 217, in main
    return command.main(cmd_args)
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/basecommand.py", line 248, in main
    pip_version_check(session)
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/utils/outdated.py", line 102, in pip_version_check
    installed_version = get_installed_version("pip")
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/utils/__init__.py", line 858, in get_installed_version
    working_set = pkg_resources.WorkingSet()
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 629, in __init__
    self.add_entry(entry)
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 685, in add_entry
    for dist in find_distributions(entry, True):
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2075, in find_eggs_in_zip
    if metadata.has_metadata('PKG-INFO'):
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1605, in has_metadata
    return self.egg_info and self._has(self._fn(self.egg_info, name))
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1963, in _has
    return zip_path in self.zipinfo or zip_path in self._index()
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1843, in zipinfo
    return self._zip_manifests.load(self.loader.archive)
  File "/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1783, in load
    mtime = os.stat(path).st_mtime
OSError: [Errno 2] No such file or directory: '/Applications/yotta.app/Contents/Resources/workspace/lib/python2.7/site-packages/mbed_cli-0.9.0-py2.7.egg'
(yotta workspace) ~ $ mbed
usage: mbed [-h] [--version]             ...

Command-line code management tool for ARM mbed OS - http://www.mbed.com
version 0.9.5

@sg- Often pip generates error when switching between public pip modules (e.g. pip install ...) and manually installed modules (e.g. setup.py install) . Can you please retry and let me know?

Ping @sg-

Given that 0.9.0 doesn't exist in pip it must have been installed by setup.py locally.
Collecting mbed-cli==0.9.0
  Could not find a version that satisfies the requirement mbed-cli==0.9.0 (from versions: 0.5.1, 0.5.2, 0.6.8, 0.7.1, 0.7.2, 0.7.3, 0.7.13,
0.7.17, 0.8.0, 0.8.1, 0.8.2, 0.8.5, 0.8.7, 0.8.8, 0.8.9, 0.9.1, 0.9.5, 0.9.7)
No matching distribution found for mbed-cli==0.9.0

@sg- Not sure how we can solve the compatibility between locally installed packages and public ones. Seems that mixing these causes pip to throw some nasty errors.

Seems reasonable.


[DISCUSS] Failsafe Roadmap

I wanted to sketch out few things I've been working on and considering for upcoming roadmap for Failsafe:
For 2.0:

[x] Move to Java 8 as a requirement
[x] Add a ForkJoinPool.commonPool based Scheduler implementation
[x] Composable policy execution

Allow policies to be arbitrarily composed.

[x] Policy SPI

The SPI allows 3rd party policies to be plugged into Failsafe
The PolicyExecutor SPI allows policies to perform pre or post execution result handling

[x] Re-thinking event listeners - See #154
[x] Execution API improvements - See #160
[x] Doc updates

2.2:

[x] Cancellable async executions, backed by ForkJoinPool
[x] Timeout policy

2.5

[ ]  Make some internal APIs more open #292
[ ]  Re-work Execution and AsyncExecution APIs #287
[ ]  Consider more explicit functional composition APIs #254

3.x

[ ] Policy builders #299
[ ] More Policy implementations including Bulkhead, RateLimiter, and Cache

My hope is that the Policy SPI in particular, along with event listeners, should give users and 3rd party library implementors enough extension points to be able to extend Failsafe as needed while keeping the core library small. That said, please comment here with any ideas or wishes.

More Policy implementations including Bulkhead, RateLimiter, and Cache

What about backup requests or hedged requests?

https://blog.acolyer.org/2015/01/15/the-tail-at-scale/
https://github.com/zalando/riptide/tree/master/riptide-backup

@whiskeysierra Do you have another pointer for backup requests?
I suspect both of these would be specific to Http or other client/server technologies. Do you think there's a way to write policies for these in a way that's not specific to particular technologies, and in particular, external dependencies?

Technically it's just a different flavor of retries. Retries right now are triggered by exceptions (or unacceptable results) while backup requests are somewhat like an early retry caused by latency/delay. Can apply to anything, not just HTTP.

Thanks - so to be clear, Riptide's backup requests are the same pattern as hedged requests?

Yes, backup requests and hedged requests are the same thing. Just different names.

Can you add a succeed on a Throwable?  So that it keeps retrying if there is no exception and succeeds when you get a particular exception.

@gelpenaddict Yea, by default throwables are handled (treated as failures) but you can override that via handleIf, and based your condition on a result, ignoring any failures (exception):
retryPolicy.handleIf((result, failure) -> result == someBadValue)

Ratelimit / bulkhead sounds really useful. For background refresh, what about an exponential backoff on failures?

Not a Contribution.

Not sure if I understand backup requests correctly, so I'm describing a behaviour that would be nice to have in my case:
Backup request is a bit different from a hedged one. It's more similar to an existing Fallback policy, but it starts its execution immediately, in parallel to the main request. Its results are only used when the main request fails. It may also need some retries/circuit breakers/fallbacks configured.

@timothybasanov Can you open an issue for backup requests?


Enable the bundled R version in RSPM by default

The official image already ships with R to enable Git builds, but they are not turned on by default (because the configuration must point to the install location). This PR adds the bundled R version to the default configuration so that Git builds work out of the box.

Oh yeah, for sure, just inherited from Connect (which uses the same mechanism) 😄


could not import google.golang.org/protobuf/reflect/protoreflect (no package for import google.golang.org/protobuf/reflect/protoreflect)

hi,
i generate de proto.file but when y try the run, the terminal said
could not import google.golang.org/protobuf/reflect/protoreflect (no package for import google.golang.org/protobuf/reflect/protoreflect)
i try go get google.golang.org/protobuf/reflect/protoreflect but dont work

go get google.golang.org/protobuf/reflect/protoreflect: module google.golang.org/protobuf@upgrade found (v1.24.0), but does not contain package google.golang.org/protobuf/reflect/protoreflect

Hi, that is quite the surprising error you got there. It's almost certainly some time of Go toolchain configuration problem and not something specific to this project.
What version of Go are you using?
What are the exact commands you are using and where are you running them from?
Are you using GOPATH mode or module mode?

vaya a buscar google.golang.org/protobuf/reflect/protoreflect: módulo google.golang.org/protobuf@upgrade encontrado (v1.24.0), pero no contiene el paquete google.golang.org/protobuf/reflect/protoreflect

Closing as inactionable due to lack of response.

hi,
i generate de proto.file but when y try the run, the terminal said
could not import google.golang.org/protobuf/reflect/protoreflect (no package for import google.golang.org/protobuf/reflect/protoreflect)
i try go get google.golang.org/protobuf/reflect/protoreflect but dont work

what version of protoc compiler are you using ? because when i used the ubuntu stable bundled apt-get protoc package it generated this and used the newer proto api whereas the current version of the protoc compiler(3.11) from the snap store uses the older proto api for older syntax like proto v2 which does not use the protoreflect package and you have to use older packages like jsonpb,github.com/protobuf etc rather than the newer ones.

I had the same problem, and it turned out that I just forgot to add protobuf to go.mod.

I had the same problem, and it turned out that I just forgot to add protobuf to go.mod.

@AlephAlpha how do we do that?


token not generated during renew certificate

Hi,
I am trying to manually renew the certificate but I get error below. What I noticed is that no token is generated in the path .well-known/acme-challenge SO maybe this is my issue. I use IIS server and the web site folder is not in the usual directory C:\inetpub but it is in another directory in D:  Maybe this is somehow confusing for win-acme.
[DBUG] Send POST request to https://acme-v02.api.letsencrypt.org/acme/chall-v3/12375441792/bkQX2w
[VERB] Request completed with status OK
[EROR] [mydomain.com] Authorization result: invalid
[EROR] [mydomain.coml] {
"type": "urn:ietf:params:acme:error:unauthorized",
"detail": "Invalid response from http://mydomain.com/.well-known/acme-challenge/W0G7b_gwZFoeb_OQ_kS-cK91XphSdyPdGsJGI45_sUA []: "<html x"",
"status": 403
}

Your log doesn't show which validation method you're using, but by default tokens are not saved to disk but served directly from the win-acme process. Here is a list of most common validation issues:
https://www.win-acme.com/manual/validation-problems

Your log doesn't show which validation method you're using, but by default tokens are not saved to disk but served directly from the win-acme process. Here is a list of most common validation issues:
https://www.win-acme.com/manual/validation-problems

I think I am using http 01 validation. I can server files with or without extensions from the path http://mydomain.com/.well-known/acme-challenge. Below is full log
[VERB] Checking renewals
[DBUG] Scanning IIS site bindings for hosts
[VERB] 5 named bindings found in IIS
[DBUG] Filtering by site(s) [7]
[VERB] 1 bindings remaining after site filter
[VERB] No host filter applied
[VERB] 1 matching binding found
[DBUG] Scanning IIS sites
[VERB] Adding <IP_ADDRESS> as DNS server
[VERB] Adding <IP_ADDRESS> as DNS server
[VERB] Adding <IP_ADDRESS> as DNS server
[VERB] Targeted convert into 1 order(s)
[VERB] Checking [IIS] mydomain.com, (any host)
[INFO] Renewing certificate for [IIS] mydomain.com, (any host)
[VERB] Handle order 1/1: Main
[VERB] Creating order for hosts: ["mydomain.com"]
[VERB] Constructing ACME protocol client...
[DBUG] Send GET request to https://acme-v02.api.letsencrypt.org/directory
[VERB] Request completed with status OK
[DBUG] Loading signer from C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Signer_v2
[DBUG] Loading account from C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Registration_v2
[VERB] Using existing ACME account
[VERB] ACME client initialized
[DBUG] Send HEAD request to https://acme-v02.api.letsencrypt.org/acme/new-nonce
[VERB] Request completed with status OK
[DBUG] Send POST request to https://acme-v02.api.letsencrypt.org/acme/new-order
[VERB] Request completed with status Created
[VERB] Order https://acme-v02.api.letsencrypt.org/acme/order/111553242/9119192662 created
[DBUG] Send POST request to https://acme-v02.api.letsencrypt.org/acme/authz-v3/12402638183
[VERB] Request completed with status OK
[VERB] Handle authorization 1/1
[INFO] [mydomain.com] Authorizing...
[VERB] [mydomain.com] Initial authorization status: pending
[VERB] [mydomain.com] Challenge types available: ["http-01", "dns-01", "tls-alpn-01"]
[VERB] [mydomain.com] Initial challenge status: pending
[INFO] [mydomain.com] Authorizing using http-01 validation (SelfHosting)
[VERB] Starting commit stage
[VERB] Commit was succesful
[DBUG] [mydomain.com] Submitting challenge answer
[DBUG] Send POST request to https://acme-v02.api.letsencrypt.org/acme/chall-v3/12402638183/FsZ6Bg
[VERB] Request completed with status OK
[DBUG] Refreshing authorization (1/15)
[DBUG] Send POST request to https://acme-v02.api.letsencrypt.org/acme/chall-v3/12402638183/FsZ6Bg
[VERB] Request completed with status OK
[EROR] [mydomain.com] Authorization result: invalid
[EROR] [mydomain.com] {
"type": "urn:ietf:params:acme:error:unauthorized",
"detail": "Invalid response from http://mydomain.com/.well-known/acme-challenge/dUSJdr24_ZAGKYXM776qppdjNiujWL-ttPXK2Bnko5c []: "<html x"",
"status": 403
}
[VERB] Starting post-validation cleanup
[VERB] Post-validation cleanup was succesful
[EROR] Renewal for [IIS] mydomain.com, (any host) failed, will retry on next run


Automatically create .fgd Files!

Hello!
This is an ongoing pull request, very much not done!
But i wanted to already post it here, so i can keep a track of it and you have the option to provide feedback, if needed.
The idea is to have a Plugin which, at startup, automatically generates the .fgd file for Trenchbroom.

Todo

[x] Generate the Classes with fields/values

[x] Figure out how to fix/do Flags: how do we figure out what enums are set by default and which aren't??

[x] Get the actual default value defined by the struct instead of the fields
[ ] Derivable Trait(?)

[x] Property

[x] Flags

[x] Default set or not

[x] Choices

[x] Default Choice
[x] Use index as key or a custom string

[ ] Entity

[ ] Deserialize from .map into Bevy entities directly

Currently generated Files look like this:
@SolidClass = worldspawn : "World Entity" []

@BaseClass  = TestBaseClass : "" [

]

@SolidClass base(TestBaseClass) = AnotherSolidClass : "" [

]

@SolidClass base() = TestSolidClass : "" [

]

@PointClass base(TestBaseClass) = APointClass : "" [
	test_string(string) : "test_string" : "HELLO WORLD!" : "Placeholder Description"
	test_usize(integer) : "test_usize" : 69 : "Placeholder Description"
	test_bool(choices) : "test_bool" : 1 : "Placeholder Description" =
	[
		0 : "False"
		1 : "True"
	]
	test_f32(float) : "test_f32" : "69.42" : "Placeholder Description"
	test_f64(float) : "test_f64" : "420.69" : "Placeholder Description"
	test_i32(integer) : "test_i32" : 0 : "Placeholder Description"
	test_i64(integer) : "test_i64" : 0 : "Placeholder Description"
	test_u32(integer) : "test_u32" : 0 : "Placeholder Description"
	test_u64(integer) : "test_u64" : 0 : "Placeholder Description"
	test_flag(flags) =
	[
		1 : "EnumVariantTest" : 0
		2 : "Test" : 1
	]
	test_choices(choices) : "EnumTestChoices" : 1 =
	[
		0 : "AnotherEnumVariant"
		1 : "Test"
		"VariantTest!!!!" : "EnumVariantTest"
	]
]

@zwazel this is an awesome idea and I absolutely encourage you to keep going!

I've done some good progress!
I've updated the description of this PR.

many smaller changes and improvements. but the two main changes are:

Derivable QevyEntity Macro!
Allows you to write doc comments for the struct and its fields, and they automatically get serialized into the FGD file!
Base classes are directly in the entity, instead of as before just a simple string that references it. this should make it easier later to serialize it back, as we just have one struct to return.

I've updated the example accordingly.
I think most of the hard part is done regarding serializing into FGD files.
now just need to add fields like "model" and then i think this is done.
maybe some cleaning up, we'll see.
after that i'll start working on the deserializing back to rust. but i'm currently considering to split that into a second pull request as this one is getting quite big.

okay so i think i got everything?
Would appreciate if you could have a look at it as well.
There's definitely a lot that could be improved, but as a first implementation I think it's pretty good.
I used this as a opportunity to learn proc macros, so this is very new for me and the code can definitely be improved.
I decided to move the Deserialize part into its own pull request that I'll start working on in the next few days hopefully.
This branch is only focused on the Serializing into an .fgd file.

Okay found something to improve, now should be ready

Hey I've got a pile of work on my hands, have not forgotten about this but might be a bit delayed to checking it out.

Yeah no Stress!

Hey @zwazel Would you mind modifying the readme to reflect this change? As this would certainly change things on how to install the plugin and get setup

@zwazel If #9 gets approved/merged before this, here's a commit from my fork you can cherry pick to get this quickly working under Bevy 0.14:
https://github.com/coreh/qevy/commit/991015bac83fa3d70d6b7f83c811449750dcb24d


Could not execute command: No module named 'boa.interop.Neo.Iterator'

Iterator class has a issue

could you please tell me how to solve this ?


Add direct mem metrics

What changes are proposed in this pull request?
Add metrics for direct memory
Why are the changes needed?
monitoring and debugging
Does this PR introduce any user facing changes?
new metrics
"Master.pool.direct.mem.used" : {
"value" : 1228802
},
"Worker.pool.direct.mem.used.10_0_0_206" : {
"value" : 8193
},

alluxio-bot, merge this please


Replace conformance tests with a small set of tests

The conformance tests are taking a lot of time to prepare and run, additionally slowing down our pipeline. Since kubeadm is already conformant, it would be hard to configure it in a way so conformance tests start failing. Instead, we'll do the following:

Replace conformance tests in presumbits with a small set of tests confirming the cluster is fully-functional
Move conformance tests to daily periodics

The new tests should take at least the following steps:

Create a StatefulSet with a PVC
Ensure that the pod is running
Ensure that the volume is created and attached
Expose the StatefulSet via a LoadBalancer Service
Ensure the LB is created and reachable
Properly clean up everything

We decided to keep the NodeConformance tests because those tests are also covering tasks such as getting logs, running exec on Pods, and similar. Those tests are useful and we had situations when the NodeConformance tests caught issues like the inability to get logs due to mishandled CSRs.
Implementing those tests on our own doesn't make much sense since that's already done by the NodeConformance tests, and since the NodeConformance tests are relatively fast (around 5 minutes), it doesn't make much sense to replace them.


Add a basic page example showing generic content

Resolved by https://github.com/nhsbsa/nhsbsa-asc-tfrs-showcase/commit/b095edfb38ebb6fc826ec154a6d2d03d167f42f7


How to render from plan view to elevation view using three-dxf

Three-dxf renders dxf files in plan view. How to change it to elevation view?

I don't think there's support for that right now.
I found a TODO referencing the controls so you can start by trying arround there.
Here's some documentation links to get you started:
THREE.OrthographicCamera
OrbitControls

Thanks for your response. It turns out since it is 2d drawing to flip it to elevation, all one has to do is tweak function drawLine a bit as below. This did the trick for me
if(orientation === 'Elevation'){
geometry.vertices.push(new THREE.Vector3(vertex.x, vertex.z, 0))
} else {
geometry.vertices.push(new THREE.Vector3(vertex.x, vertex.y, 0))
}

Glad you figured it out. Yeah, the code presumes to be showing a 2D drawing on the XY plane. Orientation must be something custom you added?


Rule: Don't 'in' check AST nodes?

From https://github.com/typescript-eslint/typescript-eslint/issues/8226:

Suggestion
Sometimes folks will use an 'in' property check in a rule to narrow the type of a node:
declare const node: ts.BinaryExpression | ts.ConditionalExpression;

if ('condition' in node) {
  node
  // ^? const node: ts.ConditionalExpression
}

I've been advising to prefer using less "dynamic" logical gates: existing type predicate functions, direct .kind/.type checks, and/or having different functions for different node selectors.
declare const node: ts.BinaryExpression | ts.ConditionalExpression;

// or:
// if (node.kind === ts.SyntaxKind.ConditionalExpression) {
if (ts.isConditionalExpression(condition)) {
  node
  // ^? const node: ts.ConditionalExpression
}

My reasoning has been that "dynamic" logical gates, beyond being a potential deoptimization in JS perf, are susceptible to the types changing unexpectedly. E.g. a new version of TypeScript might add a new node type to a built-in union that adds a case previously meant to be caught by the rule.
My understanding of in checks is that they're generally reserved for cases where the more "static" ways of checking aren't available.
Shall we encode this as a lint rule?

Is this generally sound advice for lint rules altogether?

I recognize its value, but it seems to be the type of information needed?
Otherwise there could be a lot of false positives (if obj is not an ast node):
if( key in obj) {....}

Yeah, this would have to be a typescript-eslint typed rule (typescript-eslint > Custom Rules > Typed Rules).

Currently no similar rules are included in this plugin, but I think it's possible, as long as it doesn't affect js users.
/ cc @bmish, would like to see your thoughts. 😄

It sounds useful to me.
Is this different from this one?

https://github.com/eslint-community/eslint-plugin-eslint-plugin/issues/326

🤦 dear heavens. Sorry haha. I swear I did search for duplicates!


Problem downloading package into project using go modules

I am attempting to download this package into a project that is a go module outside of GOPATH and I keep getting the following error,
Fetching https://gopkg.in/ahmdrz/goinsta.v2?go-get=1
Parsing meta tags from https://gopkg.in/ahmdrz/goinsta.v2?go-get=1 (status code 200)
get "gopkg.in/ahmdrz/goinsta.v2": found meta tag get.metaImport{Prefix:"gopkg.in/ahmdrz/goinsta.v2", VCS:"git", RepoRoot:"https://gopkg.in/ahmdrz/goinsta.v2"} at https://gopkg.in/ahmdrz/goinsta.v2?go-get=1
go: finding gopkg.in/ahmdrz/goinsta.v2 latest
go<EMAIL_ADDRESS>go.mod has non-....v2 module path "github.com/ahmdrz/goinsta" at revision 8a4b1078ad1b

if I download the package without it being part of a module there's no issues, any clue as to what's going wrong here?

@ahmdrz any updates on merging https://github.com/ahmdrz/goinsta/pull/#203 ?


Spell Atk Mod Label and Tooltip Disappear for Warlock

When Midi-QoL + dependencies are turned on, and for a specific actor setup, the spell DC tooltip formatting throws an error because of expecting a string and getting a number. Ensure it accounts for this by normalizing the incoming data as a string.
Reference
https://discord.com/channels/1167985253072257115/1197721154211811459
Heyo, after the latest update I've got an error whenever my warlocks character sheet is opened, and no spell attack bonus is displayed:
tidy5e-sheet-kgar | An error occurred while calculating spell attack bonus TypeError: formula.replace is not a function
at Roll.validate (foundry.js:10597:23)
at getDcTooltip (formula.ts:242:12)
at calculateSpellAttackAndDc (formula.ts:134:18)
at Tidy5eCharacterSheet.getData (Tidy5eCharacterSheet.ts:319:26)
at async Tidy5eCharacterSheet._render (Tidy5eCharacterSheet.ts:451:18)

Closing as completed.


liferea: 1.15.0 -> 1.15.1

Description of changes
https://github.com/lwindolf/liferea/releases/tag/v1.15.1

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 250707 run on x86_64-linux 1

1 package built:

liferea


css only menu toggle fix for safari

Tested on safari (both moblie and desktop) and chrome

@quabey  please always use proper label when using inputs/form label for accesiblity reasons. https://www.w3.org/WAI/tutorials/forms/labels/

@quabey thanks for closing this issue :)


ThemeID flag failing to override global config

Describe the bug
When I try to specify a themeid to use instead of the config.yml themeid using --themeid [theme id], the command still uses the themeid from the config. For example, if themeid XXXXXX is in my config.yml, and I run theme watch --themeid YYYYYY, the CLI prints "Watching for file changes to theme XXXXXX".
Not sure if relevant, the config is using a global variable, not a hard-coded theme id.
To Reproduce
Steps to reproduce the behavior:

Set up config.yml to use the theme_id from a global variable for the default development environment.

development:
  theme_id: THEMEKIT_THEME_ID

Run any command in CLI with a different theme id set. For example:

theme watch --themeid=12345678910

Expected behavior
The theme watch should watch the theme specified. The CLI output should specify it is watch the theme<PHONE_NUMBER>0.
"Watching for file changes to theme<PHONE_NUMBER>0".
Actual behavior
If<PHONE_NUMBER>9 was the themeid in the config.yml, the execution of theme watch --themeid=12345678910 would result in the CLI output "Watching for file changes to theme<PHONE_NUMBER>9". I assuming this CLI print can be trusted, I have not actually tested if it watches the config.yml theme or the theme specified in the CLI.

Environment:

Windows 10 Pro (1909)
ThemeKit 1.0.3 windows/amd64
MINGW64

Additional context
Config uses global variables. Full config.yml is below. Only store name is redacted, rest is untouched.
SHARED: &SHARED
  store: [REDACTED].myshopify.com
  password: THEMEKIT_PASSWORD
  timeout: 60s
  directory: src/
  ignore_files:
    - "*.swp"
    - "*~"
    - node_modules/
    - package.json
    - README.md

development:
  <<: *SHARED
  theme_id: THEMEKIT_THEME_ID

qa_staging:
  <<: *SHARED
  theme_id: "secret"

production:
  <<: *SHARED
  theme_id: "secret"

Temp Fix
Set the global variable for just a single command.

that is interesting! I will have to look into this because the precedence is ENV, flag, config. The Env var works but not the flag. 🤔


Getting S4cmd working for Wasabi or Other object storage services

I noticed that the s4cmd was not working with other object store except amazon. The reason being that the endpoint url was not being passed when creating a boto client . So i made the change to the python file to grab the config when specified in the s3cmd config file and use it .
Just wanted to place it here to see if any contributor wants to add this to the tool if not somebody can use it if needed.
So the basic diff is as followsindex 3c0d683..f39b5a5 100755

--- a/s4cmd.py
+++ b/s4cmd.py
@@ -61,7 +61,6 @@ S3_ACCESS_KEY_NAME = "S3_ACCESS_KEY"
 S3_SECRET_KEY_NAME = "S3_SECRET_KEY"
 S4CMD_ENV_KEY = "S4CMD_OPTS"

@@ -377,12 +375,16 @@ class BotoClient(object):
        "If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata."),
   ]

-  def __init__(self, opt, aws_access_key_id=None, aws_secret_access_key=None):
+  def __init__(self, opt, aws_access_key_id=None, aws_secret_access_key=None, aws_access_endpoint=None):
     '''Initialize boto3 API bridge class. Calculate and cache all legal parameters
        for each method we are going to call.
     '''
     self.opt = opt
-    if (aws_access_key_id is not None) and (aws_secret_access_key is not None):
+    if(aws_access_key_id is not None) and (aws_secret_access_key is not None) and (aws_access_endpoint is not None):
+       self.client = self.boto3.client('s3',
+                                      aws_access_key_id=aws_access_key_id,
+                                      aws_secret_access_key=aws_secret_access_key,endpoint_url=aws_access_endpoint)
+    elif (aws_access_key_id is not None) and (aws_secret_access_key is not None):
       self.client = self.boto3.client('s3',
                                       aws_access_key_id=aws_access_key_id,
                                       aws_secret_access_key=aws_secret_access_key)
@@ -624,6 +626,7 @@ class S3Handler(object):
   '''

   S3_KEYS = None
+  S3_ENDPOINT = None

   @staticmethod
   def s3_keys_from_env():
@@ -664,12 +667,33 @@ class S3Handler(object):
     except Exception as e:
       info("could not read S3 keys from %s file; skipping (%s)", s3cfg_path, e)
       return None
+
+  @staticmethod
+  def s3_endpoint_from_s3cfg(opt):
+    '''Retrieve S3 endpoint settings from s3cmd's config file, if present; otherwise return None.'''
+    try:
+      if opt.s3cfg != None:
+        s3cfg_path = "%s" % opt.s3cfg
+      else:
+        s3cfg_path = "%s/.s3cfg" % os.environ["HOME"]
+      if not os.path.exists(s3cfg_path):
+        return None
+      config = ConfigParser.ConfigParser()
+      config.read(s3cfg_path)
+      endpoint = "https://" + config.get("default", "host_base")
+      debug("read S3 endpoint from $HOME/.s3cfg file")
+      debug(endpoint)
+      return endpoint
+    except Exception as e:
+      info("could not read S3 keys from %s file; skipping (%s)", s3cfg_path, e)
+      return None

   @staticmethod
   def init_s3_keys(opt):
     '''Initialize s3 access keys from environment variable or s3cfg config file.'''
     S3Handler.S3_KEYS = S3Handler.s3_keys_from_cmdline(opt) or S3Handler.s3_keys_from_env() \
                         or S3Handler.s3_keys_from_s3cfg(opt)
+    S3Handler.S3_ENDPOINT = S3Handler.s3_endpoint_from_s3cfg(opt)

   def __init__(self, opt):
     '''Constructor, connect to S3 store'''
@@ -684,7 +708,9 @@ class S3Handler(object):
   def connect(self):
     '''Connect to S3 storage'''
     try:
-      if S3Handler.S3_KEYS:
+      if S3Handler.S3_KEYS and S3Handler.S3_ENDPOINT:
+       self.s3 = BotoClient(self.opt, S3Handler.S3_KEYS[0], S3Handler.S3_KEYS[1], S3Handler.S3_ENDPOINT)
+      elif S3Handler.S3_KEYS:
         self.s3 = BotoClient(self.opt, S3Handler.S3_KEYS[0], S3Handler.S3_KEYS[1])
       else:
         self.s3 = BotoClient(self.opt)

👍

Can you create this as a pullrequest? Just tested it and it works with my S3 endpoint !=Amazon

Hey,
A pullrequest doing just this was merged into master a couple days back (#82 ). Should be fine to work with any endpoint using --endpoint-url. We're in the process of updating our test-suite to use minio to ensure this works E2E, but you can play around with it in the meantime! (You'll have to build from the latest code until we update pip et al)
Closing this issue for now, but let me know if you face any issues and I'll reopen it! :D

Thanks for this feature! FYI to others trying to use s4cmd with a non-AWS S3 endpoint now...
The current s4cmd 2.0.1 release in pip does not support --endpoint-url yet.
You'll need to run from source:
RUN git clone https://github.com/bloomreach/s4cmd.git && cd s4cmd && pip install pytz boto3 && python setup.py install

$ s4cmd --endpoint-url ${HTTPS_PROTOCL}://${DOMAIN}:${S3_PORT} ls

s4cmd doesn't seem to use host_base / host_bucket from ~/.s3cfg, it requires that command line arg.
host_bucket = ${DOMAIN}:${S3_PORT}
host_base = ${DOMAIN}:${S3_PORT}

it seems this is still a problem. I installed it with apt-get though. Any update on this?


RawKeyboard._synchronizeModifiers crash

I got some crashes from analytics
Devices:

HUAWEI P30 (Android 10.0)
HUAWEI P30 Pro (Android 10.0)

Non-fatal Exception: java.lang.Exception: NoSuchMethodError: The getter 'iterator' was called on null.
Receiver: null
Tried calling: iterator
       at RawKeyboard._synchronizeModifiers(raw_keyboard.dart:599)
       at RawKeyboard._handleKeyEvent(raw_keyboard.dart:525)
       at BasicMessageChannel.setMessageHandler.<fn>(platform_channel.dart:74)
       at BasicMessageChannel.setMessageHandler.<fn>(platform_channel.dart:73)
       at _DefaultBinaryMessenger.handlePlatformMessage(binding.dart:199)

Logs
[✓] Flutter (Channel stable, v1.17.5, on Mac OS X 10.15.6 19G73, locale en-BY)
    • Flutter version 1.17.5 at /Users/nikitadold/development/flutter
    • Framework revision 8af6b2f038 (4 weeks ago), 2020-06-30 12:53:55 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/nikitadold/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Users/nikitadold/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6626763/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

Hi @nikitadol,
Please provide flutter doctor -v and a minimal complete reproducible code sample that shows the issue you are facing.
Thanks.

Please provide flutter doctor -v

It was a little higher

a minimal complete reproducible code sample that shows the issue you are facing.

Judging by the analytics logs, this happens after the user interacted with the TextField and then left the screen with it, since the crash occurs on the screen, where there are no text fields.
I would gladly provide a minimal code, but I don't have such a device.

Hi @nikitadol,
Without a code sample, we won't be able to help out much since we don't know the exact cause of the issue yet.

I do not know in what case the code in this method is executed
I don't know why 'assert' is there
https://github.com/flutter/flutter/blob/7884420a0a32467fa268761b99cf19c58480a499/packages/flutter/lib/src/services/raw_keyboard.dart#L659-L661
I don't have a Huawei P30 to try to find the problem, but maybe someone has such a device and can help us

same issue

@kw2019ltd, If you are able to replicate the exception, please provide flutter doctor -v and a minimal complete reproducible code sample that shows the issue. Since I don't have Huawei device, and without proper steps to replicate, it's difficult to analyze the root cause of the issue.

hi no iam not, it was one of the user using my app in production, saw it in firebase.

Customer:money is also seeing this. Not sure on what phone yet but it is frequent enough to bubble up to p2.
https://github.com/flutter/flutter/commit/c68758fab137f751d56faa1ced119b7a3561e37e# might be the culprit? Hence @gspencergoog . The crash location indicates that it is occurring somewhere here: https://github.com/flutter/flutter/commit/c68758fab137f751d56faa1ced119b7a3561e37e#diff-736f0dce2e45442b57ab5128ac1f5f1bR661-R670


after registering, redirect is wrong

After registering at http://grand-challenge.org/site/grand-challenges/accounts/signup/
you are not shown some "thanks for registering. check your email" message.
Instead you are redirected to a wrong version of the main project page.

Add test to lock this redirect down.
Fix

fixed


Update test262 to latest version

the current version was last updated on November 2020.
https://github.com/tc39/test262/compare/36d2d2d348d83e9d6554af59a672fbcd9413914b...main

fixed


—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

/azp run SamplesCI-Composition


Rename method

This branch cannot be rebased due to conflicts
because of Merge branch 'master' into master


Need to detect direction of intersections.

On the facebook page for SEcon, they posted this 'clarification'.
Q: Will the games/toys be at the same spots every round?
A: Yes. All games will be in the same spots but the intersections and paths will vary.
To clarify, the games will always be placed on the board in the same order, relative to the track path, but the games can be played in whatever order the team chooses.

 The teams are responsible for placing the game wherever they choose within the game square. The order of the games will be Simon, Etch-Sketch, Cube and deck of cards.

Previously I understood this as the boxes always being in the same physical location with only the paths to them changing which I thought was pretty reasonable, because that's what it said, and they also had a post saying that we would get to choose the order they were in.
This change is a big deal because previously, all follower had to do was tell whether or not it was on an intersection, and pilot could simply hard-code which direction it had to turn before line following again until it hit another anomaly.
Since we don't know which side the intersection is going to be on, we have to be able to know which direction to turn in.
@jasteve4 , I hate to ask you this because I previously said that we wouldn't need this,  but how much work would it be to be able to tell which direction the intersection is in?

@jasteve4 How is this coming along?
I'm very tempted to just go ahead with the idea of just putting a series of switches on the side that whoever's putting down the robot can use to just hard-code in whatever the series of turns is.
ie: Switch on - GPIO reads HIGH, high= right turn. It wouldn't be hard to do, and I can go ahead and stick it all on a proto-board so we can just plug it in on top of the MC stack.

Fully and reliably functional as of 22475a42fb465033a94520705c93c1854b80771f , using the Follower.find_dir_of_turn and check_for_branch functions.


exfat-nofuse: init at 2017-01-03

Motivation for this change
Include the exfat kernel module because i had issues with certain file systems ("ERROR: unsupported FAT count: 2.").
The native kernel module does not have this issue.
Things done

[x] Tested using sandboxing
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[X] Tested modprobe modules modprobe exfat
[X] Fits CONTRIBUTING.md.

Works for me!

thanks!


Testimonial

[Feature_Request] A new Testimonial page #322

Title : [Feature_Request] A new Testimonial page
Issue No. : #322
Code Stack :  HTML CSS Javascript Swiper.js
Close #322

Video/Screenshots (mandatory)

https://github.com/apu52/Travel_Website/assets/116999950/acc31d2c-70d8-4365-89d8-973e4ece1c1b

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[X] I have gone through the  contributing.md file before contributing

Additional context (Mandatory )
Project Name: Tourguide
Issue Number: #322
Contribution Type: Testimonial Section Enhancement
Description:
In my recent contribution to the open-source project as part of GSSOC 2024, I focused on enhancing the Testimonial section under issue #322. Leveraging the project's established color palette, I meticulously redesigned the testimonial section to seamlessly blend with the overall aesthetic of the website. Through a harmonious combination of color, typography, and layout, I aimed to elevate the visual appeal while ensuring a user-friendly experience.
Key Highlights:
Color Palette Integration: I carefully selected hues from the project's color palette to infuse cohesiveness and brand consistency into the testimonial section.
Typography Enhancement: Leveraging typography best practices, I refined the font choices and styles to enhance readability and visual hierarchy, ensuring that the testimonials are easily scannable and engaging.
Responsive Design: Recognizing the importance of accessibility across devices, I implemented responsive design principles to ensure that the testimonial section looks impeccable and functions seamlessly across various screen sizes.
User-Centric Approach: With a focus on user experience, I optimized the layout and spacing to create a visually appealing and intuitive testimonial section that encourages interaction and fosters trust.
Impact:
This enhancement not only enriches the aesthetics of the website but also amplifies the credibility of the project by showcasing positive feedback from users. By creating an immersive and visually captivating testimonial section, I aim to contribute to the project's overarching goal of fostering community engagement and trust.
Acknowledgment:
I express my gratitude to the project maintainers and fellow contributors for their guidance and support throughout the process. This journey has been both fulfilling and enriching, and I look forward to continuing my contributions to this esteemed open-source initiative.
Are you contributing under any Open-source programme?

GSSOC 2024

Good work @Ashutosh-0506

Thank You @apu52 !


Dependency updates 2024-07

Time to bump the dependencies, since it's been a while.
When doing npm install with the current deps in package.json, I get these warnings:
npm install
npm warn deprecated<EMAIL_ADDRESS>This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated<EMAIL_ADDRESS>Rimraf versions prior to v4 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>Use @eslint/object-schema instead
npm warn deprecated<EMAIL_ADDRESS>Use @eslint/config-array instead
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported

added 308 packages, and audited 309 packages in 15s

I'm using "^2.3.4" style "compatible with" version specifiers. Maybe I should switch to >= specifiers, version ranges capped by the next major version, or something else that allows more flexibility? I'm not sure what the "^" "compatible with" does; it's not documented in the "see semver" link on the package.json doco page or on that page itself.

Notes:

I don't have a direct dependency on inflight. Must be pulled in by something else. npm ls --all shows it's from<EMAIL_ADDRESS><EMAIL_ADDRESS>-><EMAIL_ADDRESS>and<EMAIL_ADDRESS>-><EMAIL_ADDRESS>
Progress:

Bumping rimraf to "^5.0.8", its current latest version. And I can't see where I'm even using it. Maybe it can be dropped.
Bumping mocha to "^10.6.0", its current latest version.

Bumped all the other dependencies to their latest versions while I was at it; why not.
Got a resolution failure.
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving<EMAIL_ADDRESS>npm error Found<EMAIL_ADDRESS>npm error node_modules/eslint
npm error   dev<EMAIL_ADDRESS>from the root project
npm error
npm error Could not resolve dependency:
npm error peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm error node_modules/@typescript-eslint/parser
npm error   dev<EMAIL_ADDRESS>from the root project
npm error   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm error   node_modules/@typescript-eslint/eslint-plugin
npm error     dev<EMAIL_ADDRESS>from the root project

Downgraded my package.json dep to "eslint": "^8.56.0". Made that go away. Now it solves. But I'm still getting warnings.
npm warn deprecated<EMAIL_ADDRESS>This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated<EMAIL_ADDRESS>Use @eslint/config-array instead
npm warn deprecated<EMAIL_ADDRESS>Rimraf versions prior to v4 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>Use @eslint/object-schema instead
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported

Some of those are getting pulled in by eslint ^8.56.0. I don't know how to upgrade to eslint 9.x due to the above error, so I guess I'll just live with this and see how it works.


Handle source map/original file content diffs

Often, when debugging js apps written in ts, I want to change the (ts) source code while debugging. This can be as subtle as adding single line comments, formatting the entire file or even changing statements or whole function bodies.
Then however, the js to ts source map is not valid anymore.
This is especially problematic when adding a single empty line at the top of the file - you have to restart the debugee so that nodejs catches up the new sourcemap.
It would be great if VSCode could create a new source map from the old ts source file (if the old content is embedded in the source map) to the new content (= the current editors content) and combine it with the existing source map. Code that could not be matched could be grayed out (e.g. changed statements and so on). Matching could be done on AST level.
Some remapping is actually done by vs code when adding lines before currently executed line. This remapping is however not persistent:

VS Code does not want to know anything about source maps.
But what you are asking for can be easily achieved by running TS in watch mode (which creates new source maps as a side effect) and using "nodemon" to restart the program whenever the generated JS changes.

In my scenario I don't want the program to restart to adopt the new source maps but rather want the editor to respect source changes after the source map has been created.
Right now, a source map might store the path to the source file (lets call it sm.sourceFilePath?: string) and also might store its content at compile time (lets call it sm.sourceFileContent?: string).
If sm.sourceFilePath is provided, VSCode just ignores sm.sourceFileContent (or rather vscode-node-debug, but I assume that VSCode just does not send a SourceRequest to the debug adapter to obtain the source (as it was when being compiled) if the Source object has a path set).
Instead, VSCode assumes that sm.sourceFileContent === undefined || getEditorBufferOrFileContent(sm.sourceFilePath) === sm.sourceFileContent with getEditorBufferOrFileContent(path) being the text content of the editor if path is opened or the file content.
I find this suboptimal in otherwise quite optimal debugging environment.
It would be great if VSCode diffs sm.sourceFileContent with getEditorBufferOrFileContent(sm.sourceFilePath) and uses that diff to compute the actual position of the active line. All new lines could be highlighted to signal the user that he is debugging against newer source.
Then VSCode still does not know anything about source maps.
This would even be applicable to other languages like rust, where recompiling is often a very time consuming task.

What exactly is the purpose of the mapping in your case?
If node.js is not restarted, it will not pickup JS changes and will continue to execute old JS. Mapping old JS to new TS will be confusing because the TS source might already be deleted and you will step through non-existing code. How is this helpful?

Mapping old JS to new TS will be confusing because the TS source might already be deleted and you will step through non-existing code.

This is more helpful than just pretending the file has not changed. Stepping through nothing, i.e. having no active line marked, (if statements were deleted) seems to be way less confusing to me than stepping through completely different code (as seen in the gif above - it will step through white lines).
It also wouldn't step through new existing code as it does now - it will only step through the code that existed when the sourcemaps (and the js files) were created.
If the entire source file was deleted (sm.sourceFilePath), VS Code already uses sm.sourceFileContent for debugging as expected.
Another very useful case that is covered with a solution for this problem is, when you want to debug minified js code without access to the unminified source. If you format the minified code in VS Code while debugging, you have to save the changes and restart the debugee (if you have write access to the minified code, if you haven't, you are out of luck). In this case, a sourcemap is not even involved.


Offering Plug and Charge even when the SECC signals No_TLS security (even for ISO15118-2)

Plug and Charge is being selected by the EVCC even when the connection is TCP. I think we need to check whether the secc_signals_tls and then offer PNC.
https://github.com/SwitchEV/iso15118/blob/1b9aa2eb223f431a3e2d565d0f7d1bf455aa8abe/iso15118/evcc/states/iso15118_2_states.py#L275

Solution discussed over email. Will close this ticket once the fix goes into a build.

Closing this issue as fix is present in 0.25.2


Add custom weights to DNSPolicy

Adds an option to the DNSPolicy.LoadBalancing.Weighted spec to add custom weights for attributes set on target clusters via labels. The custom attributes are checked during the calculation of the target clusters weight, and if attributes match, the custom weight is applied.
Example
spec:
  loadBalancing:
    weighted:
      custom:
      - value: AWS
        weight: 60
      - value: GCP
        weight: 255
      defaultWeight: 120

kubectl label --overwrite managedcluster cluster-1 kuadrant.io/lb-attribute-custom-weight=AWS
kubectl label --overwrite managedcluster cluster-2 kuadrant.io/lb-attribute-custom-weight=GCP
kubectl label --overwrite managedcluster cluster-3 kuadrant.io/lb-attribute-custom-weight-

The above would favour the GCP cluster(cluster-2) over any other, and the AWS cluster(cluster-1) would recieve the least traffic with cluster-3 falling back to the default weight getting a medium amount of traffic.
closes #284

built up a dnspolicy
apiVersion: kuadrant.io/v1alpha1
kind: DNSPolicy
metadata:
  creationTimestamp: "2023-07-10T11:21:55Z"
  finalizers:
  - kuadrant.io/dns-policy
  generation: 4
  name: prod-web
  namespace: multi-cluster-gateways
  resourceVersion: "11685"
  uid: e3d3cb98-18cf-4ff8-a97a-19228f2995d8
spec:
  loadBalancing:
    geo:
      defaultGeo: C-AN
    weighted:
      custom:
      - value: AWS
        weight: 60
      - value: GCP
        weight: 180
      defaultWeight: 120
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: prod-web
    namespace: multi-cluster-gateways
status:
  conditions:
  - lastTransitionTime: "2023-07-10T11:49:19Z"
    message: Gateway is DNS Enabled
    reason: GatewayDNSEnabled
    status: "True"
    type: Ready
  observedGeneration: 4

and got the expected setup in AWS rout53


Simplify README.md and fix decentraland-node

@berrycoiled please take a look

This is cleaner, but unfortunately I don't think it works for Windows. Wonder if Windows should be left out for now.
There's a long procedure for installing all the Windows dependencies manually here, plus tweaks to the code necessary to get it working:
https://github.com/berrycoiled/decentraland/wiki/Interim-Instructions:-Install-a-Node-on-Windows


NNPACK UNIFIED API PROBLEM

Hi,
I am trying to figure out NNPACK API usage.

for convolution with stride = 1, I should use compute_convolution_output.
for convolution with stride >= 2, I should use nnp_convolution_inference. In this case, patche2cols and sgemm will be used as computation backend.

Is there any possibility to integrate there two API into one and provide users one unified and transparent interface? That can make things much easy when using the library.
Best Regards.

The difference between inference and output (forward pass in training) functions is based on two considerations:

inference functions are optimized for batch = 1 case, while output functions are optimized for moderately large batch sizes (64 and above).
While none of it is currently implemented, I have plans to merge some extra operations into convolutional/fully connected layers. The type of operations which can be merged, depends on whether the framework would need to run backward pass on the layer using the outputs:

Both ReLU and ELU can be merged into the preceding convolutional (or fully connected) layer.
If the model is used for inference, 2x2 pooling with 2x2 stride can be merged into preceding convolutional or fully connected layer (potentially with embedded ReLU/ELU). If the layer is used for training, this fusion is impossible, because the backward pass on the convolutional layer would need the output of the convolutional layer before 2x2 pooling, which wouldn't be produced by the forward pass.
If the model is used for training, batch normalization layer can be partially merged into preceding convolutional or fully connected layer. Specifically, computation of per-channel mean values can be merged into the store stage of the preceding layer. In inference, batch normalization layer becomes a static scale + bias layer, and often can be statically merged into preceding convolutional or fully connected layer, so computation of per-channel mean activations makes no sense.

The reason why nnp_convolution_inference supports strides while nnp_convolution_output does not is that NNPACK is in active development and implicit_gemm algorithm and strided convolutions were implemented for inference function first. Support for implicit_gemm algorithm and strided convolutions in the training functions is in short-term plans, but for now you'd need to fall back to an implementation outside NNPACK.
One more clarification about implicit_gemm algorithm: it does not do patch2cols+sgemm. Instead, it does something smarter: high-performance implementations of SGEMM internally repack the matrix into cache-friendly form. Thus, a typical SGEMM-based implementation of a convolutional layer would involve two repacking operations: one inside patch2cols and another inside sgemm. NNPACK's implicit_gemm algorithm combines these two repacking operations into one; the main motivation is to operate with low memory overhead (NNPACK doesn't allocate memory for the whole patch2cols matrix, just for L3-sized block of it), but you'd likely find it performing better than traditional patch2cols+sgemm implementations due to fewer memory repacking operations.

any update about the short term implementation, for stride size bigger than 1.


Positive() does not pickle nicely

Before putting the *args parameter into Positive.__new__()
from revrand import likelihoods
import pickle as pkl

gaus = likelihoods.Gaussian()
pgs = pkl.dumps(gaus)
reg = pkl.loads(pgs)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-e387820c5f0b> in <module>()
----> 1 pkl.loads(pgs)

TypeError: __new__() takes from 1 to 2 positional arguments but 3 were given

I came across this as well as Spark pickles variables to broadcast them to the workers. My solution after some googling was to implement __getnewargs__() which is called before pickling. See: e9ee473fc1f945a85b854a80b34b6326ba1a6f43

Thanks @dtpc, I've cherry-picked your fix since it was nicer than what we did!


refactor: move WIX_CLIENT_ID from global scope to module scope

In env.d.ts, we had a reference to a non-existent ClientENV type:
declare interface Window {
    ENV: ClientENV;
}

I've removed window.ENV, made WIX_CLIENT_ID a local variable in ecom/api.ts, and exported getWixClientId() and setWixClientId() to access it.

@olehrakwix @yurii-ve I'm going to YOLO this, but please review after merge because this has a potential to break things badly.


Auto bump youtube-dl version

Home Assistant release with the issue:
all versions
Last working Home Assistant release (if known):
this is not a problem with Home Assistant release
Operating environment (Hass.io/Docker/Windows/etc.):
all environments
Component/platform:
https://www.home-assistant.io/components/media_extractor/
Description of problem:
media extractor is very ofen failing with YouTube videos due to YouTube changes
updating the youtube-dl to the newest version always helps
like here to 2019.04.24 (#23398 #23342)
but when the #23398 with youtube-dl version 2019.04.24 will go to stable HA, this youtube-dl version can be already obsolated...
I'm wondering if there is a possiblity to auto update the youtube-dl to the newest version? Without the new Home Assistant upgrade
Additional information:
Maybe we can use somehing like pur -> https://pypi.org/project/pur/
what do you think @fabaff ?

You can maintenance your own custom component

@awarecan true, but still it needs to be maintained / upgraded by hand... I'm thinking about more automation approach. I need automation to upgrade one pip package if available :)
Any advice how to achive this?

It against HA's overall design principle

Auto-updating is not the way to go as it will get out of hand quickly. We saw that in the past. I try to run a quick test when ever I update a dependency but this is not catching all issues or covering all use cases.
As @awarecan already mentioned would running media_extractor an option or switching to dev.
If the dependency is using semantic version then we could consider it for certain requirements or no longer pin it but this is a risky play.

Any advice how to achive this?

It's a hack but could work. A script that is checking PyPI for new releases and is overwriting the requirements. The downside is that an upgrade of the requirements requires a restart of Home Assistant.

Thank you @fabaff @awarecan
I completely understand that the goal of the Home Assistant is to have stable and fully tested platform. For this the strict packages versions is needed.
I hope that you can see that youtube-dl case is specific, this package need to be updated frequently. Not because something is change in the package api but to fix the extraction after change on YT side.
I'm using the media extractor component from the begining (about 2 years), many times, YouTube stoped to work and each time upgrading the youtube-dl to the newest version was a solution.
My current plan is to:

crate my own local version of media extractor
update the youtube-dl daily, start 1 hour after startup (like in updater component)
event.async_track_utc_time_change(
hass, update_youtube_dl,
hour=_dt.hour, minute=_dt.minute, second=_dt.second)
update_youtube_dl
the pip-upgrader https://github.com/simion/pip-upgrader was a good candidate (to update package and the requirements file) but now there is manifest.json so I probably need to do this by hand

Let me know if you want to add this solution, I can prapare pull request.
If you think that this is to hacky/risky than please close this issue - I completely understand and agree that this situation is very specific.

Hostly, I don't think we should accept such integration at first place.


Update getting_started.md Document

Changes

Updates the getting_started.md to make it a little clearer in some places.
Verification
You read it a few times and if it makes sense then it has worked ;)

Ready to roll. Thanks @Bplotka 👍

Thanks!