Demo user can only change blogpost, no need for deleting DB

The demo user is only allowed to edit blog post, which is enforces with restrictTestuser(c.req.reqMethod) in the routes.nim.
Therefore this PR does only delete the specific changes, the demo user can cause.

is the PR missing commits of a file :grey_question:
Wheres the proc standardDataBlogpost1 , standardDataBlogpost2 and standardDataBlogpost3 :grey_question:
:thinking:

They are hiding in create_standarddata.nim :)
https://github.com/ThomasTJdev/nim_websitecreator/blob/f307d28778fb90aa4799f048f268e3bf61a103f8/nimwcpkg/resources/administration/create_standarddata.nim#L546
https://github.com/ThomasTJdev/nim_websitecreator/blob/f307d28778fb90aa4799f048f268e3bf61a103f8/nimwcpkg/resources/administration/create_standarddata.nim#L556
https://github.com/ThomasTJdev/nim_websitecreator/blob/f307d28778fb90aa4799f048f268e3bf61a103f8/nimwcpkg/resources/administration/create_standarddata.nim#L566


Unable to execute sequentially in npm scripts

First off - really nice tool :)
Second - I'm not sure this is a svgr specific issue - or a more general issue regarding transpiled async/await and npm scripts - but...
I'm having trouble executing 2 commands sequentially in an npm script - like so (building a directory of components and making an index file):
  "scripts": {
    "build:icons": "svgr -d ./icons ./images/icons; create-index ./icons",

... when running npm run build:icons the second command starts executing before svgr is done (before it has even created the output dir) - which of course throws an error.
Running the 2 commands directly in bash works beautifully.
(I have also tried using run-s from npm-run-all - makes no difference)
Any ideas?

Try svgr -d ./icons ./images/icons && create-index ./icons

; and && is basically the same thing - no difference in this situation :)

@rasmusfl0e I experienced that ; does not wait sometimes. But svgr should wait the end of the process before ending, so it is weird.

really weird... I will continue examining npm script and async/await

Found a major error on my part - doh. Problem solved.
Thanks for making a great tool :)


⚠ RbxVeri has degraded performance

In 1a57d89, RbxVeri (https://verify.triza.dev) experienced degraded performance:

HTTP code: 200
Response time: 1644 ms

Resolved: RbxVeri performance has improved in 8389f5b.


Incorrect averages on accounts with less than 20 games

Think it calculated by dividing sum by 20, but when there are less than 20 games, sum is small and divider is still 20

@blukai should be a simple fix (but on ui, not core)

fixed in ui


Explicit entity ids

Description:
Buienradar sensor
1:  Entity_id set explicit (Breaking Change)
Before the buienradar sensors were not explicitly setting the sensor's entity_id, so the entity_id was derived by homeassustant from the sensor's display/friendly name.
This caused some subtle differences between the monitored_condition users have to configure in the config and the resulting sensors/entity_ids in homeassitant, causing confusion.
Entity_ids are now set as follows:
**name** (_Optional_):
You can specify a name of the component, but do not have to.
If you specify a name, the sensors will get an entity_id of 'sensor.[name]_[monitored_condition],
for example: 'sensor.lopik_temperature' or 'sensor.weather_groundtemperature';

if no name is specified the sensors will be called sensor.br_[monitored_condition],
for example 'sensor.br_temperature' or 'sensor.br_winddirection'

Breaking Change:
For the monitored_conditions shown below the sensor's entity_id will change:

monitored_condition: grountemperature
previous entity_id: 'sensor.[name]_ground_temperature' or 'sensor.br_ground_temperature'
new entity_id: 'sensor.[name]_groundtemperature' or 'sensor.br_groundtemperature'
monitored_condition: windspeed
previous entity_id: 'sensor.[name]_wind_speed' or 'sensor.br_wind_speed'
new entity_id: 'sensor.[name]_windspeed' or 'sensor.br_windspeed'
monitored_condition: windforce
previous entity_id: 'sensor.[name]_wind_force' or 'sensor.br_wind_force'
new entity_id: 'sensor.[name]_windforce' or 'sensor.br_windforce'
monitored_condition: winddirection
previous entity_id: 'sensor.[name]_wind_direction' or 'sensor.br_wind_direction'
new entity_id: 'sensor.[name]_winddirection' or 'sensor.br_winddirection'
monitored_condition: windazimuth
previous entity_id: 'sensor.[name]_wind_direction_azimuth' or 'sensor.br_wind_direction_azimuth'
new entity_id: 'sensor.[name]_windazimuth' or 'sensor.br_windazimuth'
monitored_condition: windgust
previous entity_id: 'sensor.[name]_wind_gust' or 'sensor.br_wind_gust'
new entity_id: 'sensor.[name]_windgust' or 'sensor.br_windgust'

2:  Attribution of a Buienradar sensor will now show the actual datetime of measurement at the weatherstation.
(this might be up to 10-20 minutes before the update was detected over the buienradar API.)
Buienradar weather
Forecasted temperatures are now shown at noon (dutch time (Europe/Amsterdam)) and not at midnight, and take timezone into account.
Related issue (if applicable):
none
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#3114
Example entry for configuration.yaml (if applicable):
unchanged / see docu
Checklist:
If user exposed functionality or configuration variables are added/changed:

[X] Documentation added/updated in home-assistant.github.io

closing this PR;
not going to introduce an exception in deriving entity_ids for this component;
I will make sure a remark is part of the component's documentation...


Newbie Issue with Line Chart

Hi,
I am trying to plot a Basic line chart using the examples and some modification w.r.t data from ES
{
  "$schema": "https://vega.github.io/schema/vega/v3.0.json",
  "width": 500,
  "height": 200,
  "padding": 5,

  "signals": [
    {
      "name": "interpolate",
      "value": "linear",
      "bind": {
        "input": "select",
        "options": [
          "basis",
          "cardinal",
          "catmull-rom",
          "linear",
          "monotone",
          "natural",
          "step",
          "step-after",
          "step-before"
        ]
      }
    }
  ],

 "data": [
    {
      "name": "table",
      "url": {
        "index": "scadatcp-*",
        "%context_query%": "date_and_time",
        "body": {
          "size": 0,
          "aggs": {
            "hist": {
              "date_histogram": {
                "field": "date_and_time",
                "interval": "2h",
                "time_zone": "Asia/Dubai",
                "min_doc_count": 1
              }
            }
          }
        }
      },
      "format": {
        "type": "json",
        "property": "aggregations.hist.buckets"
      }
    }
  ],

  "scales": [
    {
      "name": "x",
      "type": "point",
      "range": "width",
      "domain": {"data": "table", "field": "date_and_time"}
    },
    {
      "name": "y",
      "type": "linear",
      "range": "height",
      "nice": true,
      "zero": true,
      "domain": {"data": "table", "field": "b4"}
    },
    {
      "name": "color",
      "type": "ordinal",
      "range": "category",
      "domain": {"data": "table", "field": "b5"}
    }
  ],

  "axes": [
    {"orient": "bottom", "scale": "x"},
    {"orient": "left", "scale": "y"}
  ],

  "marks": [
    {
      "type": "group",
      "from": {
        "facet": {
          "name": "series",
          "data": "table",
          "groupby": "b5"
        }
      },
      "marks": [
        {
          "type": "line",
          "from": {"data": "series"},
          "encode": {
            "enter": {
              "x": {"scale": "x", "field": "date_and_time"},
              "y": {"scale": "y", "field": "b4"},
              "stroke": {"scale": "color", "field": "b5"},
              "strokeWidth": {"value": 2}
            },
            "update": {
              "interpolate": {"signal": "interpolate"},
              "fillOpacity": {"value": 1}
            },
            "hover": {
              "fillOpacity": {"value": 0.5}
            }
          }
        }
      ]
    }
  ]
}

Only getting undefined as one of the axis, please help

Hi @karnamonkster , I would love to help, but I don't have your data.  Could you follow the first method in https://github.com/nyurik/kibana-vega-vis/blob/master/README.md#data - copy the data from the networking tab into a gist, and post the link here?  Thanks!

Hi @nyurik ,
Here is a sample data that i get when i query the index in ES
https://gist.github.com/karnamonkster/b897b89b7e0f1d2f51b2e5d28f066905

@karnamonkster this is only part of the data, but it would greatly help to have a complete dataset. It doesn't have to have your real data, but keep all the structure (just the fields that you care to plot). Try this: in the networking tab of your browser's debug tool, find the _msearch result, and copy the whole response from the "Response" tab (I'm using Chrome, it might be called something else in other browsers).Make sure you see all the data you want to plot, and post it to the gist.  It should contain the original structure, e.g. the hits and aggregations.

@nyurik i have updated the GIST. does that help?

@karnamonkster that did help to get started, but it seems something is still missing.   Your graph above uses "property": "aggregations.hist.buckets", but your data uses aggregations.2.buckets.  But that's a minor fix.  The bigger issue is that you attempt to use date_and_time for x, but your data doesn't have this field.  Your data basically has only two fields inside the aggregations:  "1.value" (float) and "key" (string).

The query response i gave you is from an existing visualization(bar chart). Also i dont have a field called "key" in my index but was certainly part of the response for my query.
Let me update the Vega json and update you

@nyurik also basis the response code that i have submitted, can you suggest me a sample code for a simple line or bar chart using vega?

@karnamonkster , with the data you gave me, the simplest bar graph:
{
  "$schema": "https://vega.github.io/schema/vega-lite/v2.json",
  "description": "A simple bar chart with embedded data.",
  "data": {
    "url": "https://gist.githubusercontent.com/karnamonkster/b897b89b7e0f1d2f51b2e5d28f066905/raw/fc289f36b006adc67fb4b152f03bf89074d70e5d/sample_vega.txt",
    "format": {
      "type": "json",
      "property": "aggregations.2.buckets"
    }
  },
  "mark": "bar",
  "encoding": {
    "x": { "field": "key", "type": "ordinal" },
    "y": { "field": "1.value", "type": "quantitative" }
  }
}

But you need to replace the url string with an object that makes an elastic search request.  The bar chart you used - see in the debug window which query it actually  makes.

That is what we need, however the data url is the index that i am trying to poll.

@karnamonkster the data part is the standard elastic search query -- it highly depends on the data you have.  For example, this text here (as you posted initially):
      "url": {
// this is your index
        "index": "scadatcp-*",

// this means that the index contains "date_and_time" timestamp field, and that the timepicker (upper right corner) will be used for this query to limit it.  If the time is not relevant for this index, you can replace it with `true`.
        "%context_query%": "date_and_time",

// this is the actual body of your query. The "hist" is the name of the aggregation (you used "2" instead in your data sample, so you might want to use "2" instead, or use something more descriptive in the graph and here.)
        "body": {
          "size": 0,
          "aggs": {
            "hist": {
              "date_histogram": {
                "field": "date_and_time",
                "interval": "2h",
                "time_zone": "Asia/Dubai",
                "min_doc_count": 1
              }
            }
          }
        }
      },

closing as inactive, feel free to comment


Adding features that it desparately needed

Adding a few features that are nice to have:

Panning/Zooming. Now you can pan in the Spine Editor and Image Viewer with WASD (mouse panning maybe sometime later? also arrow keys didn't want to work for some reason)
Order selecting. Now you can choose which body parts get shown during the animation in Spine Editor. This is mostly to help with the Jax/Remy combined animation overlapping.
Image Viewer. No longer do you need to export an image just to view it, as you can view it in a special viewer in the editor! Just double-click the image to view!
Any bugs that I have accidentally added, and have yet to find or remember!

I thought #4 talked about bugs I added at first, had to re-read that. I know there's at least 1 bug I fixed in a local repo, but never bothered to push, forgot what it was already.
I intentionally removed the spine runtime DLLs from any release I sent out and left the viewer in such a sorry state as to not anger Esoteric, since I highly doubt this adheres to their license agreement (I haven't agreed to anything). Forgot it's still a NuGet package, and they haven't gone after me yet so uhh
Also isn't using OpenGL for image viewing a bit overkill
Other than that, nice. I want to work on Amorous modding again someday, but there's lots and lots of projects I also need to tend to and I haven't in a good year or so. I'll merge if you don't have anything else to add.

The OpenGL for image viewing was just because I basically just copied the code you used for the Spine Editor, and just used the "DrawBackground" function lmao
The play/pause icons I grabbed from DuckDuckGo under "Public domain", but the exact link is https://svgsilh.com/image/1956799.html, which it says is CC0

But yeah, I'm just lucky that I've held enough patience to add these features. Most of the time I just give up on a project soon after I get the idea, but somehow I've stuck with this and added some nice features.
But I don't have anything else I want to work on right now. Maybe I'll figure out importing the user's character (to change the animation's colors and whatnot) some other time, or something else, but not soon.


re-implement file sync feature with scoped permissions via SimpleStorage library

Description
Re-implements PR #25 without requiring MANAGE_EXTERNAL_STORAGE permission, which is asks for permission to write ALL files on the Android device and which is rejected by the Google Play Store rules for all apps except those that really require it (such as file managers).
With this PR here, there is no need for special permissions anymore, the app asks for permission to write in a single folder. In fact we could rewrite to ask to write only in a single file, but having permission over a whole folder allows to write more files if there is a need in the future.
To test, there is a debug APK here: https://github.com/lrq3000/super-productivity-android/releases/tag/super-productivity-android_scoped-storage
Issues Resolved
Fixes #31, fixes #13.
Can also be used as a workaround for #9.
The library that is managing permissions, SimpleStorage, can also be used to implement #8.
Check List

[x] Functionality appears to work for me.
[ ] Can others try and report if it works for them too?

I just tested syncing between an Android device under Android 10 and a desktop client on Windows 10 via SyncThing (SyncThing-Fork on Android, Synctrayzor on Windows). It worked perfectly well :-)
I did not know Super Productivity had in-built conflict detection and resolution, that's awesome! Thank you a lot @johannesjo for making and maintaining this software, and to all other contributors who added features and bugfixes :-)

ping @anggrayudi, author of SimpleStorage, he has been super helpful to implement scoped storage permissions handling correctly!

Thank you so much @lrq3000 ! This is a very important feature!

Sorry! I was a bit over eager with the merge :D  Maybe we can proceed with a new PR for the remaining issues?
I found two issues:
1.It seems like the app only recognizes the given permission only the second time
2. If I try to sync I get "Error: Error: Java exception was raised during method invocation". Unfortunately I am unable to localize what is going on further. Logcat doesn't show any errors.
Let me know if I can help you debugging this somehow.

@anggrayudi thank you so much for your inputs once again! :D I know simplestorage can handle older versions but i wished to maintain the old behavior for older users, but maybe it's better if everything is done with simplestorage now? I'd suggest we drop older file management code after a while once enough users have tested the new version, just to be on the safe side :-)
@johannesjo

I guess you are referring to the situation when simplestorage detects that getting access to the folder is not sufficient and access to the root is also necessary, and hence it asks as 2nd time but first it asks for root access. I don't think there is another way around. If you try to create and get access to a folder on the sdcard, it should work the first time around, or also in the Download folder since it's a shared folder by default, but if you try to create a folder on the primary storage, then it will have to ask a 2nd time to get the root first and then the access to your folder. So it depends on user's choice unfortunately, this can't be detected apriori, it's Android's fault with their scoped storage system. @anggrayudi please tell me if I'm wrong on this :-)
This is an issue. You should have logcat messages before the exception, even if the exception is not caught in the logcat, the other logcat messages (tag:SuperProductivity) should help me debug where the issue is. But i also noticed a bug with reading the file (vut not uploading), i will have a look. May i ask how you synchronized? Did you already have a file to synchronize (eg, a file created on desktop), or did you try to create a new sync file on Android (this case is the one i tested)?

On API 29, yes the user should select the root path first. But for API 30 and higher, no need to select the root path first. The user can select any folder directly and SimpleStorage will persist the permission in background. You can test these behaviors on emulators.

@anggrayudi Ah ok thank you very much for the precision!
@johannesjo In fact about issue 1 you meant that the UI says "Needs permission" after first selection, right? I can reproduce the issue, I'll fix it. And likely issue 2 is the same I have about reading the file, so it should be fixed too in my next PR.

@johannesjo I'm sorry but I'll need your help to fix issue 1: it's a concurrency issue, what is happening is that the web app calls isGrantedFilePermission() before the permissions are saved! This is because in the web app, the file permission is coded like this in several places:
(IS_ANDROID_WEB_VIEW &&
            (androidInterface as any).grantFilePermission &&
            androidInterface.isGrantedFilePermission)

Hence, isGrantedFilePermission() is called right away after grantFilePermission() returns. This worked before because grantFilePermission() used to directly request for permission in a blocking manner in older Android versions, but now grantFilePermission() calls an asynchronous folder/file picker which itself calls back storageHelper.onFolderSelected() (and other internal functions to storageHelper) which saves the permission.
The solution is to rewrite the condition in the web app to wait for grantFilePermissionCallback() to be called. This function was already implemented, I guess to avoid this very issue, but was not used before because it wasn't necessary, but now it is. grantFilePermissionCallback() deletes the requestMap[rId], ie, deletes the requestId from the requestMap. So we can use the present of requestId inside the requestMap to check whether grantFilePermission() callbacks are done, and then proceed to call isGrantedFilePermission().
I unfortunately don't know how to code in typescript/nodejs, I hope my description above is sufficiently clear :-/ I have already implemented the necessary changes in the android app in my master branch (I will make another PR soon when I'll have tackled issue 2), so when the typescript web app will be updated, it should work.
Also, the proposed change above should be retrocompatible with older versions of Android anyway, and even current apps, because the grantFilePermissionCallback() was already implemented in onActivityResult(). I just also implemented it for the new file permission handling via SimpleStorage.


