Refactor axis creation and coordinate projection for line and bar chart

Currently the line and bar chart have a relatively static way of how they create X and Y axis where X was always a step based axis and Y the axis that was constructed with the values and an order of magnitude linear scale. In order to make this more dynamic we should refactor the code and solve this problem more abstract.
This should include:

Abstraction layer for axis that allows to implement different Axis / Scale types
Each axis is responsible to project values in it's own dimension
Order of magnitude and the value bounds (currently composite of the Chart) should be part of one specific axis (linear oom axis)
Currently there are two individual functions for creating X and Y labels and grid lines. This should be unified with one function

If we do this correctly we should be able to implement #64 quite easily and also #26 shouldn't be too much code overhead.

:thumbsup:


[Feature Request] Ability to (filter) trace the bulk/search requests with high latency or resource consumption

Is your feature request related to a problem? Please describe
With the introduction of Request Tracing Framework (RTF) using OpenTelemetry (OTel), requests can be traced to identify various code paths/modules which take more time to execute. While this solves the intended problem, enabling tracing for all requests does have an overhead with respect to additional computation/CPU and memory.  The recommended solution to reduce the overhead is to sample the requests, OTel supports two types of sampling techniques, i) head based probabilistic sampling and ii) tail sampling.
While tailing sampling is good, it still requires the additional computation and memory as the optimization is only applicable for the network data transfer. Head based probabilistic sampling may not capture the requests with high latency if their occurrence is small (1 out of 10K requests).
This leaves us with either sample everything with additional cost or not sample at all.
Describe the solution you'd like
Threshold based trace capture: Given that both the head and tail based sampling doesn't solve the problem in an efficient way, we need a new way to identify if a particular request is important during the request processing and then capture all the related span/traces. This can be achieved by configuring thresholds for different spans and a request is considered important only when one/more spans have breached the threshold configured for those span(s). For example, say if we have a span on particular aggregation code, we can setup a threshold search.aggregation.date_histogram.latency > 300ms, then if any request which takes more than 300ms can then be captured. The threshold can be configured as a dynamic setting similar to the way log levels are configured today. This is one thought process, would like to get community's inputs on this.
Related component
Other
Describe alternatives you've considered
i) Head based probabilistic sampling.
ii) Tail sampling.
Additional context
No response

[Triage - attendees 1 2 3 4 5 6]
@backslasht Thanks for filing this issue, this seems like it could be related to other efforts such as sandboxing requests #11061 as well as other overlap with audit logging systems.  Look forward to seeing more details come out of this discussion.
Adding @reta for more thoughts

@backslasht I believe tail based sampling is the best option in this case since we cannot make the decision upfront regarding latency

While tailing sampling is good, it still requires the additional computation and memory as the optimization is only applicable for the network data transf

The tail base sampling would be done outside of OpenSearch  (on Otel exporter side), so we should be not concerned too much by additional computation and memory I believe

@backslasht I don't fully understand how the threshold-based solution would work. Don't you have to capture all spans since you don't know at the start that they will breach the configured threshold? It's only when they complete (or even all spans within a trace complete) that you know the threshold wasn't breached and they are safe to discard. I'm confused about how this is different from tail-based sampling in practice.

I think the ask here is to have delayed sampling decision (with in the context of a live request) because

Head sampling happens at very early stage.
Tail sampling is difficult in our case because 1)it requires all the spans related to a single request to be collected on single node and 2) in order to take a tail sampling decision in such scenarios we will have to sample 100% requests from the Head Sampling.

We need to see how it can be accommodated in the otel framework.

2. 1)it requires all the spans related to a single request to be collected on single node and

Single span collector node, just to clarify here

in order to take a tail sampling decision in such scenarios we will have to sample 100% requests from the Head Sampling.

No all but the requests of specific types (actions), just to clarify on that

The tail base sampling would be done outside of OpenSearch (on Otel exporter side), so we should be not concerned too much by additional computation and memory I believe

@reta - Tail based sampling works if the number of requests are in hundreds per second, but it becomes a bottleneck when the count grows to tens of thousands of requests per second. It puts additional pressure on OpenSearch to collect, process and export. Also, if the sampling is done outside the OpenSearch cluster, then it brings in additional resource consumption w.r.t network I/O and compression.

I'm confused about how this is different from tail-based sampling in practice.

@andrross - As @reta pointed out, in tail based sampling, the decision is taken much later, mostly in external systems as they get to see the full view of the request (coordinator nodes + N data nodes). What I suggest is a variation of that, where the decision to capture is taken by one or more of the data nodes and communicated back to the coordinator so that the corresponding spans (coordinator spans and the spans of the relevant data nodes) are captured. Though this doesn't provide the full view of the request, it does provide view of the problematic parts (spans) for the request which will help in debugging the issue.

