Slow start up time for stenographer

When stenographer starts up, it tries to recover all the existing
packet/index files.  While doing so, it will call the NewIndexFile ()
function in which it tries few small reads of leveldb for initialization
and version confirmation...  And this recovery is done serially for
each thread (here)[https://github.com/google/stenographer/blob/master/env/env.go#L258-L262]
while preventing any query from stenoread.
On a system will tens of thousand files, this process could take a
non-negligible amount of time,
So, @gconnell, would like to ask if you know about the problem and
if you do any workaround to speed it up,

Hey, yew,
What you're saying sounds 100% accurate.  That said, we haven't experienced this as a bottleneck, probably since stenographer doesn't restart much, so an initial startup cost isn't noticed in our environment.  Could you define a "non-negligible amount of time"?  I do worry that we might hit our watchdog limit of 5 minutes (https://github.com/google/stenographer/blob/master/thread/thread.go#L131), which could cause a crash-loop on start.
Steno does need to know about files before it can serve requests, but maybe this could be more parallelized?  Also, does the server currently accept a request, then block until ready?  Or does it reject the request (maybe because it hasn't yet opened its port)?  We might fix it to do the former if it currently does the latter, so a request would hang but eventually succeed.
--Graeme

@gconnell thx for the reply,
it may take up to 15 minutes to finish recovery of a disk with 30K index files,
the watchdog won't timeout, since we add 1 min for each new file, see here
(https://github.com/google/stenographer/blob/master/thread/thread.go#L135)[https://github.com/google/stenographer/blob/master/thread/thread.go#L135]
also, it is not parallel, since in the env.go, we call it one by one, see here
(https://github.com/google/stenographer/blob/master/env/env.go#L258-L262)[https://github.com/google/stenographer/blob/master/env/env.go#L258-L262]
and in each call of t.SyncFiles() the thread mutex is held which prevent any
lookup on that thread.
yes, the server will still accept a request, but block until ready/or reaching the
15 minutes http handling timeout,
Thx,
Alex Wang,

Thanks for the followup, Alex.
Let me see if I can do some quick parallelization work that might speed things up... stay tuned.

@gconnell also, we hit this pretty badly since we use four spin disks,
one for storing indexfiles and three for storing packets,... @@
and even though i parallelize this part, https://github.com/google/stenographer/blob/master/env/env.go#L258-L262
we are still limited by the throughput of one spin disk...
so, would also like to know if you store indexfile and packetfile on the same disk,
or you use separate disks?
Thanks~

I've done some work in the 'syncfiles' branch which might help with this... would you be able to pull it down and take a look?  See the top three commits here:  https://github.com/google/stenographer/commits/syncfiles

@gconnell thx so much for putting up the improvement, looks good to me, two comments:

seems that we do not Reset watchdog for opening each file anymore...  so, if there are
ton of index files on one disk, we may still trigger the watchdog timeout...  from the
description of Reset(), i think it is okay to call it from multiple go routines, so maybe
we can call Reset() after passing newFileThrottle <- true...
the following code in the Lookup() also needs to be adjusted:

 	for _, file := range t.getSortedFiles() {
 		files = append(files, t.files[file])
 	}

if `Lookup()` is called during the packet/index file recovery, the
`t.files[file]` can be `nil`, so we want to guard it with `if`

Also, i'm thinking if we could also try indicating the packet/index file recovery
not finishing in the HTTP response sent to stenoread...  e.g. like using the
HTTP Warning field?

Point 1 is easily fixed, I've committed it to the branch.
M'm not sure why 2 is required?  The write to t.files in syncFilesWithDisk and trackNewFile is protected with a t.mu.Lock(), and Lookup is protected with a t.mu.RLock().  Also, I'm not seeing anywhere that t.files[x] is set to nil.
Re: HTTP response, I think the best bet is still to block incoming requests until the first sync is complete, then best-effort any future syncs.  I've committed that as well to syncfiles.

@gconnell thx for adding the watchdog reset,
for my second comment, i was wrong, i somehow confused the getSortedFiles() with
listPacketFilesOnDisk() and thought it will search for all files on disk...  so, nothing to
worry about, there,
the for taking care of the HTTP response, I'm good with that, just like the log level to be
higher,

Sounds good.  Could you run some tests on your end to make sure the startup time is in fact sane now?  If it is, I'll push this to master and you can send pull requests for any additional small stuff (changing loglevel, etc).

Sure, I'll try that today,~  and post it here asap~

@gconnell one more issue,
@@ -260,9 +265,15 @@ func (d *Env) removeOldFiles() {
 }

 func (d *Env) syncFiles() {
+       var wg sync.WaitGroup
        for _, t := range d.threads {
-               t.SyncFiles()
+               wg.Add(1)
+               go func() {
+                       t.SyncFiles()
+                       wg.Done()
+               }()
        }
+       wg.Wait()
 }

we need to do the t := t trick again, inside the for loop otherwise
it will all refer to the last element in d.threads,

https://github.com/google/stenographer/commit/9ccb527f78e1f313e1c805cf335aa15f0a37167d
On Tue, Nov 29, 2016 at 6:05 PM, alex<EMAIL_ADDRESS>wrote:

@gconnell https://github.com/gconnell one more issue,
@@ -260,9 +265,15 @@ func (d *Env) removeOldFiles() {
}
func (d *Env) syncFiles() {

  var wg sync.WaitGroup
  for _, t := range d.threads {

          t.SyncFiles()

          wg.Add(1)

          go func() {

                  t.SyncFiles()

                  wg.Done()

          }()
  }

  wg.Wait()

}
we need to do the t := t trick again, inside the for loop otherwise
it will all refer to the last element in d.threads,
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/stenographer/issues/149#issuecomment-263751525,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABJ9tt3JX78iGOmUEpWv0zrSKJNUVliVks5rDMvSgaJpZM4K9X_s
.

@gconnell i still get abortion from the Watchdog for syncing files with disk...
even though i move the fido.Reset(time.Minute) inside the critical section
of t.mu.Lock()...  still trying to figure it out,
still not competent with golang, and want to confirm if we need to worry
about any possible race with resetting the watchdog timer,
thanks,

Could you add the stack trace(s) to this thread?
On Wed, Nov 30, 2016 at 1:30 AM, alex<EMAIL_ADDRESS>wrote:

@gconnell https://github.com/gconnell i still get abortion from the
Watchdog for syncing files with disk...
even though i move the fido.Reset(time.Minute) inside the critical section
of t.mu.Lock()... still trying to figure it out,
still not competent with golang, and want to confirm if we need to worry
about any possible race with resetting the watchdog timer,
thanks,
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/stenographer/issues/149#issuecomment-263812999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABJ9tsrk5SH6di388iYL5CNYotqfy1_Wks5rDTQsgaJpZM4K9X_s
.

i'll do that once back to my setup,
but guessing that i used 3 7200rpm disks for storing pkts and 1 7200rpm disk for
storing index...  and when this recovery happens, there will be 32 (throttle) * 3 (thread module)
simultaneous IO read from the index disk, and when though we Reset(1min) the timer,
requests from the same thread module... can still be starved for more than 1min?...
so, i'm thinking if we can Reset() timer after we fully recover the block/index file?
i'll also see if this can fix the abortion,
thanks,

@gconnell sorry for this delayed update,
i tried to debug.PrintStack() before the log.Fatalf() here,
but it does not really show any meaningful try during the abortion, only two lines
like below:
<omitted>/google/stenographer/base/base.go:452 (0x4af3a8)
<omitted>/go/src/runtime/asm_amd64.s:1721 (0x45f431)

i think this is basically caused by the contention of accessing the disk
which stores index files for three packet disks...
i saw logs like this:
Nov 30 07:35:07 ev004 stenographer[28060]: 2016/11/30 07:35:07 Blockfile opening: "/tmp/stenographer338850325/PKT4/148037305476175
Nov 30 07:35:08 ev004 stenographer[28060]: 2016/11/30 07:35:07 opening index "/tmp/stenographer338850325/IDX4/1480373054761754"
Nov 30 07:36:48 ev004 stenographer[28060]: 2016/11/30 07:36:48 new blockfile "/tmp/stenographer338850325/PKT4/1480373054761754"

basically indicating a lot of contentions,...  i'm fine with the current implementation
perhaps i'll customize it a bit more for my specific use,
please feel free to merge into master,
thanks,
alex wang,

Could you try reducing the parallelism (at
https://github.com/google/stenographer/blob/syncfiles/thread/thread.go#L84)
from 32 to maybe 3 and see what effect that gives you?
On Wed, Nov 30, 2016 at 11:05 PM, alex<EMAIL_ADDRESS>wrote:

@gconnell https://github.com/gconnell sorry for this delayed update,
i tried to debug.PrintStack() before the log.Fatalf() here
https://github.com/google/stenographer/blob/master/base/base.go#L376-L380
,
but it does not really show any meaningful try during the abortion, only
two lines
like below:
/google/stenographer/base/base.go:452 (0x4af3a8)
/go/src/runtime/asm_amd64.s:1721 (0x45f431)
i think this is basically caused by the contention of accessing the disk
which stores index files for three packet disks...
i saw logs like this:
Nov 30 07:35:07 ev004 stenographer[28060]: 2016/11/30 07:35:07 Blockfile opening: "/tmp/stenographer338850325/PKT4/148037305476175
Nov 30 07:35:08 ev004 stenographer[28060]: 2016/11/30 07:35:07 opening index "/tmp/stenographer338850325/IDX4/1480373054761754"
Nov 30 07:36:48 ev004 stenographer[28060]: 2016/11/30 07:36:48 new blockfile "/tmp/stenographer338850325/PKT4/1480373054761754"
basically indicating a lot of contentions,... i'm fine with the current
implementation
perhaps i'll customize it a bit more for my specific use,
please feel free to merge into master,
thanks,
alex wang,
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/stenographer/issues/149#issuecomment-264086852,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABJ9tkSJT5LXwO0ddycUohDqNc9HIIZFks5rDmOygaJpZM4K9X_s
.

@gconnell changing to 4 is help with the contention and starvation,
also, i found that we must call the Reset() inside the mutex t.mu.Lock()...
otherwise, i always got timeout triggered on watchdog even after the
syncFilesWithDisk() returns...  this is so weird, i tried to check the golang
runtime code to understand but couldn't figure it out,...  seemed that
the timer was registered to the runtime heap multiple times...
thanks,


How to pass value into use_advanced_gpu_api

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
None
OS Platform and Distribution
Android 12
MediaPipe version
v0.10.0
Bazel version
0.8.9
Solution
Pose
Programming Language and version
java
Describe the actual behavior
I want to pass the bool value into the InferenceCalculatorOptions, but even I added the side packet input_side_packet: "USE_ADVANCED_GPU_API:use_advanced_gpu_api" into the pose_landmark_by_roi_gpu, and modify
# Runs model inference on GPU.
node {
  calculator: "InferenceCalculator"
  input_side_packet: "USE_ADVANCED_GPU_API:use_advanced_gpu_api"
  input_side_packet: "MODEL:model"
  input_stream: "TENSORS:input_tensors"
  output_stream: "TENSORS:output_tensors"
  options: {
    [mediapipe.InferenceCalculatorOptions.ext] {
      delegate: { gpu {
            use_advanced_gpu_api:USE_ADVANCED_GPU_API
      }}
    }
  }
}

It cannot be compliled into AAR by the error:
ERROR: /Users/volvo/Desktop/AppAndroid/PinoQuest/Test/mediapipe-master-framework0706_MaxQueue(Default)_precision/mediapipe/modules/pose_landmark/BUILD:36:26: Executing genrule //mediapipe/modules/pose_landmark:pose_landmark_by_roi_gpu_graph failed: (Exit 1): bash failed: error executing command /bin/bash -c ... (remaining 1 argument skipped)

Do you have ideas how to fix it? Thanks!

Describe the expected behaviour
No response
Standalone code/steps you may have used to try to get what you need
No response
Other info / Complete Logs
No response

The calculator doesn't accept a "USE_ADVANCED_GPU_API" input side packet. The correct configuration should be something like:
node {
  calculator: "InferenceCalculator"
  input_stream: "TENSORS:tensors_in"
  output_stream: "TENSORS:tensors_out"
  input_side_packet: "MODEL:model"
  options: {
    [mediapipe.InferenceCalculatorOptions.ext] {
      delegate {
        gpu { use_advanced_gpu_api: true }
      }
    }
  }
}

Also, to use use_advanced_gpu_api, please add "//mediapipe/calculators/tensor:inference_calculator_gl_advanced" as a dependency of the build target.


[WIP?] Adds URLs and specs, but could be DRYed up

I've added URLs to organizations! This involved duping some of the URL label translation code from the projects controller to the create and update org operations. It currently works, but that duped code is bugging me.
It seems like I should be able to inherit from an Organization class (within the same Organizations module) and put those methods in that class, but when I do, the operation doesn't run correctly.
This is what I tried: I created organization.rb, which is in the Organizations module and starts with class Organization < Operation. Therein, self.content_from_params and self.extract_url_labels are defined. The error when the spec runs is this: NoMethodError: undefined method run!' for #Organizations::Update::ActiveRecord_Relation:0x007fadbfe118c8`
Not the end of the world, but there's no other examples of the type of service object inheritance I was trying to I figured I'd ask.
Review checklist

[ ] First, the most important one: is this PR small enough that you can actually review it? Feel free to just reject a branch if the changes are hard to review due to the length of the diff.
[ ] If there are any migrations, will they the previous version of the app work correctly after they've been run (e.g. the don't remove columns still known about by ActiveRecord).
[ ] If anything changed with regards to the public API, are those changes also documented in the apiary.apib file?
[ ] Are all the changes covered by tests? Think about any possible edge cases that might be left untested.

@zwolf i'd create a concerns folder under operations (see models, etc) and in there create a shared code module that can be included in the organisation create and update operation definitions. That include should let you re-use the code.
As a side note, as a general rule I always try and use composition instead of inheritance.


[master-next] CMake: fix the Linux build

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    OS X platform               | @swift-ci Please test OS X platform
    Linux platform              | @swift-ci Please test Linux platform

Note: Only members of the Apple organization can trigger swift-ci.

@swift-ci Please test and merge

@swift-ci Please test and merge

Update checkout did not have the right functionality for checking out compiler-rt's next branch.

On linux, we successfully made it to linux. There is some other build issue there on the lldb/linux side. If everything passes on the OS X side, I am going to merge this.

Looks good!


Styling dark mode search-bar & search-dropdown

@goldipl Please, don't use !important.

@danon I have to use !imporatant because in present code !important was used
.navbar-dark .active input {
    background-color: #fff!important;
    color: #495057!important;
}

@danon I have to use !imporatant because in present code !important was used
.navbar-dark .active input {
    background-color: #fff!important;
    color: #495057!important;
}

Then we must remove !important from .navbar-dark .active input, while preserving it's function.
Forum uses bootstrap, which has a lot of !important, here is example: https://github.com/pradoslaw/coyote/commit/fe856760


docs: Clarify React-specific snippet in React guide

What is it?

[ ] Feature / enhancement
[ ] Bug
[x] Docs / tests

Description
Minor change to clarify the single React-specific snippet of the new React guide.
Checklist:

[x] My code follows the developer guidelines of this project
[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

Thank you!! merged!


total number of pages??

Can we show pages left for the entire
book, rather than pages left for just
the current chapter?

Currently, there is no way to get it, the current calculation only calculates the current chapter. I would love to see a Pull Request on that.

Closed due to inactivity.


Hot-reload doesn't work on macOS 10.13.6

Describe the bug
Other project which use webpack, it works well（maybe I test not enough）
At first I want to new a project base on Next, but it's Hot-reload doesn't work, even I buy a new Mac😂
To Reproduce
I follow the Guide
new a project
new a "./pages/index.js"
run npx next dev
change the file, Hot-reload doesn't work
Expected behavior
When I have changed the file, page can show these lastest changes
Screenshots

System information

OS: macOS 10.13.6
Browser (if applies) Chrome 67.0.3396.99
Version of Next.js: 6.1.1

The problem is the .www, we ignore all dotfiles, there's a PR to fix this and another issue explaining this issue already. So I'm going to close this one.
Here's the PR: https://github.com/zeit/next.js/pull/4589
Duplicate of #3156


Simplify upload template and JS a bit

This is a step towards a generalized observation-image create/update template.

coverage: 94.438%. remained the same
when pulling 1e38d487360a295b84297f9c1456f1b73dd173c6 on nimmo-send-file-info-to-template
into 798a18fcb27287c50f8746eabae0733a3fdfa46f on main.


SHIFT+SCROLL for change tabs

(Experimental duplicate detection)
Thanks for submitting this issue. Please also check if it is already covered by an existing one, like:

Tabbing into terminal needs 2 tabs (#117353)
Dragging tabs should show an insertion target, not a replacement target (#118419)
Allow to close multiple tabs without moving the mouse after closing one (#40290)
wrap tabs to multi-line: don't expand single tab to whole width (#119760)
Theme is not updated in web when opened  in two tabs on same browser (#107854)

This not is duplicated!

Try Shift-Scroll.

Try Shift-Scroll.

Sorry, ALT+SCROLL in xfce debian buster 10 change zoom of all screen.

I need than Microsoft implements!


Add Fullcount review updates

almost everything is added. design is here

decided to stop updating based on review and to add leaderboards and player history later.


Coffeescript-specific comment syntax for disabling comments

@dbaeumer per #825 this PR makes the syntax for disabling comments language-specific so that when using the extension with Coffeescript source files it can generate the correct Coffeescript syntax for eslint-disable* comments
Fixes #825
Let me know if there's somewhere appropriate to add tests, I tested manually and saw the expected behavior for both Coffeescript and Javascript source files

@dbaeumer
Hi, (curious), other than the rebase, what's holding this back ? (postponed to 2.2.x above)
Thanks.

Nothing. I needed to do a 2.1.0 release to fix some other things. This simply got pushed because of version numbering rules.

Hi @dbaeumer, please could I request that we rekindle this?
As soon as this lands in the Angular compiler: https://github.com/angular/angular/pull/41251
I can make it so that @angular-eslint users can use eslint-disable comments in their HTML. Naturally these need to be HTML comments <!-- eslint-disable --> and so the current behaviour in VSCode will yield broken results.
Please let me know if you would prefer I open a fresh PR, but this one seemed like it was already 90% of the way there for what we need for HTML.

Looking at this again the biggest problem is that the ESLint server shouldn't start to have this knowledge hard coded since we need to adjust this for every language that needs to be supported.
VS Code has this knowledge already in their language configuration but I am not sure if we are able to read it on the extension side. Will see if this is possible.

Thanks a lot, Dirk! And as always thank you for maintaining this extension 🙏

Actually there is an VS Code issue for this: https://github.com/microsoft/vscode/issues/2871
May be we should make this some sort of information in extension and send it as a config so that we later on can convert to some VS Code API.

FYI the feature is now available in angular-eslint, so using the VSCode fix on HTML files is now broken in the sense it puts in // comments instead of HTML ones

Closing the PR due to merge conflicts.


Not working on Chrome

Hi, I tried to run the example fine on Google and it's not working, no sound at all.
Does anyone experience the same problem?

@patrickhartono, yes I do as well, but it woks on Firefox right ?
it's probably related to this issue  : https://github.com/resonance-audio/resonance-audio-web-sdk/issues/16

I suspect this might #16, but just to be sure - do you see anything in the console?

Hi, Guys @b2renger @hoch  Yes I #16  problem.
Here what I found in the console:
app.js:2 The Web Audio autoplay policy will be re-enabled in Chrome 71 (December 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
Hopes they could fixed it before December LOL
Thanks Guys!

@hoch
Running locally with a server on my tests pages I get this error
resonance-audio.min.js:121 Uncaught DOMException: Failed to set the 'buffer' property on 'ConvolverNode': Cannot set buffer to non-null after it has been already been set to a non-null buffer
    at i.setDurations (https://cdn.jsdelivr.net/npm/resonance-audio/build/resonance-audio.min.js:121:1062)
    at a.setProperties (https://cdn.jsdelivr.net/npm/resonance-audio/build/resonance-audio.min.js:106:116)
    at i.setRoomProperties (https://cdn.jsdelivr.net/npm/resonance-audio/build/resonance-audio.min.js:166:294)
    at setup (http://<IP_ADDRESS>:63230/week99_spatial_audio_test/sketch.js:56:25)
    at e.<anonymous> (https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js:7:17527)
    at e.<anonymous> (https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js:7:16514)
    at new e (https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js:7:19898)
    at e (https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js:7:28199)

@patrickhartono What you found is not the root cause of the problem. It's just a warning that the autoplay policy will change in Chrome 71.
@b2renger Thanks for the confirmation. This issue is a duplicate of #16, so I am closing.


Added possibility to set Content-Type as custom header for none post requests

Fixes #182

Is there a reason this hasn't been merged yet?


How can I get a longer caption output by running test.py?

"In config.py, we can modify the parameter max_length.
However, for my trained model, max_length can only be 26. ****
If I change it to another number, it will throw an error:
ValueError: Error when checking input: expected input_3 to have shape (26,) but got array with shape (52,)."

most probably you will need to retrain your model with the new max_length


Minesweeper is broken

if i click the box and it is a zero it doesn't do the whole field and when i hit a bomb it also doesn't clear the whole field

Blame @1Lighty for all the time the update is not out after 2 pm CET. he's not answering my question on how to do something so the update is still waiting. this special part has been fixed but i want to completely fix the plugin before updating it


Added ability to change the background fill color of a shape

This is a super early implementation but it gets the job done

Hello @femo1de. Thank you for your PR!
There is IAutoShape.ShapeFill class for shape fill behavior. Would be good to add your changes in this level.
Then you can name it ShapeFill.SetSolidColor()

@femo1de, did you have time to update PR?

Hi Adam,
sorry I havent had the time yet. I tried adding it to IShapeFill but I found that this would require a lot of refactoring since ShapeFill is used for several types of shapes including images, not all of which who support background colors. Also it doesnt store a reference to the xml element of the ppt. I agree this would have been a better place to add this functionality but unfortunately I havent had the time yet to make these changes.

From: Adam Shakhabov @.>
Sent: Thursday, September 1, 2022 09:05
To: ShapeCrawler/ShapeCrawler @.>
Cc: Felix Mora @.>; Mention @.>
Subject: Re: [ShapeCrawler/ShapeCrawler] Added ability to change the background fill color of a shape (PR #269)
@femo1dehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ffemo1de&data=05|01|felix.mora%40microsoft.com|0232564fc7cf4e2ca6c808da8be8657a|72f988bf86f141af91ab2d7cd011db47|1|0|637976127524198061|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=cSAlrkP5Qi3%2FXrykl81C3B8ZXLLbTc1NmVOr8ziT0MQ%3D&reserved=0, did you have time to update PR?
—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FShapeCrawler%2FShapeCrawler%2Fpull%2F269%23issuecomment-1233837210&data=05|01|felix.mora%40microsoft.com|0232564fc7cf4e2ca6c808da8be8657a|72f988bf86f141af91ab2d7cd011db47|1|0|637976127524198061|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=8U0%2F%2BeLf6iGro717GkmDV6%2Faul8JEAGcBXjgRUO%2F%2Bw4%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAVQXKRD772L5M7YCSCR6Y4TV4BIUXANCNFSM57TTUHPA&data=05|01|felix.mora%40microsoft.com|0232564fc7cf4e2ca6c808da8be8657a|72f988bf86f141af91ab2d7cd011db47|1|0|637976127524354292|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=I5ehm8oHZAata%2FIb3w5Za5bvX65ghuqWgwsh3nf1VBM%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

Thank you for the updates.


Ads on Youtube

What website(s) would this filter apply to?
youtube.com
What content should be blocked?
Ad in the top left panel.
What options should be offered?
Block the ads.
Did you write a custom uBlock filter already?
www.youtube.com##ytd-display-ad-renderer
www.youtube.com##ytd-browse ytd-rich-item-renderer:has(#video-title-link[href*="&start_radio=1"])
www.youtube.com##ytd-search ytd-radio-renderer
www.youtube.com##ytd-watch-next-secondary-results-renderer ytd-compact-radio-renderer
www.youtube.com##ytd-player div.videowall-endscreen a[data-is-list=true]
www.youtube.com##ytd-ad-slot-renderer.style-scope
www.youtube.com##ytd-rich-grid-renderer
www.youtube.com##ytd-display-ad-renderer.style-scope > div:nth-child(1)
Additional notes
Tried all that and it just wont hide the ads. Driving me nuts. Help please.

Hello @BabyGravy, thanks for opening this issue!
As stated in our contributing instructions, blocking ads and trackers is out of the scope of this project, please contribute to EasyList or AdGuard instead.
This is because these projects do a great job at covering this scope, and duplicating efforts would be a waste of energy.


Update gif in readme

Feature request-
Update the gif in README.md

Note:

Do mention if your are working under GSSoC'21.
If you want to work on an issue, you should check if it has already been assigned to anyone. If the issue is free you can comment /assign to get the issue assigned to you.
If you are raising a new issue and want to work on it then also you should comment /assign under the issue to get it auto assigned.
Please refrain from adding labels to your issue/pull-request on your own. It is the job of the Project Admin and the Mentors to review your issue/pull-request and add labels accordingly.
According to the level of the issue, respective time will be allotted under which the task needs to be completed/resolved by the assigned person. If the issue is not resolved within the given time, it will be assigned to the next person. In case of any discrepancies, the decision of the maintainer will be final.

level - 0: 2 days
level - 1: 3 days
level - 2: 4 days
level - 3: 5 days

I would like to work on this under GSSoC'21.

/assign

I am facing an issue while signing up. Although my password satisfies all the requirements.

If you could give me existing credentials I will login and make the GIF. Or else shall I skip the compose part and make the GIF.

I am facing an issue while signing up. Although my password satisfies all the requirements.

Let me check

ok. Thank You

Sign-up is working fine for me, just use a longer password.
compose can't be skipped since it is the main feature.
Also show to dark mode feature in the gif

ok. I will try it. Thank You.

I have used the longest password possible. But I am still getting the same message. Please suggest me a password that worked for you.

I have used the longest password possible. But I am still getting the same message. Please suggest me a password that worked for you.

my password was  Alphavio123

Thank You. It worked now.


Heavy Lag When Running Hyper With Chrome, Visual Studio Code, and other javascript applications

I'm experiencing heavy performance lag when running Hyperterm alongside any application that also runs javascript (Chrome, Firefox, Visual Studio Code). All applications will freeze for ~5 seconds every few seconds when Hyperterm is running concurrently with these applications, but when I close Hyperterm the performance issue goes away. I've had this issue with every version of Hyper I've installed, and I've already reset my OS and reinstalled all my applications twice to no avail, is anyone else experiencing the same issue?

Windows 10 Build 15063.608
Hyper v.1.3.1, v.1.4.7, v1.4.8

Can you post your .hyper.js config

@PerStirpes I don't think this problem is related hyper.js 🤔
@lichen545 I have windows 10 but I do not experience such a flaw. You could show me the hyper.js file

Here is my .hyper.js file:
`// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
// default font size in pixels for all tabs
fontSize: 12,
// font family with optional fallbacks
fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
cursorColor: 'rgba(248,28,229,0.8)',

// `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
cursorShape: 'BLOCK',

// set to true for blinking cursor
cursorBlink: false,

// color of the text
foregroundColor: '#fff',

// terminal background color
backgroundColor: '#000',

// border color (window, tabs)
borderColor: '#333',

// custom css to embed in the main window
css: '',

// custom css to embed in the terminal window
termCSS: '',

// set to `true` (without backticks) if you're using a Linux setup that doesn't show native menus
// default: `false` on Linux, `true` on Windows (ignored on macOS)
showHamburgerMenu: '',

// set to `false` if you want to hide the minimize, maximize and close buttons
// additionally, set to `'left'` if you want them on the left, like in Ubuntu
// default: `true` on windows and Linux (ignored on macOS)
showWindowControls: '',

// custom padding (css format, i.e.: `top right bottom left`)
padding: '12px 14px',

// the full list. if you're going to provide the full color palette,
// including the 6 x 6 color cubes and the grayscale map, just provide
// an array here instead of a color map object
colors: {
  black: '#000000',
  red: '#ff0000',
  green: '#33ff00',
  yellow: '#ffff00',
  blue: '#0066ff',
  magenta: '#cc00ff',
  cyan: '#00ffff',
  white: '#d0d0d0',
  lightBlack: '#808080',
  lightRed: '#ff0000',
  lightGreen: '#33ff00',
  lightYellow: '#ffff00',
  lightBlue: '#0066ff',
  lightMagenta: '#cc00ff',
  lightCyan: '#00ffff',
  lightWhite: '#ffffff'
},

// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
// if left empty, your system's login shell will be used by default
// make sure to use a full path if the binary name doesn't work
// (e.g `C:\\Windows\\System32\\bash.exe` instead of just `bash.exe`)
// if you're using powershell, make sure to remove the `--login` below
shell: 'C:\\Windows\\System32\\bash.exe',

// for setting shell arguments (i.e. for using interactive shellArgs: ['-i'])
// by default ['--login'] will be used
shellArgs: ['--login'],

// for environment variables
env: {},

// set to false for no bell
bell: 'SOUND',

// if true, selected text will automatically be copied to the clipboard
copyOnSelect: false

// if true, on right click selected text will be copied or pasted if no
// selection is present (true by default on Windows)
// quickEdit: true

// URL to custom bell
// bellSoundURL: 'http://example.com/bell.mp3',

// for advanced config flags please refer to https://hyper.is/#cfg

},
// a list of plugins to fetch and install from npm
// format: [@org/]project[#version]
// examples:
//   hyperpower
//   @company/project
//   project#1.0.1
plugins: [
hyperpower,
hyperborder,
hypercwd,
hyperborder,
hyper-blink,
hyperterm-tab-icons,
hyperterm-cursor
],
// in development, you can create a directory under
// ~/.hyper_plugins/local/ and include it here
// to load it and avoid it being npm installed
localPlugins: []
};
`

@lichen545  You could specify the characteristics of your computer.

hyperpower is known to cause huge performance issues, please try to disable all plugins and run vanilla hyper to see if the problem is still there.

@albinekb I disabled hyperpower and the issue went away, thanks for the tip!

Good to hear @lichen545! 🎉
Open an issue over at https://github.com/zeit/hyperpower about the performance issue, it's fixable 😺


Add run time warnings when running into unsupported pseudo selectors

~Until we have a first class way of supporting them out of the box, don't support them at all.~
Add a runtime warning in dev.
:first-child
:nth-child

Added in #144


how do I run a task against multiple environments?

If I'm correct one of the benefits of shipit is parallel deploys to multiple servers?
eg If I want to update my code for multiple app instances, with a config something like:
  multi: {
    servers: [
      {
        login<EMAIL_ADDRESS>        deployDir: '/mnt/ext1/app1'
      },
      {
        login<EMAIL_ADDRESS>        deployDir: '/mnt/ext1/app2'
      }
    ],
  },

Does shipit provide some sugar to enable this or do I have to loop through servers myself?
Or, is there a way to call shipit with multiple environments, so I could "compose" the list of envs?
shipit app1 app2 deploy

PS I'm working on a FAQ.md file with some of the questions from the issues here. Hopefully this will help others without cluttering up the issues too much.

related question in FAQ (will send a PR after I fill it out a bit)
https://github.com/dcsan/shipit/blob/master/ressources/faq.md#how-to-run-a-task-against-multiple-environments

This is not possible, it is by design. Environments are similar to environment variables.
You can't do NODE_ENV=development NODE_ENV=production npm start, it is the same for Shipit.
I suggest you to create an environment with all servers from env1 and from env2.


Add Image widget to Reports [WIP]

i18n-check

The following components have not been translated
dash.image-dialog.edit (ru)dash.image-dialog.edit (en)dash.main.view (ru)dash.main.view (en)dash.popup-widgets-order.view (ru)dash.popup-widgets-order.view (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.


#SB-462: Investigate and fix the issue with deep nested group repositories

Fixed fix in GroupLocationResolver
Updated test cases in GroupLocationResolverTest
Added test case in GroupLocationResolverTest to test the fix

After having a proper look at the code, I'm afraid I'm not quite convinced it works properly.
Please, rename searchArtifact to resolveArtifact.
These sections are not returning properly:
                    Repository repository = getConfiguration().getStorage(sId).getRepository(rId);
                    if (repository.isInService() && basicRepositoryService.containsPath(repository, artifactPath))
                    {
                        final ArtifactInputStream is = searchArtifact(sId,repository,artifactPath);
                        // This doesn't return anything
                    }

Many thanks yet again! :)


Automated cherry pick of #4842: fix: 添加安全组操作日志

Cherry pick of #4842 on release/2.13.
#4842: fix: 添加安全组操作日志

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@f3c16ac). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.13   #4845   +/-   ##
==============================================
  Coverage                ?   6.85%
==============================================
  Files                   ?     523
  Lines                   ?   89203
  Branches                ?       0
==============================================
  Hits                    ?    6119
  Misses                  ?   82576
  Partials                ?     508

Flag
Coverage Δ

#aFlag
6.85% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/secgrouprules.go
4.22% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f3c16ac...504e251. Read the comment docs.


Surface mmap information

Description
mmap information is already gathered.
We can also localise the source of the mmap.

We have mapping information within the pprof files.


[ios] Too much logging

Accelerometer updates are being logged several times a second, making the console entirely useless for anything else. Could we make this logging optional please? Thanks a lot!

Sure, would love to see a PR for this <3 Probably the best would be to have a configuration param like
new Accelerometer({
})

This is still an issue. Any news on this? :)

Still would love to see a PR :) Would you like to give it a try @ma-pe? I could guide you through the process 👍


Add more complete examples

It would be nice to additionally add more complete examples of how one can use MadGraph5 with the Docker image. @oliviermattelaer has some very nice tutorials online (even if a few years old), so I should try to collect examples from there.
c.f.

MadGraph5 Tutorial from 2013 given by Olivier Mattelaer
MadGraph5 Tutorial from IFT 2015

Note that I have release some singularity image for MG5aMc

Note that I have release some singularity image for MG5aMc

That's great to hear. :+1: Though for the most part I'm not going to be running on the GRID (the only instance I ever foresee needing Singularity) and in all other instances where Docker won't work (HPC for example) I'll be using Podman.


downloader.Download  in a for . the cpu and memory is up to 99%

main.go
for{  err = downloader.Download(downloadItem, videoURL, config.ChunkSizeMB) }
when i go run main.go  . cup and memory is up to 99%.
what can i do to fix this problem

Maybe you should handle the case that 'err == nil' then break the for loop.

@bronze1man thanks for you reply.  now i am not use "downloader.Download()" in my program , i think use this code will lead to some memory is not release.  so now i use "exec.Command()" in my program to run "annie" , its works well


Build issue when upgrading to version 1.2.x

Bug severity
4
Describe the bug
After upgrading from version 1.0.1 to version 1.2.0 (or @latest or @next), the build step for my app fails with:
Error: ./node_modules/did-jwt/lib/index.js 1:4514 -- Module parse failed: Unexpected token (1:4514) -- You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.
It appears to point to the statement with the first use of Optional Chaining in that program.
I've tried to upgrade and downgrade did-jwt, but still the same issue. I also tried adding resolutions to downgrade it in the package.json. Any ideas?
Versions:

Veramo: 1.2.x
OS: Windows 10
Node: 14.16.0
npm: 6.14.13
ionic: 6.16.1
angular: 8.3.29
yarn: 1.22.10
typescript: 4.3.2

We've seen a similar error before and it was fixed by using node 14 to build (but you seem to already be using node14).
In your case I suspect it might be an issue with your babel config.
Perhaps this will help https://medium.com/@iamjasonchild/optional-chaining-in-javascript-via-babel7-e83c07127d62
Also, possibly related issues:
https://github.com/decentralized-identity/did-jwt/pull/175
https://github.com/decentralized-identity/did-jwt/issues/168

@rkreutzer
I have the JwtMessageHandler working as expected in ionic (serving locally in chrome) by adding a polyfill to polyfill.ts
(window as any).global = window;
// @ts-ignore
window.Buffer = window.Buffer || require('buffer').Buffer;

Can you add this and let me know if your issue persists?

It appears that the way I upgraded was the issue. I had done a "yarn upgrade" command listing all the @veramo modules and that apparently caused the issue. I deleted the node_modules folder, updated the version numbers in the package.json file, then did a "yarn install". That cleared the issue.
Jason, I already had similar statements in the polyfills file, but thanks.


Add $THANK Coin

Showcase addition

Name: $THANK Coin
Description: A fun and cool way to say thanks in the Cardano community.
Link: https://www.ThankCoin.io
Source:
Tags:

nativetoken

Thank you for your contribution. I struggle a little to see what the unique value of THANK compared to existing showcase items is.

Thank you for your time. There are two unique things about $THANK:

$THANK is the only token that is meant to express gratefulness in Cardano community.
90% of $THANK will be distributed via non-profit ways. That includes but not limited to airdropping to SPOs, selling for charities (coming soon).

Other than that, $THANK has already been distributed to 35 SPOs and estimated to has been sent to 400 delegators.
Whether this PR is approve or not, I would like to thank you for your time reviewing $THANK. If not approved, I hope I can resubmit $THANK later when it is shown to be a good community resource.

Closing due to not enough approvals for a long time. Please note that showcase projects need to provide a unique value from existing showcase items, feel free to join the discussion here: #243


Provide introductory Smart Agent migration example

These changes provide a basic help section for SA Receiver adoption and migration.  They also provide more details on the required usage of dimension clients and when to configure the receiver as part of a logs pipeline.
I have not tested the recommended config as is, but will be doing so when possible.  Deferring to @flands for when to merge.

@tmorrisonsfx your feedback would be appreciated.

@tmorrisonsfx I believe I've addressed your feedback.  Thanks for the review.


Embedding interface routing

The chat interface is currently compatible with OpenAI in terms of interface routing.
Would you consider making Embedding's interface routing also compatible with OpenAI's format, so that it will be more user-friendly when called by third-party applications? Otherwise, we need to focus on
http://host/v1/embeddings

Perform separate processing
http://host/embeddings

If it's compatible, that would be great

Sorry, I see that the current version already supports it

@xuzeyu91 Can you please close this issue?

yes


npm err   [ver 2.0.2]

<EMAIL_ADDRESS>create some npm errors. e.g.:
npm ERR! peer dep missing<EMAIL_ADDRESS>required by<EMAIL_ADDRESS>(this was working w/o error with version 1.3.12)
The app will build with 2.0.2, however it break my travis CI build - since this needs a npm install w/o any errors or warnings.
Steps to reproduce:
   ionic start --skip-link npmErr blank
   cd npmErr
   npm ls -depth 0

error:
npm ERR! peer dep missing<EMAIL_ADDRESS>required by<EMAIL_ADDRESS>
in addition:
   ionic cordova platform add ios
   npm ls -depth 0

error:
npm ERR! peer dep missing<EMAIL_ADDRESS>required by<EMAIL_ADDRESS>npm ERR! extraneous<EMAIL_ADDRESS>/Users/mhoff/Downloads/npmErr/node_modules/cordova-ios/node_modules/node-uuid
npm ERR! extraneous<EMAIL_ADDRESS>/Users/mhoff/Downloads/npmErr/node_modules/cordova-ios/node_modules/pegjs
npm ERR! extraneous<EMAIL_ADDRESS>/Users/mhoff/Downloads/npmErr/node_modules/cordova-ios/node_modules/simple-plist

Hello, thanks for using Ionic! ionic start still does an npm install, but the latest version of npm has some bugs that are causing issues similar to this one. What version of npm are you running?

Hy,
I don't think its the  "included" npm install in the ionic start.   This also happens if i upgrade any older ionic 3 project (e.g. generated some weeks ago)  with  npm i @ionic/app-scripts@latest --save-dev
i'm using  the node Latest LTS Version: v6.11.1 what includes npm 3.10.10  (because of some other sw that I use I prefer not to upgrade to npm  5.x, but a short test gives me the same error )

same here,,
i got this when i run npm install in my project
├─┬<EMAIL_ADDRESS>│   │ ├──<EMAIL_ADDRESS>│   │ ├─┬<EMAIL_ADDRESS>│   │ │   └──<EMAIL_ADDRESS>│   │ ├─┬ UNMET PEER DEPENDENCY<EMAIL_ADDRESS>

after diving into this i figured the problem because there's some conflict in version of ajv in dependencies of the app-scripts
i mean there's about 4 dependencies need ajv but each one need different version of it

And FYI It's still a problem with<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ │ └──<EMAIL_ADDRESS>│ │ ├─┬ UNMET PEER DEPENDENCY<EMAIL_ADDRESS>

@jgfet
actually i think this npm install<EMAIL_ADDRESS>--save-dev may break other packages that need previous version of ajv
because u can't have more than one version at the same time of a specific package as i know, so now after this command will have only<EMAIL_ADDRESS>


Using existing Group?

Hello brilliant aztfmod creators!
I am wondering if I could use this to reference an existing AAD group instead of creating a new one. Is that something possible, and simply escaping my mind how to accomplish?
https://github.com/aztfmod/terraform-azurerm-caf/blob/6cf965a9310cb1fe2108ff73e49c92ae46322993/examples/azuread/201-groups-and-roles/configuration.tfvars#L86
Please advise!
Khalid

hi @kbk574, yes at rbac composition time role_mapping=, you should be able to add an existing group: object_ids = {...} as exhibited here: https://github.com/aztfmod/terraform-azurerm-caf/blob/c05e2f4da3df03257db4531ee4d165f2613f7103/examples/compute/azure_redhat_openshift/101_basic_private_cluster/principal.tfvars#L81

Thank you @arnaudlh. I searched but apparently missed this example. Royally appreciated!


Set module initialization trace context to the correct file

This is almost certainly not the best/cleanest way to achieve the goal but this works for my test cases.
Fix #2882
Fix #6295

Thanks. As you noted, this isn't ready for merging as is, but it does seem reasonable to split the tracing in the module init function into file scopes.
Note that there is a major rewrite of the tracing code on the way in
https://github.com/cython/cython/pull/6144/
This uses the new sys.monitoring infrastructure. Whatever we do to fix this issue would have to fit in there.
The sys.monitoring API bases everything on code objects (which have no byte code in Cython but do contain the code meta data). There might be ways to juggle with multiple COs in the module init function.


Feature request - provide callback for specifying babel's inputSourceMap

I will like to have more options for specifying babel's inputSourceMap option.
I believe this can be implemented quite easily by adding support for providing a callback through babelOptions.
Usage example:
    meta: {
      '*.js': {
        babelOptions: {
          sourceMaps: true,
          provideInputSourceMap: function(load) {
            return null;
          }
        }
      }
    }

To implement this support, line 176 in plugin-babel.js needs to be changed from
inputSourceMap: load.metadata.sourceMap,

to
inputSourceMap: (babelOptions.provideInputSourceMap && babelOptions.provideInputSourceMap(load)) || load.metadata.sourceMap,

I can provide PR if needed.
Tnx

Here is a PR: https://github.com/systemjs/plugin-babel/pull/73
Tnx


Feature Request: Support by default build chacha20 cipher on https

Supports DHE-RSA-CHACHA20-POLY1305 and ECDHE-RSA-CHACHA20-POLY1305, аnnounced in version 4.23 Build 9647 Beta (October 18, 2017), but so far they are not in the default builds.
And with this would greatly works the old devices without AES-NI and soho routers.

The OpenSSL static libraries in the repository have been updated to version 1.1.1 in #738, the ciphers you mentioned should be available in the latest builds.
What do you mean by "they are not in the default builds"?

Understood, they are not available for selection in GUI manager for Windows version 4.xx
In vpncmd release v5.01.9663 available and works.
Windows GUI manager v5.01.9663 I did not test, it looks like the installer is broken, closes during installation.

Understood, they are not available for selection in GUI manager for Windows version 4.28
In vpncmd release v5.01.9663 available and works.

Related issue: #360

Windows GUI manager v5.01.9663 I did not test, it looks like the installer is broken, closes during installation.

Related issue: #689


Generate Write-only properties on models from Cadl

Related to the cadl definition: visibility of 'create', 'update'

part of https://github.com/Azure/autorest.csharp/issues/3075. duplicated


POC EPIC : Nephio SDK

This is a POC for creating the SDK for Nephio. This should support the CRD/Operator approach as well as Helm charts. This POC will help us determine what tool or combination of tools are better suited for Nephio SDK.
This Epic is related to the helm POC epic.
This document describes the use cases for this epic

[ ] #383
[ ] #415
[ ] #416
[ ] #417

Design pros/cons / recommendations / decision document - that should be an MD doc in the repo. Maybe start as a GH discussion?

come up with a POC plan

Closed as a new issue (Epic) is filed to track Nephio SDK for R3


Vue3: Dev environment for extensions with routing problems

Setup

Rancher version: 2.10 (Vue3 UI)
Rancher UI Extensions: n/a
Browser type & version: n/a

Describe the bug

Dev environment for extensions is broken with routing problems
To Reproduce

clone the ui-plugin-examples repo
make sure you are using node version 20.x
install dependencies with npm install
run the repo/project with API=xxxx PRIME=true yarn dev
Go to the top-level-product extension and check error 1
Go to the clock extension and check error 2

Result
Some routing problems manifest. Either view is not loaded or route is not found
Expected Result

All routes should load the views correctly
Screenshots

https://github.com/user-attachments/assets/a20d05e0-41ae-433c-a1bb-2a5307e68585
Additional context

ui-plugin-examples is using shell 3.0.0-rc.2 and I've just tested this with 3.0.0-rc.3 that was released today and there's no more problems with the routing. All works fine.
Fix must have happened after the release of rc2.
Closing the issue
FYI @codyrancher @rak-phillip

@jordojordo


Simple.Transition module

Hi, first thanks for creating the package it'll come in handy for my team! I put together this simple solution for https://github.com/andrewMacmurray/elm-simple-animation/issues/4.
I created it as a draft because I wanted to hear your thoughts before adding documentation moving things around.

@renanpvaz wow thank you so much for this! I had a very quick scan through just now and it looks pretty good, very happy for you to continue.

I think I managed to address everything we discussed but one thing came up, I'm not sure what do to about the "extended eases". Should we bring them over to the transition module or perhaps create a separate public module exposing them as Ease values instead of Option?

That's awesome, thanks @renanpvaz! I wouldn't worry about the extended eases in this PR, I'll add an issue and probably have a crack at it in a few days unless you wanna have a go?
You may be aware of this already but I noticed that Simple.Transition isn't exposed in elm.json as a public module, there's a fairly decent feedback loop with previewing elm docs locally if you run npm run docs

@renanpvaz thanks for all your work on this 👍 gonna merge this PR in and prepare a release over the weekend (I've got a couple of other random things I wanted to add) - will drop you a message when It's on the package registry


[REVIEW] E-Learning-freesite

Project link
https://github.com/SahityaRoy/E-Learning-freesite

https://github.com/SahityaRoy/E-Learning-freesite/community take a look at those points
add a release

Thank you for sharing, we will review on a live stream soon 👍

Thanks
On Tue, Jul 27, 2021 at 4:55 AM Eddie Jaoude @.***>
wrote:

Thank you for sharing, we will review on a live stream soon 👍
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/EddieHubCommunity/support/issues/2101#issuecomment-887094631,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARLSWZGPTY3LQU4OCJUFSGTTZXVE7ANCNFSM5A7JMA6Q
.

Looks good

add release/tag
In the end of README.md remove "Plugin", "README"
Make banner a little small in README.md
Add badges above banner in README.md

Reviewed on live stream https://www.youtube.com/watch?v=T14I0ECfPlU
Looks great some thoughts...

suggest using releases/tags
hide packages if not used
hide wiki as it is only 1 page (also remove guys, use something like people, folks, y'all, everyone)
.vscode should not be added to the repo (this should be in the gitignore
suggest go through open issues and pull requests


updated instructions for CentOS after on-tools reorg

leftover work from https://github.com/RackHD/RackHD/issues/33
and requested in https://github.com/RackHD/on-http/pull/253#issuecomment-215444722
@RackHD/corecommitters @zyoung51 @heckj
this has been tested.

👍

@RackHD/corecommitters @zyoung51 @heckj
all feed back addressed.

+1

👍


Changed the way of waiting for task completion.

Pull Request summary:
Change the way of waiting for task completion. Now Task().wait_for_complete() waits for the end of task, not as in the previous implementation for the first fail
Description of changes:
The previous implementation stops pooling task object when at least one subtask has failed. It caused problems with further processing the next tasks, some of them depend on the still running task.
Checklist:

[ ] Make sure to run pre-commit before committing changes
[ ] Make sure all checks have passed
[ ] PR description is clear and comprehensive
[ ] Mentioned the issue that this PR solves (if applicable)
[ ] Make sure you test the changes

This issue was migrated from an old repository: https://github.com/CiscoDevNet/catalystwan/pull/509


dependency failed to start: container infinity is unhealthy

Trying to set it up with docker-compose but it seems that infinity container is not working correctly
Currently under windows

Can you restart and check? Also your RAM usage, if you have enough space?

You were right, there was not enough RAM. Anyway i managed to get all containers up and running. Thanks!
However when i want to create a new collection there is no embedding model option in the dropdown ?

can you check swagger for infinity service at :7997, and see the list of available models ?

There are two different issues

infinity container shown as unhealthy - This should resolve within few minutes of starting. infinity can take some time to start which - longer than docker compose up might be willing to wait. This is fine
There is a problem in compose.env and docker-compose.yaml. The port is mismatched
https://github.com/truefoundry/cognita/blob/969d75ee530655e75f7bff7882749b2a404a4eca/compose.env#L20
This should be INFINITY_URL=http://infinity-server:7997

#245 fixes this and bunch of other issues

Please try from latest main, we have fixed a bunch of issues
Just adding steps as we have changed models_config now to be a yaml spec
git pull origin main
cp models_config.sample.yaml models_config.yaml
docker compose --env-file compose.env --profile '*' down
docker compose --env-file compose.env --profile '*' up -d

I am closing this, but please feel free to re-open if things don't work out for you on lastest main :)


Use a single set of Progresses for ProgressSet.

The motivation for this PR may be unclear until you consider future work. But, shortly, this is partially in preparation for Joint Consensus.
This is a step to allowing us to use different configurations (eg voter/learner topology) on top of the same Progress states. This will mean we can have ProgressSet be aware of its peer set changing, and able to have calls like self.prs().voters() or self.prs().learner_nodes() always remain accurate.
Rationale
Currently we store Progress data, which are of a non-trivial size, in two FxHashMaps in ProgressSet. They are holding voters and learners respectively. During add_node(), add_learner(), remove_node(), and promote_learner() we currently check sometimes multiple HashMaps, and at times need to move Progress values between maps. We don't need to do this.
Typical use cases for ProgressSet include iterating over these peers (such as self.prs().voters()), fetching individual peers (such as self.prs().voters().get(id)), checking membership (self.prs().voters().contains_key()), removing nodes (either role), adding voters, adding learners, promoting learners, or removing learners.
Scanning the entire set is done by chaining iterators over the two hashmaps already, so storing them in a single HashMap has no penalty. Returning Iterators where possible instead of realized structures means we can possibly save on allocations (you can do self.prs().voters().any(_) faster now).
Scanning over a specific subset (eg voter, learner) is slightly slower since the iterator returned is internally filtering out non-voter/non-learners. Since most node sets are fairly small, and the check is a simple bool, this performance change is not dramatic. (This can be possibly optimized, but I'm not sure it's worth the complexity).
Fetching individual nodes was optimized since it is always a lookup now, not possibly two lookups (in the case of getting a node without the specifier).
Removing nodes should also be faster (single lookup).
Promoting Learners now is just changing a boolean (but this will likely change later for Joint Consensus).
Future Work
In the next PR my thought is to introduce poll and quorum logic to ProgressSet, instead of being in Raft (Raft can still proxy to them). Why? When we enter a joint consensus state we no longer can just check if # of votes >= quorum. The cluster needs to account for the votes of nodes in two separate configurations. So the check for elections is # of votes >= quorum or (# votes_old >= quorum_old) && (# votes_new >= quorum_new) depending on the state of the system.
I'd like to follow with a PR to have ProgressSet hold a ConfState (a vec of voters, and a
vec of learners in a protobuf), and this FxHashMap<u64, Progress> that ProgressSet already
holds. This will allow us to in the future use an enum inside the
ProgressSet:
enum Configuration {
    Stable(ConfState),
    Joint { old: ConfState, new: ConfState },
}

It may be wise to use a different datatype for the ConfStates than the protobuf though. This needs to be explored. Perhaps a FxHashMap<u64, Weak<Progress>> pointing back into the actual Progress, so we can just follow the pointer.
This will allow us to quickly pass lists of IDs to callers and compose iterators of progress with chains, mapping into the HashMap. (If we do this, the Weak/Rc idea above is more compelling perhaps).
Performance Impact
There were no major performance impacts. A few benchmarks were slightly slower or slightly faster, but no remarkable impacts. Note many tests are a small % slower due to the additional allocation involved since we're now holding a bit of extra data.
   Compiling raft v0.3.1 (file:///home/hoverbear/git/raft-rs)
    Finished release [optimized] target(s) in 7.01s
     Running target/release/deps/benches-b3f4a3ccb54b1af9
Raft::new (0, 0)        time:   [654.68 ns 658.33 ns 663.60 ns]
                        change: [+2.4424% +4.1041% +5.5835%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) high mild
  7 (7.00%) high severe

Raft::new (3, 1)        time:   [1.0552 us 1.0571 us 1.0592 us]
                        change: [+5.3398% +7.4368% +9.4033%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 13 outliers among 100 measurements (13.00%)
  3 (3.00%) high mild
  10 (10.00%) high severe

Raft::new (5, 2)        time:   [1.2448 us 1.2469 us 1.2492 us]
                        change: [+3.0618% +5.4548% +7.7207%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 18 outliers among 100 measurements (18.00%)
  9 (9.00%) low severe
  2 (2.00%) low mild
  2 (2.00%) high mild
  5 (5.00%) high severe

Raft::new (7, 3)        time:   [1.5091 us 1.5169 us 1.5285 us]
                        change: [+6.9430% +8.0638% +9.3565%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) high mild
  5 (5.00%) high severe

Raft::campaign (3, 1, CampaignPreElection)
                        time:   [1.6698 us 1.6796 us 1.6914 us]
                        change: [+7.1247% +8.9953% +11.082%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high severe

Raft::campaign (3, 1, CampaignElection)
                        time:   [1.8421 us 1.8543 us 1.8701 us]
                        change: [-0.7334% +0.9614% +2.9925%] (p = 0.36 > 0.05)
                        No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

Raft::campaign (3, 1, CampaignTransfer)
                        time:   [1.9347 us 1.9791 us 2.0401 us]
                        change: [+4.6167% +6.8336% +9.7574%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) high mild
  5 (5.00%) high severe

Raft::campaign (5, 2, CampaignPreElection)
                        time:   [2.3698 us 2.3725 us 2.3759 us]
                        change: [-0.5268% +0.8138% +2.1554%] (p = 0.24 > 0.05)
                        No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

Raft::campaign (5, 2, CampaignElection)
                        time:   [2.5981 us 2.6072 us 2.6228 us]
                        change: [+5.1047% +6.6554% +8.2343%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) high mild
  4 (4.00%) high severe

Raft::campaign (5, 2, CampaignTransfer)
                        time:   [2.7336 us 2.7424 us 2.7546 us]
                        change: [-2.8336% -1.6015% -0.2993%] (p = 0.01 < 0.05)
                        Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe

Raft::campaign (7, 3, CampaignPreElection)
                        time:   [3.0390 us 3.0577 us 3.0808 us]
                        change: [+6.2413% +8.4249% +10.575%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe

Raft::campaign (7, 3, CampaignElection)
                        time:   [3.3627 us 3.3815 us 3.4033 us]
                        change: [+3.5173% +5.6968% +7.8047%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high severe

Raft::campaign (7, 3, CampaignTransfer)
                        time:   [3.5182 us 3.5326 us 3.5498 us]
                        change: [+0.1086% +1.5806% +3.0729%] (p = 0.04 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

RawNode::new            time:   [957.90 ns 962.74 ns 968.28 ns]
                        change: [+0.4930% +2.1651% +3.6894%] (p = 0.01 < 0.05)
                        Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

Progress::default       time:   [2.7608 ns 2.7694 ns 2.7820 ns]
                        change: [+3.4533% +4.0793% +4.7229%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high severe

ProgressSet::new (0, 0) time:   [24.331 ns 24.464 ns 24.622 ns]
                        change: [+12.726% +13.755% +14.741%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::new (3, 1) time:   [77.597 ns 77.870 ns 78.208 ns]
                        change: [+4.2794% +5.0575% +5.8202%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

ProgressSet::new (5, 2) time:   [78.236 ns 78.473 ns 78.770 ns]
                        change: [+4.1984% +5.2535% +6.2644%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

ProgressSet::new (7, 3) time:   [78.297 ns 78.467 ns 78.690 ns]
                        change: [+3.2772% +4.1558% +5.3449%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe

ProgressSet::insert_voter (0, 0)
                        time:   [82.880 ns 83.059 ns 83.289 ns]
                        change: [-2.3601% -1.5005% -0.6649%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

ProgressSet::insert_voter (3, 1)
                        time:   [195.68 ns 196.88 ns 198.43 ns]
                        change: [+3.8072% +5.1527% +6.6821%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe

ProgressSet::insert_voter (5, 2)
                        time:   [238.59 ns 240.82 ns 243.56 ns]
                        change: [+9.6677% +11.744% +13.744%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

ProgressSet::insert_voter (7, 3)
                        time:   [250.93 ns 252.21 ns 253.76 ns]
                        change: [+9.5544% +10.656% +11.673%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::insert_learner (0, 0)
                        time:   [84.346 ns 84.675 ns 85.032 ns]
                        change: [+4.0566% +5.3939% +6.6914%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) high mild
  2 (2.00%) high severe

ProgressSet::insert_learner (3, 1)
                        time:   [194.62 ns 195.77 ns 197.10 ns]
                        change: [+8.5062% +9.9784% +11.317%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::insert_learner (5, 2)
                        time:   [216.15 ns 217.55 ns 219.23 ns]
                        change: [+9.6463% +11.074% +12.443%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe

ProgressSet::insert_learner (7, 3)
                        time:   [236.09 ns 237.22 ns 238.59 ns]
                        change: [+6.0486% +7.3821% +8.6658%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe

ProgressSet::promote (0, 0)
                        time:   [30.150 ns 30.321 ns 30.517 ns]
                        change: [-0.8956% +0.9434% +2.8369%] (p = 0.32 > 0.05)
                        No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

ProgressSet::promote (3, 1)
                        time:   [174.10 ns 174.50 ns 175.02 ns]
                        change: [-1.6114% +0.7134% +2.4685%] (p = 0.57 > 0.05)
                        No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe

ProgressSet::promote (5, 2)
                        time:   [206.81 ns 207.74 ns 208.90 ns]
                        change: [+12.212% +13.224% +14.202%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::promote (7, 3)
                        time:   [225.56 ns 227.15 ns 229.03 ns]
                        change: [-0.7211% +1.0632% +2.8948%] (p = 0.25 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

ProgressSet::remove (0, 0)
                        time:   [65.105 ns 65.554 ns 66.085 ns]
                        change: [+8.8515% +10.210% +11.544%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::remove (3, 1)
                        time:   [210.29 ns 211.60 ns 213.16 ns]
                        change: [+7.3192% +8.9684% +10.540%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::remove (5, 2)
                        time:   [312.97 ns 319.75 ns 327.84 ns]
                        change: [+40.410% +43.287% +45.910%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::remove (7, 3)
                        time:   [292.14 ns 294.15 ns 296.60 ns]
                        change: [+22.410% +23.951% +25.465%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe

ProgressSet::iter (0, 0)
                        time:   [32.426 ns 32.682 ns 32.986 ns]
                        change: [+19.914% +21.344% +22.678%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::iter (3, 1)
                        time:   [215.07 ns 217.18 ns 219.64 ns]
                        change: [+24.669% +26.020% +27.425%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

ProgressSet::iter (5, 2)
                        time:   [232.52 ns 234.99 ns 237.96 ns]
                        change: [+18.472% +20.308% +21.988%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild

ProgressSet::iter (7, 3)
                        time:   [255.43 ns 262.34 ns 272.19 ns]
                        change: [+14.089% +16.026% +18.440%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe

ProgressSet::get (0, 0) time:   [24.563 ns 24.764 ns 25.007 ns]
                        change: [+19.712% +21.106% +22.553%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::get (3, 1) time:   [178.88 ns 180.24 ns 181.89 ns]
                        change: [+17.606% +19.109% +20.784%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

ProgressSet::get (5, 2) time:   [198.47 ns 199.85 ns 201.50 ns]
                        change: [+17.484% +18.857% +20.212%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::get (7, 3) time:   [222.11 ns 223.86 ns 226.02 ns]
                        change: [+8.8628% +10.119% +11.473%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::nodes (0, 0)
                        time:   [30.588 ns 30.741 ns 30.935 ns]
                        change: [+12.690% +14.065% +15.416%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::nodes (3, 1)
                        time:   [199.91 ns 201.45 ns 203.25 ns]
                        change: [+12.052% +13.444% +14.856%] (p = 0.00 < 0.05)
                        Performance has regressed.

ProgressSet::nodes (5, 2)
                        time:   [231.50 ns 233.10 ns 235.04 ns]
                        change: [+9.1243% +10.754% +12.436%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

ProgressSet::nodes (7, 3)
                        time:   [250.84 ns 252.33 ns 254.05 ns]
                        change: [+2.3537% +3.7544% +5.0726%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

@Hoverbear
now we have to calculate quorum every time with travelling the whole map instead of using the length function, this may hurt performance.
Do you still any other reason to separate them? @BusyJay @hicqu

I don't have strong opinion on separate them.

@siddontang Seems this doesn't slow down Raft's campaign, I baselined this against master:
Raft::campaign (7, 3, pre_election)
                        time:   [3.2914 us 3.3070 us 3.3230 us]
                        change: [-2.4331% -1.9552% -1.4261%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Raft::campaign (7, 3, election)
                        time:   [3.5760 us 3.5927 us 3.6090 us]
                        change: [-3.7967% -3.2620% -2.7317%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 29 outliers among 100 measurements (29.00%)
  15 (15.00%) low mild
  10 (10.00%) high mild
  4 (4.00%) high severe

Raft::campaign (7, 3, transfer)
                        time:   [3.7463 us 3.7631 us 3.7798 us]
                        change: [-3.7255% -3.1380% -2.5888%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

@Hoverbear
I still worry the performance reduction when calculating quorum, maybe it is better to use a var to store the quorum. /cc @BusyJay

@siddontang Ok, that needs to be done for joint consensus anyways so I'll add it to this PR. :)

@siddontang PTAL, this uses FxHashSet to store the nodes in voters/learners.

I introduced another PR, #119 that builds off this since I think it is ready for merge. I can always rebase it. :)

This is so we can move around Progress values between map during promotion. It's simpler (and more efficient) to have a single map and keep membership in a set.
Additionally, this means that during a Joint Consensus state we can avoid having to sync changes and manage multiple Progress values for one node. (Since Joint Consensus would need two ProgressSet, instead of just having two membership pairs).
As you can see in #119 the next PR removes is_learner to prevent that error class, ensuring we rely on the membership here.
I do not want to create a mess, or create ways for us to make mistakes. :)

PTAL @BusyJay

PTAL @BusyJay

Blocked on #123 , but up for review :)

This is unblocked now and should be ready. :)

@BusyJay Please take a look again and make sure your questions are answered.

Thanks for the really great and detailed reviews @BusyJay , @overvenus . I've resolved your comments, can you take another look?


balena-image-initramfs: move to correct layer

Apply the patch to the correct layer.
Change-type: patch

lgtm


Add Python 3.10

As discussed in #41, we need to wait for the following packages to provide binary wheels for Python 3.10:

Numba (numba/numba#7562)
PyEDFlib

Required changes:

[ ] Add Python 3.10 classifier in setup.cfg
[ ] Stop skipping cp310-* in pyproject.toml:tool.cibuildwheel

Numba v0.55.0 is released, so we'll just need to wait for pyEDFlib now.

Nice! Yes, I am waiting really hard for that one...

closed by #75


Trusted Repos: only one of allow or reject can be provided and one must be provided

Current Behavior
Policy definition says:

you can mix and match several filters: registries, tags, and images
only one allow / reject can be provided at the same time for that specific filter

Default yaml contains all filters as empty object:
  settings:
    registries: {}
    tags: {}
    images: {}

This is problem because policy thinks all filters are defined and expect exactly one rule for them.

I am not able to create policy without any settings. It thinks I defined all filters without any allow/reject rules)
When I add & remove rule it leaves empty allow: [] or reject: []. This again breaks rule about exactly one allow/reject rule.

Errors in log:
# policy without any settings:
settings are not valid: Some("only one of registries allow or reject can be provided, and one must be provided")

# policy with valid valid registries setting
settings are not valid: Some("only one of images allow or reject can be provided, and one must be provided")

Reopening the issue. To reproduce take first example from README:

open settings
use registries -> allow: registry.my-corp.com

I end up with following settings yaml:
  settings:
    registries:
      allow:
        - registry.my-corp.com
    tags: {}
    images: {}

After creating such policy I get following error from policyserver
ERROR policy_server::worker_pool: cannot validate policy settings error=[clusterwide-tr] settings are not valid: Some("only one of images allow or reject can be provided, and one must be provided")
ERROR policy_server: [clusterwide-tr] settings are not valid: Some("only one of images allow or reject can be provided, and one must be provided")

Closing, it works fine on 1.3.0-rc


fix(button): fix border-radius

Исправила для темы Default и Site скругление на кнопках xxs-размера с 8рх до 6рх

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.439%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5088

Relevant Lines:
5734

💛  - Coveralls


Fix issue with TVM measured boot tests.

Measured boot tests were failing for Ubuntu20.04 since
the test script could not find the compatscanner tool.
Made change to TVM-TestMeasuredBootCompatibility.sh to
add multiple package repos to pull the mbcompatscanner tool.

It is just a work around for no repo for focal?

It is just a work around for no repo for focal?

Yes. We need this fixed to fix the daily testing pipeline that we have. I will be working on pushing the package to the focal repo soon.


Update WildFly Core to 1.0.0.CR6

Linux with security manager Build 105 is now running using a merge of 1fae9044e7d65d2c15ded86e67726e7dd0d71171

Windows Build 112 is now running using a merge of 1fae9044e7d65d2c15ded86e67726e7dd0d71171

Linux Build 110 is now running using a merge of 1fae9044e7d65d2c15ded86e67726e7dd0d71171

Linux with security manager Build 105 outcome was SUCCESS using a merge of 1fae9044e7d65d2c15ded86e67726e7dd0d71171
Summary: Tests passed: 827, ignored: 317 Build time: 0:07:16

Windows Build 112 outcome was SUCCESS using a merge of 1fae9044e7d65d2c15ded86e67726e7dd0d71171
Summary: Tests passed: 2869, ignored: 372 Build time: 0:46:56

Linux Build 110 outcome was SUCCESS using a merge of 1fae9044e7d65d2c15ded86e67726e7dd0d71171
Summary: Tests passed: 2869, ignored: 372 Build time: 0:49:09


Introduce a Rust module for all lint implementations

The code is currently split up across the following Rust modules:

ast
autofix
cache
checkers
checks
checks_gen
cli
commands
cst
directives
docstrings
eradicate
flake8_2020
flake8_annotations
flake8_bandit
flake8_blind_except
flake8_boolean_trap
flake8_bugbear
flake8_builtins
flake8_comprehensions
flake8_datetimez
flake8_debugger
flake8_errmsg
flake8_implicit_str_concat
flake8_import_conventions
flake8_print
flake8_quotes
flake8_return
flake8_simplify
flake8_tidy_imports
flake8_unused_arguments
fs
isort
iterators
lex
lib_native
linter
logging
mccabe
message
noqa
packages
pandas_vet
pep8_naming
printer
pycodestyle
pydocstyle
pyflakes
pygrep_hooks
pylint
python
pyupgrade
resolver
ruff
rustpython_helpers
settings
source_code_generator
source_code_locator
source_code_style
updates
vendor
visibility

62 top-level modules is a lot and makes the codebase hard to grasp and navigate, so I recommend moving all modules that implement specific rules/checks/lints (whatever we call  them) under a common  module, so for example:

lints

eradicate
flake8_2020
flake8_annotations
flake8_bandit
flake8_blind_except
flake8_boolean_trap
flake8_bugbear
flake8_builtins
flake8_comprehensions
flake8_datetimez
flake8_debugger
flake8_errmsg
flake8_implicit_str_concat
flake8_import_conventions
flake8_print
flake8_quotes
flake8_return
flake8_simplify
flake8_tidy_imports
flake8_unused_arguments
isort
mccabe
pandas_vet
pep8_naming
pycodestyle
pydocstyle
pyflakes
pygrep_hooks
pylint
pyupgrade
ruff

So e.g. ruff:flake8_builtins would become ruff:lints:flake8_builtins, ruff:ruff would become ruff:lints:ruff, etc.

This seems reasonable to me.

Slightly related: Any thoughts on splitting up the code into multiple crates? From my limited understanding this is one way to go for faster compiles. Multiple crates can be compiled in parallel. I did some profiling the other day and a release build takes quite some time because everything is one crate currently.

Agreed. Are you interested in exploring that? I'd be happy to review a proposal.

I have another question here. I am not aware of a specific example of this happening, but if two lints do the exact same thing, are we ever going to track that and only run it once (or at least have a flag to do this)?

For example, I believe pylint and flake8 both have a line length checker.

This problem exists today. The way I view it is that we may want a one-to-many mapping between CheckKind and CheckCode -- so we'd only have one implementation of the check, but it could map to multiple valid codes. I'm not sure it's really worth the complexity though.

Agreed. Are you interested in exploring that? I'd be happy to review a proposal.

Certainly, but with vacations over this will happen on the weekend the earliest. :)

Take your time of course, and thank you as always :)

Slightly related: Any thoughts on splitting up the code into multiple crates? From my limited understanding this is one way to go for faster compiles. Multiple crates can be compiled in parallel. I did some profiling the other day and a release build takes quite some time because everything is one crate currently.

I'm here hoping to find a crate I could use in a rust project to re-use the AST logic to do some custom node visiting. Perhaps the core AST related parts could be in a published crate? :)
I'm rather new to Rust but happy to assist if this makes sense to y'all..

@kaos ruff uses the parser from RustPython, which unfortunately has not been published to crates.io in over 2 years for some reason. The relevant issue for that is https://github.com/RustPython/RustPython/issues/4179.

@kaos - Yeah my suggestion would be to use the RustPython parser. You have to depend on the Git hash directly for now, unfortunately.

I think I can work with that. Thanks for the quick responses. 🙏🏽

I'd also like to adopt a more typical project structure. E.g., we could follow ripgrep, and have a top-level crates directory,  with a single library facade (crates/grep), and the binary distributed as the top-level Cargo.toml.

I think I rather have the crates in the top-level directory, which I think is also quite common (e.g. clippy has this structure).
However I don't really think it's that important. What I do dislike is the top-level ruff directory since it's non-descriptive ... I think it would make sense to move all the Python-distribution-specific stuff (pyproject.toml etc.)  to ruff_python/ or something like that.

Happy to review a PR for that if anyone gets around to it, probably requires a bunch of Maturin reconfiguration.

A distinction that does seem potentially useful, from ripgrep, is that the library crate is published separately from the binary.

Or maybe @messense knows how to rename the top-level ruff dir.

You could move ruff to python/ruff and set python-source in pyproject.toml
[tool.maturin]
python-source = "python"

Oh nice, thank you very much.


[bug] Add missing optional chaining in Dashboard

Notes for Reviewers
Adds missing optional chaining in Dashboard to ensure UI doesn't breaks
This PR fixes #
Signed commits

[ ] Yes, I signed my commits.

@aabidsofi19


JOSE Paper

Reference Issues/PRs
#9

Codecov Report

Merging #10 (2986eec) into dev (bb8bdca) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##               dev       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          149       151    +2
  Branches        29        31    +2
=========================================
+ Hits           149       151    +2

Impacted Files
Coverage Δ

pyrandwalk/pyrandwalk_obj.py
100.00% <100.00%> (ø)

pyrandwalk/pyrandwalk_param.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b26bb85...2986eec. Read the comment docs.

PyRandWalk.pdf


Disable all logging

We noticed that even without a HttpLoggingInterceptor, logs could be made by the library through Platform.get().log(..). We would like to disable all logging in case any sensitive information gets outputted through exceptions or stacktraces.
Sample code of how we achieved this:
private fun disableNetworkingLogging() {
    if (!BuildConfig.DEBUG) {
        Platform.get() // Initialize Platform
        listOfNotNull(
            OkHttpClient::class.java.`package`?.name,
            OkHttpClient::class.java.name,
            Http2::class.java.name,
        ).forEach {
            Logger.getLogger(it).removeHandler(AndroidLogHandler)
        }
    }
}

A suggestion would be to add a disable function to AndroidLog.
Version: 4.0.9

It should be short circuiting the logging unless you have configured it on.  Are you enabling logging generally, but then specifically want to disable OkHttp? Otherwise it sounds like a bug. OkHttp should be outputting based on the logging levels you have set for it.

We have no logged enabled in the app and no logic to set OkHttp's logging level. We do set an HttpLoggingInterceptor with level NONE but we confirmed no logs are outputted through it.
We simplify tested this by calling Platform.get().log(..) in a non debuggable build and it outputs.

I'll take another look. Could you send a sample of logs that make it through on a prod build.

Platform.log is an abstraction over platform-specific logging sinks so calling it directly should result in a log. You are testing the underlying mechanism of writing to a log location, such as calling System.out.println directly.

I forced Platform.log just to see if it will actually log but maybe I am misunderstanding.
For example in RealCall.run() there is a line: Platform.get().log("Callback failure for ${toLoggableString()}", Platform.INFO, e).
I just want to confirm that without any change to OkHttp's log level settings will calls to .log() like the one above get logged?

Default will be info https://developer.android.com/reference/android/util/Log#isLoggable(java.lang.String, int)
In this case we don't have much choice because we are calling the callback to process the response, and that itself is failing with a IOException.  Unless we choose to silent swallow failures we don't have many options here.  You should fix your Callback to handle failures as opposed to rethrowing back into OkHttp. Then it won't cause anything to get logged.
It's also worth noting what is logged here

  /**
   * Returns a string that describes this call. Doesn't include a full URL as that might contain
   * sensitive information.
   */
  private fun toLoggableString(): String {
    return ((if (isCanceled()) "canceled " else "") +
        (if (forWebSocket) "web socket" else "call") +
        " to " + redactedUrl())
  }

We are already being sensitive to PII, if this is too much the two options you have are a) fix the bug in your code or missing catch clause causing failures in the callback, b) possibly adjust logging using the Android mechanisms.

Understood.
I noticed that specific example strips any sensitive information. We just didn't want any other logs showing either, example for the Slack app that I see now and then: W/okhttp.OkHttpClient: A connection to https://slackb.com/ was leaked. Did you forget to close a response body? To see where this was allocated, set the OkHttpClient logger level to FINE: Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);
We already implemented b as shown in the first post. We just wanted to know if there was some method supported by the library (or in the future) to disable logging but if not feel free to close this issue. Thanks!

The example above is a bug that should be fixed in the app, so I think the log at W is valid.
Given you already have a valid workaround, unless there are some more worrying examples I think you've already identified what we consider the appropriate and straight forward workaround.
Closing out unless some obviously bad examples are identified.


Support %T

I understand that spew does not support the %T formatter - it would be nice if it did.

@lavalamp

I'll look into this.
In the mean time, and I know it's not exactly what you're after, but you can use %#v to show the type as a part of the data.
package main

import "github.com/davecgh/go-spew/spew"

func main() {
	var moo int8
	spew.Printf("%#v", moo)
}

Result:
(int8)0

This is nothing urgent, we just found a place using reflect.TypeOf() and
were surprised to find %T did not work.
On Jan 9, 2015 12:58 PM, "Dave Collins"<EMAIL_ADDRESS>wrote:

I'll look into this.
In the mean time, and I know it's not exactly what you're after, but you
can use %#v to show the type as a part of the data.
package main
import "github.com/davecgh/go-spew/spew"
func main() {
var moo int8
spew.Printf("%#v", moo)
}
Result:
(int8)0
--
Reply to this email directly or view it on GitHub
https://github.com/davecgh/go-spew/issues/23#issuecomment-69397836.


Some transactions will never be broadcast in the transaction pool.

There some transactions in full node tx pool, never  be broadcast.

@gguoss do you mind running some nodes with -ltxpool=trace? Some transactions might be propagated, but then rejected by other peers as invalid.
Also what does the validate_transaction runtime function look like? Is it customised for your chain?

I add -ltxpool=trace,  will go to the test again.
Our chain is customized. But other chain also have this problem.
For example:

Added txpool trace.
2019-03-14 11:22:36.922.923 Protocol TRACE txpool  [0xb6f3445baa520a614fdb29b99724ec5073f6b02f5cac126544e6351e160df7f4] WaitingTransaction { transaction: Transaction { data: UncheckedExtrinsic([129, 255, 16, 191, 254, 196, 210, 103, 120, 105, 148, 238, 131, 191, 118, 244, 73, 10, 211, 60, 230, 143, 50, 13, 187, 100, 3, 195, 209, 177, 201, 110, 177, 202, 53, 237, 190, 119, 126, 242, 83, 193, 25, 132, 251, 245, 147, 15, 248, 89, 216, 217, 247, 66, 36, 76, 52, 2, 189, 231, 196, 151, 250, 191, 10, 37, 213, 161, 105, 252, 51, 56, 137, 60, 251, 21, 147, 65, 123, 15, 54, 161, 151, 20, 9, 74, 105, 62, 235, 204, 155, 34, 211, 199, 148, 17, 132, 4, 68, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 0, 225, 245, 5, 0, 0, 0, 0, 160, 134, 1, 0, 0, 0, 0, 0]), bytes: 127, hash: 0xb6f3445baa520a614fdb29b99724ec5073f6b02f5cac126544e6351e160df7f4, priority: 1, valid_till:<PHONE_NUMBER>3709551615, requires: [], provides: [[16, 191, 254, 196, 210, 103, 120, 105, 148, 238, 131, 191, 118, 244, 73, 10, 211, 60, 230, 143, 50, 13, 187, 100, 3, 195, 209, 177, 201, 110, 177, 202, 17, 0, 0, 0, 0, 0, 0, 0]] }, missing_tags: {}, imported_at: Instant { tv_sec: 260857, tv_nsec: 919317662 } }
2019-03-14 11:22:36.922.923 Protocol DEBUG txpool  [0xb6f3445baa520a614fdb29b99724ec5073f6b02f5cac126544e6351e160df7f4] Importing to ready
2019-03-14 11:22:36.926.927 Protocol TRACE txpool  [0x58ee8614b84d06db2204dd18a3bde04ea8f1f85ee80a21b4a383d27208452eb3] WaitingTransaction { transaction: Transaction { data: UncheckedExtrinsic([129, 255, 71, 26, 249, 230, 157, 65, 238, 6, 66, 105, 64, 253, 48, 36, 84, 102, 39, 66, 64, 92, 185, 220, 197, 188, 104, 206, 183, 190, 201, 121, 229, 228, 231, 151, 101, 222, 158, 22, 134, 253, 144, 172, 52, 165, 95, 77, 224, 202, 27, 225, 46, 162, 127, 123, 41, 129, 225, 248, 252, 122, 191, 174, 107, 26, 147, 64, 79, 135, 233, 167, 71, 137, 89, 96, 89, 140, 222, 0, 82, 17, 5, 228, 8, 224, 146, 111, 62, 91, 64, 228, 52, 15, 70, 4, 94, 3, 164, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 0, 225, 245, 5, 0, 0, 0, 0, 160, 134, 1, 0, 0, 0, 0, 0]), bytes: 127, hash: 0x58ee8614b84d06db2204dd18a3bde04ea8f1f85ee80a21b4a383d27208452eb3, priority: 1, valid_till:<PHONE_NUMBER>3709551615, requires: [], provides: [[71, 26, 249, 230, 157, 65, 238, 6, 66, 105, 64, 253, 48, 36, 84, 102, 39, 66, 64, 92, 185, 220, 197, 188, 104, 206, 183, 190, 201, 121, 229, 228, 41, 0, 0, 0, 0, 0, 0, 0]] }, missing_tags: {}, imported_at: Instant { tv_sec: 260857, tv_nsec: 923427062 } }
2019-03-14 11:22:36.926.927 Protocol DEBUG txpool  [0x58ee8614b84d06db2204dd18a3bde04ea8f1f85ee80a21b4a383d27208452eb3] Importing to ready
2019-03-14 11:22:36.929.930 Protocol TRACE txpool  [0x0f3004cf2842bb9c03f7abef42b5a25b317b74ae56f3d3b5bea690b2be38e134] WaitingTransaction { transaction: Transaction { data: UncheckedExtrinsic([129, 255, 244, 160, 54, 102, 204, 235, 144, 203, 29, 80, 199, 209, 126, 135, 218, 52, 254, 226, 9, 85, 13, 101, 199, 98, 44, 146, 78, 130, 201, 90, 238, 67, 245, 68, 249, 0, 39, 173, 91, 168, 135, 136, 228, 14, 38, 158, 61, 68, 214, 112, 171, 103, 220, 185, 23, 51, 126, 23, 40, 41, 130, 148, 144, 123, 172, 93, 41, 199, 132, 33, 216, 103, 203, 83, 165, 56, 224, 216, 113, 78, 158, 30, 175, 2, 202, 193, 70, 20, 248, 55, 28, 191, 10, 41, 23, 1, 44, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 0, 225, 245, 5, 0, 0, 0, 0, 160, 134, 1, 0, 0, 0, 0, 0]), bytes: 127, hash: 0x0f3004cf2842bb9c03f7abef42b5a25b317b74ae56f3d3b5bea690b2be38e134, priority: 1, valid_till:<PHONE_NUMBER>3709551615, requires: [], provides: [[244, 160, 54, 102, 204, 235, 144, 203, 29, 80, 199, 209, 126, 135, 218, 52, 254, 226, 9, 85, 13, 101, 199, 98, 44, 146, 78, 130, 201, 90, 238, 67, 11, 0, 0, 0, 0, 0, 0, 0]] }, missing_tags: {}, imported_at: Instant { tv_sec: 260857, tv_nsec: 926434845 } }
2019-03-14 11:22:36.929.930 Protocol DEBUG txpool  [0x0f3004cf2842bb9c03f7abef42b5a25b317b74ae56f3d3b5bea690b2be38e134] Importing to ready

Closing due to staleness and recent changes might have fixed. If not fixed, please reopen.


Remove NamespaceCreation in VirtualKubelet Logic

Description
Until 0.2, virtual-kubelet was responsible to map namespaces across clusters and handle their translation. To introduce the support to multiple clusters (#572), several controllers have been introduced to handle namespace replication logic outside the virtual-kubelet ( #542, #569, #645).
This PR removes the former logic to the virtual-kubelet, letting the new logic handle namespace reflection.
Ref. #572
How Has This Been Tested?

[x] Unit Tests
[ ] E2E

/hold


Round standard deviation display

Standard deviation was previously unrounded, and oftentimes a very long number that took up a disproportionate amount of display area.
Since this value is more "nice to have" then directly actionable, it's been rounded to the nearest whole number for display purposes.

Apologies, I meant to create this PR on my fork. It includes commits from some previous changes here.


Confusing text regarding cloning Wallaroo

The following text is somewhat confusing.  If you have already cloned wallaroo inside wallaroo-tutorial than the latter already exists.  I think we should say something like "unless you've already cloned wallaroo into wallaroo-tutorial..." at the top of this:
Set up Environment for the Wallaroo Tutorial

Create a directory called ~/wallaroo-tutorial and navigate there by running

cd ~/
mkdir ~/wallaroo-tutorial
cd ~/wallaroo-tutorial
This will be our base directory in what follows. If you haven't already cloned the Wallaroo repo, do so now (this will create a subdirectory called wallaroo):

git clone https://github.com/WallarooLabs/wallaroo
cd wallaroo
git checkout 0.1.0-rc2

connected to #1388

@jtfmumm I propose changing it to:
## Set up Environment for the Wallaroo Tutorial

If you haven't already done so, create a directory called `~/wallaroo-tutorial` and navigate there by running

cd ~/
mkdir ~/wallaroo-tutorial
cd ~/wallaroo-tutorial

This will be our base directory in what follows. If you haven't already cloned the Wallaroo repo, do so now (this will create a subdirector\
y called `wallaroo`):

git clone https://github.com/WallarooLabs/wallaroo
cd wallaroo
git checkout 0.1.2

Does that make more sense?

@aturley Makes sense to me.