pthread_create 3rd arg must be of right type

OS_TaskCreate is handed an OSAL entry point, which is a
pointer to a function taking no parameters and returning
no return value. It passes it along to pthread_create
which is expecting a pointer to a function that takes
a single void pointer parameter, and returns a void pointer
return value.
The code as written triggers a compiler warning that we
want to get rid of.
Casting the pointer gets rid of the warning, at the cost
of presuming that the ABI will do the right thing when
the caller and callee disagree on the function signature.
This has an associated technical debt: every implementation
that uses this code has to be aware of the issue and
assure that this kind of signature mismatch is OK.
Alternately, we can stash the pointer to the entry point
somewhere, and hand pthread_create a pointer to a function
of correct type, which is responsible for calling the
entry point and returning a pointer. This has a runtime
memory cost of one stack frame.
Doing nothing retains the potential failure, but also retains
a warning about the potential failure. I suggest either doing
the real fix, or leaving the code alone until -Werror forces
us to do the real fix.
I will not automatically push this into the 2015-03-10
integration candidate, as tempted as I am.

Trac comment by jphickey on 2015-03-18 11:16:28:
The fix for trac #5 also includes a "proper" fix for this.  In this version, the OS-specific POSIX code now uses a wrapper function with the right signature i.e. {{{ void *pthread_entry(void *) }}} as an entry point.
Yes, this costs one stack frame, but this is a small price to pay for the safety advantage.  This is really the only fully portable way to do it without relying on "tricks" that violate the standard/recommended practice.  Besides, having a common entry point that runs in the same context of the thread is very useful for other reasons, too, so it's not really a waste.

Imported from trac issue 24.  Created by glimes on 2015-03-10T18:32:15, last modified: 2015-11-20T16:22:16

Trac comment by jphickey on 2015-04-14 11:45:23:
Commit [changeset:d16c5bf] offers the "hack" to simply cast this as the right thing and squelch the warning.
I have been using this in some of my builds since I force use of "-Wall -Werror" and this warning keeps getting in my way when looking for //other// things.
I would consider actually merging this, even though it is a hack:

