SI-10167: Strawman implementation of mutable.ArrayDeque

Prior discussion:
https://contributors.scala-lang.org/t/using-circular-buffers-as-mutable-arraybuffer/454
SI-10167: https://issues.scala-lang.org/browse/SI-10167
ArrayDeque's (implemented using a growable circular buffers using modular arithmetic for indexing) are strictly better data structures than vanilla ArrayBuffers.
This improves on java.util.ArrayDeque by providing an O(1) get and also providing faster insertAt(idx) and deleteAt(idx) operations.
This implementation adds O(1) append, prepend, removeHead, removeTail, get, update and clear APIs. We can replace all current implementations of mutable data structures like stack, queues and buffers with ArrayDeque (pending benchmarks)

Regarding the Travis failure https://travis-ci.org/scala/collection-strawman/builds/214811920, it's a StackOverflow on -Xss6M O_O

[info] Compiling 3 Scala sources to /home/travis/build/scala/collection-strawman/target/scala-2.12/test-classes...
java.lang.StackOverflowError

I have a question: in the case of repeatedly removing an element from the end and adding an element to the beginning, is this still more performant than ArrayBuffer? Can you name any edge cases for performance?

in the case of repeatedly removing an element from the end and adding an element to the beginning, is this still more performant than ArrayBuffer?

Oh interesting.
Without checking details, asymptotically, on a correct implementation, each of the removal+addition you describe should take O(n) in an ArrayBuffer, but O(1) in a ArrayDeque because no existing elements are copied.
That only happens as long as you don't have too many reallocations in that sequence. That's exceedingly tricky to verify, but after staring for a while at ensureCapacity, I've concluded that:

it appears to do the right thing under most scenarios I've considered
the code is written very cleverly, with insufficient comments, and it could be made easier to review without performance impact (see my comments).

PS @edmundnoble: haven't tested stuff, so I'm happy to be corrected.

@Blaisorblade: Do you know why the scalac is throwing a SO here!? Also, yes the ensureCapacity is a bit hard to understand because it relies on 2 things: alloc returning > len (and not >= len) and we resizing when we are 1 element short and not when the cells are actually all full... I will document it in comments...

I only highlighted there's an SO, I'm afraid I can't investigate it or even write a proper bug report.

An aside:
One thing I wanted to do for years was to make List() actually immutable, so that it does 'safe publication' and is not prone to race conditions on its [under the covers mutable] variables when passed across threads.
This data structure will be extremely useful as a potential replacement for ListBuffer that is required to make that a reality.   I believe that we can get equal or better average performance than ListBuffer for a great deal of the List operations, with only minor regressions elsewhere, using array-based structured instead of ListBuffer.  A buffer that I can append or prepend to with O(1) makes a big difference in some contexts.    Looking forward to this!

@scottcarey That sounds like a good idea! What you suggest has rather different performance characteristics from the current ListBuffer, because result() is not O(1) anymore.
But since you can only call result() once on a Buffer (right?), I think you can prove your result() takes amortized O(1). You prove that with amortized analysis by just "spreading" its cost over the previous inserts (that might sound strange, but the point of amortized analysis is to allow this spreading in a way that makes sense).

@Blaisorblade
Well the key is that you use ListBuffer on things that are O(n) anyway, like foreach.   whether result is O(1) or not doesn't matter when the cost of the operation is dominated by other O(n) things.
So you just have to gain in the constant factor from an array based structure due to locality of reference, by about an equal amount that you lose on the final result() requiring construction of a new List.
For things like List.map, where you must traverse down the list, then reconstruct, an intermediate buffer can probably do OK, but the mutable list may be faster  (but it is cheating!).  Though you will see in this old discussion: https://groups.google.com/forum/#!searchin/scala-internals/safe$20publication|sort:relevance/scala-internals/P7WNVkJQdHk/7a5-NsDoeu0J that an array based structure can be surprisingly fast in cases we might not expect.
foldRight, can probably gain in all scenarios.
A key optimization would be to not use a buffer for the last ~30(?) or so elements (use the stack) to optimize for short lists.   Basically, use the stack up to some depth, then spill into a buffer (or chain of buffers) after that.
The classic example of unsafe publishing on List is here: https://gist.github.com/jrudolph/6552186
// end digression, still excited about ArrayDeque :)

The SO comes from a bug in scalac. To benefit from the fix, just rebase your work to master (or update your build.sbt like so).
That looks great! Can you run the benchmarks to compare ArrayBuffer and ArrayDeque?

@julienrf : I already fixed the SO. Is there already some kind of existing harness to compare performance against some other scala collection?? I looked here but could not see anything that would compare various operations.

You would have to implement your own benchmark, in a similar way to what is done with ArrayBuffer. Feel free to add new operations that would be relevant for these collection types. I can help if needed :)

@pathikrit, you can grab
https://github.com/DarkDimius/DelayingArrays/blob/rewrite/src/main/scala/me/d_d/delaying/Benchmarks.scala
as a good starter

I'm late to the party because I've been on vacation for a week but I just wanted to point out that I have yet to see an otherwise correct program that gets broken by unsafe publishing of Lists. The snippet mentioned by @scottcarey shows a new failure mode created by the lack of safe publishing but without any synchronization or making x volatile, there is no guarantee that changes would be observed on other threads, so the code would still be meaningless.