@backslasht Got it, this does seem like a variation of tail-based sampling where essentially each component can make an independent tail decision about whether its span should be captured. It also seems like any communication/coordination between the different components to ensure a coherent trace gets captured when one of the spans makes the decision to capture will be a challenge here (though to be honest I don't know OpenTelemetry well).

What I suggest is a variation of that, where the decision to capture is taken by one or more of the data nodes and communicated back to the coordinator so that the corresponding spans (coordinator spans and the spans of the relevant data nodes) are captured.

@backslasht I think it is clear that in order to support feature like that, the complete state of the trace (spread across the cluster nodes) has to be kept somewhere for a duration of the request. In the view of your next comment ...

@reta - Tail based sampling works if the number of requests are in hundreds per second, but it becomes a bottleneck when the count grows to tens of thousands of requests per second.

... keeping the traces state of tens of thousands of the requests on OpenSearch side in case any of them may backfire is unsound design decision from the start (at least, to me).
OpenSearch does not do any processing over spans - it merely collects them and sends over the wire (in batches). The overhead of that could be measured and accounted for, but it is very lightweight. There are many large high volume systems out there that do use tracing at scale, it needs infrastructure obviously but that is different problem. At the end, the hit will be taken by the collector that has to accommodate tail sampling requirement - it make the system more reliable (if collector dies or needs scaling, no visible impact for users).
Tail/Adaptive sampling is difficult problem to solve, I think we have to stay realistic and explore the limits of the existing systems before making any statements regarding how they behave or may behave. To my knowledge, we have not done any of that yet.

... keeping the traces state of tens of thousands of the requests on OpenSearch side in case any of them may backfire is unsound design decision from the start (at least, to me).

I guess I was not very clear in my previous comment. The suggestion is not to keep the traces of completed requests. As per the design today, the traces are kept in memory (in coordinator nodes) when the requests are further getting processed in data nodes and will be written to the wire when the response is sent back. The proposal is an optimization where in OpenSearch can decide if the trace needs to be sent to the wire or not based on its significance and the significance is determined by a certain rule.

OpenSearch does not do any processing over spans - it merely collects them and sends over the wire (in batches). The overhead of that could be measured and accounted for, but it is very lightweight. There are many large high volume systems out there that do use tracing at scale, it needs infrastructure obviously but that is different problem. At the end, the hit will be taken by the collector that has to accommodate tail sampling requirement - it make the system more reliable (if collector dies or needs scaling, no visible impact for users).

I agree, we don't have benchmarks on the impact of collecting traces at large scale. I can go create large volumes of requests and measure the impact, but open for suggestions if you any thoughts on large scale workloads?

As per the design today, the traces are kept in memory (in coordinator nodes) when the requests are further getting processed in data nodes and will be written to the wire when the response is sent back.

This is not how it works today (if by traces we mean the tracing instrumentation), the trace spans are flushed as they are ended, nothing is kept in memory (besides the contextual details which is basically trace / span ids)

but open for suggestions if you any thoughts on large scale workloads?

We have benchmarking framework, we could simulate workloads.

This is not how it works today (if by traces we mean the tracing instrumentation), the trace spans are flushed as they are ended, nothing is kept in memory (besides the contextual details which is basically trace / span ids)

Yes, but in most of the cases parent span ends post child is ended (except some async scenarios).

Yes, but in most of the cases parent span ends post child is ended (except some async scenarios).

Thanks! exactly the point.

@backslasht  Thank you for filing the issue. I do see the point for this feature and did a quick load test to see how just creating lot of spans can impact the overall cluster performance. With the load test we could see there was a significant increase of the node network bandwidth where the number of spans generated are high. This does make a significant difference and can impact the workload and operations.
Following are the tests which I conducted:
Test Environment Setup:

3 data nodes behind a load balancer, each with 32 GB ram [16Gb JVM] and 8 cores
Load - Http_logs
Bulk size 5 documents [Kept less to simulate high load]
100% sampling done on requests

When traces are disabled :
Tested the cluster with spans disabled and with approximately 200K requests mostly comprising of bulk and few searches, could see that the network bandwidth utilization with the same was around 190mb/s which was significantly low when compared to load when spans were enabled and no issues were seen on the network as we see in the image below

When the traces were enabled:
With spans enabled tested the cluster with similar load of 200K requests mostly comprising of bulk and could see that the network bandwidth utilization with the same was around 330mb/s which is approximately 1.7 time more than the optimal network load on the cluster.

To further check if the bandwidth utilization is getting affected/worse with the count of spans I could see with 328K requests it further increased and even at a point it was utilizing the full network bandwidth of the node and a drop in spans were observed during the time frame. Not just spans, could also see overall node health check getting stalled and causing the nodes to get dropped and join the cluster back again.

So to overcome such behavior and to be fault tolerant I do agree there is a merit of exporting limited spans. We can actually capture the child span if that is above a threshold and from there we can go ahead and capture the parent i.e a branch till the root span where it would have the details for all spans which have still not ended and are waiting for the request to be processed . I will soon come up with the overall proposal for the same.

@nishchay21 there are tradeoff for every approach:

100% sampling rate would certainly impact high load clusters (AFAIK, we barely instrumented just a few flows in OpenSearch, I suspect with more instrumentation in place the impact would be higher), the price here is mostly network bandwidth
keeping track of the traces / spans and postponing the sampling decisions (till some tail condition) would not eliminate the need to keep the traces / spans but force us to store them in memory (very likely) which to me is much more impactful for normal cluster operations (not even talking about backpropagating the states of the traces / spans across nodes in the cluster)

To have an understanding what exactly you experimented which, could you please share:

which OTEL exporter was configured
which OTEL collector (or collectors) was deployed
where OTEL collector (or collectors) was deployed

Thank you.

@reta I do agree that we need to keep 100% sampling rate for above solution as well which might consume some extra resources on the cluster. To put it out this would be more helpful where someone wants to enable the tail sampling on the cluster and they get the ability to trace only the spans which are anomalous. As tail sampling has it's  own caveats of using high storage cost, extra processing cost and extra network bandwidth this solution will help to reduce the same and still get to those anomalous spans.
To Answer the questions:

I used the GRPC span exporter.
The Otel collector was deployed on the node itself and was pushing to an external location[S3 in this case]

As tail sampling has it's own caveats of using high storage cost, extra processing cost and extra network bandwidth this solution will help to reduce the same and still get to those anomalous spans.

I think, judging from your reply, the reasoning about this problem is not correct: we don't need anonymous spans, we need traces that are outliers. Basically, we need the whole system view for such outliers, not just "out of the context" spans (this is why it is a hard problem).
PS: If we think a bit about the trade offs, I would like to refer to you the recently added SEGMENT based replication, where we traded computed to network bandwidth.

The Otel collector was deployed on the node itself and was pushing to an external location[S3 in this case]

So this basically is not a "valid" test - the collector contributes to the network consumption but it has to be excluded.

@reta by anomalous spans I basically meant spans which are outliers itself. So just to explain further the proposal is to not just capture one single span which is outlier but also capture the spans from there to the above chain of parent [Only if parent is still open and not ended]. So to explain on this:

As seen in the picture above we have a hierarchy in generating the spans where a parent span can generate multiple child spans or might not generate a span if the request has ended. The approach we suggest is to check a span if that is above threshold or not. If the span is above a certain threshold i.e high resource or latency is seen on the span we will mark the span to be sampled and send the information to its parent span.

The thing to note here is that the parent span can be part of same or another node and we will send the sampling information with the response to the parent span.

Once the parent span receives the information about the child being sampled there are two possibilities as seen above:
1. Parent span is still recording - If the parent span is still recording we will have the span sampled as well and store the information for that span. Once the span is marked to be sampled we will send the same sampling information in the above hierarchy as seen below until we reach the root node. This way we will be able to sample the request to its root.

2. Parent Span has stopped recording -  Another possibility is that the parent span has ended and not in recording phase as seen in below picture. In this case we will not have the parent wait to be sampled and just drop the parent information. As the parent is not waiting for the child span to complete we know that the overall request is not very much dependent on this span and there is no use to capture the same. So in this case we will just ignore the span and send the information to its parent span until the same hierarchy continues.

As we have already discussed above that keeping all the traces or spans in memory for long can cause lot of memory usage so we will not do the same in this approach and just let the parent span get dropped if that is not marked to be sampled and ended before the child span.
The main advantages of this approach:

We will be able to sample all the requests having discrepancy[hot].
Only limited samples will be generated.
Storage utilization where the samples are stored will be less.

Adding further on the test involved so I basically ran a custom collector on the node which is just reading the traces and pushing out. So it is just simple traces exported out this will not involve any other data from the collector itself.  Ideally I believe this will mimic or emulate the same behavior. If required, we can test on having the collector outside the node as well.

@nishchay21 this sounds very complicated to me and I honestly don't understand why we need to build that:

The approach we suggest is to check a span if that is above threshold or not. If the span is above a certain threshold i.e high resource or latency is seen on the span we will mark the span to be sampled and send the information to its parent span.

This decision could  be only made upon completion and will not work with async scenarios when parent span may be ended well before the child (the timing will be reconciled at the query time). The OpenSearch is using async heavily everywhere.

The thing to note here is that the parent span can be part of same or another node and we will send the sampling information with the response to the parent span.

Tracing supposed to be optional instrumentation, it will now leak everywhere: responses, requests (we need to understand which node the span comes from, the node may die meanwhile loosing the most important part of the trace completely, ...).
We are struggling with instrumentation at the moment (it is very difficult to do right) yet we are looking for complex solution for the problems we don't have (to me), building tracing framework on top of another tracing framework.

Have had an offline discussion with @Gaganjuneja abd @nishchay21 , here are the conclusions we ended up with:

Conduct the tests with standalone OTEL collector to understand its limits as well as network overhead caused by sending traces from OS nodes to collector
Since OTEL makes sampling decisions upfront, the suggested feature could not be implemented in existing telemetry-otel plugin, we need to rely on the tracing instrumentation which natively support this kind of sampling and, if such exists, another experimental telemetry plugin could be introduced
We have to keep in mind how this feature will work with:

OpenSeatch clients (we will be providing tracing support at some point)
OpenSeatch extensions (we will be providing tracing support at some point)

Hi @reta ,
Thank you for the offline discussion. For point 2 I have done some POC around getting the outlier spans within the Otel plugin itself and not polluting the Opensearch core. Will get back to you with the details on this soon.

Hi @reta,
So here is what we plan to do for the detection of an outlier span :

We will have the framework decide if the span in an outlier or not. In the current case we will be taking the latency as one of the evaluation parameter. So if the latency i.e. difference between start-time and end-time of a span is above a certain threshold we will be marking the span as an outlier. Once the span is marked to be an outlier we will go ahead and add a attribute to the given span lets say “Sampled: true”
This decision of the outlier will then be propagated to the above hierarchy via this attribute and the parent will know about the sampled status of its child span.
Now if the parent is still in the recording phase we will go ahead and add the attribute to the parent and mark the parent to be sampled as well.  If the parent is not recording then the information about this parent will be stored in event of its parent so that we don't loose on the info of not-recording spans
Once this is done we need to communicate the information back to another node as well. This communication between the nodes will be done by the header itself , which will know if the current request is sampled or not.
Once the header information is received we will follow the similar procedure as discussed above on the parent node to mark the current span hierarchy for sampling.

Note: This way we will not populate the OpenSearch core itself and have the minimal implementation within the plugin. Also just to add the memory consumption of this implementation will be equivalent to the memory consumption if we enable tail sampling.

@reta So, If the initial traces are generated outside the context of Opensearch than we respect the client sampling decision itself and will not override with our decision [which hold true today as well]. This will act as a new sampler within the core itself and if the decision is taken by this sampler in core then only the feature would be applied.


Enhance viewsvg.pro with RPATH, debug_and_release

Config set up for debug_and_release (release is default)

make or make release will use release configs
make debug will build in debug mode
(qmake does not need to be re-run to switch mode)

QMAKE_RPATHDIR is set for both build modes, to avoid requiring LD_LIBRARY_PATH at runtime
Readme updated accordingly

Thanks.


Project includes a dependancy that has a license that forbids its use

Dapr depends on bouk/monkey, which has a license that forbids anybody to use it.
The license is as follows:
Copyright Bouke van der Bijl

I do not give anyone permissions to use this tool for any purpose. Don't use it.

I’m not interested in changing this license. Please don’t ask.

The package seems to be used in pkg/components/standalone_loader_test.go.

Thanks for the heads up!
@yaron2 @artursouza this seems like it was introduced recently by PR https://github.com/dapr/dapr/pull/3158. Should this change be reverted?

Still need to consider adding a license checker in case this issue occurs again.

Thanks for the heads up!
@yaron2 @artursouza this seems like it was introduced recently by PR #3158. Should this change be reverted?

This is only used in the test (and thus not.compiled and distributed in our binaries).
We should not revert the entire PR, just rewrite the test.

If you dynamically link to this repository as a submodule and entirely switch over CI, deployment, and development to Codespaces then this is technically still legal. IANAL & TINLA

The T&C of GH imply you can use it due to the fact it's in a public repository. You would probably need to add it as a submodule just in case, because the terms say the grant applies when accessed via the GH service.
See clause 5:

If you set your pages and repositories to be viewed publicly, you grant each User of GitHub a nonexclusive, worldwide license to use, display, and perform Your Content through the GitHub Service and to reproduce Your Content solely on GitHub as permitted through GitHub's functionality (for example, through forking). You may grant further rights if you adopt a license.

Emphasis mine.

@Oppen - GH's terms of service do not override the library's license.

@eligrey - if you say "this is technically legal," that's legal advice.  Your saying "this is not legal advice" doesn't change anything.  You sound like the pirates on youtube who say "no copyright infringement intended."
Your legal advice is wrong, and the reason you gave that excuse is that, as you know, it's illegal for you to give legal advice without a legal background.

The T&C of GH imply you can use it due to the fact it's in a public repository. You would probably need to add it as a submodule just in case, because the terms say the grant applies when accessed via the GH service.
See clause 5:

If you set your pages and repositories to be viewed publicly, you grant each User of GitHub a nonexclusive, worldwide license to use, display, and perform Your Content through the GitHub Service and to reproduce Your Content solely on GitHub as permitted through GitHub's functionality (for example, through forking). You may grant further rights if you adopt a license.

Emphasis mine.

The keyphrase here is "through the GitHub Service". That doesn't give you permission to use it on your own machine. It gives  you permission to eye up the repository.
There are no complicated legal matters here - this is proprietary software with a license that does not permit it's usage. Even if on a technicality it may not stand up somewhere, it is also not in the spirit of FLOSS development to break the terms of a license.

@Oppen - GH's terms of service do not override the library's license.

No, but the agreement grants special rights besides the license. It's essentially similar to dual licensing 🤷

The keyphrase here is "through the GitHub Service". That doesn't give you permission to use it on your own machine.

That's true.

it is also not in the spirit of FLOSS development to break the terms of a license

That's a completely different discussion.

Thanks for the participation everyone, this is now closed with https://github.com/dapr/dapr/pull/3570.

I'm so sorry for my ignore to check package license,there are any way to auto check license when push a pr?I found some license check tools like google/go-licenses @yaron2


Diagnostic output from dataset reader

With the K2 files we support a rather complex format. In particular for such files it is important for debugging purposes to extract diagnostic information from the reader.
For that reason a data set reader should implement a function that outputs diagnostic information about a file.

[ ] The diagnostic information should be included in the "Info" button display (Issue #100 )
[ ] For HDF5-based files this could contain a dump of the tree.
[ ] For HDF5-based files information about shape, data type, chunking, compression of the currently selected HDF5 data set
[ ] For K2 data it should contain info about the frame ID sequence #63
[ ] For K2 data the estimated total number of frames #63
[ ] For K2 data the "first block offsets" of every sector #63

Awesome! :-) Works great now.


Adding version tag in external/spring

Adding stable version tag in external/spring test.properties
Fixes #3389
Signed-off-by: Abeer Waheed<EMAIL_ADDRESS>

https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/495/


RA is not working anymore on RHEL7 / CentOS 7 / Ubuntu 14.04

Hi there,
I tried the resource agent with a PCS cluster with up to date OS (RHEL/CentOS 7.1 and Ubuntu 14.04.3) and up to date Percona Server (5.6.26-74.0-log and 5.6.27-75.0-log) and it is not working.
Creating a master/slave cluster the RA cannot initiate the M/S.
Brlow my my.cnf and the pacemaker config
node 1: SRVOWNSQL01
node 2: SRVOWNSQL02
primitive p_vip IPaddr2
params ip=<IP_ADDRESS> cidr_netmask=24 nic=bond1
op start interval=0s timeout=20s
op stop interval=0s timeout=20s
op monitor interval=20s
meta target-role=Started
p_mysql ocf:percona:mysql
params config="/etc/my.cnf" pid="/var/lib/mysql/mysqld.pid" socket="/var/run/mysqld/mysqld.sock" replication_user="repl_user"
replication_passwd="" max_slave_lag="60" evict_outdated_slaves="false" binary="/sbin/mysqld"
test_user="test_user" test_passwd="******"
op monitor interval="5s" role="Master" OCF_CHECK_LEVEL="1"
op monitor interval="2s" role="Slave" OCF_CHECK_LEVEL="1"
op start interval="0" timeout="60s"
op stop interval="0" timeout="60s"
ms ms_MySQL p_mysql
meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" globally-unique="false" target-role="Master" is-managed="true"
colocation writer_on_master inf: p_vip ms_MySQL:Master
order ms_MySQL_promote_before_vip inf: ms_MySQL:promote p_vip:start
property cib-bootstrap-options:
stonith-enabled=false
no-quorum-policy=ignore
have-watchdog=false
dc-version=1.1.13-a14efad
cluster-infrastructure=corosync
cluster-name=DBCluster
last-lrm-refresh=1446108717
rsc_defaults rsc_defaults-options:
migration-threshold=1
[mysql]
CLIENT
port                           = 3306
socket                         = /var/lib/mysql/mysql.sock
[mysqld]
GENERAL
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid
bind-address=<IP_ADDRESS>
relay-log=mysql-relay-bin
log-slave-updates
replicate-ignore-db=mysql
MyISAM
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP
SAFETY
max-allowed-packet             = 16M
max-connect-errors             = 1000000
skip-name-resolve
sql-mode                       = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
sysdate-is-now                 = 1
innodb                         = FORCE
innodb-strict-mode             = 1
DATA STORAGE
datadir                        = /var/lib/mysql/
BINARY LOGGING
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1
binlog_format                  = ROW
log-slave-updates
CACHES AND LIMITS
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 100000
thread-cache-size              = 500
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 10000
INNODB
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 32G
LOGGING
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log
REPLICATION
server_id = 1
slave_transaction_retries=4294967295
[client-server]

include all files from the config directory

!includedir /etc/my.cnf.d

Ping !?!?!?

I'll take a look

Anything in the logs?  Can you enable the trace file and see what is going on?  To enable the trace:
mkdir /tmp/mysql.ocf.ra.debug
touch /tmp/mysql.ocf.ra.debug/log
The file should quickly grow, after a few events, do:
mv /tmp/mysql.ocf.ra.debug/log /tmp/mysql.ocf.ra.debug/log.1
and examine log.1.  You can post an event here, sanitized for passwords.


Wrong Brixton.M? POM in release repository

There are two different versions of the Brixton.M4 release in milestone and release.
The one in release seems to be there by accident as it depends on Brixton.BUILD-SNAPSHOT and is the latest from master. The reason is probably that the version wasn't properly reset in 1e27a59: version still is Brixton.M4 but should be Brixton.BUILD-SNAPSHOT as it still was in 6ce1be4

@trevormarshall can you delete the one from the "release" (via "libs-release-local") please?

We seem to have stamped this out in M4, but I can still see Brixton.M5 in the release repo (https://repo.spring.io/libs-release-local/org/springframework/cloud/spring-cloud-dependencies/Brixton.M5/) which is wrong. It looks like maybe artifactory is copying it three automatically because I only deployed once and it's identical to the one in the milestone repo.

The travis build for vBrixton.M5 is running ./mvnw deploy and succeeding where previously it failed.

We should use TRAVIS_TAG to detect tags and not deploy.

TRAVIS_TAG: If the current build for a tag, this includes the tag’s name.

I think this is done (in all the Cloud projects). We  now look at TRAVIS_TAG and TRAVIS_REPO_SLUG to decide whether or not to deploy. We also look at the version to decide if it's a milestone and set the profile.


setup problem

Hello When i go to http://www.thefinalresistance.net/pathfinder/setup i get

not sure

Register to Slack group, this is your setup problem not issue with PF.

:heavy_check_mark: Issue resolved
This issue was resolved by the commit(s) and/or the comments above.
It will be auto-closed with the upcoming release ( merge into master branch). Please check the attached Milestone information.
Many thanks to all participants/contributors for the helpful comments! :+1:
:information_source: Please reopen/comment this, if you have problems/questions about it.

Auto-generated response


changing lookup for active alert leaves it in active state forever

I have a rule that send alert based on some lookup function:
lookup Req_Threshold {
	entry env=preprod {
            RATE=10
        }
	entry env=prod {
            RATE=100
        }
	entry env=* {
            RATE=10
        }
}

I've modified it to include one more tag so that it looks now as following:
lookup Req_Threshold {
	entry env=preprod,source=* {
            RATE=10
        }
	entry env=prod,source=foo {
            RATE=50
        }
	entry env=prod,source=* {
            RATE=100
        }
	entry env=*,source=* {
            RATE=10
        }
}

This made bosun to create alerts for env=prod, env=preprod (without source tags).
The alerts didn't go away even though an alert condition became normal -- rate went above threshold.
After I rolled back the change in config Bosun started to create alerts for env=prod,source=foo, env=prod,source=bar (a few dozens of such alerts, for all combinations of env and source) and they remain in active state even after condition became normal.

When you say the alerts didn't go away, does that mean they were still on the dashboard, or they were still on the dashboard and active? (had the (!) icon)


[Package Issue]: Replace latest with its specific version's folder in OpenJS.NodeJS

Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Installation issue.
Brief description of your issue
Currently in OpenJS.NodeJS, every version's url is point to the latest folder. That's bad because the url would expire after updating. It should be replaced it with its own folder and this repo should prevent other contributors from adding similar manifests to it.
Steps to reproduce
N/A
Actual behavior
N/A
Expected behavior
N/A
Environment
N/A

Screenshots and Logs
No response

This issue is caused by my own automatic, I'll fix it soon

duplicate of #128758


Build bladebit_cuda on ubantu22.04, Illegal instruction (core dumped)

I build on ubantu22.04, but  can't run.
Running Error:
root@lizhihua-X9DRL-3F-iF:~/cuda/self_build# ./bladebit_cuda -n 1 -f xx-p xx--compress 0 cudaplot /mnt/chia/tmp1
Bladebit Chia Plotter
Version      : 3.0.0-alpha3-dev
Git Commit   : 21e4a08969ac307214714dd578f4e5d4ea355d85
Compiled With: gcc 11.3.0
[Global Plotting Config]
Will create 1 plots.
Thread count          : 40
Warm start enabled    : false
NUMA disabled         : false
CPU affinity disabled : false
Farmer public key     : xxx
Pool public key       : xxx
Benchmark mode        : disabled
[Bladebit CUDA Plotter]
Selected cuda device 0 : NVIDIA GeForce RTX 3070
CUDA Compute Capability   : 8.6
SM count                  : 46
Max blocks per SM         : 16
Max threads per SM        : 1536
Async Engine Count        : 2
L2 cache size             : 4.00 MB
L2 persist cache max size : 3.00 MB
Stack Size                : 1.00 KB
Memory:
Total                    : 7.78 GB
Free                     : 1.28 GB
Illegal instruction (core dumped)
Build Log:
root@lizhihua-virtual-machine:~/bladebit/build# cmake .. && cmake --build . --config Release --target bladebit_cuda -j4
-- The C compiler identification is GNU 9.5.0
-- The CXX compiler identification is GNU 11.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CUDAToolkit: /usr/local/cuda/include (found version "12.0.140")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
Found CUDA: true
NVCC      : /usr/local/cuda/bin/nvcc
-- The CUDA compiler identification is NVIDIA 12.0.140
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
Config   : Release
Compiler : GNU
CI build : false
-- Build python bindings: 0
-- Build tests: 0
-- Build benchmarks: 0
-- Relic will be built from: 1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7
GMP_INCLUDES=/usr/include/x86_64-linux-gnu
-- Found gmp: /usr/include/x86_64-linux-gnu
-- Found libgmp
-- Configuring RELIC 0.5.0...
-- Available switches (default = CHECK, VERBS, DOCUM):
DEBUG=[off|on] Build with debugging support.
PROFL=[off|on] Build with profiling support.
CHECK=[off|on] Build with error-checking support.
VERBS=[off|on] Build with detailed error messages.
OVERH=[off|on] Build with overhead estimation.
DOCUM=[off|on] Build documentation.
STRIP=[off|on] Build only selected algorithms.
QUIET=[off|on] Build with printing disabled.
COLOR=[off|on] Build with colored output.
BIGED=[off|on] Build with big-endian support.
SHLIB=[off|on] Build shared library.
STLIB=[off|on] Build static library.
STBIN=[off|on] Build static binaries.
AMALG=[off|on] Build amalgamation for better performance.
AUSAN=[off|on] Build with ASan and UBSan (gcc/clang only).
-- Number of times each test or benchmark is ran (default = 50, 1000):
TESTS=n        If n > 0, build automated tests and run them n times.
BENCH=n        If n > 0, build automated benchmarks and run them n * n times.
-- Number of available processor cores (default = 1):
CORES=n        If n > 1, enable multithreading support.
-- Available modules (default = ALL)
WITH=BN       Multiple precision arithmetic.
WITH=DV       Temporary double-precision digit vectors.
WITH=FP       Prime field arithmetic.
WITH=FPX      Prime extension field arithmetic.
WITH=FB       Binary field arithmetic.
WITH=EP       Elliptic curves over prime fields.
WITH=EPX      Elliptic curves over quadratic extensions of prime fields.
WITH=EB       Elliptic curves over binary fields.
WITH=ED       Elliptic Edwards curves over prime fields.
WTTH=EC       Elliptic curve cryptography.
WITH=PB       Pairings over binary elliptic curves.
WITH=PP       Pairings over prime elliptic curves.
WTTH=PC       Pairing-based cryptography.
WITH=BC       Block ciphers (symmetric encryption).
WITH=MD       Message digests (hash functions).
WITH=CP       Cryptographic protocols.
WITH=MPC      Multi-party computation primitives.
WITH=ALL      All of the above.
Note: the programmer is responsible for not using unselected modules.
-- Available arithmetic backends (default = easy):
ARITH=easy     Easy-to-understand and portable, but slow backend.
ARITH=fiat     Backend based on code generated from Fiat-Crypto.
ARITH=gmp      Backend based on GNU Multiple Precision library.
ARITH=gmp-sec  Same as above, but using constant-time code.
-- Available memory-allocation policies (default = AUTO):
ALLOC=AUTO     All memory is automatically allocated.
ALLOC=DYNAMIC  All memory is allocated dynamically on demand.
-- Supported operating systems (default = LINUX):
OPSYS=         Undefined/No specific operating system.
OPSYS=LINUX    GNU/Linux operating system.
OPSYS=FREEBSD  FreeBSD operating system.
OPSYS=NETBSD   NetBSD operating system.
OPSYS=MACOSX   Mac OS X operating system.
OPSYS=WINDOWS  Windows operating system.
OPSYS=DROID    Android operating system.
OPSYS=DUINO    Arduino platform.
-- Supported multithreading APIs (default = UNDEF):
MULTI=         No multithreading support.
MULTI=OPENMP   Open Multi-Processing.
MULTI=PTHREAD  POSIX threads.
-- Supported timers (default = HREAL):
TIMER=         No timer.
TIMER=HREAL    GNU/Linux realtime high-resolution timer.
TIMER=HPROC    GNU/Linux per-process high-resolution timer.
TIMER=HTHRD    GNU/Linux per-thread high-resolution timer.
TIMER=ANSI     ANSI-compatible timer.
TIMER=POSIX    POSIX-compatible timer.
TIMER=CYCLE    Cycle-counting timer. (architecture-dependant)
TIMER=PERF     GNU/Linux performance monitoring framework.
-- Prefix to identify this build of the library (default = ""):
LABEL=relic
-- Available architectures (default = X64):
ARCH=          No specific architecture (disable some features).
ARCH=AVR       Atmel AVR ATMega128 8-bit architecture.
ARCH=MSP       TI MSP430 16-bit architecture.
ARCH=ARM       ARM 32-bit architecture.
ARCH=X86       Intel x86-compatible 32-bit architecture.
ARCH=X64       AMD x86_64-compatible 64-bit architecture.
-- Available word sizes (default = 64):
WSIZE=8        Build a 8-bit library.
WSIZE=16       Build a 16-bit library.
WSIZE=32       Build a 32-bit library.
WSIZE=64       Build a 64-bit library.
-- Byte boundary to align digit vectors (default = 1):
ALIGN=1        Do not align digit vectors.
ALIGN=2        Align digit vectors into 16-bit boundaries.
ALIGN=8        Align digit vectors into 64-bit boundaries.
ALIGN=16       Align digit vectors into 128-bit boundaries.
-- Looking for include file execinfo.h
-- Looking for include file execinfo.h - found
-- Looking for backtrace
-- Looking for backtrace - found
-- Looking for backtrace_symbols
-- Looking for backtrace_symbols - found
-- Multiple precision arithmetic configuration (BN module):
** Options for the multiple precision module (default = 1024,DOUBLE,0):
  BN_PRECI=n        The base precision in bits. Let w be n in words.
  BN_MAGNI=DOUBLE   A multiple precision integer can store 2w words.
  BN_MAGNI=CARRY    A multiple precision integer can store w+1 words.
  BN_MAGNI=SINGLE   A multiple precision integer can store w words.
  BN_KARAT=n        The number of Karatsuba steps.

** Available multiple precision arithmetic methods (default = COMBA;COMBA;MONTY;SLIDE;BASIC;BASIC):
  Integer multiplication:
  BN_METHD=BASIC    Schoolbook multiplication.
  BN_METHD=COMBA    Comba multiplication.

  Integer squaring:
  BN_METHD=BASIC    Schoolbook squaring.
  BN_METHD=COMBA    Comba squaring.
  BN_METHD=MULTP    Reuse multiplication for squaring.

  Modular reduction:
  BN_METHD=BASIC    Division-based modular reduction.
  BN_METHD=BARRT    Barrett modular reduction.
  BN_METHD=MONTY    Montgomery modular reduction.
  BN_METHD=RADIX    Diminished radix modular reduction.

  Modular exponentiation:
  BN_METHD=BASIC    Binary modular exponentiation.
  BN_METHD=MONTY    Montgomery powering ladder.
  BN_METHD=SLIDE    Sliding window modular exponentiation.

  Greatest Common Divisor:
  BN_METHD=BASIC    Euclid's standard GCD algorithm.
  BN_METHD=LEHME    Lehmer's fast GCD algorithm.
  BN_METHD=STEIN    Stein's binary GCD algorithm.

  Prime generation:
  BN_METHD=BASIC    Basic prime generation.
  BN_METHD=SAFEP    Safe prime generation.
  BN_METHD=STRON    Strong prime generation.

-- Prime field arithmetic configuration (FP module):
** Arithmetic precision of the prime field module (default = 256,0,off,off):
  FP_PRIME=n        The prime modulus size in bits.
  FP_KARAT=n        The number of Karatsuba levels.
  FP_PMERS=[off|on] Prefer Pseudo-Mersenne primes over random primes.
  FP_QNRES=[off|on] Use -1 as quadratic non-residue (make sure that p = 3 mod 8).
  FP_WIDTH=w        Width w in [2,6] of window processing for exponentiation methods.

** Available prime field arithmetic methods (default = BASIC;COMBA;COMBA;MONTY;MONTY;SLIDE):
Field addition
FP_METHD=BASIC    Schoolbook addition.
FP_METHD=INTEG    Integrated modular addition.
  Field multiplication
  FP_METHD=BASIC    Schoolbook multiplication.
  FP_METHD=INTEG    Integrated modular multiplication.
  FP_METHD=COMBA    Comba multiplication.

  Field squaring
  FP_METHD=BASIC    Schoolbook squaring.
  FP_METHD=INTEG    Integrated modular squaring.
  FP_METHD=COMBA    Comba squaring.
  FP_METHD=MULTP    Reuse multiplication for squaring.

  Modular reduction
  FP_METHD=BASIC    Division-based reduction.
  FP_METHD=QUICK    Fast reduction modulo special form prime (2^t - c, c > 0).
  FP_METHD=MONTY    Montgomery modular reduction.

  Field inversion
  FP_METHD=BASIC    Inversion by Fermat's Little Theorem.
  FP_METHD=BINAR    Binary Inversion algorithm.
  FP_METHD=MONTY    Montgomery inversion.
  FP_METHD=EXGCD    Inversion by the Extended Euclidean algorithm.
  FP_METHD=DIVST    Constant-time inversion by division steps.
  FP_METHD=LOWER    Pass inversion to the lower level.

  Field exponentiation
  FP_METHD=BASIC    Binary exponentiation.
  FP_METHD=SLIDE    Sliding window exponentiation.
  FP_METHD=MONTY    Constant-time Montgomery powering ladder.

-- Prime extension field arithmetic configuration (FPX module):
** Available bilinear pairing methods (default = BASIC;BASIC;BASIC):
Quadratic extension arithmetic:
FPX_METHD=BASIC    Basic quadratic extension field arithmetic.
FPX_METHD=INTEG    Quadratic extension field arithmetic with embedded modular reduction.
  Cubic extension arithmetic:
  FPX_METHD=BASIC    Basic cubic extension field arithmetic.
  FPX_METHD=INTEG    Cubic extension field arithmetic with embedded modular reduction.

  Extension field arithmetic:
  FPX_METHD=BASIC    Basic extension field arithmetic.
  FPX_METHD=LAZYR    Lazy-reduced extension field arithmetic.

-- Binary field arithmetic configuration (FB module):
** Options for the binary elliptic curve module (default = 283,0,on,on,on):
  FB_POLYN=n        The irreducible polynomial size in bits.
  FB_KARAT=n        The number of Karatsuba levels.
  FB_TRINO=[off|on] Prefer trinomials.
  FB_SQRTF=[off|on] Prefer square-root friendly polynomials.
  FB_PRECO=[off|on] Precompute multiplication table for sqrt(z).
  FB_WIDTH=w        Width w in [2,6] of window processing for exponentiation methods.

** Available binary field arithmetic methods (default = LODAH;QUICK;QUICK;BASIC;QUICK;QUICK;EXGCD;SLIDE;QUICK):
  Field multiplication:
  FB_METHD=BASIC    Right-to-left shift-and-add multiplication.
  FB_METHD=INTEG    Integrated modular multiplication.
  FB_METHD=LODAH    L�pez-Dahab comb multiplication with window of width 4.

  Field squaring:
  FB_METHD=BASIC    Bit manipulation squaring.
  FB_METHD=INTEG    Integrated modular squaring.
  FB_METHD=QUICK    Table-based squaring.

  Modular reduction:
  FB_METHD=BASIC    Shift-and-add modular reduction.
  FB_METHD=QUICK    Fast reduction modulo a trinomial or pentanomial.

  Field square root:
  FB_METHD=BASIC    Square root by repeated squaring.
  FB_METHD=QUICK    Fast square root extraction.

  Trace computation:
  FB_METHD=BASIC    Trace computation by repeated squaring.
  FB_METHD=QUICK    Fast trace computation.

  Quadratic equation solver:
  FB_METHD=BASIC    Solve a quadratic equation by half-trace computation.
  FB_METHD=QUICK    Fast solving with precomputed half-traces.

  Field inversion:
  FB_METHD=BASIC    Inversion by Fermat's Little Theorem.
  FB_METHD=BINAR    Binary Inversion algorithm.
  FB_METHD=ALMOS    Inversion by the Amost inverse algorithm.
  FB_METHD=EXGCD    Inversion by the Extended Euclidean algorithm.
  FB_METHD=ITOHT    Inversion by Itoh-Tsuji.
  FB_METHD=CTAIA    Constant-time almost inversion algorithm.
  FB_METHD=BRUCH    Hardware-friendly inversion by Brunner et al.
  FB_METHD=LOWER    Pass inversion to the lower level.

  Field exponentiation:
  FB_METHD=BASIC    Binary exponentiation.
  FB_METHD=SLIDE    Sliding window exponentiation.
  FB_METHD=MONTY    Constant-time Montgomery powering ladder.

  Iterated squaring/square-root:
  FB_METHD=BASIC    Iterated squaring/square-root by consecutive squaring/square-root.
  FB_METHD=QUICK    Iterated squaring/square-root by table-based method.

-- Prime elliptic curve arithmetic configuration (EP module):
** Options for the prime elliptic curve module (default = all on):
  EP_PLAIN=[off|on] Support for ordinary curves without endomorphisms.
  EP_SUPER=[off|on] Support for supersingular curves.
  EP_ENDOM=[off|on] Support for ordinary curves with endomorphisms.
  EP_MIXED=[off|on] Use mixed coordinates.
  EP_CTMAP=[off|on] Use contant-time SSWU and isogeny map for hashing.

  EP_PRECO=[off|on] Build precomputation table for generator.
  EP_DEPTH=w        Width w in [2,8] of precomputation table for fixed point methods.
  EP_WIDTH=w        Width w in [2,6] of window processing for unknown point methods.

** Available prime elliptic curve methods (default = PROJC;LWNAF;COMBS;INTER):
  Point representation:
  EP_METHD=BASIC    Affine coordinates.
  EP_METHD=PROJC    Homogeneous projective coordinates (complete formula).
  EP_METHD=JACOB    Jacobian projective coordinates.

  Variable-base scalar multiplication:
  EP_METHD=BASIC    Binary method.
  EP_METHD=LWNAF    Left-to-right window NAF method (GLV for Koblitz curves).

  Fixed-base scalar multiplication:
  EP_METHD=BASIC    Binary method for fixed point multiplication.
  EP_METHD=COMBS    Single-table Comb method for fixed point multiplication.
  EP_METHD=COMBD    Double-table Comb method for fixed point multiplication.
  EP_METHD=LWNAF    Left-to-right window NAF method (GLV for curves with endomorphisms).
  EP_METHD=LWREG    Left-to-right regular recoding method (GLV for curves with endomorphisms).

  Variable-base simultaneous scalar multiplication:
  EP_METHD=BASIC    Multiplication-and-addition simultaneous multiplication.
  EP_METHD=TRICK    Shamir's trick for simultaneous multiplication.
  EP_METHD=INTER    Interleaving of window NAFs (GLV for Koblitz curves).
  EP_METHD=JOINT    Joint sparse form.

-- Binary elliptic curve arithmetic configuration (EB module):
** Options for the binary elliptic curve module (default = on, w = 4):
  EB_PLAIN=[off|on] Support for ordinary curves without endomorphisms.
  EB_KBLTZ=[off|on] Support for Koblitz anomalous binary curves.
  EB_MIXED=[off|on] Use mixed coordinates.
  EB_PRECO=[off|on] Build precomputation table for generator.
  EB_DEPTH=w        Width w in [2,8] of precomputation table for fixed point methods.
  EB_WIDTH=w        Width w in [2,6] of window processing for unknown point methods.

** Available binary elliptic curve methods (default = PROJC;LWNAF;COMBS;INTER):
  Point representation:
  EB_METHD=BASIC    Affine coordinates.
  EB_METHD=PROJC    Projective coordinates (L�pez-Dahab for ordinary curves).

  Variable-base scalar multiplication:
  EB_METHD=BASIC    Binary double-and-add method.
  EB_METHD=LODAH    Lopez-Dahab constant-time point multiplication.
  EB_METHD=LWNAF    Left-to-right window (T)NAF method.
  EB_METHD=RWNAF    Right-to-left window (T)NAF method.
  EB_METHD=HALVE    Halving method.

  Fixed-base scalar multiplication:
  EB_METHD=BASIC    Binary method for fixed point multiplication.
  EB_METHD=COMBS    Single-table Comb method for fixed point multiplication.
  EB_METHD=COMBD    Double-table Comb method for fixed point multiplication.
  EB_METHD=LWNAF    Left-to-right window (T)NAF method.

  Variable-base simultaneous scalar multiplication:
  EB_METHD=BASIC    Multiplication-and-addition simultaneous multiplication.
  EB_METHD=TRICK    Shamir's trick for simultaneous multiplication.
  EB_METHD=INTER    Interleaving of window (T)NAFs.
  EB_METHD=JOINT    Joint sparse form.

-- Elliptic Edwards curve over prime fields arithmetic configuration (ED module):
** Options for the prime elliptic Edwards curve module (default = all on):
ED_PRECO=[off|on] Build precomputation table for generator.
ED_DEPTH=w        Width w in [2,6] of precomputation table for fixed point methods.
ED_WIDTH=w        Width w in [2,6] of window processing for unknown point methods.
** Available prime elliptic Edwards curve methods (default = PROJC;LWNAF;COMBS;INTER):
ED_METHD=BASIC    Affine coordinates.
EP_METHD=PROJC     Simple projective twisted Edwards coordinates.
EP_METHD=EXTND     Extended projective twisted Edwards coordinates.
  *** variable-base multiplication method ***
  ED_METHD=BASIC    Binary method.
  ED_METHD=SLIDE    Sliding window method.
  ED_METHD=MONTY    Montgomery ladder method.
  ED_METHD=LWNAF    Left-to-right window NAF method.
  EP_METHD=LWREG    Left-to-right regular recoding method (GLV for curves with endomorphisms).

  *** fixed-base multiplication method ***
  ED_METHD=BASIC    Binary method for fixed point multiplication.
  ED_METHD=COMBS    Single-table Comb method for fixed point multiplication.
  ED_METHD=COMBD    Double-table Comb method for fixed point multiplication.
  ED_METHD=LWNAF    Left-to-right window NAF method.

  *** variable-base simultaneous multiplication method ***
  ED_METHD=BASIC    Multiplication-and-addition simultaneous multiplication.
  ED_METHD=TRICK    Shamir's trick for simultaneous multiplication.
  ED_METHD=INTER    Interleaving of window NAFs (GLV for Koblitz curves).
  ED_METHD=JOINT    Joint sparse form.

  Note: these methods must be given in order. Ex: ED_METHD="EXTND;LWNAF;COMBD;TRICK"

-- Elliptic curve cryptography configuration (EC module):
** Options for the binary elliptic curve module (default = on):
  EC_ENDOM=[off|on] Prefer (prime or binary) curves with endomorphisms.

** Available elliptic curve methods (default = PRIME):
  EC_METHD=PRIME    Use prime curves.
  EC_METHD=CHAR2    Use binary curves.
  EC_METHD=EDDIE    Use prime Edwards curves.

-- Bilinear pairings arithmetic configuration (PP module):
** Available bilinear pairing methods (default = BASIC;OATEP):
  Extension field arithmetic:
  PP_METHD=BASIC    Basic extension field arithmetic.
  PP_METHD=LAZYR    Lazy reduced extension field arithmetic.

  Pairing computation:
  PP_METHD=TATEP    Tate pairing.
  PP_METHD=WEILP    Weil pairing.
  PP_METHD=OATEP    Optimal ate pairing.

-- Message digest configuration (MD module):
** Available hash functions (default = SH256):
  MD_METHD=SH224        SHA-224 hash function.
  MD_METHD=SH256        SHA-256 hash function.
  MD_METHD=SH384        SHA-384 hash function.
  MD_METHD=SH512        SHA-512 hash function.
  MD_METHD=B2S160       BLAKE2s-160 hash function.
  MD_METHD=B2S256       BLAKE2s-256 hash function.

-- Cryptographic protocols configuration (CP module):
** Options for the cryptographic protocols module (default = on, PKCS2):
  CP_CRT=[off|on] Support for faster CRT-based exponentiation in factoring-based cryptosystems.

  CP_RSAPD=BASIC    RSA with basic padding.
  CP_RSAPD=PKCS1    RSA with PKCS#1 v1.5 padding.
  CP_RSAPD=PKCS2    RSA with PKCS#1 v2.1 padding.

-- Available pseudo-random number generators (default = HASHD):
RAND=HASHD     Use the HASH-DRBG generator. (recommended)
RAND=RDRND     Use Intel RdRand instruction directly.
RAND=UDEV      Use the operating system underlying generator.
RAND=CALL      Override the generator with a callback.
-- Available random number generator seeders (default = UDEV):
SEED=          Use a zero seed. (horribly insecure!)
SEED=LIBC      Use rand()/random() functions. (insecure!)
SEED=RDRND     Use Intel RdRand instruction directly.
SEED=UDEV      Use non-blocking /dev/urandom. (recommended)
SEED=WCGR      Use Windows' CryptGenRandom. (recommended)
-- Configured operating system: LINUX
-- Configured GMP: -I/usr/include/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/libgmp.so
-- Compiler flags:  -Wall   -O3 -funroll-loops -fomit-frame-pointer -pthread
-- Linker flags: -L/root/bladebit/build/_deps/relic-src/src/low/gmp/
-- Configured /root/bladebit/build/_deps/relic-src/include/relic_conf.h.in
-- Found NUMA: /usr/include
Embedding local build version
-- Configuring done
-- Generating done
-- Build files have been written to: /root/bladebit/build
[  0%] Built target arith_objs
[  0%] Building C object _deps/sodium-build/CMakeFiles/sodium.dir/cmake_pch.h.gch
/root/bladebit/cuda/MatchCuda.cu(10): warning #177-D: variable "BBCU_MIN_GROUP_COUNT" was declared but never referenced
[ 97%] Building CUDA object CMakeFiles/lib_bladebit_cuda.dir/cuda/CudaPlotUtil.cu.o
[ 98%] Building CXX object CMakeFiles/lib_bladebit_cuda.dir/cuda/GpuStreams.cpp.o
/root/bladebit/cuda/MatchCuda.cu(29): warning #177-D: variable "groupIdx" was declared but never referenced
Remark: The warnings can be suppressed with "-diag-suppress "
/root/bladebit/cuda/MatchCuda.cu(39): warning #177-D: variable "groupIdx" was declared but never referenced
/root/bladebit/cuda/MatchCuda.cu(40): warning #177-D: variable "gid" was declared but never referenced
/root/bladebit/cuda/MatchCuda.cu(52): warning #177-D: variable "lastThreadId" was declared but never referenced
/root/bladebit/cuda/MatchCuda.cu(96): warning #177-D: variable "gid" was declared but never referenced
/root/bladebit/cuda/MatchCuda.cu(10): warning #177-D: variable "BBCU_MIN_GROUP_COUNT" was declared but never referenced
/root/bladebit/cuda/CudaParkSerializer.cu(133): warning #177-D: variable "parkSizeWritten" was declared but never referenced
Remark: The warnings can be suppressed with "-diag-suppress "
/root/bladebit/cuda/CudaParkSerializer.cu(133): warning #177-D: variable "parkSizeWritten" was declared but never referenced
Remark: The warnings can be suppressed with "-diag-suppress "
[ 98%] Linking CUDA device code CMakeFiles/lib_bladebit_cuda.dir/cmake_device_link.o
[ 98%] Linking CXX static library liblib_bladebit_cuda.a
[ 98%] Built target lib_bladebit_cuda
[ 98%] Building CXX object CMakeFiles/bladebit_cuda.dir/src/main.cpp.o
[100%] Linking CUDA device code CMakeFiles/bladebit_cuda.dir/cmake_device_link.o
[100%] Linking CXX executable bladebit_cuda
[100%] Built target bladebit_cuda
root@lizhihua-virtual-machine:~/bladebit/build#
root@lizhihua-virtual-machine:~/bladebit/build#
root@lizhihua-virtual-machine:~/bladebit/build# ls -la
total 97512
drwxr-xr-x  4 root root     4096  3月 27 21:59 .
drwxr-xr-x 11 root root     4096  3月 27 21:49 ..
-rwxr-xr-x  1 root root 36192560  3月 27 21:59 bladebit_cuda
-rw-r--r--  1 root root    40464  3月 27 21:57 CMakeCache.txt
drwxr-xr-x 10 root root     4096  3月 27 21:59 CMakeFiles
-rw-r--r--  1 root root     1851  3月 27 21:57 cmake_install.cmake
drwxr-xr-x 14 root root     4096  3月 27 21:56 _deps
-rw-r--r--  1 root root 57311938  3月 27 21:58 libbladebit.a
-rw-r--r--  1 root root  6176106  3月 27 21:59 liblib_bladebit_cuda.a
-rw-r--r--  1 root root    99386  3月 27 21:57 Makefile
root@lizhihua-virtual-machine:~/bladebit/build# ./bladebit_cuda

Looks like your build machine and your target machine running the executable are different. Bladebit CUDA builds set -arch native when building locally. You'll have to comment out that line or set the environment variable CI=1 when building

Looks like your build machine and your target machine running the executable are different. Bladebit CUDA builds set -arch native when building locally. You'll have to comment out that line or set the environment variable CI=1 when building

!!!!!, after set env, it works well.  why not set CI=1 as default?


compile ok,and run error on win7

Describe the bug
16bits software is not compatible
win7-x86-msvc
web view runtime 109
msvc 2015

Reproduction
No response
Expected behavior
can run normally
Full tauri info output
done in 126s

please see the photos

Stack trace
No response
Additional context
No response

you don't seem to have Visual Studio Build tools installed, please follow https://tauri.app/v1/guides/getting-started/prerequisites#setting-up-windows

you can't develop tauri apps without installing msvc build tools, you can try using msvc 2019 (maybe 2017 could work as well but can't be sure)

2017 doesn't work, it must be 2019 or 2022 for Tauri. Visual Studio 2019 should work on Windows 7 as long as the windows 7 installation is fully up to date. 2022 iirc does not work on win7

That said, we don't really test (or officially support) building on windows 7. I only test if compiled tauri apps run on windows 7 (not often though).


Fix EDK2 version

To fix #4

Hi @three-0-3 , thank you for your contributions!
The commit is now merged and the newer images will be released soon.
Thanks!


New CSP incompatibility warnings in dart2js-compiled code with SDK 1.3.0/Polymer 0.10.0

 Issue by ussuri
Originally opened as dart-lang/sdk#17409

What steps will reproduce the problem?

Install Spark from https://github.com/dart-lang/spark
Compile to JS: cd ide && grind deploy
Install and run in Chrome from ide/build/deploy-out/web

What is the expected output? What do you see instead?
The following errors are printed to the console when running the dart2js-compiled code:
Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "default-src 'self' chrome-extension-resource:". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
observe.js:93
Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self' chrome-extension-resource:". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
This is a regression from SDK 1.2.0 and Polymer 0.9.5.
What version of the product are you using? On what operating system?
Dart SDK version 1.3.0-dev.3.0
polymer 0.10.0-pre.1

 Comment by jmesserly

Removed Area-Polymer label.
Added Pkg-Polymer, Area-Pkg labels.

 Comment by dgrove

Added Area-Polymer, Triaged labels.

 Comment by jmesserly

@Sergey -- this was fixed by the Polymer JS guys right? If not we should get it filed over there.
(btw, unrelated to this bug but: we're looking at getting y'all something better for application/dart;component=1 CSP issue!)

Added NeedsInfo label.

 Comment by sigmundch

I'm closing this assuming it was fixed in polymer.js. We also reverted the changes to component=1, so you should be in a happier place.
@sergey let us know if this is not the case, of course.

Added Fixed label.


[PyTorch] Fixed bug with loading calibrated weights

I encountered the bug related to calibration of scaling factors and loading the model.
When I calibrate the scaling factors with model with weights in bf16, the model parameters are in stored bf16 and scaling factors are stored in parameters which are dumped into "*._extra_state" in state_dict(). Suppose I want to load these weights to model initialized within fp8_model_init=True context. Then in load_state_dict():

Tensors are copied before extra state. When I copy bf16 source tensor to fp8 destination tensor, the scaling factor is updated using old fp8_metadata.
Then _extra_state is copied without any impact on tensors.

In the forward() of many modules we can see the usage of a function:
    @torch.no_grad()
    def reset_fp8_meta_scale_inv(self) -> None:
        """Replace FP8 meta tensor scale-inverse with cached value

        The FP8 meta tensor scale_inv entry corresponding to this
        tensor is replaced with the scale_inv value used to construct
        the tensor.

        """
        if self._fp8_meta is None:
            return
        fp8_meta_key = FP8GlobalStateManager.get_meta_tensor_key(
            forward=self._fp8_meta_forward,
        )
        scale_inv = self._fp8_meta[fp8_meta_key].scale_inv[self._fp8_meta_index]
        scale_inv.view(1).copy_(self._scale_inv.view(1))

for example in layernorm_mlp.py forward:

            if primary_weights_in_fp8:
                # Weights are already in FP8
                fc1_weight.reset_fp8_meta_scale_inv()
                fc2_weight.reset_fp8_meta_scale_inv()
                fc1_weight_fp8 = fc1_weight
                fc2_weight_fp8 = fc2_weight
                fc1_weight_t_fp8 = None
                fc2_weight_t_fp8 = None

which overrides the fp8_meta scale_inv in the module by the value of this parameter in the tensor, which is clearly wrong.
The result of this bug is demonstrated in code below:
import transformer_engine.pytorch as te
import torch
from transformer_engine.pytorch import fp8_model_init
from transformer_engine.common.recipe import Format, DelayedScaling
import torch
import torch.optim as optim

f = te.Linear(16, 16)

#######################################################################################
#         I want to obtain TE module with scaling factors not equal to one.           #
#######################################################################################

optimizer = optim.Adam(f.parameters(), lr=0.001)
sample_data = torch.rand((16, 16)).cuda() * 100000
sample_labels = torch.rand((16, 16)).cuda()

criterion = torch.nn.MSELoss()

with te.fp8_autocast(enabled=True):
    for _ in range(1000):
        optimizer.zero_grad()  # Zerowanie gradientów
        output = f(sample_data)  # Wykonanie przejścia wprzód
        loss = criterion(output, sample_labels)  # Obliczenie straty
        loss.backward()  # Obliczenie gradientów
        optimizer.step()  # Aktualizacja wag

# calibration
with te.fp8_autocast(enabled=False, calibrating=True):
    for _ in range(1000):
        output = f(sample_data)  # Wykonanie przejścia wprzód

#######################################################################################
#    I initialize model g only with fp8_parameters and copy parameters from f         #
#    models should return the same value, but they do not,                            #
#    beacause g has wrong scaling factor                                              #
#######################################################################################

with te.fp8_model_init():
    g = te.Linear(16, 16)

g.load_state_dict(f.state_dict())
# This loads _extra_state after loading the tensor. Tensors are loaded with wrong scale.

fp8_format = Format.HYBRID
fp8_recipe = DelayedScaling(fp8_format=fp8_format, amax_history_len=32, amax_compute_algo="max")
torch.manual_seed(1234)
with te.fp8_autocast(enabled=True, fp8_recipe=fp8_recipe):
    print(str(f(sample_data) - g(sample_data))[:100])
    # Should return 0, but does not.

g.load_state_dict(f.state_dict())
# Since _extra_state are already loaded, tensors are scaled correctly.

with te.fp8_autocast(enabled=True, fp8_recipe=fp8_recipe):
    print(str(f(sample_data) - g(sample_data))[:100])
    # This returns 0.

I propose a fix - override _load_from_state_dict such that _extra_state is copied before, not after, tensors.
I have also one question - should I add also add the unit test?

@pggPL Yes, please add the unit test.
In the proposed implementation the set_extra_state would be called twice - maybe we should remove the extra state from the dict before calling the parent function?

Unfortunately removing extra_state key from the dictionary will result with error when load_state_dict(..., strict=True). I see no way of doing that without breaking other thing.
I modified the test, instead of adding new. This test wasn't passing for me, because there was no implementation of abstract method get_fp8_weights_scratchpad() in Test_TE_Export, so I added some dummy method.

Also, this test was never run in the CI, so we should enable that as well by adding the call to this test in qa/L0_pytorch_unittest/test.sh file

/te-ci pytorch

@timmoon10 since you wrote the test, could you please take a look at how the test has been modified now?

@pggPL, could you revert back files' permissions?

/te-ci pytorch

@pggPL I think your last commit doesn't have a signoff and so the DCO cribs. Could you fix that?

/te-ci pytorch

/te-ci pytorch

/te-ci pytorch


Windows Server 2019 Info

Can we get an updated Windows Defender Antivirus compatibility document that includes Windows Server 2019? Thanks!

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

ID: 3b88aee4-6727-fa98-1180-29708eea027e
Version Independent ID: 374c671b-b21c-6eac-d887-892491357eb2
Content: Windows Defender Antivirus compatibility with other security products
Content Source: windows/security/threat-protection/windows-defender-antivirus/windows-defender-antivirus-compatibility.md
Product: w10
Technology: windows
GitHub Login: @andreabichsel
Microsoft Alias: v-anbic

@officedocsbot assign @e0i

@e0i  Any update on this? I'd like to know whether Windows Defender on Server 2019 automatically disables itself if a 3rd party AV is installed.

Greetings! I have updated this article and the changes should be live before noon today. On Windows Server 2016 and Windows Server 2019, Windows Defender Antivirus does not automatically disable itself when you install another antivirus solution; you would have to uninstall or manually disable Windows Defender Antivirus in those cases. I hope this helps!


Consider making "size" in chart dropdown a standalone top-level option

It might be confusing that size is part of the "metrics" dropdown in charts. Consider making it another top-level option.
Could also just rename it to "slice size"

Yeah, that's a good idea. It also makes more sense if we want to support charts with no models or metrics, such as size-based charts. Will think bout it.

For now just rename to "slice size" from "size"


[Backport 1.7.latest] Move to pre-commit only (#777)

(cherry picked from commit eb0c74b8334dabda468caa9c280cc8d3f4cc7515)
Backport #777

The failing tests are known flaky tests.


free video tool sugestion: Pikimov

Hey, I'd like to suggest Pikimov to be added to the list. I'ts a side project I made frustrated by the lack of free After Effects alternatives.
https://pikimov.com

@pikilipita holy cow. this looks amazing!

Hey, I'd like to suggest Pikimov to be added to the list. I'ts a side project I made frustrated by the lack of free After Effects alternatives. https://pikimov.com

@pikilipita Any chance you will open source it? :smile_cat:

Great Work


Quoting of argument is not working correctly when adding wslpath

When injecting wslpath in an argument then the argument to wslpath is quoted with single-quotes, this cause the argument be considered as "already quoted" at https://github.com/andy-5/wslgit/blob/3dd36bd198419ce33c67a02e3d131bc33d5c920a/src/main.rs#L132 and no quotes are added around the argument even if actually needed. Simple test below:
>wslgit.exe -c "test.value=C:\Program Files (x86)\SmartGit" config test.value
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `git -c test.value=/c/Program Files (x86)/SmartGit config test.value'
# missing quotes!         ^                                        ^

The quoting of arguments must become smarter, maybe ignore the quotes found in $(wslpath ...)

When are quotes actually used?
Quoting is used on the command line when an argument string contains for example spaces to prevent the shell from splitting the string in several arguments. The shell (cmd.exe or PowerShell) then passes the argument string(s) to the process as an array of strings without the quotes.
When invoking a process directly without using a shell then the arguments are passed as an array of strings and no quoting is required.
So wslgit.exe should never get arguments that contain quotes, unless someone really wants a literal " and pass them using \", if so they should be passed to the WSL side correctly escaped.
@andy-5 What do you think? I have implemented a possible fix for this, I'll push it for review.

I think your line of thought is correct. If there are quotes in arguments, they are explicitly added as you described, so wslgit should escape them again.
Your PR looks fine, though I haven't actually tested it. I guess it fixes the example given above? Can we close this issue, or should we wait and test it for longer before closing?

Yes the PR fixes the example above.
I've used a build with this fix for over a week at work and home without any errors so I don't think that my usage pattern will be able to find any errors.


Important Issues

The server won't work due to server packets like FriendOnlineStatusMessage and TopClubsLeaderboardMessage not working. (They have wrong data, please update the files).

I'll update them soon, thanks for pointing out the mistake.

I'll update them soon, thanks for pointing out the mistake.

Please specify the path to the files

я исправил их


Avoid excessive updates

Fixes issue brought up in https://community.plot.ly/t/callback-is-fired-excessively-in-multi-app-setup-once-for-each-input-instead-of-once-for-each-callback/5789/4

I have a preliminary fix available in v0.10.0-rc1. Try it out with:
pip install dash-renderer==0.10.0-rc1

Just manually tested this on the dash-docs repo. With this patch, loading http://localhost:8000/dash/getting-started-part-2 results in 47% less requests (25 -> 17)! 🐎

No luck yet for me @chriddyp. LMK if you want to see my script to help debug (or decide it's a different issue)

LMK if you want to see my script to help debug (or decide it's a different issue)

@wtluke - Yeah, that would be helpful. Thanks!

Emailed 👍

@wtluke - It looks like the infinite looping was a separate issue that was caused by having 2 dcc.Location properties with the same ID (dcc.Location(id='url')). (One in runner.py, the other in beehive.py). Removing the duplicate dcc.Location (in beehive.py) fixed the infinite loop for me ✅
Applying this patch to your example seemed to reduce the number of times one of your callbacks was being called from 16 times to just 2 times 🚀 !

Wow. Wow. Thank you, Chris. And this fix is insane - it has transformed the app into something unbelievably fast! Has caused me a lot of pain (trying to work out ways of avoiding 16 callbacks) - I never realised your solution here (calling it two times, per output) would have been possible. Wish I'd spoken up earlier. Absolutely superb - can't thank you enough.
Onwards!


EmailAuth plugin requested

standard pop/smtp auth, along with the optional feature of adding "@domain" to username used in auth (but not in signon) in order to work with google apps/mail.

An email authentication plugin with support for appending domain name has been submitted to Nate.

merged in 24ed306a724d30e2cade5d787bec6a613b5612dd


ParameterStore no more automatic resolution of locations

Type: Bug / Question
Component:
Parameter Store
Describe the bug
We notice there's a difference in behaviour for loading configuration from the ParameterStore when upgrading to 3.0.0-M3.
Given following configuration:
spring:
  application:
    name: foobar
  config:
    import: "optional:aws-parameterstore:"

In version 2.4.x this would load parameters from following locations: /config/application/, /config/application_dev, /config/phy-foobar/ , config/foobar_dev/
(Assuming the dev profile is active and using the default values for aws.paramstore.prefix, aws.paramstore.defaultContext, aws.paramstore.profileSeparator and aws.paramstore.name)
However in version 3.0.0-M3, there is no more automatic resolution of these locations and locations should be explicitly listed. (E.g. "aws-parameterstore:/config/application/;/config/application_dev/;/config/foobar/;/config/foobar_dev/"
I'm creating this issue to get some insight in these changes.

What is the rationale behind this change? (Is this by intention or rather an unfortunate side effect of changes made?)
Following the above: is this a feature that might be re-introduced in 3.x ?
Other than explicitly listing all the paths in the spring.config.import property value, is it somehow possible to reproduce the old behaviour? (I've been looking into the classes, but at this point I don't have a clue on how to extend / integrate with e.g. the ParameterStorePropertySources)

Thanks in advance for your feedback!

Hey @kerkhofsd , we have removed resolving by application name since it is not cost and perfromance effective. I suggest you rather specify which parameters you need by location. This is also a more cleaner and a better way to manage parameters since you load only what you need.
I don't think this should be re-introduced in 3.x since making calls to AWS that are not really needed only slows your startup and increses cost.
@maciejwalkowiak your input is welcome here

As far as I can tell the old behavior can be reproduced exactly by manually specifying all the keys. I understand that this means more hassle for existing projects but considering the great number of issues we received related to this automatic resolution - I think it is more predictable and less "magic" for new projects.
If there is something that I missed and you are not able to list all the keys manually - please let us know.
At this stage we don't plan to re-introduce it in 3.0.

Thanks for the feedback @MatejNedic and @maciejwalkowiak !
We understand that this won't be reintroduced and will work around the change by listing the explicit parameter locations.

thanks @kerkhofsd for quick answer. lets keep the issue open for now and see if others come with similar feedback.

Closing.


Fix use of single archive in file target

delete the single file if only one archive file is used
fixes #470

@Xharze ...a lot of water under the bridge since my PR.  I'll try to take a look this week to see if the issue may have been resolved by @ie-zero's FileTarget changes.

@jltrem No problem

@Xharze unit tests for a (small) bug fix is a bit overkill?


Feature req: add exception white-lists to all rules

Some rules don't support exceptions. A one-off fix for UnusedLocalVariable is awaiting merging (https://github.com/phpmd/phpmd/pull/329), but I think rather than dealing on a case-by-case basis, the facility ought to be applied to all rules.
A case in point is that we need to whitelist $_ as an UnusedLocalVariable too, for the reasons cited in the original (closed) issue (https://github.com/phpmd/phpmd/issues/326), but $_ also trips the CamelCaseParameterName rule too, and that doesn't allow exceptions either. This means we need to clutter our code with @SuppressWarnings annotations, which kinda runs counter to the intent of phpmd in the first place.
I hasten to add I think this is a great tool, and it's really helped our code quality. And this is just a minor irk :-)
Cheers!

Hi @adamcameron
Thank you for your feature request.
I'm not against it, though we have to think this through, first.
Could you do me a favor?
Could you add a table of all rules here with three infos: Name, whether the rule already supports an execption white-list and in what way it does or in what way it should do so.
Example:

Rule Name
Supports Exceptions
How

ShortVariable
Yes
Full variable name gets ignored.

This way we can get an overview and do not rush in. 😼

Sure thing. I'm on the clock slightly today, and then out of circulation for a coupla days, but will get onto it as soon as I can.

No problem. Take your time. Thanks!

@adamcameron could you give me hand on this?

Ooh bugger... completely forgot about this. On the case. Sorry about the delay.

Rule Name
Supports Exceptions
How
Note

BooleanArgumentFlag
No
-
*

ElseExpression
No
-
*

IfStatementAssignment
No
-
*

StaticAccess
Yes
List of classes to ignore

CyclomaticComplexity
No
-
*

NPathComplexity
No
-
*

ExcessiveMethodLength
No
-
*

ExcessiveClassLength
No
-
*

ExcessiveParameterList
No
-
*

ExcessivePublicCount
No
-
*

TooManyFields
No
-
*

TooManyMethods
No

ignorepattern covers same functionality

TooManyPublicMethods
No

ignorepattern covers same functionality

ExcessiveClassComplexity
No
-
*

Superglobals
No
Possibly same as with static access?
**

CamelCaseClassName
No
-
*

CamelCasePropertyName
No
List of identifiers to ignore
**

CamelCaseMethodName
No
List of identifiers to ignore
**

CamelCaseParameterName
No
List of identifiers to ignore
**

CamelCaseVariableName
No
List of identifiers to ignore
**

ExitExpression
No
-
*

EvalExpression
No
-
*

GotoStatement
No
-
*

NumberOfChildren
No
-
*

DepthOfInheritance
No
-
*

CouplingBetweenObjects
No
-
Should be coupling between classes, btw

DevelopmentCodeFragment
No
-
unwanted-functions covers equivalent functionality

EmptyCatchBlock
No
-
*

ShortVariable
Yes
List of variable names to ignore

LongVariable
No
List of identifiers to ignore
**

ShortMethodName
Yes
List of method names to ignore

ConstructorWithNameAsEnclosingClass
No
-
*

ConstantNamingConventions
No
List of identifiers to ignore
** (very edge-case with this one though)

BooleanGetMethodName
No
List of identifiers to ignore
** (but so edgy perhaps not worth a config rule?)

UnusedPrivateField
No
-
*

UnusedLocalVariable
No
-
*

UnusedPrivateMethod
No
-
*

UnusedFormalParameter
No
List of identifiers to ignore
** (EG: the use of _ in other languages to indicate an argument that won't be used in a callback's signature)

* = no sensible way of having an exception list
** = there might be a business case for breaking naming standards

Many thanks, @adamcameron !
So I'm cutting down your list to the relevant ones.
At first all the rules that support some kind of exceptions or vice versa, grouped by how the exceptions work.

Rule Name
Supports Exceptions
How

DevelopmentCodeFragment
Yes
unwanted-functions

TooManyMethods
Yes
ignorepattern

TooManyPublicMethods
Yes
ignorepattern

ShortVariable
Yes
List of variable names to ignore

ShortMethodName
Yes
List of method names to ignore

StaticAccess
Yes
List of classes to ignore

I see three ways of exceptions:

Actual black list
Ignore regex for white listing
Actual white list

Now to the list of rules, which could benefit from having some kind of exceptions.
Some exceptions would only make sense, if you could configure them in a case to case situation (read class/method/funcition). Just like envisioned by https://github.com/phpmd/phpmd/issues/30.
Grouped  by how the exceptions work.

Rule Name
How

Superglobals
Unwanted list (current list = new default)

ExcessivePublicCount
Case by case ignore list or pattern only

TooManyFields
Case by case ignore list or pattern only

UnusedLocalVariable
Case by case ignore list only

CamelCasePropertyName
Ignore list or pattern

CamelCaseMethodName
Ignore list or pattern

CamelCaseParameterName
Ignore list or pattern

CamelCaseVariableName
Ignore list or pattern

LongVariable
Ignore list

ConstantNamingConventions
Ignore list

BooleanGetMethodName
Ignore list

UnusedFormalParameter
Ignore list

But I'm not really convinced whether all of them are really a good idea.
I'd love to hear @manuelpichler's opinion about it.


exclude setting in mypy.ini does not work

Even after trying:
[mypy]
exclude = .* # exclude everything

I cannot get the aspect to exclude files when building. I'm certain my mypy.ini is being picked up correctly as other settings do work

Any tool that hands mypy a list of files to check will have this problem.
https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-exclude

Note that this flag only affects recursive directory tree discovery, that is, when mypy is discovering files within a directory tree or submodules of a package to check. If you pass a file or module explicitly it will still be checked.

I think you'd have to make a feature request similar to https://docs.astral.sh/ruff/settings/#force-exclude


Symbolic linked directory is not removed

If we run this command
rm -rf some_symbolic_link_dir

it does not removed

This is resolved by using inline assembly.


Update data federation map (SOFTWARE-4809)

Hey @yongleyuan it looks like a few extra files snuck into this commit. Could you revert it and only add the updated .png?


temporal: 1.23.1 -> 1.24.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/temporalio/temporal/releases.
meta.description for temporal is: A microservice orchestration platform which enables developers to build scalable applications without sacrificing productivity or reliability
meta.homepage for temporal is: https://temporal.io
meta.changelog for temporal is: https://github.com/temporalio/temporal/releases/tag/v1.24.0
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.24.0 with grep in /nix/store/fb72idvvjh48hx4cavzcsm9bn48vsgkq-temporal-1.24.0
found 1.24.0 in filename of file in /nix/store/fb72idvvjh48hx4cavzcsm9bn48vsgkq-temporal-1.24.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

temporal

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/fb72idvvjh48hx4cavzcsm9bn48vsgkq-temporal-1.24.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A temporal https://github.com/r-ryantm/nixpkgs/archive/c2e8eb0b48e3dea6654d14b0050d538cd8370eb1.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/c2e8eb0b48e3dea6654d14b0050d538cd8370eb1#temporal

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/fb72idvvjh48hx4cavzcsm9bn48vsgkq-temporal-1.24.0
ls -la /nix/store/fb72idvvjh48hx4cavzcsm9bn48vsgkq-temporal-1.24.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

temporal

Maintainer pings

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/temporalio/temporal/releases.
meta.description for temporal is: A microservice orchestration platform which enables developers to build scalable applications without sacrificing productivity or reliability
meta.homepage for temporal is: https://temporal.io
meta.changelog for temporal is: https://github.com/temporalio/temporal/releases/tag/v1.24.1
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.24.1 with grep in /nix/store/raq79ii5583dkgm9qmycrl70xp2ss8qc-temporal-1.24.1
found 1.24.1 in filename of file in /nix/store/raq79ii5583dkgm9qmycrl70xp2ss8qc-temporal-1.24.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

temporal

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/raq79ii5583dkgm9qmycrl70xp2ss8qc-temporal-1.24.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A temporal https://github.com/r-ryantm/nixpkgs/archive/1246f00e9b26439841f1e68aabad677dcca5d0a2.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1246f00e9b26439841f1e68aabad677dcca5d0a2#temporal

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/raq79ii5583dkgm9qmycrl70xp2ss8qc-temporal-1.24.1
ls -la /nix/store/raq79ii5583dkgm9qmycrl70xp2ss8qc-temporal-1.24.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

temporal

Maintainer pings


Cask autocompletion breaks when homebrew module is enabled

I have been trying to get the autocompletion for Cask working.
The alias cask for brew cask is defined under the module homebrew and the completions for cask are present in module completion by default.
On typing cask [TAB]:

If the module homebrew is enabled, the completion suggests only current directory filenames. In short, completion of subcommands fail.
If the module homebrew is disabled, subcommand suggestions work as expected but running the  command fails as the alias cask under the homebrew module is no longer enabled.

Completion does not work for brew cask [TAB] in either case but that is as expected.
Tested on a clean clone of prezto.

Solved - my bad.
The completion provided under the completion module by zsh-completions is for Cask - Emacs while I was looking for Cask - Homebrew.
I would request completion support for Homebrew and Cask in any case.


Update Linux command in vminsights-dependency-agent-maintenance.md

I encountered an error when executing the command provided in this document to install the Dependency Agent on a Linux VM.
The command was: InstallDependencyAgent-Linux64.bin -s.
However, I think the correct command should be: ./InstallDependencyAgent-Linux64.bin -s.

@guywi-ms
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@ryoko-tokuda Thanks for your contribution to our documentation!
#sign-off


Support civil use case that requires update be able to clear the geometry stream.

itwinjs-core: https://github.com/iTwin/itwinjs-core/pull/6310

/azp run imodel-native


Don't you plan to upload to jitpack?

Some inconvenience to download lib

It's already on JitPack, read the setup page


Everything looks like an on/off switch

i'm not sure if this is a limitation of the functions and available controls of iOS home app, but each function looks like an on-off switch slider and takes up a lot of screen space on an iphone, and every app
is there any other way to present the UI of the tv within home?
i'm using the plugin inside of HOOBS and my config looks like:
	  {
	  	"name": "LG webOS Kitchen TV",
	  	"ip": "<IP_ADDRESS>",
	  	"mac": "aa:bb:cc:dd:ee:ff",
	  	"pollingInterval": 10,
	  	"volumeControl": "buttons",
	  	"channelControl": true,
	  	"screenControl": true,
	  	"screenSaverControl": true,
	  	"mediaControl": true,
	  	"soundOutput": "external_arc",
	  }

Simply force close and restart your home app. That should fix the issue.

See attached video. This is what the results look like after a forced restart.
Perhaps my expectations are high but this is not a very useful UI. I don’t know if it’s a limitation of Home, the available controls, my configuration.

[Relentless Computer Solutions]http://www.relentlesssolutions.com
Jim-Barry Behar
jbbehar<EMAIL_ADDRESS>1810 ne 144  street,  suite 200  •  north miami, fl  33181-1420
Direct Number:<PHONE_NUMBER> • t.<PHONE_NUMBER>  • f.<PHONE_NUMBER>
Disclaimers & Agreementshttp://www.relentlesssolutions.com/emaildisclaimer.htm

From: Marcin<EMAIL_ADDRESS>Sent: Tuesday, October 27, 2020 3:18:25 AM
To: merdok/homebridge-webos-tv<EMAIL_ADDRESS>Cc: Jim-Barry Behar<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [merdok/homebridge-webos-tv] Everything looks like an on/off switch (#319)
Simply force close and restart your home app. That should fix it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/merdok/homebridge-webos-tv/issues/319#issuecomment-717041328, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH42BMACSU2XBETTOWD74Z3SMZX4DANCNFSM4TAGPPGQ.

Sorry I do not see any video...

Try this link https://share.icloud.com/photos/0tZ-2GpHtn0V8kQ1cNuiS20tw

[Relentless Computer Solutions]http://www.relentlesssolutions.com
Jim-Barry Behar
jbbehar<EMAIL_ADDRESS>1810 ne 144  street,  suite 200  •  north miami, fl  33181-1420
Direct Number:<PHONE_NUMBER> • t.<PHONE_NUMBER>  • f.<PHONE_NUMBER>
Disclaimers & Agreementshttp://www.relentlesssolutions.com/emaildisclaimer.htm

From: Marcin<EMAIL_ADDRESS>Sent: Tuesday, October 27, 2020 8:29:34 AM
To: merdok/homebridge-webos-tv<EMAIL_ADDRESS>Cc: Jim-Barry Behar<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [merdok/homebridge-webos-tv] Everything looks like an on/off switch (#319)
Sorry I do not see any video...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/merdok/homebridge-webos-tv/issues/319#issuecomment-717210099, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH42BMAU7WMGB27MORUH6KTSM24K5ANCNFSM4TAGPPGQ.

Well this is the standard home app UI for groups. There is nothing I can do about it.
You could write feedback to Apple and maybe they improve that someday😅
The only thing which you could make is to ungroup the tv controls by scrolling to the bottom and using the button there. Then you will not have them grouped together but as single tiles.

Yep. That’s what I thought thanks for the very prompt replies. I think Apple has a bit of work to do to offer a full assortment of UI controls appropriate for things like up/down volume and channels and many others. They have some already in place for AppleTV remote but I suppose they are not exposed to HomeKit for use in accessories.
It would be ideal if it was truly interactive like X1 remote including guide from cable or other provider combined with full tv control like the AI-ThinQ app from LG. Someday.
Thanks again for your help!

[Relentless Computer Solutions]http://www.relentlesssolutions.com
Jim-Barry Behar
jbbehar<EMAIL_ADDRESS>1810 ne 144  street,  suite 200  •  north miami, fl  33181-1420
Direct Number:<PHONE_NUMBER> • t.<PHONE_NUMBER>  • f.<PHONE_NUMBER>
Disclaimers & Agreementshttp://www.relentlesssolutions.com/emaildisclaimer.htm

From: Marcin<EMAIL_ADDRESS>Sent: Tuesday, October 27, 2020 8:47:20 AM
To: merdok/homebridge-webos-tv<EMAIL_ADDRESS>Cc: Jim-Barry Behar<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [merdok/homebridge-webos-tv] Everything looks like an on/off switch (#319)
Well this is the standard home app UI for groups. There is nothing I can do about it.
You could write feedback to Apple and maybe they improve that someday😅
The only thing which you could make is to ungroup the tv controls by scrolling to the bottom and using the button there. Then you will not have them grouped together but as single tiles.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/merdok/homebridge-webos-tv/issues/319#issuecomment-717219147, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH42BMFYAU2XGV7FUGKOM4TSM26NRANCNFSM4TAGPPGQ.

I am not sure if you are aware but you can also use the control center remote with your tv. You can use the plugin to configure yourself the buttons so maybe that would be a better way for you.


Chore: Typos fixed in multiple files

Summary
This pull request fix the typo that has occurred in multiple files.
Extentions > Extensions
nam > name
specfications > specifications
outter > outer
comparision > comparison
requestor > requester

@dotnet-policy-service agree
@dotnet-policy-service agree company="Microsoft"


Icon request: Kriptomat

URL of the site or app (required): https://kriptomat.io/
Logo resources for the icon (optional, but recommended):

thanks!

Here you go!
For Aegis v2.0 and above (recommended):
https://github.com/aegis-icons/aegis-icons/blob/master/SVG/Kriptomat.svg
For Aegis v1.4.2 and below:
https://github.com/aegis-icons/aegis-icons/blob/master/PNG/Kriptomat.png
❓ How to add icon(s) to Aegis?