I am unaware of any ABIs that such a hack will not work
It doesn't break anything that wasn't already broken (just that it won't tell you about it)
It removes one of the major roadblocks to enabling "-Werror" which can find //other// warnings in new/modified code as development proceeds.  Without this option, it is too easy to miss new warnings that might appear from build to build in the future.
The "correct" (fully compliant, non-typecast) fix is part of trac #5 but several more fixes need to be put in place first before that one can be merged.  However, that is essentially a different POSIX OSAL so this warning will remain for this existing POSIX OSAL.

Trac comment by acudmore on 2015-06-02 14:35:59:
approve

Trac comment by glimes on 2015-07-02 12:50:06:
Commit [changeset:d16c5bf] is now included in the OSAL "development" branch
as of the [changeset:2c9c345] merge.


Detail page info lists need some slight adjustments

[ ] Needs a little more horizontal padding between the field name column and the data column. Maybe something like border-spacing: 16px 0.
[ ] Needs a bit more vertical padding below the info list.
[ ] Objects with a single container should show that container in the info list.

The container is shown as of https://github.com/OSU-Net/cyder/pull/940

Actually, Systems still do not show their container on their detail view.

Resolved by https://github.com/OSU-Net/cyder/pull/965


Is there any chance that images embedded to xls-files can be loaded?

I'm not entirely sure, but as far as I can, images embedded into excel files cannot be loaded so far with the ExcelDataReader, isn't it? Or is there any trick how to perform that? Embedded pictures seem to be returned as DBNull now from the DataTable of an excel sheet, so the image data seems to be skipped.
Is there any way to get the binary data in a cell in case it cannot be cast into a string?
Any hint would be welcome!

That isn't supported. Don't know how difficult it would be to add.

Thank you for the reply. It doesn't seem to difficult though, as can be seen here:
https://www.codeproject.com/Articles/16210/Excel-Reader
but unfortunatly, I can't really see the trick...


Reduce systest log level in CI

Motivation

Closes #

Changes

Test Plan

TODO

[ ] Explain motivation or link existing issue(s)
[ ] Test changes and document test plan
[ ] Update documentation as needed

DevOps Notes

[x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources)
[x] This PR does not affect public APIs
[x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.)
[x] This PR does not make changes to log messages (which monitoring infrastructure may rely on)

bors try

Bors try

Bors try

bors try

Duplicate of #3892


bitbucket-server-support-test

Automated changes by create-pull-request GitHub action

Auto-closing pull request


Problem with named_parameters in the encoder

Hi,
I am trying to understand the structure of the network and I found an interesting behaviour of the network.
I was trying to print the "named_parameters()" of the network using the command
for name, val in self.encode.named_parameters():
            print(name, val.shape)

and here is the output I got.
inconv.conv.weight torch.Size([64, 3, 3, 3])
inconv.bn.weight torch.Size([64])
inconv.bn.bias torch.Size([64])
layer1.0.conv1.weight torch.Size([64, 64, 3, 3])
layer1.0.bn1.weight torch.Size([64])
layer1.0.bn1.bias torch.Size([64])
layer1.0.conv2.weight torch.Size([64, 64, 3, 3])
layer1.0.bn2.weight torch.Size([64])
layer1.0.bn2.bias torch.Size([64])
layer1.1.conv1.weight torch.Size([64, 64, 3, 3])
layer1.1.bn1.weight torch.Size([64])
layer1.1.bn1.bias torch.Size([64])
layer1.1.conv2.weight torch.Size([64, 64, 3, 3])
layer1.1.bn2.weight torch.Size([64])
layer1.1.bn2.bias torch.Size([64])
outconv.conv.weight torch.Size([32, 64, 1, 1])
outconv.bn.weight torch.Size([32])
outconv.bn.bias torch.Size([32])

As you can see, there aren't any parameters related to layer2 but when you print the state_dict() of the model, both layer1 and layer2 can be found.
This feels like layer2 of the encode module is simply a repeat or an aliase of layer 1 of the encode module. btw I am using pytorch version 1.13.0.

Hi @YuhangMing,
Yes, layer2 is a repeat for layer 1. This was a bug in the first version of the code and fixing the shared weights actually improves performance (check #5 for more discussion). We chose to keep the code in this form since it matches what's in the paper. Fixing this bug to use two separate layers or even using a larger backbone (eg, SyncMatch uses a modified ResNet18 instead of the five layer ResNet used here) should improve performance.


added nrql lessons to page frontmatter resources

Description

added nrql lessons to resources
fixed a missing ' ' on the resource titles on the get-started-nerdgraph-api-explorer page
updated style guide to specify you need single quotes around resource titles.

Resolved code review comments, merging.


bot attack and crash Luckperm

version git-Paper-175 (MC: 1.14.4)
link crash https://pastebin.com/kA9Eapi9

LuckPerms can only handle so many new players per second.
It is your responsibility to protect your server from spam attacks.
Easiest way to do that is by turning on online-mode. If you choose not to do that what you are experiencing is a known risk and blaming other plugins is not the right way to go about it.

If you keep using a server in offline-mode, get an anti-bot plugin that handles bots on the packet level.
This will prevent them from joining in the first place, preventing the PlayerPreLoginEvent to get fired which in term causes LP to create/load the user info.
As BrainStone said is running a server in offline-mode a risk and bot-attacks like these will be a daily issue you'll encounter. There isn't anything Luck can do to prevent this. It is your responsibility to handle and fix this.

That statement here shows that you cleary have absolutely no clue how any of this works.
The specific reason LP crashes while PEX doesn't is quite simple. When a new player joins LP stores that. PEX doesn't. LP does so because it needs to. This is not some optional process that can postponed.
In orther words LP does more. Especially when it comes to storing the data of player.
Though while you have prevented the issue of your server crashing from being overloaded you have sacrificed functionality and support (good luck getting any response from the PEX dev if you were to have this (or any really) issue with PEX) and are still left with your core problem.

I solved here by returning PermissionsEx because there are no bugs like luckperms

So working as intentional is now a bug... Noted.

I solved here by returning PermissionsEx because there are no bugs like luckperms

Have fun updating to any new version with a plugin, last updated 3 years ago, for 1.11/.10/.9 that is much more limited compared to LuckPerms.

"My father once told me that the winning team doesn't move"

I never in my life saw a soccer team winning by not moving.
 We gave you ideas how you could solve this but instead, you just switch to an outdated, not supported version of a Permission-plugin that I'm sure will also cause issues once the next heavy bot-attack will arrive.
Just do what we suggested (Getting a proper anti-bot or at least set up some firewall stuff) to solve this... Or just get MC legit. If you can afford to host a server then you sure can buy mc.

can't afford MC (which is stupid anyway considering MC is a rather cheap game compared to other ones)

While I respect your point; this is very incorrect. OP said they live in a poor country. Social statuses cannot be judged. OP cannot do anything to fix their country's financial problem.

Keep in mind OP that you can solve the bot problem without using online mode.

Also, since you moved to PEX, can you please close this issue as having it open doesn't really serve a good purpose.


Any word about submission

Dear @charlesq34, @alexgorban,
Could you kindly give some general guideline about how to submit results on 3D Semantic Segmentation?
there are some info on tutorial_occupancy_flow.ipynb but I still can't find it clear enough.
looking forward to hear from you,
Bests

Hi @rttariverdi67, there are several improvements to the tutorial_3d_semseg.ipynb tutorial. Were you able to get enough info for your submission?


odo allows devfile commands with duplicate ids

/kind bug

What versions of software are you using?
Operating System:
Output of odo version:
How did you run odo exactly?
odo push
Actual behavior
odo push proceeds
Expected behavior
odo push should error out on command validation
Any logs, error output, etc?
this is my devfile.yaml example:
components:
  - container:
      name: runtime
      image: registry.access.redhat.com/ubi8/nodejs-12:1-45
      memoryLimit: 1024Mi
      mountSources: true
      sourceMapping: /project
      endpoints:
        - name: http-3000
          targetPort: 3000
  - container:
      name: runtime2
      image: registry.access.redhat.com/ubi8/nodejs-12:1-45
      memoryLimit: 1024Mi
      mountSources: true
      sourceMapping: /project
      command: ['tail']
      args: [ '-f', '/dev/null']
commands:
  - exec:
      id: install
      component: runtime
      commandLine: npm install
      workingDir: /project
      group:
        kind: build
        isDefault: false
  - exec:
      id: install
      component: runtime2
      commandLine: npm install
      workingDir: /project
      group:
        kind: build
        isDefault: false
  - exec:
      id: run
      component: runtime
      commandLine: npm start
      workingDir: /project
      group:
        kind: run
        isDefault: false
  - exec:
      id: run2
      component: runtime
      commandLine: npm start
      workingDir: /project
      group:
        kind: run
        isDefault: false

validation does not catch this:

duplicate commands install reference different components
duplicate commands install belong to build and none are default

/area devfile

I can do this
/assign

Blocked til https://github.com/openshift/odo/pull/3908 is merged


[Feature Request] OAuth 2 missing Identity token.

Insomnia Version: 6.2.3
Operating System: Mac OSX

Details
OAuth specification document provides two kinds of token, access token and identity token, The Insomnia OAuth 2 module works beautifully for most of the things as it exposes and uses the Access_token (in addition to refresh_token) which is used more often, there are a few oddballs however that need identity_token for certain calls, like AWS Cognito User pool integration with API Gateway:
To authenticate requests to API-Gateway endpoints that are protected by AWS Cognito Authorizers, the access_token will not work! but the identity_token which is included in the same response body that provides the access_token works! ( although access_token works to make calls to Cognito endpoints itself!! but anyways! )
I think it would be great if we provide this functionality as AWS is a big player and this will come handy in a lot of use-cases, especially since there aren't any other alternative clients, currently, supporting this ( Postman does not have this feature either ), this will be very useful for developers/engineers working in a serverless stack!
Thanks,

mim

As I was talking with @gschier , I have made a few changes to the source code of the OAuth2 module and rebuild the project to see if it's working, and it does work nicely! as a matter of fact, OAuth2 module receives the identity_token at the same time as access_token and refresh_token, it doesn't show it however in the UI ( it's simply ignored for OAuth protocol ), which may make sense in most of the use-cases but in the few that it's needed, having it could be very useful.
Now that I've verified that it works, I'm thinking to make a PR, later on, to let the user choose which of the two tokens s/he wants to use. something like a toggle-button or similar that let the user switch between the two functions.. in my current modification, I simply render the token on the UI in an additional text-field above the access token field.
If anybody's interested in such a feature I'll be happy to work on it, just let me know!
Best,

mim

I think some sort of toggle would work but only show it if both are detected
Sent with GitHawk

That's a good idea!

Any update on this, I have a defined workflow that uses the ID token and having access to it is required.

@antempus I'm hoping to make a PR this week or early next week, but if you need a hacky solution, for now, feel free to build the Master branch on my fork.
My main blocker is to learn the proper way of contributing to the project ( learning the project structure, tests, etc ), but I'll try to spend some time this week to get it done as I'd really love to contribute.

So the least intrusive solution I can think of is to add a checkbox in the UI that lets the user choose identity_token instead of access_token when it's available and desired. ( like in the screen-shot below )
I have implemented the UI to show the token if it exists in the response, we need to let the user choose which token to use though to make their calls, or we can add that in a future PR?
I still also need to check and add tests if needed
@gschier does that sound good?

@gschier what would be needed to help get @mim-Armand's improvement into the main codebase?

@mim-Armand @gschier can this still be implemented? This is holding me back (and my team) to switch to Insomnia.

@gertcominotto It definitely can, but my Fork is pretty out-dated now and needs to be re-worked and I didn't hear anything back from the team behind Insomnia either so IDK really if they'd be open to it :/
I built the tool from my fork back when I needed this feature.

Any updates on this feature seems like very useful missing feature, I am in the same situation using AWS cognito as the OAuth provider and want to use the IdToken. Even Postman doesn't support this so will give an added advantage to Insomnia. Really surprised this request was Closed.
@mim-Armand , any way community can use your work?
Is there way your tool can be shared?

@savanvadalia you are welcome to build this fork here which has that feature implemented (as in the picture above) but it's behind upstream for all the other updates that may have happened during the last two years.
I think we can bring it back/up to date though if we can get it merged?

@mim-Armand , thanks for your prompt reply. I had a look at your commit, sorry I didn't realize I would need front-end development skills (Javascript. React, etc) to contribute. I am terrible with frontend 😞  so I guess I can just add my voice here to reopen the issue.

How can we get this issue re-opened? Just reading the comments here it seems there's a fair amount of interest in this feature, myself included

How can we get this issue re-opened? Just reading the comments here it seems there's a fair amount of interest in this feature, myself included

Hey folks, sorry about the lack of communication! 🤗 I'll re-open this issue because it was closed by stale bot and without good reason. @mim-Armand / @alanwill please feel free to raise a PR and we can work towards getting this into the project.
Happy to help in case you need any guidance with UI and testing (where possible).

Hey folks, sorry about the lack of communication! 🤗 I'll re-open this issue because it was closed by stale bot and without good reason. @mim-Armand / @alanwill please feel free to raise a PR and we can work towards getting this into the project.
Happy to help in case you need any guidance with UI and testing (where possible).

if you got here by searching for a solution, like me, apparently Insomnia now supports this in an undocumented (at least none that I could find, except for #3211) way:

configure OAuth2 as usual
make sure to request a scope which provides the relevant token
go to the Headers tab
Add Authorization header, where value is:

for id_token: Bearer {% request 'oauth2-identity', '', 0 %}
for refresh_token: Bearer {% request 'oauth2-refresh', '', 0 %}


How to customize rendered component

I would like to use react-native-tab-view with this component, but I want to use a customized layout (I have customized tab rendering functions that change the animation behaviour of the tab indicator).  The documentation should describe how to do this and/or hooks should be provided to allow such customizations.

This component already uses react-native-tab-view internally. For more flexible use cases, I'd recommend using react-native-tab-view directly instead of trying to integrate it with this library.


Failed to create collaboration session

An internal WebSocket error occured. Please see the innerException, if present, for more details. TrackingId:5f73b525-6adf-4b21-9c27-28bf0aaf84da, Address:sb://vsls-prod-ins-usw2-private-relay.servicebus.windows.net/68523ccdf064da006f74fad7892b2e298b0c--43a857a2-2ef9-43a2-9e00-607cb0520136, Timestamp:6/22/2018 4:07:41 PM
This issue has been moved from https://developercommunity.visualstudio.com/content/problem/279321/failed-to-create-collaboration-session.html
VSTS ticketId: 637496
These are the original issue comments:
(no comments)
These are the original issue solutions:
(no solutions)

Closing due to inactivity. Please re-Open if you’re still encountering this issue. Thanks!


PEP8 doc examples

For some reason, I've had this sitting around for a year and a half.
Mostly a bunch of word-wrap; this actually makes the docs look better since you don't need to scroll to the right any more.

The failing travis test:
-------------------- >> begin captured stdout << ---------------------
/home/travis/build/SciTools/iris/docs/iris/src/userguide/plotting_examples/1d_with_legend.py:26:37: E202 whitespace before ')'
/home/travis/build/SciTools/iris/docs/iris/src/userguide/plotting_examples/1d_with_legend.py:28:1: E265 block comment should start with '# '

Oh, I missed double-checking that directory on rebase; should be good now.

Thanks @QuLogic :+1:


How to integrate a tutorial screen into the RESideMenu?

Hi Roman,
I am using RESideMenu in my project and I want to incorporate a tutorial screen for the  user.
This is what I want to do:

the first time the app loads, direct the user to the tutorial screen.
in future app launches, the app should load to the one of my other view controllers but give the option to the user to go back to the tutorial screen.

For simplicity sake, consider the tutorial screen to be another view controller which will be part of the RESideMenu 'menu view controller'.
Is there a way to do this?
thanks,
Varun

how to dynamic change content of side menu. .. ? please help us fast .


Can we ARMED vehicle using vehicle.overrides?

i am trying to ARM my quadcopter using vehicle.armed = True. but its not getting armed.
so i have tried another mathod using vehicle_overrides example.
print  "\nChannel overrides: %s"  % vehicle.channels.overrides
print " Set Ch3(throtlle) ch4(yaw) override to 1066 and 1915 (indexing syntax)"
while not vehicle.armed:
 print "arming....."
vehicle.channels.overrides={'3':110, '4':810}
print "vehicle is ARMED"
does it right way?

Hi @keyurrakholiya
The code fragment above is not enough to understand whether you're doing things right or not. All the examples in the library should arm and run properly - at least on SITL.
Check out the taking off code here: http://python.dronekit.io/guide/taking_off.html
The point is to check vehicle.is_armable. IF that value is true then you can arm the vehicle. You then have 10-15 seconds to take off or the system will automatically disarm. The right way to take off is shown in that link.

@hamishwillee
thank you for your help
i can arm it via RC. but i cant arm it via vehicle.armed=True!
i am using R-pi with apm 2.6
and i am not using SITL.

@keyurrakholiya The arming criteria are the same in both cases, so if you can arm it using RC then it should be good to arm via the command. But it is impossible for me to guess what might be stopping it without all your code ... or even better, you running the takeoff code we provided.

thanks @hamishwillee
we are using 3.1.5 firmware. should we upgrdge firmware to 3.2.1?

This is sitting on "Waiting to initialise" because is_armable is false. It is not possible to tell why this is from this code. YOu might be able to get some more information by adding the line in the arming check before time.sleep():
print "Mode:", vehicle.mode.name
print "GPS...:", vehicle.gps_0.fix_type

But chances are that the cause is something that we can't measure, so you should connect to mission planner if you can and see what it says the state is.

we are using 3.1.5 firmware. should we upgrdge firmware to 3.2.1?

Probably. @peterbarker , is_armable is dependent on EKF (self._ekf_predposhorizabs). Is there a first version of firmware that we know this can be supported? I have a feeling APM2.6 builds don't turn EKF on by default so this might be a bug?

@hamishwillee  thank you for your help!
i have installed 3.2.1 firmware and its working fine. we tasted autonomous flight simple take off and landing.
thank you!
solved!

Awesome :-)


EmulationStation compiled for Windows does not recognize bluetooth gamepad

Hi all.
I'm running EmulationStation v2.10.0 on Windows 8, it works fine, but yesterday I bought a new gamepad, the 8bitdo SN30 Pro+, it's a bluetooth gamepad, and EmulationStation does not recognize it when connecting the gamepad via bluetooth.
It's correctly paired with my bluetooth controller (v4.0), and Windows and RetroArch recognize it and works fine, the problem is just with EmulationStation via bluetooth, because when I plug the gamepad with a cable EmulationStation recongnize it and it works.
Thank you very much.

Hi. I've found this:
https://blogs.windows.com/windowsdeveloper/2017/01/25/calling-windows-10-apis-desktop-application/


The Event Calendar Feature Bar

I'm trying to implement Modern Tribe's Event Calendar plugin which all works great. I'm already doing everything in my theme that would pull things into the head so the plugin by itself works just fine. The issue I'm having though is with the Filter Bar add-on. It doesn't show at all when I'm using Timber—it's not just hidden with CSS or anything, it's not actually rendering in the code. If I switch the theme to a default WP theme it'll show fine. Has anyone else used this? Any thoughts on what needs to happen to get this rendering on the page?

Tracked this down a bit more. You'll need to create a default template for the Event Calendar view to overwrite the one in the plugin. So create a tribe-events\default-template.php in your theme. Then add:
<?php

$context = Timber::get_context();
Timber::render( array( 'events.twig' ), $context );

Then in your events template you can do:
{% extends 'layouts/base.twig' %}

{% block content %}
  <div class="container">
    {{ fn('tribe_events_before_html') }}
    {{ fn('tribe_get_view') }}
    {{ fn('tribe_events_after_html') }}
  </div>
{% endblock %}


[IMPAC-855] - Include Forecast Payroll img for chart legend

It depend on [IMPAC-815]
EDIT: IMPAC-815 merged with #505

Merging
@xaun can't change the syntax as it makes the toggle button disappear...


Add quickfix for version 2.3 of ruby, fixes #515

Alex, this should be the fix im unable to test it as im getting a segmentation fault while compiling, but at a section not related to this.
Ill test it tomorrow in a VM.

Bump pkgrel to 2 in PKGBUILD so local packages will be automatically updated.

@Alexpux is this package already in the repo?

It won't rebuild without pkgrel bump.

Then that should had been done before merge then, ill put another PR.


chore: add chopsticks config

Adds chopsticks config for testing of runtime upgrades.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 3.30%. Comparing base (95bb4b5) to head (8804c57).

@@          Coverage Diff          @@
##            main    #157   +/-   ##
=====================================
  Coverage   3.30%   3.30%
=====================================
  Files         30      30
  Lines       6843    6843
  Branches    6843    6843
=====================================
  Hits         226     226
  Misses      6617    6617


Windows Defender flagged this as a Trojan.

That's normal for now because I use a third party library named memory.dll to read the memory of a game.
I'll get rid of it soon and then the fake virus should be gone.


Locale problem can cause strange behaviour

In the stream.py we try to change locale to english to be able to make the pattern matching %b work. However switching locale is a source of errors and in the try except errors are often hidden here resulting in very difficult to debug code.
First of all if we switch to 'en_US' this locale needs to be present on the client machine otherwise this will cause an hidden error.
Also if we only change the LC_TIME locale it is better to get it in the old_locale because the get_locale() can be different from the get_locale(locale.LC_TIME). so
https://github.com/geomagpy/magpy/blob/ae91462f1644ebf89fbe570ce1cf67d1d89eb926/magpy/stream.py#L12892-L12896
old_locale should be changed into
    old_locale = locale.getlocale(locale.LC_TIME)

Further on on windows I got as old_locale = ('fr_BE', 'ISO8859-1') using this one in the set_locale afterwards resulted always in locale.Error: unsupported locale setting
As you assume that locale should be for the LC_TIME in en_US UTF-8
I added the statement locale.setlocale(locale.LC_TIME, ('en_US', 'UTF-8')) in the init of the application ensuring me that
magpy is always using en_US for the LC_TIME
I just added the statement here
https://github.com/geomagpy/magpy/blob/ae91462f1644ebf89fbe570ce1cf67d1d89eb926/magpy/gui/magpy_gui.py#L7237-L7243
I added it as first line. A better solution is to use a regular expression to parse the needed string so it will be locale indepent but this is a bit more work.
So the prerequisite of magpy should be stated to have the locale en_US,UTF-8 installed on your machine.
An extra global remark is to avoid hiding errors by always logging the error and ripple errors to the highest level so users will see them appear. This will facilitate the debugging and will not hide wrong behaviour

My preference would be to remove switching locale at all. strptime should use en_US by default anyway, no matter what locale is used on the system.

strptime is dependent on the locale so if we want to remove it, in this partically code we should not use strptime.
In this partical code we try to match the IMFV format
https://github.com/geomagpy/magpy/blob/ae91462f1644ebf89fbe570ce1cf67d1d89eb926/magpy/stream.py#L12901
I quickly tried on my machine by setting locale to de_BE
    locale.setlocale(locale.LC_TIME, ('de_BE', 'UTF-8'))
    date = dt.datetime.strptime("OCT3121", '%b%d%y')
    print(date)
   results in
   ValueError: time data 'OCT3121' does not match format '%b%d%y

Ok,
I will test it next week on windows by removing the locale stuff and keep you informed

See 0c3913c8ccfc9d0f0c88696e19ce4174b32de74b . Still needs to be checked however

The assumption of LC_TIME will always take en_US is not a valid one.
When you tested locale.getlocale() in a console window it gives you the general setting of the locale but when you do locale.getlocale(locale.LC_TIME) it is not necessary the same. In a console this results often ( but no garantee) in (None, None). In this case you can go from the fact he will fallback into en_US. But on windows with the xwindows module I printed out the locale.getlocale(locale.LC_TIME) and it gave  ('fr_BE', 'ISO8859-1') and using the code from the branch origin/gui-fixes I still got an error
Traceback (most recent call last):
  File "C:\Users\stbracke\Desktop\MagPy\python-3.9.8.amd64\lib\site-packages\magpy\stream.py", line 12920, in extractDateFromString
    date = datetime.strptime(daystring[-7:], '%b%d%y')
  File "C:\Users\stbracke\Desktop\MagPy\python-3.9.8.amd64\lib\_strptime.py", line 568, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "C:\Users\stbracke\Desktop\MagPy\python-3.9.8.amd64\lib\_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data 'JAN0121' does not match format '%b%d%y'

The easiest way to fix it is to add the locale.setlocale(locale.LC_TIME, ('en_US', 'UTF-8'))  into the on_init method and let it fail with a clean error if the locale is not installed
I will further on explain how we could do it more cleanly but it will be more work and more testing

If we want to make everything independent of the locale we need to replace it
on every place where we use the %b pattern this is in total 19 places in different files.

We can do that by replacing  the 3 letter month with its corresponding number ( with leading zeroes 01 etc) and replace the pattern %b with %m which is independent of  locale.
Here two ways to do this with enum or with dictionary
def test_with_dict():
    #locale.setlocale(locale.LC_TIME, ('de_BE', 'UTF-8'))
    months={ 'JAN':'01', 'FEB' : '02','MAR' : '03','APR' :'04','MAY' : '05',
             'JUN' : '06', 'JUL' : '07','AUG' : '08','SEP' : '09','OCT' : '10','NOV' : '11',
             'DEC' : '12' }
    test = 'DEC0421'

    new_date = months[test[0:3].upper()] + test[3:]

    date = dt.datetime.strptime(new_date, "%m%d%y")
    print(date)

    #d = dt.datetime.strptime(datestr, "%b %d, %Y")
def test_with_enum():

    @enum.unique
    class MONTH(enum.Enum):
        JAN = '01'
        FEB = '02'
        MAR = '03'
        APR = '04'
        MAY = '05'
        JUN = '06'
        JUL = '07'
        AUG = '08'
        SEP = '09'
        OCT = '10'
        NOV = '11'
        DEC = '12'

    test = 'DEC0421'

    new_date = MONTH[test[0:3].upper()].value + test[3:]

    date = dt.datetime.strptime(new_date, "%m%d%y")
    #use with label to get value
    print(MONTH['DEC'].value)
    #use with value to get label
    print(MONTH('10').name)

The advantage of the enum is that you can easily find the value with the name and if needed the inverse as illustrated in the code. The enum needs to have at was introduced in 3.4 with additinoal pip install enum is now ( I think from 3.7) default in python.
I tested it  on windows by adding it into the code in stream.py line12901 but afterwards it failed on
https://github.com/geomagpy/magpy/blob/ae91462f1644ebf89fbe570ce1cf67d1d89eb926/magpy/lib/format_imf.py#L1745-L1750
also because of the %b . If you prefer that everything gets cleaned up I porpose that I checkout the origin/gui-fixes branch and eliminate/test all usages of the %b., Although the prerequisite and forcing it into en_US will solve the problems as well.

I tested it in windows and it seems to work. For the moment this method is independent of the locale and I hope that it will stay like that however we should check it every change of python version.
You should replace all occurences of old_locale it is in stream.py but also in magpy_gui on different places
https://github.com/geomagpy/magpy/blob/6a560b1cf7b9a0a76604250cbdb3ccf3aa2595a9/magpy/gui/magpy_gui.py#L3351-L3361
and also in format_imf.py ( on different places)
https://github.com/geomagpy/magpy/blob/6a560b1cf7b9a0a76604250cbdb3ccf3aa2595a9/magpy/lib/format_imf.py#L3157-L3160
it was already known but put as comment
https://github.com/geomagpy/magpy/blob/6a560b1cf7b9a0a76604250cbdb3ccf3aa2595a9/magpy/lib/format_imf.py#L3184-L3189
It is however better to not put dayfirst=True because the day isn't first in this pattern.
I read the doc but they never promised that it will rest independent of the locale

I have changed all occurrences of locale accordingly (1d95cc3457240a304d070b4e620476960c7f98de) and also added a test environment into travis CI.


Refactor ExecutionWorker

A little more clarity in preparation for multiple executors.

LGTM, 3 comments to be potentatially addressed in following PR


Shamir

It is now passing all tests, and, I think, ready to merge.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

422 of 450 (93.78%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 92.304%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cicada/shamir.py
422
450
93.78%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
1727

Relevant Lines:
1871

💛  - Coveralls


FileUpload: Fix code documentation of IReadOnlyCollection to supported IReadOnlyList

Description
The MudFileUpload component mentions the use of IBrowserFile and IReadOnlyCollection<IBrowserFile> as supported generic types in multiple places, although there is a type check that only allows IBrowserFile and IReadOnlyList<IBrowserFile> in the component. The code documentation has therefore been changed to also use IReadOnlyList<IBrowserFile>.
How Has This Been Tested?
None
Type of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation (fix or improvement to the website or code docs)

Checklist

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[ ] I've added relevant tests.

FYI: @igotinfected @Mr-Technician


Update CONTRIBUTING.md

Made changes to the contributors WIKI file. No changes to code.

Coverage remained the same at 85.391% when pulling bc66443fa7e89c2bd5f625a5b9bd3d17d8d68e49 on docs-changes into bb17033633402ea9e6fb3671b3d428d886688942 on master.

Because it's just changed text and tests pass, I'll merge it without review.


[FEATURE] Move already downloaded files to new folder

Whats the problem
If you choose a new download folder in the setting tab the already downloaded files will be in the old folder. They should be moved to the new location.
How to solve it
There needs to be another command before the current one which will move the files to the new location. Use the MultiCommand as a wrapper around it to accomplish this.

Additional hints
The folder content should be moved after pressing the Save button. To do so the 'SaveSettingCommand' on the 'SettingsViewModel' need to be extended with an additional command. The additional should move the files if needed.

Additional hints
The folder content should be moved after pressing the Save button. To do so the 'SaveSettingCommand' on the 'SettingsViewModel' need to be extended with an additional command. The additional should move the files if needed.

Waiting for feedback


consolidation stuck in provision/deprovision loop with overprovisioning pod (pod with negative priority)

Description
We use a deployment of pause pods with a negative priority in conjunction with the cluster proportional autoscaler's ladder strategy to maintain some warm nodes in the cluster. Yesterday evening karpenter got stuck in a loop of constantly provisioning then deprovisioning a node to handle a pending overprovisioner pod.

Observed Behavior:
The cluster proportional autoscaler adds a replica to the overprovisioner deployment. I0816 19:08:40.370457       1 k8sclient.go:274] Replicas are not as expected : updating replicas from 2 to 3. The new pod that gets created is stuck in a pending stuck, sometimes for more than 30 minutes.
Karpenter adds a new node to handle the pending pod
karpenter-787f66d8f6-xwqcl controller 2023-08-17T16:16:21.601Z	INFO	controller.provisioner	created machine	{"commit": "34d50bf-dirty", "provisioner": "client-code-isolation", "requests": {"cpu":"15880m","memory":"44632Mi","pods":"13"}, "instance-types": "c5.9xlarge, c5a.8xlarge, c5d.9xlarge, c6a.8xlarge, c6g.8xlarge and 32 other(s)"}
karpenter-787f66d8f6-xwqcl controller 2023-08-17T16:16:23.840Z	INFO	controller.machine.lifecycle	launched machine	{"commit": "34d50bf-dirty", "machine": "client-code-isolation-dbfq9", "provisioner": "client-code-isolation", "provider-id": "aws:///us-west-1a/i-096be7b66ce26d17f", "instance-type": "m6g.4xlarge", "zone": "us-west-1a", "capacity-type": "spot", "allocatable": {"cpu":"15890m","ephemeral-storage":"89Gi","memory":"57632Mi","pods":"234"}}

The node gets nominated for scheduling the pod
 Normal   Nominated         92s    karpenter          Pod should schedule on: machine/client-code-isolation-dbfq9

Karpenter consolidation then immediately deprovisions the node it just created
karpenter-787f66d8f6-xwqcl controller 2023-08-17T16:17:56.422Z	INFO	controller.deprovisioning	deprovisioning via consolidation delete, terminating 1 machines ip-10-0-133-149.us-west-1.compute.internal/m6g.4xlarge/spot	{"commit": "34d50bf-dirty"}
karpenter-787f66d8f6-xwqcl controller 2023-08-17T16:17:56.477Z	INFO	controller.termination	cordoned node	{"commit": "34d50bf-dirty", "node": "ip-10-0-133-149.us-west-1.compute.internal"}
karpenter-787f66d8f6-xwqcl controller 2023-08-17T16:17:56.782Z	INFO	controller.termination	deleted node	{"commit": "34d50bf-dirty", "node": "ip-10-0-133-149.us-west-1.compute.internal"}
karpenter-787f66d8f6-xwqcl controller 2023-08-17T16:17:57.090Z	INFO	controller.machine.termination	deleted machine	{"commit": "34d50bf-dirty", "machine": "client-code-isolation-dbfq9", "node": "ip-10-0-133-149.us-west-1.compute.internal", "provisioner": "client-code-isolation", "provider-id": "aws:///us-west-1a/i-096be7b66ce26d17f"}

As a result the overprovisioner pod is stuck in pending as it never actually starts on any of the nominated nodes.
 Normal   Nominated         7m40s  karpenter          Pod should schedule on: machine/client-code-isolation-984lz
  Normal   Nominated         5m33s  karpenter          Pod should schedule on: machine/client-code-isolation-x769g
  Normal   Nominated         3m32s  karpenter          Pod should schedule on: machine/client-code-isolation-7k4xl
  Normal   Nominated         92s    karpenter          Pod should schedule on: machine/client-code-isolation-dbfq9

Expected Behavior:
The overprovisioner pod should successfully schedule and run on a new node.
Reproduction Steps (Please include YAML):
overprovisioner manifest
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/name: overprovisioner-client-code-isolation
    app.kubernetes.io/instance: overprovisioner-client-code-isolation
  name: overprovisioning-client-code-isolation
  namespace: overprovisioner
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: overprovisioner-client-code-isolation
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app.kubernetes.io/name: overprovisioner-client-code-isolation
        app.kubernetes.io/instance: overprovisioner-client-code-isolation
    spec:
      automountServiceAccountToken: true
      containers:
      - image:<PHONE_NUMBER>52.dkr.ecr.us-west-1.amazonaws.com/eks/pause:3.1-eksbuild.1
        imagePullPolicy: Always
        name: reserve-resources
        resources:
          requests:
            cpu: "15"
            memory: 40Gi
      dnsPolicy: ClusterFirst
      priorityClassName: overprovisioning
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      nodeSelector:
        role: client-code-isolation
      tolerations:
        - key: role
          value: client-code-isolation
          operator: Equal
          effect: NoSchedule

the priority class
apiVersion: scheduling.k8s.io/v1
description: Priority class used by overprovisioning.
kind: PriorityClass
metadata:
  name: overprovisioning
value: -1

cluster proportional autoscaler config
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: overprovisioner-client-code-iso-autoscaler
  namespace: flux-system
spec:
  chart:
    spec:
      chart: cluster-proportional-autoscaler
      reconcileStrategy: ChartVersion
      sourceRef:
        kind: HelmRepository
        name: cluster-proportional-autoscaler
      version: 1.0.1
  install:
    createNamespace: true
    crds: CreateReplace
  upgrade:
    crds: CreateReplace
    remediation:
      retries: 1
  interval: 10m0s
  releaseName: overprovisioner-client-code-iso-autoscaler
  targetNamespace: overprovisioner
  storageNamespace: overprovisioner
  values:
    image:
      repository: registry.k8s.io/cpa/cluster-proportional-autoscaler
      tag: 1.8.6
    resources:
      requests:
        memory: 25Mi
        cpu: 25m
      limits:
        memory: 50Mi
    options:
      namespace: overprovisioner
      target: deployment/overprovisioning-client-code-isolation
      nodeLabels:
        role: client-code-isolation
    config:
      ladder:
        nodesToReplicas:
        - [5, 4]
        - [10, 3]
        - [30, 2]
        - [40, 1]

The karpenter provisioner spec for these nodes
apiVersion: karpenter.sh/v1alpha5
kind: Provisioner
metadata:
  name: client-code-isolation
spec:
  labels:
    role: client-code-isolation
  taints:
    - key: role
      value: client-code-isolation
      effect: NoSchedule
  requirements:
    - key: karpenter.sh/capacity-type
      operator: In
      values: ["spot", "on-demand"]
    - key: "kubernetes.io/arch"
      operator: In
      values: ["arm64", "amd64"]
    - key: "topology.kubernetes.io/zone"
      operator: In
      values: [ "us-west-1a"]
    - key: karpenter.k8s.aws/instance-family
      operator: In
      values:
      - c5
      - c5d
      - c5a
      - c5ad
      - c6
      - c6a
      - c6i
      - c6id
      - c6g
      - c6gd
      - c7g
      - m5
      - m5d
      - m5a
      - m5ad
      - m6a
      - m6i
      - m6id
      - m6g
      - m6gd
      - m7g
      - r5
      - r5d
      - r5a
      - r5ad
      - r6a
      - r6i
      - r6id
      - r6g
      - r6gd
      - r7g
    - key: karpenter.k8s.aws/instance-size
      operator: NotIn
      values:
      - nano
      - micro
      - small
      - medium
      - large
      - xlarge
      - 2xlarge
      - 12xlarge
      - 16xlarge
      - 18xlarge
      - 24xlarge
      - 32xlarge
      - 48xlarge
      - metal
  limits:
    resources:
      cpu: "4800"
      memory: 20Ti
  providerRef:
    name: bottlerocket
  consolidation:
    enabled: true
  ttlSecondsUntilExpired: 1209600 # 14 days

Versions:

Chart Version: 0.29.2
Kubernetes Version (kubectl version):  AWS EKS 1.26.7

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Do you have the full logs when this occurred with the list of nodes?
It looks like the node the pod was supposed to schedule to was launched at 16:16:23Z and it was consolidated at 16:17:56Z which should have left the node enough time (93s) to bootstrap and for the pod to go running. It looks like the node did have enough allocatable resources to accommodate the pod.
What other DaemonSets are you running? What resources do they request?
Pod that should have scheduled:
CPU 15,000
Mem 40Gi
Node Allocatable:
CPU 15,890m
Mem: 56.28125Gi

I'm looking at one of the pods involved with the flapping node now and I see a discrepancy in allocatable CPU between the k8s node object and the karpenter machine object that may be the cause.
pod is overprovisioning-client-code-isolation-66bbc5f75b-4wkk5
  Normal   Nominated         33m                   karpenter          Pod should schedule on: machine/client-code-isolation-2gm2q
  Normal   Nominated         31m                   karpenter          Pod should schedule on: machine/client-code-isolation-gppn6
  Normal   Nominated         29m                   karpenter          Pod should schedule on: machine/client-code-isolation-gp4gr
  Normal   Nominated         27m                   karpenter          Pod should schedule on: machine/client-code-isolation-qtkbg
  Warning  FailedScheduling  23m (x15 over 27m)    default-scheduler  0/57 nodes are available: 1 Insufficient memory, 2 node(s) had untolerated taint {availability-zone: us-west-2b}, 2 node(s) had untolerated taint {role: pilot-light}, 22 Insufficient cpu, 26 node(s) didn't match Pod's node affinity/selector, 5 node(s) had untolerated taint {role: workers}. preemption: 0/57 nodes are available: 22 No preemption victims found for incoming pod, 35 Preemption is not helpful for scheduling..
  Warning  FailedScheduling  18m (x13 over 21m)    default-scheduler  0/59 nodes are available: 2 node(s) had untolerated taint {availability-zone: us-west-2b}, 2 node(s) had untolerated taint {role: pilot-light}, 24 Insufficient cpu, 26 node(s) didn't match Pod's node affinity/selector, 3 Insufficient memory, 5 node(s) had untolerated taint {role: workers}. preemption: 0/59 nodes are available: 24 No preemption victims found for incoming pod, 35 Preemption is not helpful for scheduling..
  Warning  FailedScheduling  13m (x3 over 31m)     default-scheduler  0/59 nodes are available: 1 Insufficient memory, 1 node(s) had untolerated taint {node.kubernetes.io/not-ready: }, 2 node(s) had untolerated taint {availability-zone: us-west-2b}, 2 node(s) had untolerated taint {role: pilot-light}, 23 Insufficient cpu, 26 node(s) didn't match Pod's node affinity/selector, 5 node(s) had untolerated taint {role: workers}. preemption: 0/59 nodes are available: 23 No preemption victims found for incoming pod, 36 Preemption is not helpful for scheduling..
  Warning  FailedScheduling  8m22s (x37 over 34m)  default-scheduler  (combined from similar events): 0/59 nodes are available: 2 node(s) had untolerated taint {availability-zone: us-west-2b}, 2 node(s) had untolerated taint {role: pilot-light}, 24 Insufficient cpu, 26 node(s) didn't match Pod's node affinity/selector, 3 Insufficient memory, 5 node(s) had untolerated taint {role: workers}. preemption: 0/59 nodes are available: 24 No preemption victims found for incoming pod, 35 Preemption is not helpful for scheduling..
  Warning  FailedScheduling  3m25s (x3 over 5m6s)  default-scheduler  0/60 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/not-ready: }, 2 node(s) had untolerated taint {availability-zone: us-west-2b}, 2 node(s) had untolerated taint {role: pilot-light}, 23 Insufficient cpu, 27 node(s) didn't match Pod's node affinity/selector, 3 Insufficient memory, 5 node(s) had untolerated taint {role: workers}. preemption: 0/60 nodes are available: 23 No preemption victims found for incoming pod, 37 Preemption is not helpful for scheduling..
  Normal   Nominated         25s (x13 over 24m)    karpenter          (combined from similar events): Pod should schedule on: machine/client-code-isolation-mzwsg

Karpenter provisions a machine
karpenter-5b476d9cc4-dxlr6 controller 2023-08-18T15:57:16.101Z	INFO	controller.machine.lifecycle	launched machine	{"commit": "34d50bf-dirty", "machine": "client-code-isolation-mzwsg", "provisioner": "client-code-isolation", "provider-id": "aws:///us-west-2a/i-037515f8de0a97bc4", "instance-type": "m6g.4xlarge", "zone": "us-west-2a", "capacity-type": "spot", "allocatable": {"cpu":"15890m","ephemeral-storage":"89Gi","memory":"57632Mi","pods":"234"}}
karpenter-5b476d9cc4-dxlr6 controller 2023-08-18T15:58:41.803Z	INFO	controller.deprovisioning	deprovisioning via consolidation delete, terminating 5 machines ip-10-1-219-238.us-west-2.compute.internal/m6g.4xlarge/spot, ip-10-1-1-66.us-west-2.compute.internal/m6g.2xlarge/on-demand, ip-10-1-28-113.us-west-2.compute.internal/m6g.2xlarge/on-demand, ip-10-1-6-59.us-west-2.compute.internal/m6g.4xlarge/spot, ip-10-1-201-180.us-west-2.compute.internal/m6g.4xlarge/spot	{"commit": "34d50bf-dirty"}
karpenter-5b476d9cc4-dxlr6 controller 2023-08-18T15:58:41.862Z	INFO	controller.termination	cordoned node	{"commit": "34d50bf-dirty", "node": "ip-10-1-219-238.us-west-2.compute.internal"}
karpenter-5b476d9cc4-dxlr6 controller 2023-08-18T15:58:42.390Z	INFO	controller.termination	deleted node	{"commit": "34d50bf-dirty", "node": "ip-10-1-219-238.us-west-2.compute.internal"}
karpenter-5b476d9cc4-dxlr6 controller 2023-08-18T15:58:42.766Z	INFO	controller.machine.termination	deleted machine	{"commit": "34d50bf-dirty", "machine": "client-code-isolation-mzwsg", "node": "ip-10-1-219-238.us-west-2.compute.internal", "provisioner": "client-code-isolation", "provider-id": "aws:///us-west-2a/i-037515f8de0a97bc4"}

Notice that karpenter displays the  allocatable CPU as 15890m. When I describe the karpenter machine object, it also displays the allocatable CPU as 15890m. When I describe the node however, it displays the node allocatable CPU as 15790m. As a result the pod never starts on the node. Karpenter consolidation removes the node and creates a new one for pending pod and thus the loop begins. The question is, why is there a discrepancy between allocatable CPU in karpenter's view and the node's view after the kubelet starts?
Name:         client-code-isolation-mzwsg
Namespace:
Labels:       karpenter.k8s.aws/instance-category=m
              karpenter.k8s.aws/instance-cpu=16
              karpenter.k8s.aws/instance-encryption-in-transit-supported=false
              karpenter.k8s.aws/instance-family=m6g
              karpenter.k8s.aws/instance-generation=6
              karpenter.k8s.aws/instance-hypervisor=nitro
              karpenter.k8s.aws/instance-memory=65536
              karpenter.k8s.aws/instance-network-bandwidth=5000
              karpenter.k8s.aws/instance-pods=234
              karpenter.k8s.aws/instance-size=4xlarge
              karpenter.sh/capacity-type=spot
              karpenter.sh/provisioner-name=client-code-isolation
              kubernetes.io/arch=arm64
              kubernetes.io/os=linux
              node.kubernetes.io/instance-type=m6g.4xlarge
              role=client-code-isolation
              topology.kubernetes.io/region=us-west-2
              topology.kubernetes.io/zone=us-west-2a
Annotations:  karpenter.sh/managed-by: prd-usw2a
API Version:  karpenter.sh/v1alpha5
Kind:         Machine
Metadata:
  Creation Timestamp:  2023-08-18T15:57:14Z
  Finalizers:
    karpenter.sh/termination
  Generate Name:  client-code-isolation-
  Generation:     1
  Owner References:
    API Version:           karpenter.sh/v1alpha5
    Block Owner Deletion:  true
    Kind:                  Provisioner
    Name:                  client-code-isolation
    UID:                   6a7012e8-5b3f-4d9b-bec1-dc4b047aa720
  Resource Version:<PHONE_NUMBER>
  UID:                     6b6ca9bf-704a-4b65-8c08-6604071dfe65
Spec:
  Machine Template Ref:
    Name:  bottlerocket
  Requirements:
    Key:       karpenter.k8s.aws/instance-family
    Operator:  In
    Values:
      c5
      c5a
      c5ad
      c5d
      c6
      c6a
      c6g
      c6gd
      c6i
      c6id
      c7g
      m5
      m5a
      m5ad
      m5d
      m6a
      m6g
      m6gd
      m6i
      m6id
      m7g
      r5
      r5a
      r5ad
      r5d
      r6a
      r6g
      r6gd
      r6i
      r6id
      r7g
    Key:       karpenter.sh/provisioner-name
    Operator:  In
    Values:
      client-code-isolation
    Key:       karpenter.k8s.aws/instance-size
    Operator:  NotIn
    Values:
      16xlarge
      18xlarge
      24xlarge
      2xlarge
      32xlarge
      48xlarge
      large
      medium
      metal
      micro
      nano
      small
      xlarge
    Key:       karpenter.sh/capacity-type
    Operator:  In
    Values:
      on-demand
      spot
    Key:       topology.kubernetes.io/zone
    Operator:  In
    Values:
      us-west-2a
    Key:       role
    Operator:  In
    Values:
      client-code-isolation
    Key:       kubernetes.io/os
    Operator:  In
    Values:
      linux
    Key:       kubernetes.io/arch
    Operator:  In
    Values:
      amd64
      arm64
    Key:       node.kubernetes.io/instance-type
    Operator:  In
    Values:
      c5.12xlarge
      c5.9xlarge
      c5a.12xlarge
      c5a.8xlarge
      c5ad.12xlarge
      c5ad.8xlarge
      c5d.12xlarge
      c5d.9xlarge
      c6a.12xlarge
      c6a.8xlarge
      c6g.12xlarge
      c6g.8xlarge
      c6gd.12xlarge
      c6gd.8xlarge
      c6i.12xlarge
      c6i.8xlarge
      c6id.12xlarge
      c6id.8xlarge
      c7g.12xlarge
      c7g.8xlarge
      m5.12xlarge
      m5.4xlarge
      m5.8xlarge
      m5a.12xlarge
      m5a.4xlarge
      m5a.8xlarge
      m5ad.12xlarge
      m5ad.4xlarge
      m5ad.8xlarge
      m5d.12xlarge
      m5d.4xlarge
      m5d.8xlarge
      m6a.12xlarge
      m6a.4xlarge
      m6a.8xlarge
      m6g.12xlarge
      m6g.4xlarge
      m6g.8xlarge
      m6gd.12xlarge
      m6gd.4xlarge
      m6gd.8xlarge
      m6i.12xlarge
      m6i.4xlarge
      m6i.8xlarge
      m6id.12xlarge
      m6id.4xlarge
      m6id.8xlarge
      m7g.12xlarge
      m7g.4xlarge
      m7g.8xlarge
      r5.12xlarge
      r5.4xlarge
      r5.8xlarge
      r5a.12xlarge
      r5a.4xlarge
      r5a.8xlarge
      r5ad.12xlarge
      r5ad.4xlarge
      r5ad.8xlarge
      r5d.12xlarge
      r5d.4xlarge
      r5d.8xlarge
      r6a.12xlarge
      r6a.4xlarge
      r6a.8xlarge
      r6g.12xlarge
      r6g.4xlarge
      r6g.8xlarge
      r6gd.12xlarge
      r6gd.4xlarge
      r6gd.8xlarge
      r6i.12xlarge
      r6i.4xlarge
      r6i.8xlarge
      r6id.12xlarge
      r6id.4xlarge
      r6id.8xlarge
      r7g.12xlarge
      r7g.4xlarge
      r7g.8xlarge
  Resources:
    Requests:
      Cpu:     15880m
      Memory:  44682Mi
      Pods:    13
  Taints:
    Effect:  NoSchedule
    Key:     role
    Value:   client-code-isolation
Status:
  Allocatable:
    Cpu:                  15890m
    Ephemeral - Storage:  89Gi
    Memory:               57632Mi
    Pods:                 234
  Capacity:
    Cpu:                  16
    Ephemeral - Storage:  100Gi
    Memory:               60561Mi
    Pods:                 234
  Conditions:
    Last Transition Time:  2023-08-18T15:57:58Z
    Status:                True
    Type:                  MachineInitialized
    Last Transition Time:  2023-08-18T15:57:16Z
    Status:                True
    Type:                  MachineLaunched
    Last Transition Time:  2023-08-18T15:57:44Z
    Status:                True
    Type:                  MachineRegistered
    Last Transition Time:  2023-08-18T15:57:58Z
    Status:                True
    Type:                  Ready
  Node Name:               ip-10-1-219-238.us-west-2.compute.internal
  Provider ID:             aws:///us-west-2a/i-037515f8de0a97bc4
Events:                    <none>

Name:               ip-10-1-219-238.us-west-2.compute.internal
Roles:              <none>
Labels:             beta.kubernetes.io/arch=arm64
                    beta.kubernetes.io/instance-type=m6g.4xlarge
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=us-west-2
                    failure-domain.beta.kubernetes.io/zone=us-west-2a
                    k8s.io/cloud-provider-aws=dec6a35e7a2754b20a51adffa2903a76
                    karpenter.k8s.aws/instance-category=m
                    karpenter.k8s.aws/instance-cpu=16
                    karpenter.k8s.aws/instance-encryption-in-transit-supported=false
                    karpenter.k8s.aws/instance-family=m6g
                    karpenter.k8s.aws/instance-generation=6
                    karpenter.k8s.aws/instance-hypervisor=nitro
                    karpenter.k8s.aws/instance-memory=65536
                    karpenter.k8s.aws/instance-network-bandwidth=5000
                    karpenter.k8s.aws/instance-pods=234
                    karpenter.k8s.aws/instance-size=4xlarge
                    karpenter.sh/capacity-type=spot
                    karpenter.sh/initialized=true
                    karpenter.sh/provisioner-name=client-code-isolation
                    karpenter.sh/registered=true
                    kubernetes.io/arch=arm64
                    kubernetes.io/hostname=ip-10-1-219-238.us-west-2.compute.internal
                    kubernetes.io/os=linux
                    node.kubernetes.io/instance-type=m6g.4xlarge
                    role=client-code-isolation
                    topology.ebs.csi.aws.com/zone=us-west-2a
                    topology.kubernetes.io/region=us-west-2
                    topology.kubernetes.io/zone=us-west-2a
Annotations:        alpha.kubernetes.io/provided-node-ip: <IP_ADDRESS>
                    csi.volume.kubernetes.io/nodeid:
                      {"ebs.csi.aws.com":"i-037515f8de0a97bc4","secrets-store.csi.k8s.io":"ip-10-1-219-238.us-west-2.compute.internal"}
                    karpenter.sh/managed-by: prd-usw2a
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Fri, 18 Aug 2023 08:57:44 -0700
Taints:             role=client-code-isolation:NoSchedule
Unschedulable:      false
Lease:              Failed to get lease: leases.coordination.k8s.io "ip-10-1-219-238.us-west-2.compute.internal" not found
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Fri, 18 Aug 2023 08:58:14 -0700   Fri, 18 Aug 2023 08:57:44 -0700   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Fri, 18 Aug 2023 08:58:14 -0700   Fri, 18 Aug 2023 08:57:44 -0700   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Fri, 18 Aug 2023 08:58:14 -0700   Fri, 18 Aug 2023 08:57:44 -0700   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Fri, 18 Aug 2023 08:58:14 -0700   Fri, 18 Aug 2023 08:57:57 -0700   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:   <IP_ADDRESS>
  InternalDNS:  ip-10-1-219-238.us-west-2.compute.internal
  Hostname:     ip-10-1-219-238.us-west-2.compute.internal
Capacity:
  cpu:                16
  ephemeral-storage:  103189828Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  hugepages-32Mi:     0
  hugepages-64Ki:     0
  memory:             64400336Ki
  pods:               234
Allocatable:
  cpu:                15790m
  ephemeral-storage:<PHONE_NUMBER>4
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  hugepages-32Mi:     0
  hugepages-64Ki:     0
  memory:             58973136Ki
  pods:               234
System Info:
  Machine ID:                 ec2815de8413128023d05a8b91438d4e
  System UUID:                ec2815de-8413-1280-23d0-5a8b91438d4e
  Boot ID:                    d6a0adeb-24de-49bc-b955-facaf9034852
  Kernel Version:             5.15.117
  OS Image:                   Bottlerocket OS 1.14.3 (aws-k8s-1.26)
  Operating System:           linux
  Architecture:               arm64
  Container Runtime Version:  containerd://1.6.20+bottlerocket
  Kubelet Version:            v1.26.6-eks-3316523
  Kube-Proxy Version:         v1.26.6-eks-3316523
ProviderID:                   aws:///us-west-2a/i-037515f8de0a97bc4
Non-terminated Pods:          (12 in total)
  Namespace                   Name                                                  CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                                                  ------------  ----------  ---------------  -------------  ---
  buoyant-cloud               buoyant-cloud-metrics-8jqzf                           110m (0%)     1 (6%)      1500Mi (2%)      2Gi (3%)       58s
  consul                      consul-client-qfdz5                                   80m (0%)      0 (0%)      150Mi (0%)       200Mi (0%)     58s
  datadog                     datadog-65lxr                                         100m (0%)     0 (0%)      250Mi (0%)       300Mi (0%)     58s
  fluentd                     fluent-bit-kk9g5                                      100m (0%)     0 (0%)      700Mi (1%)       1000Mi (1%)    58s
  kube-system                 aws-node-tcs6d                                        25m (0%)      0 (0%)      0 (0%)           0 (0%)         58s
  kube-system                 ebs-csi-node-72nlz                                    30m (0%)      0 (0%)      120Mi (0%)       768Mi (1%)     58s
  kube-system                 kube-proxy-vsx9q                                      100m (0%)     0 (0%)      0 (0%)           0 (0%)         58s
  kube-system                 node-local-dns-sz4xs                                  25m (0%)      0 (0%)      50Mi (0%)        0 (0%)         58s
  lacework                    lacework-agent-jn5zh                                  200m (1%)     500m (3%)   512Mi (0%)       1450Mi (2%)    58s
  monitoring                  prometheus-operator-prometheus-node-exporter-tdjkj    50m (0%)      500m (3%)   100Mi (0%)       100Mi (0%)     58s
  secrets-store-csi-driver    secrets-store-csi-driver-b9xfw                        40m (0%)      400m (2%)   290Mi (0%)       450Mi (0%)     58s
  vault                       vault-k8s-csi-provider-qjjcm                          20m (0%)      0 (0%)      50Mi (0%)        512Mi (0%)     58s
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests     Limits
  --------           --------     ------
  cpu                880m (5%)    2400m (15%)
  memory             3722Mi (6%)  6828Mi (11%)
  ephemeral-storage  0 (0%)       0 (0%)
  hugepages-1Gi      0 (0%)       0 (0%)
  hugepages-2Mi      0 (0%)       0 (0%)
  hugepages-32Mi     0 (0%)       0 (0%)
  hugepages-64Ki     0 (0%)       0 (0%)
Events:
  Type     Reason                   Age                From                   Message
  ----     ------                   ----               ----                   -------
  Normal   Starting                 54s                kube-proxy
  Normal   Synced                   58s                cloud-node-controller  Node synced successfully
  Normal   Starting                 58s                kubelet                Starting kubelet.
  Warning  InvalidDiskCapacity      58s                kubelet                invalid capacity 0 on image filesystem
  Normal   NodeHasSufficientMemory  58s (x2 over 58s)  kubelet                Node ip-10-1-219-238.us-west-2.compute.internal status is now: NodeHasSufficientMemory
  Normal   NodeHasNoDiskPressure    58s (x2 over 58s)  kubelet                Node ip-10-1-219-238.us-west-2.compute.internal status is now: NodeHasNoDiskPressure
  Normal   NodeHasSufficientPID     58s (x2 over 58s)  kubelet                Node ip-10-1-219-238.us-west-2.compute.internal status is now: NodeHasSufficientPID
  Normal   NodeAllocatableEnforced  58s                kubelet                Updated Node Allocatable limit across pods
  Normal   RegisteredNode           57s                node-controller        Node ip-10-1-219-238.us-west-2.compute.internal event: Registered Node ip-10-1-219-238.us-west-2.compute.internal in Controller
  Normal   NodeReady                45s                kubelet                Node ip-10-1-219-238.us-west-2.compute.internal status is now: NodeReady

Here is our node template for reference
apiVersion: karpenter.k8s.aws/v1alpha1
kind: AWSNodeTemplate
metadata:
  name: cordial-bottlerocket
spec:
  amiFamily: Bottlerocket
  metadataOptions:
    httpEndpoint: enabled
    httpPutResponseHopLimit: 2 # required for imdsv2 to work in containers
    httpTokens: optional
  subnetSelector:
    subnet_role: eks
    Tier: private
  securityGroupSelector:
    aws-ids: ${cluster_security_group_id},${worker_security_group_id},${consul_client_sg_id}
  tags:
    karpenter.sh/discovery: ${cluster_name}
  blockDeviceMappings:
    # root device for bottlerocket is small and immutable
    - deviceName: /dev/xvda
      ebs:
        volumeSize: 2Gi
        volumeType: gp3
        encrypted: true
        kmsKeyID: "${aws_ebs_kms_key_arn}"
        deleteOnTermination: true
        throughput: 125
    # this voluem is used for container data
    - deviceName: /dev/xvdb
      ebs:
        volumeSize: 100Gi
        volumeType: gp3
        encrypted: true
        kmsKeyID: "${aws_ebs_kms_key_arn}"
        deleteOnTermination: true
        throughput: 125
  userData: |
    [settings.metrics]
    send-metrics = false
    [settings.bootstrap-containers.setup-runtime-storage]
    source = "redacted.dkr.ecr.us-west-2.amazonaws.com/cordial/bottlerocket-instance-store-bootstrap:main-597227bd"
    mode = "always"
    essential = false
    [settings.kubernetes]
    event-qps = 50
    event-burst = 100
    registry-qps = 100
    registry-burst = 200
    kube-api-qps = 50
    kube-api-burst = 100
    allowed-unsafe-sysctls = ["net.core.somaxconn", "net.ipv4.tcp_*", "net.ipv4.ip_local_reserved_ports"]
    shutdown-grace-period = "30s"
    shutdown-grace-period-for-critical-pods = "10s"
    [settings.kernel.sysctl]
    "kernel.yama.ptrace_scope" = "0"
    [settings.kubernetes.kube-reserved]
    cpu = "200m"
    memory = "5000Mi"
    [settings.kubernetes.system-reserved]
    cpu = "10m"
    memory = "200Mi"

Making progress here. I just confirmed the default value for system reserved cpu is 100m. We have the set in the bottlerocket settings to 200m. Karpenter is only aware of the setting in the provisioner definition and launches the node based on that. When the kubelet starts it reserves more system cpu then Karpenter was aware and explains the discrepancy.
I am going to move those settings in the provisioner template and remove them from the bottlerocket kubernetes settings and I believe that will resolve the issues. I'll confirm after making the change.

Awesome! 👍

I can confirm this fixed the issue. Settings for kubelet and system reserved resources need to be set in the provisioner spec and not the nodetemplate userdata in order for karpenter to properly account for them.


Count file from Cogent' test_data folder

Hi, I am trying to collapse redundant sequences for a set of full-length transcripts (that has a pretty crappy genome). I decided to use Cogent to collapse the redundant isoforms de novo. But before I use it on my transcripts, I  tried running Cogent using the provided test data. Can you please tell me where test_human.weights file originates from? How do I create similar count file  for my own data? Thanks.

Hi @rrim,
The .weights file is optional. It should contain some count or weighted evidence information about each sequence. For example, it could be the number of full-length reads that support this sequence.
If weight file is not given, a fake weight file where every sequence has a weight of 1 will be created.

Hi @rrim ,
When you run the test fasta without weights, the scripts will automatically generate in.weights for you.
For example:
$ mkdir test
$ cd test/
$ cp <path_to>/test_human.fa .
$ run_mash.py -k 30 --cpus=12 test_human.fa
$ process_kmer_to_graph.py test_human.fa test_human.fa.s1000k30.dist test_human/ human
$ tree test_human/

test_human
├── human_0
│   ├── in.fa
│   └── in.weights
└── human_2
    ├── in.fa
    └── in.weights

Also, please note I've recently updated Cogent to work exclusively with minimap2 and removed all usages of GMAP. This is now Cogent v3.1. I've also just updated the wiki to update the run parameters for the scripts.
--Liz

Hi,
I was trying to update COgent to its current version (Cogent 3.1). The installation went on smoothly (as per tutorial). All related scripts were located in my dedicated anaCogent python 2.7 virualenv. All dependencies (minimap2, cDNA_cupcake and Mash were also installed successfully previously). All necessary path variables were already specified.  However, when I entered run_mash.py --version command, I got the following error:
Traceback (most recent call last):   File "/mnt/shared/scratch/synology/ab42303/apps/conda/envs/anaCogent/bin/run_mash.py", line 4, in <module>     __import__('pkg_resources').run_script('Cogent==3.1', 'run_mash.py')   File "/home/ab42303/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 739, in run_script     self.require(requires)[0].run_script(script_name, ns)   File "/home/ab42303/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1486, in run_script     raise ResolutionError("No script named %r" % script_name) pkg_resources.ResolutionError: No script named 'run_mash.py'
Can you please advice what went wrong here? Thanks.

Hi @rrim ,
Can you make sure there are no older versions of Cogent in the anaCogent env?
You can check via:
$ ls /mnt/shared/scratch/synology/ab42303/apps/conda/envs/anaCogent/lib/python2.7/site-packages/Cogent*

You will want to remove any Cogent install that isn't Cogent-3.1-py2.7.egg.
The import message is also strange. It should be importing from the anaCogent env as below:
>>> __import__('pkg_resources')
<module 'pkg_resources' from '/mnt/shared/scratch/synology/ab42303/apps/conda/envs/anaCogent/lib/python2.7/site-packages/setuptools-27.2.0-py2.7.egg/pkg_resources/__init__.py'>

But instead your err msg shows the import is coming from /home/ab42303/.local/lib/python2.7/site-packages/pkg_resources/.


How do I enable signature support expiration time?

Hey @MunMunMiao!
The expires option is probably what you're looking for.

Hey @MunMunMiao!
The expires option is probably what you're looking for.

nice, thanks you😀


feat/refactor: Executor

PULL REQUEST
Overview
This PR implements the Executor class.
This class is meant to defer the command and listener execution logic to a separate object. Executor will execute command and listeners and emit events via AxonClient according to the execution result
Status

[X] Typings have been updated or don't need to be.
[X] This PR have been tested and is ready to be merged.

Semantic versioning classification

[ ] This PR introduces BREAKING changes.
[X] This PR adds new features, improve the code and implies minimal changes.
[ ] This PR fixes a bug and references the relevant issue or documentation.
[X] This PR improve performance or code refactor without API changes.
[ ] This PR only includes non-code changes (documentation, CI, tools...).

No ESM export for Executor?

Will add Executor to exports + resolve this tomorrow

Review bacported in e1285fe3e7c29f6cda0ca3adf0c3f07589d2c217


Allow adding themes

Is your feature request related to a problem? Please describe.
Currently there is no sane way to add themes. Please provide a way to add color themes.
Describe the solution you'd like
I would like some class to call like this:
Themes.add_theme("jans_theme", my_theme)

Describe alternatives you've considered
Currently I can only use this hack:
from asciimatics.widgets import Frame, Layout, Text, Label, _split_text, _THEMES
        _THEMES["jans_theme"] = defaultdict(
        lambda: (Screen.COLOUR_WHITE, Screen.A_NORMAL, Screen.COLOUR_BLACK),
        {
            "invalid": (Screen.COLOUR_BLACK, Screen.A_NORMAL, Screen.COLOUR_RED),
            "label": (Screen.COLOUR_WHITE, Screen.A_NORMAL, Screen.COLOUR_BLACK),
            "title": (Screen.COLOUR_WHITE, Screen.A_NORMAL, Screen.COLOUR_RED),
            "selected_focus_field": (Screen.COLOUR_WHITE, Screen.A_BOLD, Screen.COLOUR_BLACK),
            "focus_edit_text": (Screen.COLOUR_WHITE, Screen.A_BOLD, Screen.COLOUR_BLACK),
            "focus_button": (Screen.COLOUR_WHITE, Screen.A_BOLD, Screen.COLOUR_BLACK),
            "selected_focus_control": (Screen.COLOUR_WHITE, Screen.A_BOLD, Screen.COLOUR_BLACK),
            "disabled": (Screen.COLOUR_BLACK, Screen.A_BOLD, Screen.COLOUR_BLACK),
        })

Additional context
Please also raise an error when using set_theme on a Frame for a theme which does not exist.

I'm not sure I need a separate class.  All we need is a dictionary of palettes that developers can update.  My gut reaction is therefore just to expose the existing dict as THEMES instead (and formally document it as a supported object).
Is there anything else you need that would warrant the separate class instead?

As long as it is an official API I'm fine with that.


Responses > 2s may see torn Date header values

If date header bytes set but request tasks longer than 2s (or multiples of 2s) it may catch the underlying byte date being updated.
Low probability as it will occur on 2s beats for under 1μs but still possible

Resolved by #810

Can you explain this a little more? I'm not quite following. Isn't the date header value bytes marked volatile and read/written to as such?

The latency between the date bytes header being set and being copied to the "wire" may mean that the byte buffer may have transitioned to non active and then be updated. So it could be being updated at the same time it is being copied.

Oh this code has changed a little since last I looked.

Don't think its huge


Update expressworks challenge description

Challenge http://www.freecodecamp.com/challenges/waypoint-build-web-apps-with-expressjs has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Steps 18 & 19 on this way point:
"session & cookie" and JSON Me are not in the current expressworks steps.
I'd recommend updating the description to simply have the student complete all the steps.  PARAM PAM PAM for example, seems like a very useful exercise for the basejumps, but it's not included in the way point steps.

@CharlesMilam thanks for posting this issue!
I'm closing this issue as a duplicate of https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2603. You can continue further discussion there.

Please review the Guidelines for Contributing, thank you!.


Fix missing threadPoolSize param in TransactionalOutboxBuilder.build

Allowed for missing thread-pool parameter to not break backwards compatibility, even though it was not intended before.


Color picker doesn't show the correct color when selecting in the bottom-right area

Hi, first of all, thanks for this repo, great work!
I found an issue when selecting a color in the right-bottom area.
When for instance selecting a color completely on the right, it shows red as the selected color. However the color wheel image shows orange in that location, red is much lower. It seems that the color calculation doesn't quite match the color-wheel image.

The image is not perfect because the relationship between anglrs is not pure 120°, I'll create a better PNG and update it accordingly asap. Contributions are welcome.

Awesome!


[BUG] kubectl logs return "error: You must be logged in to the server (the server has asked for the client to provide credentials)"

There is an issue with AKS hybrid in which a cluster can stop returning logs. When this happens, running kubectl logs <pod_name> returns "error: You must be logged in to the server (the server has asked for the client to provide credentials)". AKS hybrid rotates core Kubernetes certificates every 4 days, but sometimes the Kubernetes API server doesn't immediately reload its client certificate for communication with kubelet when the certificates update.
Root cause
This issue is caused by this known bug in upstream Kubernetes described here:  #115
Mitigation
To mitigate the issue, there are several options:
Rerun kubectl logs. For example, run the following PowerShell command:
while (1) {kubectl logs <POD_NAME>; sleep 1}

Restart the kube-apiserver container on each of the control planes for a cluster. Restarting the API server does not impact running workloads. To restart the API server, follow these steps:
Get the IP addresses for each control plane in your cluster:
kubectl get nodes -o wide

Run the following command:
ssh -i (get-akshciconfig).Moc.sshPrivateKey clouduser@<CONTROL_PLANE_IP> 'sudo crictl stop $(sudo crictl ps --name kube-apiserver -o json | jq -r .containers[0].id)'

Optionally, but not recommended for production workloads, you can ask kube-apiserver not to verify the server certificate of the kubelet:
kubectl logs <POD_NAME> --insecure-skip-tls-verify-backend=true

This incident appeared after upgrade worker cluster kubernetes version on my cluster. This workaround worked for me.
ssh -i (get-akshciconfig).Moc.sshPrivateKey clouduser@<CONTROL_PLANE_IP> 'sudo crictl stop $(sudo crictl ps --name kube-apiserver -o json | jq -r .containers[0].id)'
Thanks.