@Ichoran / @julienrf : Addresses most of the concerns for now (see: https://github.com/scala/collection-strawman/pull/49/commits/076d6f593fee8af2330d1c2d5bae2c7325c1a3ab)
Please review again? Also, I think it is prudent to simply alias mutable.Stack and mutable.Queue to this collection. Do we provide simple implementations using encapsulation (i.e. a mutable.Stack simply wraps over a mutable.ArrayDequeu) or by just adding the typical method aliases (e.g. queue/enqueue/push/pop/peek into this class)?

Left a few more comments but this is looking quite good save that it is for old-style collections instead of the strawman.  Can't say I am terribly enamored of the setInternal etc. nomenclature (as opposed to _set or set0 as is used in e.g. hash maps, or mySet which I almost always use for my own code), but I have an unusual aversion to long names. @julienrf should probably weigh in on that.

About naming protected/private methods: in the other collection implementations we often use xxx0 (ie. the method name suffixed by “0”).

Also, I think it is prudent to simply alias mutable.Stack and mutable.Queue to this collection. Do we provide simple implementations using encapsulation (i.e. a mutable.Stack simply wraps over a mutable.ArrayDequeu) or by just adding the typical method aliases (e.g. queue/enqueue/push/pop/peek into this class)?

I would just alias Stack and Queue to this collection. And we could also add the method aliases that you mention.

@Ichoran : Proof of concept mutable stacks and queues: https://github.com/scala/collection-strawman/pull/49/commits/38147a507d9a65d2c6341551b32ada3c9c85744d
We can move these all into ArrayDequeue and simply alias but I prefer not calling .pop() on a queue or a .enqueue() on a stack accidentally.

@Ichoran @julienrf:
I checked in some preliminary benchmarks: https://github.com/scala/collection-strawman/pull/49/commits/ed1ace719e99e3eb0ca2b5f7aa6787f0cfe3dfe2
For all intent and purposes, I think we can nuke mutable.ArrayBuffer:
  ArrayDeque                Insert lots of items:  1298.87 ms
 ArrayBuffer                Insert lots of items:  2481.30 ms
------------------------------------------------------------------------
  ArrayDeque  Drop some items from an head index:     1.36 ms
 ArrayBuffer  Drop some items from an head index:     7.43 ms
------------------------------------------------------------------------
  ArrayDeque   Drop some items from a tail index:     0.38 ms
 ArrayBuffer   Drop some items from a tail index:     2.63 ms
------------------------------------------------------------------------
  ArrayDeque        Prepend few items one by one:     1.90 ms
 ArrayBuffer        Prepend few items one by one:  5189.27 ms
------------------------------------------------------------------------
  ArrayDeque     Append lots of items one by one:  2549.49 ms
 ArrayBuffer     Append lots of items one by one:  1018.88 ms
------------------------------------------------------------------------
  ArrayDeque       Prepend lots of items at once:    84.22 ms
 ArrayBuffer       Prepend lots of items at once:  2673.83 ms
------------------------------------------------------------------------
  ArrayDeque                     Random indexing:    99.04 ms
 ArrayBuffer                     Random indexing:    98.74 ms
------------------------------------------------------------------------
  ArrayDeque              Insert items near head:   645.68 ms
 ArrayBuffer              Insert items near head:   556.79 ms
------------------------------------------------------------------------
  ArrayDeque              Insert items near tail:   111.16 ms
 ArrayBuffer              Insert items near tail:  4072.54 ms
------------------------------------------------------------------------
  ArrayDeque                             Sliding:    69.32 ms
 ArrayBuffer                             Sliding:  5336.06 ms
------------------------------------------------------------------------
  ArrayDeque                            Reversal:    96.28 ms
 ArrayBuffer                            Reversal:   380.80 ms
------------------------------------------------------------------------
  ArrayDeque                             toArray:   158.85 ms
 ArrayBuffer                             toArray:   123.80 ms
------------------------------------------------------------------------
  ArrayDeque                 Clear lots of items:    58.05 ms
 ArrayBuffer                 Clear lots of items:   100.24 ms
------------------------------------------------------------------------

The benchmarks aren't consistent across the two.  Most worrying, the primary application for ArrayBuffer is usually appending items one by one.  If ArrayDeque is actually 2.5x slower, that absolutely bars using it as a replacement.  I strongly doubt that this is true, but why the discrepancies between the two sets of tests?  Any ideas?

@Ichoran : Because this is micro-benchmark with all associated pitfalls mentioned here: https://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java
This was just to give an idea that most operations are comparable (within 1-2x) in speed to ArrayBuffer and prepends and sliding and reverse are significantly faster (10-100x)

@Ichoran @julienrf : Newer benchmarks after warm-up and taking 100 averages:
===============[Insert lots of items]=================
  ArrayDeque:   989.73 ms
 ArrayBuffer:  2437.22 ms
===============[Drop some items from an head index]=================
  ArrayDeque:     1.78 ms
 ArrayBuffer:     7.47 ms
===============[Drop some items from a tail index]=================
  ArrayDeque:     0.28 ms
 ArrayBuffer:     3.04 ms
===============[Append lots of items one by one]=================
  ArrayDeque:  2251.32 ms
 ArrayBuffer:  3606.60 ms
===============[Prepend few items one by one]=================
  ArrayDeque:     1.21 ms
 ArrayBuffer:  8620.89 ms
===============[Prepend lots of items at once]=================
  ArrayDeque:   450.12 ms
 ArrayBuffer:  3345.94 ms
===============[Random indexing]=================
  ArrayDeque:    84.57 ms
 ArrayBuffer:    83.01 ms
===============[Insert items near head]=================
  ArrayDeque:  1009.24 ms
 ArrayBuffer:  3966.14 ms
===============[Reversal]=================
  ArrayDeque:   382.78 ms
 ArrayBuffer:   308.41 ms
===============[Insert items near tail]=================
  ArrayDeque:  2181.51 ms
 ArrayBuffer:  6934.33 ms
===============[Sliding]=================
  ArrayDeque:   447.13 ms
 ArrayBuffer:  2520.40 ms
===============[toArray]=================
  ArrayDeque:   175.41 ms
 ArrayBuffer:   192.68 ms
===============[Clear lots of items]=================
  ArrayDeque:    50.27 ms
 ArrayBuffer:    28.69 ms

@pathikrit Could you please use the existing benchmarking infrastructure (it’s in the benchmarks directory)?

@pathikrit - You can use whatever methods you find helpful for guiding your self during testing, but please only check in benchmarks that don't fall into all the pitfalls of "how not to write a microbenchmark".  Ideally these would be using JMH, as it is the most robust to all the things that can yield misleading results.
(Aside: if you want to use something that has fewer pitfalls while still doing quick testing, try  Thyme.  I wrote it exactly for that purpose; it avoids every pitfall except does not restart the JVM (too slow, and anyway, I use it for microbenchmarking-in-place which can be very handy when speed depends on program history, memory load, and so on).)

Hey @pathikrit, what’s the status of this work? I think the internal design of the collections is stable now. Are you interested in finishing this work?

@julienrf - The work as targeted against Scala 2.12 is complete - we in fact, use this in production internally on Scala 2.13.
I will try to work on this over the winter break to make it implement Scala 2.13 interfaces. Where is a good documentation I can follow? Specifically, can you give me the first line of this class i.e. what all shall I extend e.g. currently the line is this:
class ArrayDeque[A] private[ArrayDeque](
    private[ArrayDeque] var array: Array[AnyRef],
    private[ArrayDeque] var start: Int,
    private[ArrayDeque] var end: Int
) extends mutable.AbstractBuffer[A]
    with mutable.Buffer[A]
    with generic.GenericTraversableTemplate[A, ArrayDeque]
    with mutable.BufferLike[A, ArrayDeque[A]]
    with mutable.IndexedSeq[A]
    with mutable.IndexedSeqOptimized[A, ArrayDeque[A]]
    with mutable.Builder[A, ArrayDeque[A]]
    with Serializable

What would the above line look like in Scala 2.13? If you can tell me that, I can fill in the blanks fairly easily.
Also, is the interface stabilized? I have limited time and would like to work against a stable framework. Last time I attempted this, the interface completely changed on me and I gave up.

I will try to work on this over the winter break to make it implement Scala 2.13 interfaces.

Awesome!

Where is a good documentation I can follow?

This document is a good starting point:
https://github.com/scala/collection-strawman/blob/master/documentation/DESIGN.md

Specifically, can you give me the first line of this class

Should be the following:
package strawman.collection
package mutable

class ArrayDeque[A] private[ArrayDeque](
    private[ArrayDeque] var array: Array[AnyRef],
    private[ArrayDeque] var start: Int,
    private[ArrayDeque] var end: Int
) extends Buffer[A]
    with IndexedSeq[A]
    with IndexedSeqOps[A, ArrayDeque, ArrayDeque[A]]
    with IndexedOptimizedSeq[A]
    with StrictOptimizedSeqOps[A, ArrayDeque, ArrayDeque[A]]
    with Serializable

Also, is the interface stabilized?

It hasn’t changed for a while, but we might apply minor changes for #300.

@julienrf : Can you take a look at https://github.com/scala/collection-strawman/pull/49/commits/7b2b9e1e444cf562d3e467511e2ccfb4c73c84d2 ? It is my first attempt at following the Scala 2.13 collection style.
Can you tell me if I am in the right direction?
Got most of it to compile except 2 things:

I relied on isTraversableAgain a lot in Scala 2.12 version. What do I do in Scala 2.13??
I relied on .toIndexedSeq in some places to optimize in certain cases. What do I do in Scala 2.13?

If you have time, can you checkout this branch and see an easy way to fix the compile error?
Thank you!

Can you tell me if I am in the right direction?

I had a quick look and that looks good. I’ll take more time to review tomorrow.

I relied on isTraversableAgain a lot in Scala 2.12 version. What do I do in Scala 2.13??

You can do a runtime test:
myIterableOnce match {
  case it: Iterable[A] => …
  case _ => …
}

I relied on .toIndexedSeq in some places to optimize in certain cases. What do I do in Scala 2.13?

We have it: https://github.com/scala/collection-strawman/blob/3c725f29e1c405fc84e009faeca418791557ff7f/collections/src/main/scala/strawman/collection/Iterable.scala#L312
Otherwise, the generic version is to(IndexedSeq)

You can just copy-paste my changes to your branch.


Docs.MS Release Updates for azure-communication-common

Update docs metadata and targeting for release of azure-communication-common

Docs Build status updates of commit d8624f6:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/preview/communication-common-readme.md
:warning:Warning
View (azure-node-preview)
Details

docs-ref-services/preview/communication-common-readme.md

Line 9, Column 16: [Warning-ms-prod-technology-invalid] Invalid value for 'ms.technology': 'azure' is not valid with 'ms.prod' value 'azure'.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Transit Backend: Support for export operation added.

'VaultTransitTemplate' extended to export encryption keys.
Integration tests updated to check the behavior.

All right! I've removed the formatting changes.

Thanks again, this pull request was a great job. That's merged and polished now.


Warning: using Lazy.take in module Main conflicts with an existing identifier.

Julia Version 0.3.5
Commit a05f87b* (2015-01-08 22:33 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin13.4.0)
  CPU: Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

julia> using Lazy
Warning: using Lazy.take in module Main conflicts with an existing identifier.
Warning: using Lazy.range in module Main conflicts with an existing identifier.

julia> fibs = @lazy 0:1:(fibs + drop(1, fibs));

julia> take(20, fibs)
WARNING: take is deprecated, use take! instead.
 in depwarn at deprecated.jl:36
 in take at deprecated.jl:8
ERROR: `take!` has no method matching take!(::Int64, ::LazyList)
 in take at deprecated.jl:10

I find other functions/macros work just fine except take-like functions.
By the way, what is the @nobrace like macro?

I'm not seeing this myself. Have you imported any other packages before Lazy.jl?

By the way, what is the @nobrace like macro?

Can you clarify? Happy to help out but I'm not sure I understand your question here.

I reply the second question first. I mean a macro that removes brackets. This is discussed here.

For the first one, I didn't import anything.
julia> help(take)
INFO: Loading help data...
take (generic function with 1 method)

julia> methods(take)
# 1 method for generic function "take":
take(...) at deprecated.jl:8

julia> methods(range)
# 7 methods for generic function "range":
range(a::FloatingPoint,len::Integer) at range.jl:155
range(a::Real,len::Integer) at range.jl:73
range{T}(a::T,len::Integer) at range.jl:77
range(a::FloatingPoint,st::FloatingPoint,len::Integer) at range.jl:156
range(a::Real,st::FloatingPoint,len::Integer) at range.jl:157
range(a::FloatingPoint,st::Real,len::Integer) at range.jl:158
range{T,S}(a::T,step::S,len::Integer) at range.jl:88

Regarding the deprecation warnings, I see them in IJulia but not in the REPL. I'm on Julia Version 0.3.7-pre+19 Commit e3fbe7e (2015-03-10 07:59 UTC)

@one-more-minute, I believe I'm also seeing this.  I'm using Julia 0.4.1.  Starting a new REPL session,
julia> using Lazy
julia> fibs = @lazy 0:1:(fibs + drop(1, fibs));
julia> take(20, fibs)
WARNING: both Lazy and Base export "take"; uses of it in module Main must be qualified
ERROR: UndefVarError: take not defined

I also tried:

@xanderdunn  you have to use like Lazy.take(20, fibs)  see this thread https://github.com/one-more-minute/Lazy.jl/issues/27

@boathit Thanks.  You can see above I did actually try Lazy.take(), but I still got an error.  I incorrectly assumed it was an error internal to Lazy.take, but actually I just needed to revise my fibs definition to use Lazy.drop as well.


Add xeofs

Insert URLs to the project here:
https://github.com/xarray-contrib/xeofs

[x] The projects is active, documented, open source licensed, shows usage from external parties and is directly targeting environmental sustainability. Find more details in the Contribution Guide.

All issues labeled as 'Good First Issue' of the project listed on OpenSustain.tech will be visible on ClimateTriage.com. This is a great way to welcome new community members to your project.

@slevang @nicrie


Add labels to FAAs

If two users share a role via an AWS Federated Account Access CR, currently deleting one will remove the Roles/Policies from the target account. This leaves the other user unable to use the role. To fix this, two labels are appended to each Federated Account Access when they become ready: role: rolename and account: awsAccountID. Then when an AWS Federated Account Access CR is deleted, it checks first to see if any other FAA CRs have the same label. If not, then the Roles/Policies are cleaned up. If at least one other has the same labels, then the Roles/Policies are NOT cleaned up

/retest

/hold

Closing in favor of #300
Since every FAA will manage its own role, the deletion of the FAA will handle its own role. That makes this code obsolete, as no roles are shared.


Improve models filter

Description of changes made
The first model right now is gpt-4o-test. This one doesn't work. This filter was improved.
Other notes
Closes #217

[x] I have checked that I am merging into correct branch

@pderakhshanfar @Vladislav0Art thank you for your comments, for some reason, there is no gpt-4o-test model anymore. I guess, it was temporary model and than is was removed after the gpt-4o release. I'll close this PR.


Lo-reninge QR codes are missing in inbox

Bij bv. BD Technix en The Beautybar zijn er geen QR codes bij Instellingen Postvak in.
At BD Technix and The Beautybar there are no QR codes at Settings Inbox.

@abom, can you check what's the display logic of this QR code?

The qr code would be displayed if solution settings has a inbox_connector_qrcode.
I checked the service of BD Technix, and it's None.

It can be reproduced locally, i think it's the same transaction problem when saving solution settings.

Locally, it happens only for newly created services.

The cause of the problem is that sln_settings returned from bizz.provision function is saved (with its old state) again here and here, so it overwrites any changes done during the configuration of inbox qr code.
So, we cannot do model.get() outside a transaction, then use this state of an entity to store/put it later, this might introduce data corruptions at the end.
Keeping in mind that in an uber/propagated transaction, doing model.get() will return the state before starting the transaction, so any inner transaction would just overwrite the data of the outer transactions, as they now are 1 transaction that's committed once.


[docs] Update Testing.md

32-bit processes are not supported on Macs with Apple silicon (see Xcode 12 Release Notes).

@swift-ci Please smoke test

@swift-ci Please smoke test


BIP70 payment requests not exported

Just pushed code so that the BIP70 payment requests are also exported.
The export now produces 3 files: transactions, your payment requests, their payment requests.
Awaiting review and closing

Verified working.
One observation: the export format will only wrap text in double quotes if the text field contains a comma. This seems odd, but the code is a standard CSV library so it's probably providing maximum compatibility.
Closing.


NLogViewer docs are incomplete

Docs on the wiki (https://github.com/NLog/NLog/wiki/NLogViewer-target)
are missing some properties of https://github.com/NLog/NLog/wiki/Network-target
As NLogViewerTarget inherits from the NetworkTarget, NLogViewerTarget has all the NetworkTarget properties. (not clear in the docs)
from https://github.com/NLog/NLog/issues/2145

added note:

This target inherits from the Network Target, and so it has also all the properties of the Network Target available.

done


Fix: Changed the CardStack import name in index.js file

The name of the CardStack file is camel cased but the import in index.js file is not camel-cased.  Fixed the issue. Please let me know if I had to something else to get this merged into master.

can we get this merged?
is there a working fork?

Working fork link:  https://github.com/agrandhi18/react-cardstack
I think this PR should be merged.


Disable the puppetserver report processor feature by default

By default if reports is NOT defined, puppetserver will enable the "store" reports processor which will generate yaml reports in: /opt/puppetlabs/server/data/puppetserver/reports/
See: https://docs.puppetlabs.com/puppet/latest/reference/reporting_about.html#configuring-reporting
If your not expecting this or dealing with this some way, you will probably run your puppetserver out of disk space.  This PR defaults this to "none" which will turn this feature off.

The module gives you the ability to set it to none if you'd like, but I believe this change changes the puppet default.  I'm curious why the PR instead of just setting the report processor to none in your environment.

Sorry,
I was coming from the angle of a new user.    By default if nothing at all is defined pupetserver will start spitting out repot files in a non-obvious directory.    I'm going to guess that a new user to puppet would have no idea this is happening, and would eventually run their server out of disk space.  So my initial though was this feature should be turned off by default.
I'm ok if your really not in favor of this PR.   Maybe as a good alternative we document that setting better in the readme.  Maybe list a few possible built-in options: puppetdb,http,store (defult), log?
(I've attended quite a few puppetlabs talks, and I'm actually a bit surprised this setting doesn't default to puppetdb since they encourage you to use it.)

I think I want to leave this as the default, but I'd love some documentation updates!


Add jbochenski to logstash-plugin

I'm the only active maintainer https://groups.google.com/forum/#!msg/jenkinsci-dev/0H5rgM3Qf58/AvbGbE1XBwAJ
Description
https://github.com/jenkinsci/logstash-plugin
Submitter checklist for changing permissions
Always

[x] Add link to plugin/component Git repository in description above

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] All newly added users have logged in to Artifactory at least once

Quick reference: https://groups.google.com/d/msg/jenkinsci-dev/0H5rgM3Qf58/W5hUcF92BgAJ seems to be the specific approval from the previous maintainer rather than a general "someone should take over".
@R-Gerard please clarify if I'm mistaken. I'll give you a day or so to reject this request as it's not quite as unambiguous as I like.

No response in a day and a message that looks a lot like approval, so I'm going ahead here.

LGTM

@R-Gerard Thanks!


路由: concepts/route.md

This article is waiting to be claimed. concepts/route.md

/accept

/accept

/pushed

/merged


[STORM-1914] Storm Kafka Field Topic Selector

STORM-1914
Support field name and field index to select which kafka topic will used as a downstream .

+1

I'm not sure why constructor of FieldIndexTopicSelector and FieldNameTopicSelector are resurrected again, but I'm revoking +1 and now -1 on this unless it removes specific meaning of "default".
As I said previously, there's no "default" topic in Kafka by default so it should throw errors. We should force users to input default topic name to make them prepared.

I don't know why can't support default topic to collect the messages which not found topic name from tuple and  keeping remove constructor .
Now I have update to throw Exception when topic name miss .

You're misunderstanding what I and @abhishekagarwal87 have been saying. We're OK to have default topic, but not OK to have "default" topic. There's no "default" topic in Kafka by default.

In other word, constructors which receives two parameters are fine with me, but constructors which receives only one parameter are bad for me.

@HeartSaVioR I misunderstood what you meant.
keep constructor with fieldName/fieldIndex and default topic name .
thanks ~

@darionyaphet Thanks for following up quickly. +1 on me.
@abhishekagarwal87 Could you review it again?

Looks good to me too. Thank you @darionyaphet

@abhishekagarwal87 @HeartSaVioR Storm-Kafka trident mappers and selectors are very similar with bolt's mappers and selectors  .  Maybe we can move them into one place ?


Bug/Home screen can get stuck on mobile

Problem
On mobile, after uploading the photo and scrolling down, user may find difficulty scrolling back up. This is due to the fact that the HTML canvas containing the uploaded photo responds to the finger scrolling up by shifting the image within the frame.
(Shifting the image within the frame is an intended feature)
Possible solution
Modify the canvas listener so that when the user drags up the canvas, the screen gets scrolled up instead (When image can no longer be shifted up due to boundary constraints)
Only needs to modify tap listener, not click listener.
Possibly modify this function?
https://github.com/yarkhinephyo/yolo_bouldering/blob/182ee8aeb930589526e89da24cdd2323ece6878b/ionic_user_interface/src/components/wall-image-viewer/stageListeners.ts#L125

!

To simulate touch in a browser (Found it personally useful maybe there are better options)
https://hammerjs.github.io/touch-emulator/
Scroll down to "Bookmarklet"


Fix ES to use ELASTICSEARCH_URI

To implement #304
Required for all PRs:

[ ] CHANGELOG.md updated (feel free to wait until changes have been reviewed by a maintainer)
[ ] README.md updated (if needed)

nice catch


[EASI-4636] GRB discussions card

EASI-4636
Figma
Figma with empty states
Description

Added Discussions section to GRB Review tab
<DiscussionPost> component displays single discussion post

"Reply" button and "3 replies in this discussion" text were changed to match discussion panel (confirmed with Zoe)

Unit tests

Future changes for followup PR once once #2882 is merged:

Display discussion content in TipTap component
Truncate discussion content with read more/less buttons
Update buttons to open discussion panel

How to test this change

Go to GRB review tab of system intake from seeded data
Discussions section should match Figma

PR Author Checklist

[x] I have provided a detailed description of the changes in this PR.
[x] I have provided clear instructions on how to test the changes in this PR.
[x] I have updated tests or written new tests as appropriate in this PR.

PR Reviewer Guidelines

It's best to pull the branch locally and test it, rather than just looking at the code online!
When approving a PR, provide a reason why you're approving it

e.g. "Approving because I tested it locally and all functionality works as expected"
e.g. "Approving because the change is simple and matches the Figma design"

Don't be afraid to leave comments or ask questions, especially if you don't understand why something was done! (This is often a great time to suggest code comments or documentation updates)
Check that all code is adequately covered by tests - if it isn't feel free to suggest the addition of tests.

Reverting this to draft to address changes now that #2882 is merged.


network configuration is outdated

F.e.
[Match]
Name = wg0

[Network]
Description=WireGuard tunnel wg0
IPMasquerade=both
Address = <IP_ADDRESS>/24
Address = fd9f:8ab0:9ee5::1/120

[Route]
Gateway = <IP_ADDRESS>
Destination = <IP_ADDRESS>/24
GatewayOnlink = true

Complains on IPMasquerade option:
[InvalidValue] IPMasquerade=both
[SettingRequires] IPMasquerade requires IPForward=ipv4

IPForward is deprecated since version 256 (https://github.com/systemd/systemd/blob/main/NEWS#L345-L355) and extension is unaware of IPv6Forwarding/IPv4Forwarding.
Also, [SettingRequires] is wrong: "IPv4Forwarding ... Defaults to true if IPMasquerade= is enabled for IPv4..."

[InvalidValue] IPMasquerade=both error is awkward -- this is the value extension suggested me.

[InvalidValue] Address=fd9f:8ab0:9ee5::1/120 -- it doesn't like this address

[InvalidSetting] GatewayOnlink is not supported in section Route -- wrong (https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#GatewayOnLink=)

The support for version 256 will be added in next release


Enhancement - add battery % for EV

Currently have a new EV and can see the charge percentage in the my chevy app but not with the homebridge plugin. It’d be cool to see that percentage as some type of sensor.

Should be possible! The charge info is already exposed via the diagnostics method in OnStarJS, so should be able to add a service like https://github.com/WonkiDonk/homebridge-jlr-incontrol/blob/master/src/services/battery.ts.
Would need to add support for toggling waiting for requests to fully complete in OnStarJS though. Right now it's either always off or on and in homebridge-onstar it's always off because I was seeing HomeKit time out on requests to my Volt.
I'll look into this.

Hi Samrum,
Do you still think this will be possible to add?
Thank you!

It should be possible, though I'm still not sure exactly how best to implement it.
See #67 to see my first attempt that I abandoned.
I actually sold my Volt, so I wouldn't be able to try again, unfortunately.

It should be possible, though I'm still not sure exactly how best to implement it. See #67 to see my first attempt that I abandoned.
I actually sold my Volt, so I wouldn't be able to try again, unfortunately.

If you're ever up for it, I'm in Vegas and own an Bolt EUV, so I can help out with the venture.

I’ve seen that https://github.com/SteffeyDev/homebridge-hyundai-bluelink gets around the same issues I ran into before by having the plugin refresh vehicle information automatically every hour. That might be the way to go.
Maybe allow configuring the refresh rate, though I’m not sure what rate limits the OnStar api may have.


Translation

Where/How can I translate this extension?

I tried to create _locale/xx/yy.json file, but I don't know how to handle subdirectory like src.

I found we don't have to handle subdirectory special.
I'll make pull request.


No indentation with ruby's PP (pretty print)

Currently, the implementation of Value#inspect is always used, preventing the PP system from indenting large value classes

Thanks @tcrayford can you release a new version with this in there? Probably v1.9.0 since it added a new method was added?


Add stying for the Hours

This PR is for adding styling to the Hours.
Screenshots

@acro5piano please your review 🙏

Released on v2.7.0


Updtated heroes reducer for new state format

I believe this will get the state you're looking for.

I made a new pull request because the previous request was using the master branch (which I want to keep clean).


Custom transport or ability to set headers in browser environment

Problem
Currently Jitsu doesn't support authorisation. To handle this I have setup Jitsu behind a node server which acts as a proxy to handle authorisation. Now the problem is I do not have access to authorisation header or the ability to set any extra headers. The only way i can send the token is via query parameters or in Jitsu event body. If query param is used, there is no way to update the url once the client is connected without destroying the instance and creating a new one and I would like to avoid sending the token in body.
Solution

Enable custom transport option in browser environment so that a thin wrapper can be written around existing transport
or
Provide option to set custom headers which either takes a value or a function that can be called to extract the value for that header that can be passed to the transport used internally.

Could you please elaborate on this?  Currently Jitsu doesn't support authorisation which part of Jitsu (which API call) are you referring to?

Sorry for not being clear, I was referring to the endpoint which collects the events from Javascript SDK. What i am trying to do is authorise who can send the data using our application's authentication & authorisation system in order to not collect values from users not authenticated in our system. Currently Jitsu saves all the values posted to it's collection endpoint.

I believe the best way to solve that is to use jitsu npm and call track only if user is authorized:
if (userIsAuthorized()) {
    jitsu.track();
}

Wouldn't it solve the problem? Even if we'd allow to send a custom header with Jitsu, I'm not sure how it's going to be possible to authorize user against this header on backend

While the above solves immediate problem, but it doesn't stop unauthorised users from sending the events via console which they are not supposed to send.
The custom headers set will not be used by Jitsu but will be by an intermediate proxy validating and relaying the request to Jitsu.
Here is the flow of request.
Current Jitsu Flow (without custom headers)

        (event)
JS SDK ---------> Jitsu

Flow with custom headers

        (event)           (proxied event)
JS SDK ---------> Proxy ------------------>  Jitsu
                    |
                    |  (validate auth header content)
                    ----> Auth Server

Thanks for clarifying this!
Would this solution work for you?
  let jitsu: JitsuClient = jitsuClient({
    key: "....",
    tracking_host: "....",
    custom_headers: {'X-Auth-Header': ....}
  });

You'll send a custom header when initializing jitsuClient and your proxy will authorize payload against it.
This is a few lines, so we probably will be able to release it today

That should work, but auth tokens are generally short lived  so a method to update the headers periodically would be of great help too :)

The implementation is here: https://github.com/jitsucom/jitsu/tree/feature/custom-headers-for-sdk-js
We'll publish an npm package on Monday (we try not to release on Fridays )

Please see 2.4.0 release.
Also, we added documentation, see parameter reference


Forking a library and potential maintainer list

Hello @tomaka and everyone else,
The following is not to bash the author and previous contributors, just statements of facts.
At this point it's pretty clear library is unmaintained, and issues and PRs just pile up.
No major PR was accepted for half a year at least, with several having no comments and otherwise being stale.
I propose forking a library to an organization, and establishing a small team of currently active library users.
We'd then take care of current unattended PRs and at least triage the issues.
In case there are any objections, please let us know.
Tagging people who might be interested in maintaining, based on previous contributions:

@mkpankov
@tpdickso
@giodamelio
@kpcyrd
@linkmauve
@sunshowers
@jonas-schievink
@Ameliorate
@TyOverby

Let's discuss the path forward.

@tomaka please continue with your good work. I worked with it extensively and find it elegant. @mkpankov i agree that rlua is not a reason to shutdown hlua.

From what I understand -
hlua -> zero cost
rlua -> safe
Is this correct?


Unable to Install Package PiranhaCMS.Mvc

Hi Håkan,
PiranhaCMS looks amazing and I think would help meet our needs for our site. We want to integrate PiranhaCMS into our existing site.
Unfortunately I'm having trouble installing. When I tried: Install-Package PiranhaCMS.Mvc
I got the "Failed to add reference. The package 'PiranhaCMS.Core' tried to add a framework reference to 'System.Linq' which was not found in the GAC. This is possibly a bug in the package. Please contact the
package owners for assistance." error.
I tried version 2.2.5 too but got the same error.
Any clues?
Jake

Since Piranha CMS is compiled for (and thus compatible with) .NET 4.0 it references System.Linq from the GAC for that version. My guess is you have a new development machine and only have the latest .NET libraries installed?
Regards

Yes you're right. We are also now compiling on .NET 4.6. Would we still be able to use PiranhaCMS?

As to my knowledge .NET 4.6 should be backwards compatible with 4.0! If you have any issues let me know!

Great! Any recommendations how to get around the error message? After I get the error message, the installation will roll back so our install was unsuccessful. :(

Making sure you have .NET 4.0 installed on your dev machine should do the trick!

I tried to install .NET 4.0 but it won't install because the installer says it is already part of the operating system.
On a new ASP.Net MVC project, I was able to install PiranhaCMSMvc.
I wanted to install Piranha on an existing website. What is the difference between PiranhaCMSMvc and PiranhaCMS.Mvc nuget packages? Can I install PiranhaCMSMvc on an existing website instead? (The documentation http://piranhacms.org/docs/introduction/getting-started says to use PiranhaCMS.Mvc for an existing website but I can't get it to work)

Hi @tidyui, I think I found the source of the problem.
If I installed PiranhaCMS.MVC from a clean ASP.Net MVC Project, it would work.
However if I install System.Net.Http (https://www.nuget.org/packages/System.Net.Http) first, then installing PiranhaCMS.Mvc will fail.

Ok, it has to be some kind of version issue with the System.Net.Http package. How unkind of VS not to give any notification about it when installing the Piranha package :)


In backwards compatibility mode, be more permissive of Obj-C nulls

The new cast logic checks and aborts if a non-nullable pointer has a null value
at runtime.  However, because this was tolerated by the old casting logic, some
apps inadvertently rely on being able to cast such null references.
This change adds specific checks for null pointers in compatibility mode and
handles them similarly to the previous casting logic:

Casting to Obj-C or CF type: casting a null pointer succeeds
Casting to class-constrained existential: casting a null pointer succeeds
Casting to a Swift class type: cast fails without crashing
Bridging from Obj-C class to Swift struct type: cast fails without crashing
This also adds a guard to avoid trying to lookup the dynamic type of a null
class reference.

In non-compatibility mode, all of the above cause an immediate runtime crash.
The changes here are only intended to support existing binaries running against
new Swift runtimes.
Resolves rdar://72323929

@swift-ci Please test

@swift-ci Please test Windows platform


Improve insensitivity and negation

I'm not happy with how these turned out. The classes are awkward to combine. Maybe there should just be one string-wrapper class that has flags for negation and insensitivity. Who knows... it could support other features later.
The API for creating them... I think I just want to create a factory like:
String.not(), String.i() and combining them with String.not.i() or String.i.not(). The nesting is getting a bit hard to grok.

Obviously it can't be String. Could be Text though. I like that!


Update tag list

Missing tags:
stacktrace, spring-password-handling, simplenet, scanner, regex, premade, parseLine, ownership, operator, nio, naming, mcve, markdown, manual, lsp, interrupt, bfs
interface-abstract, interface, instance, install, ide, helsinki, getting-started, framework, executors, equals, eoa, doesntwork, dfs, constructor, code

looks good


[FLINK-10742][network] Let Netty use Flink's buffers directly in credit-based mode

What is the purpose of the change
This PR aims to add the zero-copy decoder for the receiver side of the network stack. The new decoder copies the buffer part of BufferResponse directly into the Flink Buffer instead of cumulating the message with the Netty ByteBuf first. This helps to reduce the copy actions caused by cumulating messages and decrease the memory usage of the Netty pipeline.
The detailed design is presented in this doc.
Brief change log

Add a new ZeroCopyMessageDecoder for the receiver side
Make the max-order of the NettyBufferPool configurable, and change its default value from 11 to 9, which decrease the chunk size from 16M to 4M

Verifying this change
This change added tests and can be verified as follows:

Extends the existing NettyMessageSerializationTest to cover the new decoder
Add ZeroCopyNettyMessageDecoderTest to validate that the new decoder can process different messages rightly with the input buffers segmented in different ways

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): yes
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? docs

@gaoyunhaii Could you provide benchmark results (https://github.com/dataArtisans/flink-benchmarks/) to motivate this change?

OK, I will complement the results. Besides, a more obvious advantage of receiver-side zero-copy is that it decreases the memory consumed by Netty, I will also complement the results on the memory consumption.

Hi @gaoyunhaii and @pnowojski,
I took the liberty to rebase this PR on top of the latest master (see https://github.com/NicoK/flink/tree/f10742) and run our benchmarks. Unfortunately, changes are not really visible there (still, the reduced memory is also an argument for this PR). Slight improvements, maybe also in the error...
Benchmark                         Score±Error (master vs. PR)
networkBroadcastThroughput          817 ±  24 vs.   832 ±  17
networkThroughput, 100,100ms      65096 ±2273 vs. 65451 ±1020
networkThroughput, 100,100ms,SSL  16432 ± 701 vs. 16748 ± 448
networkThroughput, 1000,1ms       41128 ± 903 vs. 42872 ± 934
networkThroughput, 1000,100ms     46166 ±1343 vs. 46304 ±1938
networkThroughput, 1000,100ms,SSL 13677 ± 173 vs. 13801 ± 196

Hi @NicoK @pnowojski , very sorry for the long delay to response, and thanks a lot for helping me on the testing. I'm also still working on this PR:

For the throughput, I have the same test result with Nico's results. The PR has slight improvement on the throughput. Therefore, I'm keep trying to figure out if there may be some optimization on the implementation.
However, I think the direct memory consumption reduction will be high. I'm also trying to add a new benchmark test on the direct memory to the flink-benchmark project to reveal it officially.
At last, I'm also trying to split the big commit into multiple small ones for better review.

On our side, we have taken use of this PR to reduce the memory consumption and avoid OOM problem that occurs online frequently. I think I can  post the manual test on the memory consumption first in this week.
IMO I think it will still be helpful by optimizing the memory footprint and achieving some performance improvement (although only slight improvement currently, and I'll try to improve that). How do you feel about that ?

@NicoK Sorry since the memory test takes more time than expected. I have attached the main result in the following, and described the results in the Google Doc with more details. As a whole, I think the test demonstrates that the modification could reduce 80% of direct memory used by Netty and reduce the risk of OOM.

Hi all, for the throughput, I will continue trying to improve the current implementation in the next few days and I'll try to have a conclusion as soon as possible.

Thanks @gaoyunhaii for the in-depth analysis: these are very good results indeed - unfortunately, I won't have time next week to review this PR but will try to schedule for the week after if there is no other review until then.

Very thanks @NicoK ! Then I'll rebase the commit to the latest master first.

Hi @NicoK , sorry for keeping occupied by some urgent internal affairs last week. I have split the original commit into four small ones and rebased them on the latest master.

I get the general idea of the implementation, but have not thought the details through yet. This improvement only validates for the body of BufferResponse message on receiver side, and we still have memory overheads for other messages and the frame and header parts of BufferResponse.
I am not caring about the other messages because they are less frequent in running except AddCredit which might have the same frequency with BufferResponse. Although the size of AddCredit is very small, I am not sure whether it would still boost the netty memory overhead in practice.
I noticed that the sender side also reuses the same new ZeroCopyNettyMessageDecoder with receiver side, and I have some concerns here. This new decoder would maintain/manage the overhead memory for frame and header parts compared with previous embedded LengthFieldBasedFrameDecoder in netty. If the new decoder is more efficient or memory saving than the LengthFieldBasedFrameDecoder (e.g. for the case of AddCredit mentioned above), it is reasonable, otherwise I do not prefer to reuse it on sender side for two reasons:

To do so, actually we do not unify the decoder on both sender and receiver side, because we also define different NettyMessageParser implementations inside ZeroCopyNettyMessageDecoder, which have the same effect with different decoders on sender and receiver sides.

It brings more changes and seems more complex. We can retain the previous NettyMessageDecoder for sender side and only removes the BufferResponse path from it, then we define a different decoder only for receiver side.

Next I would further think how to refactor the implementation of ZeroCopyNettyMessageDecoder.

Very thanks @zhijiangW for the review! After the offline discussion with @zhijiangW , we come to the consistency that the reduction of memory should be mainly resulted from reducing the copy of data buffer in the received side, therefore it should be reasonable to first concentrate on this issue to reduce the complexity of the implementation. If we found that it is also necessary to reduce the consumption of memory produced by the header part of the message in the future, we could then continue optimizing this part, and by then we could also take the memory consumed by sending messages into consideration.

Hi @zhijiangW Very thanks for the review! I have modified the codes accordingly, and the change to the several main problems is that:

Make the new decoder only used in the downstream and simplify the NettyMessageParser.
How to deal with the discarded buffer when the corresponding input channel has been released ? The hard part is that we have to parse the size of the message and discard the message, therefore we have two possible processes:

Parse the size of the message and discard the message.
Parse the whole message and emit the message to the next decoder normally.

The first case causes the problem of null Data Buffer. I agree with that we should deal with the null buffer in advance by canceling the request in the decoder directly. However, I think the Discard state is still needed since the decoder has to know if the following bytes should be received or should be received.

Thanks for the update @gaoyunhaii !
While reviewing the core codes of ZeroCopyNettyMessageDecoder and NettyMessageParser, I have several concerns:

It is hard to extend a new message type future, because it has to understand the implementation detail of above decoder and parser for properly judging this new message in different internal processes. It is better to make the decoder implementation detail transparent  for new message extension.

There are many interactions among decoder, parser and BufferResponse, and it brings many intermediate states to maintain inside decoder and parser. It would make things more complex to understand and easy to cause potential bugs. E.g. The specific message header length is got from NettyMessage via interaction with parser and the intermediate state is maintained inside decoder.

Actually the real decode work is mainly done by specific NettyMessage#readFrom, but now the decoder also involves in partial work which seems fragmented and not unified.

Another possible options is to make ZeroCopyNettyMessageDecoder more light-weight and remove NettyMessageParser. We can delegate all the decode work to respective NettyMessage, and the current ZeroCopyNettyMessageDecoder can only handle the unified frame header for all the messages as before. We can refactor the current NettyMessage#readFrom method to define an abstract decode method instead. In order not to effect the existing messages on sender side, we can define a new NettyClientMessage to extend NettyMessage only for receiver side.
The new define NettyClientMessage#decode method takes the similar role as RecordDeserializer, it is aware of the implementation detail to parse header and body properly, and return the proposed DecodeResult to indicate whether the header is fulfilled or the body is fulfilled or the received ByteBuf is fully consumed, etc.
To do so, the ZeroCopyNettyMessageDecoder does not need to know the details of different NettyMessage and it only controls the general logic when to fire the full message to next handler. And if extending new message future, it only needs to implement the abstract decode method for parsing itself, not aware of the upper ZeroCopyNettyMessageDecoder.

Very thanks @zhijiangW for the review! As a whole I agree with the thought to reduce the complexity of the current model. However I think the NettyMessageParser is still required, since the parser has its own intermediate states, and if we push the parsing logic into the message directly, these state will be mixed with the message fields. We could keep the main thought of split the procedure for different messages directly, but move the parsing logic into the parser instead of the messages. I think in this way we could keep the benefit and do not introduce the above problem.
**The only drawback compared with the initial version is that now we need to keep two message header buffers. However, since the buffer size is only dozens of bytes, it should not cause application of new chunk and thus should not affect the total direct memory used. **
I have updated the PR according to the above logic. :)

Let's uniform the new class naming and refactor the structure a bit firstly.

ZeroCopyNettyMessageDecoder -> NettyMessageClientDecoder: ZeroCopy is not an easy understood term or glossary by other persons. From the semantic of itself, actually we have not achieved the goal of zero copy yet.

The previous NettyMessageDecoder refactors to respective NettyMessageServerDecoder

NettyMessageParser -> NettyMessageDeocderDelegate: The motivation is to unify the Parser and Decoder terms. Further we can define it as abstract NettyMessageDeocderDelegate to extend ChannelInboundHandlerAdapter, then it can make use of existing channelActive and channelInactive methods to avoid re-define them now.

BufferResponseParser -> BufferResponseDecoderDelegate

DefaultMessageParser -> NonBufferResponseDecoderDelegate?  The Default term is misleading and we should give a more precise semantic.

ByteBufCumulator -> LengthBasedHeaderDecoder

Thanks for the updates and patience @gaoyunhaii .
The core codes are almost good now except for one concern of buffer leak left inline comment.
I only roughly reviewed the tests part and found two main problems, one is for deduplication and anther is for avoid mocking way in new tests. After you address these issues, then i would review the detail logics in tests.

I have finished reviewing the tests codes and left some comments.
Besides that, we should further verify the previous e2e which encountered direct OutOfMemory error caused by netty memory overhead before. If we can reduce the frame overhead memory in these tests and running normally based on this PR change, then we can verify the effect and value of this PR.

Hi @zhijiangW Very thanks for the detailed Review! I have updated the PR according to the comments.

Thanks for the updates @gaoyunhaii .
I left some other comments related to tests part. After addressing them all, you can also paste the micro-benchmark results to show whether this PR has an impact for network performance.

The result of running performance benchmark for three times is as follows ant it shows the performance should be nearly unchanged after this PR.

Benchmark
(channelsFlushTimeout)
Master
PR

DataSkewStreamNetworkThroughputBenchmarkExecutor.networkSkewedThroughput
N/A
18544.274 ± 394.04
18693.114 ± 450.411

StreamNetworkBroadcastThroughputBenchmarkExecutor.networkBroadcastThroughput
N/A
558.942 ± 13.561
572.935 ± 11.449

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
100,100ms
39126.475 ± 5596.933
39598.01 ± 5355.437

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
100,100ms,SSL
8011.816 ± 85.928
7988.84 ± 77.926

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,1ms
22692.533 ± 625.885
22510.761 ± 569.481

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,100ms
22412.451 ± 841.211
22157.080 ± 687.059

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,100ms,SSL
6192.704 ± 148.309
6305.707 ± 122.907

StreamNetworkLatencyBenchmarkExecutor.networkLatency1to1
N/A
10.056 ± 0.003
10.057 ± 0.005

Benchmark
(channelsFlushTimeout)
Master
PR

DataSkewStreamNetworkThroughputBenchmarkExecutor.networkSkewedThroughput
N/A
18227.444 ± 676.322
19311.283 ± 727.86

StreamNetworkBroadcastThroughputBenchmarkExecutor.networkBroadcastThroughput
N/A
577.11 ± 11.601
572.644 ± 5.273

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
100,100ms
38131.351 ± 6042.85
38395.832 ± 5891.265

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
100,100ms,SSL
7945.597 ± 85.232
8016.364 ± 75.038

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,1ms
22725.854 ± 556.134
22044.464 ± 1357.626

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,100ms
21255.556 ± 818.414
21796.35 ± 808.031

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,100ms,SSL
6301.528 ± 146.149
6315.512 ± 125.690

StreamNetworkLatencyBenchmarkExecutor.networkLatency1to1
N/A
10.056 ± 0.003
10.056 ± 0.004

Benchmark
(channelsFlushTimeout)
Master
PR

DataSkewStreamNetworkThroughputBenchmarkExecutor.networkSkewedThroughput
N/A
17503.326 ± 1368.363
18014.828 ± 360.011

StreamNetworkBroadcastThroughputBenchmarkExecutor.networkBroadcastThroughput
N/A
584.573 ± 7.798
546.446 ± 26.501

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
100,100ms
37484.842 ± 4556.398
38647.774 ± 4133.883

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
100,100ms,SSL
7985.803 ± 74.179
8035.338 ± 76.032

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,1ms
20226.816 ± 1852.461
22805.671 ± 719.033

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,100ms
21195.998 ± 1363.098
22430.819 ± 718.735

StreamNetworkThroughputBenchmarkExecutor.networkThroughput
1000,100ms,SSL
6220.015 ± 154.263
6176.15 ± 144.825

StreamNetworkLatencyBenchmarkExecutor.networkLatency1to1
N/A
10.056 ± 0.003
10.056 ± 0.003

The test Result of e2e test with/without this PR is

Without PR: https://travis-ci.org/gaoyunhaii/flink/builds/660715729, in which Netty allocated two chunks and cause direct memory OOM.
With PR: https://travis-ci.org/gaoyunhaii/flink/builds/660714965, in which Netty only allocated one chunk and run normally.

Thank you very much @gaoyunhaii for your continuous contribution on this and @zhijiangW for the reviews. I'm really looking forward to seeing the effects in the field. And sorry once again that I was not available to  follow this through myself.


Update "Create Subscriptions UX" is different

I'm talking about https://docs.microsoft.com/en-us/azure/event-grid/media/blob-event-quickstart-portal/create-subscription.png
Now, filters on Additional Features tab. Please, Update the screenshot.

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

ID: b250ca39-0ba3-20dc-179b-c5a0d80fba9f
Version Independent ID: 5f1d000e-c731-4b98-8eb7-55836829ca47
Content: Blob storage events for Azure Event Grid with the Azure portal
Content Source: articles/event-grid/blob-event-quickstart-portal.md
Service: event-grid
GitHub Login: @tfitzmac
Microsoft Alias: tomfitz

Hi @SychevIgor Thank you for your feedback! We have assigned this issue to the author to investigate further and take the right course of action.


test(router): fix promise catch logging

@martingust This looks like fixes to tests. Can you do a review?


Crash when loading the world. TC Beta15

Crash occurs because of the gap, which leads to the flight from the game. Fix it please, otherwise it grows and brings me problems.

Probably a duplicate of #858.


Use LLVM 12.0 bundled with rocm for Tensile

ROCm comes packaged with llvm-12.0, however Tensile requires llvm-6.0 for the HostLibraryTests. The library however can already build with just llvm-12.0 installed. To eliminate the need to have multiple versions of llvm installed for the tests, they now require llvm 12.0 (Which should always be present), and I propagated the same change over to the library to prevent conflicts when the library finds llvm-6.0 first.

I added support for llvm-13 and added back the fallback pattern from before. The find_package in the HostLibraryTests wouldn't work with the fallback strategy because LLVM_DIR becomes unset after the first failed attempt, and /opt/rocm would no longer be in the search path, so I added /opt/rocm into the prefix.
I also updated the docker files to remove llvm-6.0.


Crashes saying it failed to load the mod

https://ibb.co/rHbc9Q6

Hi there, sadly the error window does not tell me exactly where the problem is. Can you send me the full list of mods you're using, if any? Maybe it's conflicting with another mod.

Fixed in v1.6.1


fix: Always show build log link for SRPM

This makes the build log always visible as it will always return from
packit. Otherwise users would not get any logs when an SRPM build has
failed, meaning they would have to chase it down through the link
Takes up on results from #371

TODO:

[ ] Write new tests or update the old ones to cover new functionality.
[ ] Update doc-strings where appropriate.
[ ] Update or write new documentation in packit/packit.dev.
[ ] ‹fill in›

Fixes
Related to
Merge before/after

RELEASE NOTES BEGIN
Always show SRPM Build logs
RELEASE NOTES END

could we check for null for logs_url as well? In case there is failure on build submission

Done!


update to latest 16.x node version for tests

Description
We previously capped node version to 16.8 due to build failures.  This PR tries to update to latest again, as it was before.
I also tried to add 18.x as well, but I saw build failures so I took it out (related to rollup plugin which I think just needs to be upgraded, but when I upgraded I saw some other failures).  Now that 18.x has an LTS version released we should at some point look into adding it as well.
Checklist

[ ] I have added screenshots above for all UI changes.
[x] I have added e2e tests for all UI changes.
[x] Documentation was updated if it was needed.

@gaugup I think we can just wait until we've lifted our internal code freeze

Codecov Report

Merging #1809 (e76787a) into main (7189a82) will increase coverage by 3.17%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1809      +/-   ##
==========================================
+ Coverage   87.53%   90.70%   +3.17%
==========================================
  Files          96       80      -16
  Lines        5390     4249    -1141
==========================================
- Hits         4718     3854     -864
+ Misses        672      395     -277

Flag
Coverage Δ

unittests
90.70% <ø> (+3.17%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

raiwidgets/raiwidgets/error_handling.py

raiwidgets/raiwidgets/cohort.py

raiwidgets/raiwidgets/dashboard.py

...iwidgets/raiwidgets/model_performance_dashboard.py

raiwidgets/raiwidgets/interfaces.py

raiwidgets/raiwidgets/responsibleai_dashboard.py

raiwidgets/raiwidgets/model_analysis_dashboard.py

raiwidgets/raiwidgets/error_analysis_dashboard.py

...idgets/raiwidgets/responsibleai_dashboard_input.py

raiwidgets/raiwidgets/error_analysis_constants.py

... and 6 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Use ViewComponent::InlineTemplate

Description
I've updated two components to use ViewComponent::InlineTemplate as an example. We'd need to require ViewComponent v3.0.0.rc4 or later if we land this change.

Closing until 3.0 is more widely adopted


Recent "Url scheme" commit breaks redirects (404s) when the "root url" is in a subdirectory

Gitea version (or commit ref): https://github.com/go-gitea/gitea/commit/513375c429435ba60a667b219bdfb00e5b760b38
Git version: 2.14.3
Operating system: Linux
Database (use [x]):

[ ] PostgreSQL
[X] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[X] Not relevant

Log gist:

Description
Use a ROOT_URL in your config in a directory other than the "root" directory. For example, https://example.com/git/
The problem is that the "Commits" link at the top of a repository view has the form /BASE_DIR/COMPANY_NAME/REPOSITORY_NAME/commits/master when it should be /BASE_DIR/COMPANY_NAME/REPOSITORY_NAME/commits/branch/master (as per the latest commit: https://github.com/go-gitea/gitea/commit/513375c429435ba60a667b219bdfb00e5b760b38 ).
However, if you click the current "Commits" link it incorrect drops the "subdirectory" part of the URL. Meaning Gitea currently incorrectly redirects to /COMPANY_NAME/REPOSITORY_NAME/commits/branch/master instead of /BASE_DIR/COMPANY_NAME/REPOSITORY_NAME/commits/branch/master. Meaning, the current redirection code assumes the gitea installation is in the root directory. Which, for us that's not true.
The breaking changes were in this commit: https://github.com/go-gitea/gitea/commit/513375c429435ba60a667b219bdfb00e5b760b38

It seems
if setting.Protocol == setting.FCGI {
		m.SetURLPrefix(setting.AppSubURL)
	}

Should be
m.SetURLPrefix(setting.AppSubURL)

And after that, Commits is OK. But Branches will panic.


Use index.js as main

This eliminate npm warnings for invalid main field

This module has been deprecated and will not receive any updates. If you rely on it, you should probably fork it.


Fix memory leak in jhiTranslate directive.

The directive subscribes to the onLangChange observable of the
TranslateService but never unsubscribes. This keeps the nodes
the directive is used on in memory indefinitely, even if they have been
removed from the DOM.
If you take a heap snapshot with the Chrome dev tools, there are quite a few detached nodes that are still referenced by the subscription to onLangChange.

I made sure to unsubscribe from the observable when the directive is destroyed to avoid this leak.

Thank you

@kaidohallik : don't hesitate to ask me if a release is needed. I don't follow closely enough what is done here.
Thanks for your contribution @paddya !!!

@pascalgrimaud it's important fix and we should release a new version so that people could use the version without this memory leak.

Maybe we can try to include this in the JHipster patch release
Thanks & Regards,
Deepu
On Thu, Nov 14, 2019 at 11:06 AM Kaido Hallik<EMAIL_ADDRESS>wrote:

@pascalgrimaud https://github.com/pascalgrimaud it's important fix and
we should release a new version so that people could use the version
without this memory leak.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jhipster/ng-jhipster/pull/113?email_source=notifications&email_token=AAIOKF5G5HFA26PG4M4JHYDQTUPMBA5CNFSM4JL73C6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEBJJPQ#issuecomment-553817278,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIOKF755KYF5O5XSXNZIQLQTUPMBANCNFSM4JL73C6A
.

Ok, I'll do the release this evening

@kaidohallik @vishal423 : FYI, I just did a release right now  -> v0.11.4

Thanks for the quick turnaround!

@pascalgrimaud thanks for the release, I created PR to use the new version in the generator: jhipster/generator-jhipster#10779


[DO NOT MERGE] Feature/use kotlin locale strings

Summary | Résumé

This PR should not be merged

@craigzour we can close now that this has been tested ya?


Web App on iOS

I would love for this client to be a web app on iOS so it's kind of like it's own separate app. That would make the experience (even) sleeker for iPhone and iPad.

As in a PWA, so you could add it to the homescreen?

As in a PWA, so you could add it to the homescreen?

Yes, that's exactly what I mean!


[Tree unique] Unnecessary Let deletion

An important optimization to enable other optimizations is to get rid of unnecessary lets.
In the case of pure computations, let bindings are not necessary and they should be removed- maybe destructively?
For impure computations that are used just once, the let binding is not necessary. However, we must be careful to avoid bugs since later the e-class could have representatives that use it twice.

Let bindings save duplicate evaluations even for pure computations, e.g.
let x = sum(1, 10000) in
x+x

vs
sum(1, 10000) + sum(1, 10000)

so we need to be careful here.

Yeah, that's a great point.
What if we used DAG-based extraction, even for trees? It could count things multiple times when they are impure

Related to gamma/switch pull in


Textual update regarding recommendation to use  iana media types

The IANA media type have become a strong recommendation to use instead of the required list to use following issue #704
Closes #704

Issue #704 and this PR is approved by the DILCIS Board


Random results from search query

I'm attempting to do to a basic query with a dictionary of over 1000 merchants. For many of my queries, I get results which just seem to be wrong.
Query: BIKKURIJAPANESE RESTAURATORONTO ON
My options:
var options = {
  shouldSort: true,
  includeScore: true,
  includeMatches: true,
  threshold: 0.03,
  location: 0,
  distance: 10,
  maxPatternLength: 100,
  minMatchCharLength: 8,
  keys: [
    "merchant_name"
  ]
};

My example dictionary:
[
    {
    "merchant_name": "FINN AIR",
    "category_code": 5260,
    "master_code": "Business_Expense"
  },
  {
    "merchant_name": "AER LINGUS",
    "category_code": 5260,
    "master_code": "Business_Expense"

  },
  {
    "merchant_name": "AIR LANKA",
    "category_code": 5260,
    "master_code": "Business_Expense"
  }
 ]

My result:
[
  {
    "item": {
      "merchant_name": "FINN AIR",
      "category_code": 5260,
      "master_code": "Business_Expense"
    },
    "matches": [],
    "score": 0.029411764705882353
  },
  {
    "item": {
      "merchant_name": "AIR LANKA",
      "category_code": 5260,
      "master_code": "Business_Expense"
    },
    "matches": [],
    "score": 0.029411764705882353
  }
]

Why is my query matching FINN AIR if they do not seem to be similar at all? How can this be with a high threshold of 0.03? Lastly, are minimum character length, location, and threshold being overwritten by threshold? If not what role are they playing in this case?
Thanks for your help!

Same problem here. Fuse.JS alwasy produces wrong results, does not match at all. I simply follow one of the examples having an array of objects.

Having similar issues; cc @krisk

Query: BIKKURIJAPANESE RESTAURATORONTO ON

"BIKKURIJAPANESE RESTAURATORONTO ON".length === 34
Search over 32 chars gives back whole set  issue?

This lack a great deal of information.

Please read the new README which includes pointers to writing a good
issue

You haven't specified what data set you are searching in.

Code please.

On 2020-03-25 13:07, Akos Kitta wrote:

Query: |BIKKURIJAPANESE RESTAURATORONTO ON|

|"BIKKURIJAPANESE RESTAURATORONTO ON".length === 34|
Search over 32 chars gives back whole set
https://github.com/krisk/Fuse/issues/254 issue?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/krisk/Fuse/issues/320#issuecomment-603965609, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AE6GOSWYLDNPN3IHSNBI7C3RJI24XANCNFSM4IGIIT2Q.

Oops sorry for the noise.  I though this was  new issue but I see it's a
comment on an old (detailed) one.
On 2020-03-25 13:07, Akos Kitta wrote:

Query: |BIKKURIJAPANESE RESTAURATORONTO ON|

|"BIKKURIJAPANESE RESTAURATORONTO ON".length === 34|
Search over 32 chars gives back whole set
https://github.com/krisk/Fuse/issues/254 issue?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/krisk/Fuse/issues/320#issuecomment-603965609, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AE6GOSWYLDNPN3IHSNBI7C3RJI24XANCNFSM4IGIIT2Q.

Is this still a problem in the latest version?

Close this issue, as there hasn't been any update.


[DISQ-10] Initial Disq code contribution.

Corresponds to https://github.com/tomwhite/disq/commit/d3d76ec41ba0728135e40de56b3e19dd583b0c0e.

Fixes #10.

Thanks for all the feedback @magicDGS. I've gone through them and made changes in a new commit.

I also think that storage classes and related enums/options should not be referenced in the other classes (e.g. from* methods in SamFormat). That's why I propose to have the suppliers in the enums instead, and now I understand why separating the PR into several bits was a bit difficult.
Should we maybe discuss somewhere (Slack?) the design and try to deconvolute the classes to make the format more independet from the storage classes?

@lbergelson you might want to have a look at this too.

@tomwhite - I did a quick pass over it and it looks good for me. Maybe the SamFormat and ReadsFormatWriteOption converters should be linked in the reverse direction, but that could wait and/or we can discuss that later as it evolves the code once it is in.
I am planning to review whenever I have a bit more of time the implementation package.

@magicDGS Thanks for taking another look.
Has anyone else got any comments before we commit this?

This code passes the Travis build now. I've also opened #19 to address one of the issues identified by @magicDGS and @cmnbroad (we can open more if there are any more comments, e.g. from @lbergelson).
I'd like to merge this in the next day or so unless there are any objections.

@heuermh thanks for the review! I've responded to your comments - please let me know what you think.

Opened https://github.com/disq-bio/disq/issues/23 to capture my review comment.

@tomwhite I found it odd that this pull request was from a branch on the disq-bio/disq repo instead of one on your fork.  I guess there isn't anything wrong with that, just not what I'm used to in other Github based projects.
Perhaps now would be a good time to discuss git workflow (issue #11) and related topics?
Specifically, I'm wondering if we should squash commits in this pull request and use the Rebase and merge button (which is what we do in BDG projects, to keep commit history clean) or use the Squash and merge button (which lists individual commit description lines in the merge commit message) or merge as-is, retaining all the intermediate commits.

I found it odd that this pull request was from a branch on the disq-bio/disq repo instead of one on your fork

I agree it's probably more conventional for PRs to come from the contributor's fork - I'll do that in future.
In terms of workflow, I'm fine with "Squash and merge".

Woot!  Thank you for the initial contribution, @tomwhite, and to everyone for review.

Yes - many thanks for all the reviews!


Mouse Highlighter Opacity setting

Microsoft PowerToys version
"0.53.1"
Running as admin

[ ] Yes

Area(s) with issue?
Mouse Utilities
Steps to reproduce
The option for setting the Opacity for the Mouse Highlighter says it's in %, yet the slider goes from 0 to 255.
✔ Expected Behavior
Slider should be from 0 to 100
❌ Actual Behavior
Slider is 0 to 255
Other Software
No response

@jaimecbernardo IIRC it was mentioned in some PR comment you were planning to change this to 0-100, right? If it's not an easy fix, I can remove the (%) from the string.

I think we discussed it for FindMyMouse settings PR, which were done after MouseHighlighter had gone in.
Never remembered to go back and change MouseHighlighter Opacity logic as well.
It's good to change so that it's consistent between mouse utils.
Going to figure out if there's a good way to udpate that value as part of a "settings format update".

Given that the Enable Find My Mouse options use a 0-100% for opacity it would be better to maintain consistency at least within the Mouse Utilities anyway if they both use either 0-100 (%) or 0-255 (normal 8bit alpha transparency level).

@niels9001 easy fix, right? :)

Why on earth did I close this?

Fixed in v 0.63


Why not using dual Quaternions for translations and rotations?

im newbie in the quaternions world. I found our library usefull.
I'm searching solutions for translations and rotations problems.
I found this paper over dual quaternions. Are you interested for development of these functionalities in our library?
dual-quaternion.pdf
Bests regards.
Daniel

hey man read a few of that let's implements that

I agree this would be a nice feature to add. I'll add it to the roadmap.

Here's a repo for that: dual-quaternions. It currently uses numpy-quaternion as its backend and can be installed via pip install dual-quaternions, but I'm working on switching to pyquaternion because it has fewer dependencies so it can distributed into apt.


Package/Source mirror management

Researchers will need all kinds of packages/libraries when working with data.

What types of package feeds are needed?
How will the process of enabling a new package or updated version be handled?

Requirements: TBD

@Lybecker possible dupe of #22 and #21 ?

Dup of #21 and #22


More VarScan improvements

Apply options specified in the VarScan resources config section
Centrally apply some options common to paired/single sample calling
Add --strand-filter in the single sample case to match paired calling
general cleanup.

Both varscan.py and vardict.py implement the same _safe_to_float() function. What would be a good place to add this centrally? bcbio/utils.py sounds like the obvious place but it seems to be very path/file handling specific.

Christian;
Thanks for these additional improvements to VarScan and for the heads up on the duplicated safe_to_float code. I moved this over into utils where I agree it fits best. Thanks again.


Team/Workspace management using Permify

Is your feature request related to a problem? Please describe.
I am developing few SaaS applications but facing challenge to implementing RBAC and ABAC in the application from scratch. Is it possible to provide some API's which can be integrated into any existing SaaS application. This feature is very much required when someone is building SaaS application for agencies or company with multiple teams. When I talked with some of the marketing agencies who are providing services to large B2B companies they wanted SaaS application to have such features in it. And as a indiehacker or team with small size cannot offer such solution unless they start implementing it from scratch. So having some APIs which can provide such functionality would be great. Please check below SaaS applications for reference.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
Did not find anyone offering this solution.
Additional context
Examples:
SaaS application in which admin can create workspaces or projects or teams and can manage i.e add/remove participants in it.
You see these applications for reference:

https://www.oneupapp.io/price --> Pricing includes team and team management for higher plans or enterprise plan
https://www.cloudcampaign.com/plans ---> Pricing includes workspace management and unlimited users/teams etc

Hey @aditodkar thanks for the informations. We examined the applications you provide, and understand the possible usages of RBAC and ABAC in your case. Current version of Permify is capable of modeling RBAC and ABAC with limitations.
To open up "ABAC with limitations" phrase, since you want to use ABAC mostly for pricing plans, limiting users accesses to some resources or actions according to their current plan. You can implement attributes by simply creating a relationship like plan:basic#subscribed@user:aditya In this case, you basically pointing that user Aditya subscribed to the basic pricing plan. And beyond that you need a more edge cases to check access and Permify's limited support of ABAC starts here. For example "Basic pricing plan should have 5 team members at max". We do not support count based or time based limitations for now. We're planning to add it,  but it's not a minor feature for sure and need more specifications around it to ship useful one.
Considering your need, we can cover RBAC and ABAC needs as much as possible, for edge cases maybe we can conduct a workaround solution until we launch full ABAC support. For this, we can model and design your authorization schema with Permify. And discuss together then implement it together. But before that you need to provide full capabilities and functionalities of authorization that you thinking to add for now.
In overview can you provide us:

Whole roles of this application, and their abilities. You mentioned admin abilities above, is there any other roles in this application or is there any other case that you want to check access with roles and permissions ?

For pricing plans, you I remember the limitations:

Basic plan should have 5 team members at max
Standard plan can have 10 team members at max.
Enterprise plan can have 3 teams each having 10 members max

Is it the whole limitation or specification of these pricing plans right now ? Or are there any more we need to know about.

I had requirement such as:
the organization can see reports in the interval of a certain date


refactor: Replaced telerik components with oxyplot in Views, …

…except AnalyticReports

This should remain open until @silahian has a chance to merge it.

before I merge this, @ramateur can you please make sure to follow these instructions:
https://github.com/silahian/VisualHFT/issues/2#issuecomment-1646988971
And then chack that all is ok?

Ok, Ithink it can take a couple of days. I added dummy data to database, but launch cound not analytics report with it, it still displays No data (I changed date picker as you described) (
Maybe it is because I had to switch to Binance povider instead of BinanceUS. The former is not accessible for me. And switched pair to BTC-USDT, which is present both on Coinbase and Binance

There is a bug in demoTradingCore Program.cs when chagnging BinanceUs provider to Binance, symbol pair to "BTC-USDT" and commenting string 31 //await InitializeCoinbase(). Occurs mismatch between key-value pair in dictionary. I worked it around replacing book.MarketSymbol with _SYMBOLS.First() value as key, but may be you have another point of view on it.


[NTR] student helper

New term name
student helper
Definition
A role of a student in a research project which is acknowledged in papers.
Parent term(s)
No response
Child term(s)
No response
Synonyms
No response
Xrefs
No response
Your ORCID
No response

this term has been added to the dpbo


Update sql-database-service-tier-hyperscale-faq.md

Added a common question from customers:
How do I validate if I have successfully connected to secondary compute node using SSMS / other client tools?

@kfarlee - Would you review the proposed changes? Thanks.

#sign-off


[hotfix][docs] improve the filesystem connector doc

What is the purpose of the change
improve the filesystem connector doc

LGTM, thanks for fixing this!


fix: pin python-libjuju<3.0

juju~3 is a transitional version that is no longer supported.  We should use juju<3 until we are using Juju 3.1+

Tests are failing due to something unrelated.  Will still merge, but this will not publish properly as a result


Improve property system

[ ] improve cli argument parser
[ ] allow property addition in sub projects

superseded by #130


OCR processing fails

When ocr is used to convert pdf to text it fails with error message
Error during OCR of, using garbage: invalid literal for int() with base 10: 'mpzvoklker/image-06'
The issue is most likely caused by wrong slicing of string (fname[6:-4] instead of fname[-6:-4])
https://github.com/crocs-muni/sec-certs/blob/9d1d44d04532609524fd862697179e179a6ea92c/src/sec_certs/utils/pdf.py#L64

I do not have time to fix this. fname[-6:-4] is likely wrong as well as triple-digit pagecounts are reasonable. Better do a split on the "-" and the ".".

I drafted a fix:
https://github.com/crocs-muni/sec-certs/pull/299/files#diff-868e915618fb558aec444f32bf8f70056ffe499f0cb2f71c6d9fa75a4cacc005
works on my machine :)


could prophet work with LLaMA(from facebook)

I think prophet can offer answer heuristics for LLaMA instead of OpenAI GPT-3 to get better results.
first, LLaMA model is opensource.
second,LLaMA maybe better than GPT-3.

Yes, Prophet can adapt to any LLMs including LLaMA. We appreciate that if you can make a comparison : )
It is worth noting that we use the text-davinci-002 version of GPT-3, which is also called GPT-3.5. We think its CoT and in-context learning capacity are better than the open-sourced LLaMA.


Show notice when no messages in narrow

Automated message from Dropbox CLA bot
@borisyankov, it looks like you've already signed the Dropbox CLA. Thanks!

Commit was reviewed in another PR.


Schema builder UI

Writing schemas is hard. It would be good to have a UI to support writing schemas, to suggest validators/aggregators/serialisers to use.
The UI could allow users to draw/visualise their json schema in a graphical format.

There is a basic working version on branch gh-281-schema-builder. It needs further work to tidy up the code and improve the functionality. However, it is quite easy to get it running, see: Schema Builder.

Note - the gh-281 branch is now quite out of date as the format of a Gaffer schema has changed slightly.

This has been merged into develop in the Gaffer Tools repository


How to change SoftDeleteableFilter default enabled to disabled

I want to enable SoftDeleteableFilter but it would not filter any entities unless i do
$filter->enableForEntity('TestEntity');

Closing due to age and lack of activity. If you are interested in this issue or are still experiencing any problems described here, please add a comment!


Testing and the static HttpClient

One issue with using a static HttpClient like this is you have no ability to mock calls to perform unit testing. Perhaps using an injected HttpMessageHandler, which can be mocked, might be a better way to go for the client.

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

ID: cb8d85a7-1ca3-71f4-85fb-7fb02850b60e
Version Independent ID: 3d7daee4-fd6d-0e96-299a-90b3637e6150
Content: How to manage connections in Azure Functions
Content Source: articles/azure-functions/manage-connections.md
Service: functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

Thanks for the feedback! We are currently investigating and will update you shortly.

@scottrudy Thank you for your valuable feedback! We have assigned this issue to the author to review further and take the right course of action.

@jeffhollan do you have any feedback on this suggestion from @scottrudy?

We do plan to provide better HTTP injection in the future (sometime early next year most likely).  That said putting in your own HttpMessageHandler is a viable option for now as shown in this sample.  Likely would wrap up in a better DI article that hopefully will come by end of the year.

For HttpClient, wouldn't it be a good approach to keep the HttpClientFactory as a static member and create HttpClient by using CreateClient factory method? this way, we are delegating the HttpClient creation responsibility to the factory which knows how to deal with the HttpClient effectively.

@craigshoemaker is this something you think we should address in the testing article?

We may want to hold off until we do the DI article that I am working on right now. It will showcase the HttpClientFactory approach

@mike-urnun-msft can you also please change the service label to azure-functions/svc? Thanks!

Hi @scottrudy and @jeffhollan,
Good day to you.
We can add httpclient through DI using http extensions thus we can create mock object of it for testing, refer below reference that may help you.
https://stackoverflow.com/questions/52918000/ihttpclientfactory-in-net-core-2-1-console-app-references-system-net-http
https://dotnetcoretutorials.com/2018/05/03/httpclient-factories-in-net-core-2-1/
Thanks!

The new dependency injection article also now features HttpClient injection.
#please-close


Incorrect nullable annotations on IAsyncEnumerable.Catch()

Bug
Within System.Interactive.Async...
Each of the three overloads of AsyncEnumerableEx.Catch<TSource, TException>() accepts a handler delegate that indicates it should not be given a null followup sequence, in the event of a caught exception. However, actually passing null is allowable. It seems plausible that allowing nulls here may not have been the original intention, but it actually is an important use-case.
I found myself getting server logs littered with TaskCancelledException and OperationCancelledException errors, when using GRPC with IAsyncEnumerable<T> for server-to-client streams. In my case, streams are infinite, so it's entirely normal for a client to submit a cancellation, to stop listening when it no longer needs to. I figured I could use the .Catch() operator to swallow these exceptions, as follows...
sequence
    .Catch((OperationCancelledException _) => AsyncEnumerable.Empty<T>())

However, this doesn't work, because after catching the exception, the .Catch<T>() operator passes the already-cancelled token to the empty, which immediately throws a new one.
fail: Grpc.AspNetCore.Server.ServerCallHandler[6]
      Error when executing service method 'Observe'.
      System.OperationCanceledException: The operation was canceled.
         at System.Threading.CancellationToken.ThrowOperationCanceledException()
         at System.Linq.AsyncEnumerable.EmptyAsyncIterator`1.GetAsyncEnumerator(CancellationToken cancellationToken) in /_/Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Empty.cs:line 52
         at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator()
         at System.Linq.AsyncEnumerableEx.<Catch>g__Core|6_0[TSource,TException](IAsyncEnumerable`1 source, Func`2 handler, CancellationToken cancellationToken)+MoveNext() in /_/Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Catch.cs:line 74
         at System.Linq.AsyncEnumerableEx.<Catch>g__Core|6_0[TSource,TException](IAsyncEnumerable`1 source, Func`2 handler, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
         at ProtoBuf.Grpc.Internal.Reshape.WriteTo[T](IAsyncEnumerable`1 reader, IServerStreamWriter`1 writer, CancellationToken cancellationToken) in /_/src/protobuf-net.Grpc/Internal/Reshape.cs:line 134
         at ProtoBuf.Grpc.Internal.Reshape.WriteTo[T](IAsyncEnumerable`1 reader, IServerStreamWriter`1 writer, CancellationToken cancellationToken) in /_/src/protobuf-net.Grpc/Internal/Reshape.cs:line 134
         at Grpc.Shared.Server.ServerStreamingServerMethodInvoker`3.Invoke(HttpContext httpContext, ServerCallContext serverCallContext, TRequest request, IServerStreamWriter`1 streamWriter)
         at Grpc.Shared.Server.ServerStreamingServerMethodInvoker`3.Invoke(HttpContext httpContext, ServerCallContext serverCallContext, TRequest request, IServerStreamWriter`1 streamWriter)
         at Grpc.AspNetCore.Server.Internal.CallHandlers.ServerStreamingServerCallHandler`3.HandleCallAsyncCore(HttpContext httpContext, HttpContextServerCallContext serverCallContext)
         at Grpc.AspNetCore.Server.Internal.CallHandlers.ServerCallHandlerBase`3.<HandleCallAsync>g__AwaitHandleCall|8_0(HttpContextServerCallContextserverCallContext, Method`2 method, Task handleCall)

As far as I can tell, there's no other way within the library to deal with exceptions coming out of a cancellation token.
I can see here that the operator is explicitly performing a null-check, and simply ends the sequence with no followup, if no followup sequence is given.
The simple change seems to be to simply mark the followup sequence as nullable, and keep all the functional code the same.
public static IAsyncEnumerable<TSource> Catch<TSource, TException>(
        this IAsyncEnumerable<TSource> source,
        Func<TException, IAsyncEnumerable<TSource>> handler)
    where TException : Exception

Alternatively, a new overload of the operator could be added that takes a TException argument, but no handler to produce a followup sequence.
This seems very closely related to #1207, but if I'm reading it correctly, I don't think this is a duplicate. In this case, it's not the Catch() operator that's performing a token check, but the Empty<T>() operator, which, according to @bartdesmet 's proposal, in #1207, is the intended behavior for a "generator" operator. Even with #1207 fixed, this would still be an issue.

The problem with null is that the semantics are not so clear. If passing null actually means "Empty but without the re-throwing bug" than we should continue to use Empty and see whether the current behaviour should be changed. I propose a check of the cancellationToken in catch, see if it's cancelled, and if it is and the caught exception type is OperationCancelledException (possibly even a derived type), finish the iteration.

The problem with null is that the semantics are not so clear. If passing null actually means "Empty but without the re-throwing bug" than we should continue to use Empty and see whether the current behaviour should be changed. I propose a check of the cancellationToken in catch, see if it's cancelled, and if it is and the caught exception type is OperationCancelledException (possibly even a derived type), finish the iteration.


How to run on cityscpaes dataset

❓ Questions and Help
I use the ./configs/cityscapes/e2e_mask_rcnn_R_50_FPN_1x_cocostyle.yaml config file to run the demo. But the output shows no predictions. The heatmap is as follow:

How can I fix this problem?

We currently do not provide pre-trained models for cityscapes dataset, which would explain why you have no predictions, as you are using a model from scratch.

I found that pre-trained model are from a PR (https://github.com/facebookresearch/maskrcnn-benchmark/pull/232), I will ask the author for more details.

There are no pre-trained models for this dataset, they are all initialized from ImageNet.


add descriptions and how to use wrap

In how to use I mean which variable we should use if we want to use wrap.

@ignatenkobrain could you please give more context what variables are you talking about?

@sarum9in something like if wrap defines foo_dep, we should mention that somewhere that people can use fallback or get_variable() from subproject.


fix manifest rendering issue when iop is deleted.

Please provide a description for what this PR is for.
resolve: https://github.com/istio/istio/issues/24038
This simplify the prune logic for in-cluster operator:
The helm reconciler doesn't need to render manifests again, it juste need to prune all the resources matching label selectors and clean the cache if necessary.
If we really want to render manifests, we may need to merge IOP with profile and set global fields of values, that will slow the whole reconcile process.
[ X ] Installation

In response to a cherrypick label: new pull request created: #24116


Resolution for issue #131

Resolution for issue #131
Added a comment to the PartitionID field on the SystemProperties struct to clarify that it will always return nil and that partition related information can be found in the PartitionKey field in SystemProperties.
Bumped patch version and added log in changelog.md under version 2.0.4.

Can I assume the EH service has no plan to provide the mapstructure:"x-opt-partition-id annotation recently which let the partitionID always being nil here.

Yes, the service does not have any plans to include that at the moment.


Documentation page does not support dark theme

GitHub recently released dark theme, Material for MkDocs also recently added this feature, however the docs page for this specific library doesn't seem to support it?

https://github.com/Roblox/roact-rodux/pull/44

https://github.com/Roblox/roact-rodux/pull/44


[ENH] add flat version of the resource table

adds a flattened version of the resource table that should make it easier to work with and amend in the future

Thank Remi!