Implement Prometheus /metrics endpoint to ntfy server

I think it would be very useful to implement a /metrics endpoint to ntfy server so that we could monitor ntfy itself and get some statistics on the service
See https://prometheus.io/docs/guides/go-application/ for details, there is an official library for Go, so it should be relatively easy to integrate
one thing to notice is that "/metrics" is not reserved right now, so if there is a topic named "metrics" it would be a backwards incompatible change. If that is a problem, the endpoint could be moved to another path (ex: "system/metrics", "server/metrics", etc...  )

I looked at your link and even briefly implemented it as a test. Unfortunately, I don't like it, because it brings in 7 new dependencies and outputs a very Prometheus specific format. I also can't really expose this on the public server because it gives away too much about the system and may be a security risk (maybe?).
If it was easy to implement without a library, maybe. But even then I thought it was gonna be some custom JSON that I output, not the weird Prometheus format.
If people really really really want this I can be convinced otherwise, but I'm trying to protect the (already large) dependency tree.

Sample format:
$ curl localhost/metrics
# HELP go_gc_cycles_automatic_gc_cycles_total Count of completed GC cycles generated by the Go runtime.
# TYPE go_gc_cycles_automatic_gc_cycles_total counter
go_gc_cycles_automatic_gc_cycles_total 1
# HELP go_gc_cycles_forced_gc_cycles_total Count of completed GC cycles forced by the application.
# TYPE go_gc_cycles_forced_gc_cycles_total counter
go_gc_cycles_forced_gc_cycles_total 0
# HELP go_gc_cycles_total_gc_cycles_total Count of all completed GC cycles.
# TYPE go_gc_cycles_total_gc_cycles_total counter
go_gc_cycles_total_gc_cycles_total 1
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 2.557e-05
go_gc_duration_seconds{quantile="0.25"} 2.557e-05
go_gc_duration_seconds{quantile="0.5"} 2.557e-05
go_gc_duration_seconds{quantile="0.75"} 2.557e-05
go_gc_duration_seconds{quantile="1"} 2.557e-05
go_gc_duration_seconds_sum 2.557e-05
go_gc_duration_seconds_count 1
# HELP go_gc_heap_allocs_by_size_bytes_total Distribution of heap allocations by approximate size. Note that this does not include tiny objects as defined by /gc/heap/tiny/allocs:objects, only tiny blocks.
# TYPE go_gc_heap_allocs_by_size_bytes_total histogram
go_gc_heap_allocs_by_size_bytes_total_bucket{le="8.999999999999998"} 3187
go_gc_heap_allocs_by_size_bytes_total_bucket{le="24.999999999999996"} 24468
go_gc_heap_allocs_by_size_bytes_total_bucket{le="64.99999999999999"} 33920
go_gc_heap_allocs_by_size_bytes_total_bucket{le="144.99999999999997"} 44153
go_gc_heap_allocs_by_size_bytes_total_bucket{le="320.99999999999994"} 45364
go_gc_heap_allocs_by_size_bytes_total_bucket{le="704.9999999999999"} 45919
go_gc_heap_allocs_by_size_bytes_total_bucket{le="1536.9999999999998"} 46183
go_gc_heap_allocs_by_size_bytes_total_bucket{le="3200.9999999999995"} 46375
go_gc_heap_allocs_by_size_bytes_total_bucket{le="6528.999999999999"} 46533
go_gc_heap_allocs_by_size_bytes_total_bucket{le="13568.999999999998"} 46610
go_gc_heap_allocs_by_size_bytes_total_bucket{le="27264.999999999996"} 46635
go_gc_heap_allocs_by_size_bytes_total_bucket{le="+Inf"} 46652
go_gc_heap_allocs_by_size_bytes_total_sum 6.127456e+06
go_gc_heap_allocs_by_size_bytes_total_count 46652
# HELP go_gc_heap_allocs_bytes_total Cumulative sum of memory allocated to the heap by the application.
# TYPE go_gc_heap_allocs_bytes_total counter
go_gc_heap_allocs_bytes_total 6.127456e+06
# HELP go_gc_heap_allocs_objects_total Cumulative count of heap allocations triggered by the application. Note that this does not include tiny objects as defined by /gc/heap/tiny/allocs:objects, only tiny blocks.
# TYPE go_gc_heap_allocs_objects_total counter
go_gc_heap_allocs_objects_total 46652
# HELP go_gc_heap_frees_by_size_bytes_total Distribution of freed heap allocations by approximate size. Note that this does not include tiny objects as defined by /gc/heap/tiny/allocs:objects, only tiny blocks.
# TYPE go_gc_heap_frees_by_size_bytes_total histogram
go_gc_heap_frees_by_size_bytes_total_bucket{le="8.999999999999998"} 115
go_gc_heap_frees_by_size_bytes_total_bucket{le="24.999999999999996"} 4332
go_gc_heap_frees_by_size_bytes_total_bucket{le="64.99999999999999"} 5493
go_gc_heap_frees_by_size_bytes_total_bucket{le="144.99999999999997"} 11558
go_gc_heap_frees_by_size_bytes_total_bucket{le="320.99999999999994"} 11855
go_gc_heap_frees_by_size_bytes_total_bucket{le="704.9999999999999"} 11997
go_gc_heap_frees_by_size_bytes_total_bucket{le="1536.9999999999998"} 12092
go_gc_heap_frees_by_size_bytes_total_bucket{le="3200.9999999999995"} 12155
go_gc_heap_frees_by_size_bytes_total_bucket{le="6528.999999999999"} 12208
go_gc_heap_frees_by_size_bytes_total_bucket{le="13568.999999999998"} 12217
go_gc_heap_frees_by_size_bytes_total_bucket{le="27264.999999999996"} 12221
go_gc_heap_frees_by_size_bytes_total_bucket{le="+Inf"} 12228
go_gc_heap_frees_by_size_bytes_total_sum 1.9384e+06
go_gc_heap_frees_by_size_bytes_total_count 12228
# HELP go_gc_heap_frees_bytes_total Cumulative sum of heap memory freed by the garbage collector.
 Note that this does not include tiny objects as defined by /gc/heap/tiny/allocs:objects, only tiny blocks.
# TYPE go_gc_heap_frees_objects_total counter
go_gc_heap_frees_objects_total 12228
# HELP go_gc_heap_goal_bytes Heap size target for the end of the GC cycle.
# TYPE go_gc_heap_goal_bytes gauge
go_gc_heap_goal_bytes 4.268352e+06
# HELP go_gc_heap_objects_objects Number of objects, live or unswept, occupying heap memory.
# TYPE go_gc_heap_objects_objects gauge
go_gc_heap_objects_objects 34424
# HELP go_gc_heap_tiny_allocs_objects_total Count of small allocations that are packed together into blocks. These allocations are counted separately from other allocations because each individual allocation is not tracked by the runtime, only their block. Each block is already accounted for in allocs-by-size and frees-by-size.
# TYPE go_gc_heap_tiny_allocs_objects_total counter
go_gc_heap_tiny_allocs_objects_total 3793
# HELP go_gc_pauses_seconds_total Distribution individual GC-related stop-the-world pause latencies.
# TYPE go_gc_pauses_seconds_total histogram
go_gc_pauses_seconds_total_bucket{le="-5e-324"} 0
go_gc_pauses_seconds_total_bucket{le="9.999999999999999e-10"} 0
go_gc_pauses_seconds_total_bucket{le="9.999999999999999e-09"} 0
go_gc_pauses_seconds_total_bucket{le="9.999999999999998e-08"} 0
go_gc_pauses_seconds_total_bucket{le="1.0239999999999999e-06"} 0
go_gc_pauses_seconds_total_bucket{le="1.0239999999999999e-05"} 1
go_gc_pauses_seconds_total_bucket{le="0.00010239999999999998"} 3
go_gc_pauses_seconds_total_bucket{le="0.0010485759999999998"} 3
go_gc_pauses_seconds_total_bucket{le="0.010485759999999998"} 3
go_gc_pauses_seconds_total_bucket{le="0.10485759999999998"} 3
go_gc_pauses_seconds_total_bucket{le="+Inf"} 3
go_gc_pauses_seconds_total_sum NaN
go_gc_pauses_seconds_total_count 3
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 14
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.18"} 1
# HELP go_memory_classes_heap_free_bytes Memory that is completely free and eligible to be returned to the underlying system, but has not been. This metric is the runtime's estimate of free address space that is backed by physical memory.

# TYPE go_memory_classes_heap_objects_bytes gauge
go_memory_classes_heap_objects_bytes 4.189056e+06
# HELP go_memory_classes_heap_released_bytes Memory that is completely free and has been returned to the underlying system. This metric is the runtime's estimate of free address space that is still mapped into the process, but is not backed by physical memory.
# TYPE go_memory_classes_heap_released_bytes gauge
go_memory_classes_heap_released_bytes 2.400256e+06
# HELP go_memory_classes_heap_stacks_bytes Memory allocated from the heap that is reserved for stack space, whether or not it is currently in-use.
# TYPE go_memory_classes_heap_stacks_bytes gauge
go_memory_classes_heap_stacks_bytes 950272
# HELP go_memory_classes_heap_unused_bytes Memory that is reserved for heap objects but is not currently used to hold heap objects.
# TYPE go_memory_classes_heap_unused_bytes gauge
go_memory_classes_heap_unused_bytes 586880
# HELP go_memory_classes_metadata_mcache_free_bytes Memory that is reserved for runtime mcache structures, but not in-use.
# TYPE go_memory_classes_metadata_mcache_free_bytes gauge
go_memory_classes_metadata_mcache_free_bytes 6000
# HELP go_memory_classes_metadata_mcache_inuse_bytes Memory that is occupied by runtime mcache structures that are currently being used.
# TYPE go_memory_classes_metadata_mcache_inuse_bytes gauge
go_memory_classes_metadata_mcache_inuse_bytes 9600
# HELP go_memory_classes_metadata_mspan_free_bytes Memory that is reserved for runtime mspan structures, but not in-use.
# TYPE go_memory_classes_metadata_mspan_free_bytes gauge
go_memory_classes_metadata_mspan_free_bytes 7888
# HELP go_memory_classes_metadata_mspan_inuse_bytes Memory that is occupied by runtime mspan structures that are currently being used.
# TYPE go_memory_classes_metadata_mspan_inuse_bytes gauge
go_memory_classes_metadata_mspan_inuse_bytes 90032
# HELP go_memory_classes_metadata_other_bytes Memory that is reserved for or used to hold runtime metadata.
# TYPE go_memory_classes_metadata_other_bytes gauge
go_memory_classes_metadata_other_bytes 4.590896e+06
# HELP go_memory_classes_os_stacks_bytes Stack memory allocated by the underlying operating system.
# TYPE go_memory_classes_os_stacks_bytes gauge
go_memory_classes_os_stacks_bytes 0
# HELP go_memory_classes_other_bytes Memory used by execution trace buffers, structures for debugging the runtime, finalizer and profiler specials, and more.
# TYPE go_memory_classes_other_bytes gauge
go_memory_classes_other_bytes 978293
# HELP go_memory_classes_profiling_buckets_bytes Memory that is used by the stack trace hash map used for profiling.
# TYPE go_memory_classes_profiling_buckets_bytes gauge
go_memory_classes_profiling_buckets_bytes 5371
# HELP go_memory_classes_total_bytes All memory mapped by the Go runtime into the current process as read-write. Note that this does not include memory mapped by code called via cgo or via the syscall package. Sum of all metrics in /memory/classes.
# TYPE go_memory_classes_total_bytes gauge
go_memory_classes_total_bytes 1.404392e+07
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 4.189056e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 6.127456e+06
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 5371
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 16021
# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
# TYPE go_memstats_gc_cpu_fraction gauge
go_memstats_gc_cpu_fraction 0
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 4.590896e+06
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 4.189056e+06
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 2.629632e+06
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 4.775936e+06
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 34424
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes gauge
go_memstats_heap_released_bytes 2.400256e+06
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 7.405568e+06
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 1.6497237847950306e+09
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 0
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 50445
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 9600
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 15600
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 90032
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 97920
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 4.268352e+06
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 978293
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 950272
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 950272
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 1.404392e+07
# HELP go_sched_goroutines_goroutines Count of live goroutines.
# TYPE go_sched_goroutines_goroutines gauge
go_sched_goroutines_goroutines 13
# HELP go_sched_latencies_seconds Distribution of the time goroutines have spent in the scheduler in a runnable state before actually running.
# TYPE go_sched_latencies_seconds histogram
go_sched_latencies_seconds_bucket{le="-5e-324"} 0
go_sched_latencies_seconds_bucket{le="9.999999999999999e-10"} 34
go_sched_latencies_seconds_bucket{le="9.999999999999999e-09"} 34
go_sched_latencies_seconds_bucket{le="9.999999999999998e-08"} 41
go_sched_latencies_seconds_bucket{le="1.0239999999999999e-06"} 58
go_sched_latencies_seconds_bucket{le="1.0239999999999999e-05"} 62
go_sched_latencies_seconds_bucket{le="0.00010239999999999998"} 66
go_sched_latencies_seconds_bucket{le="0.0010485759999999998"} 66
go_sched_latencies_seconds_bucket{le="0.010485759999999998"} 66
go_sched_latencies_seconds_bucket{le="0.10485759999999998"} 66
go_sched_latencies_seconds_bucket{le="+Inf"} 66
go_sched_latencies_seconds_sum NaN
go_sched_latencies_seconds_count 66
# HELP go_threads Number of OS threads created.
# TYPE go_threads gauge
go_threads 11
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 0
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1024
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 11
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 2.0262912e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.64972378424e+09
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 1.442832384e+09
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes 1.8446744073709552e+19
# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 0
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0

fair enough!
about dependencies, there is an alternative library which, supposedly as I haven't used it, has less dependencies: https://github.com/VictoriaMetrics/metrics
about the endpoint being public, yes, I think it shoud be protected by some auth, or even published in another port
but let's wait to see if there are more users that want this feature :)

Hi,
I would also be interested in seeing ntfy prometheus metrics implemented.
I would also second the idea that the prometheus/victoria/openmetrics information would be served via a diffrent interface/port to the actual ntfy service.
Thanks.

Interested in this

Maybe we should implement /ready and /healthy eigther to run in a k8s.

Victoria metrics looks like a good candidate. Adding a configuration option for the path, defaulting to undefined/off, should be sufficient here I believe. Nginx/Apache can use ACLs to prevent external hosts from reaching whatever endpoint is configured.

https://github.com/binwiederhier/ntfy/issues/210#issuecomment-1095742026
I am missing metric here, like:

subscription_total{topic="x"}
messages_total {topic="x"}

For getting big topics based on subscription and message rate.
Maybe also a Histogramm of the time get and send to all reciever like: delivery{le="+Inf", topic="x"}

@rogeliodh @nicois @genofire @benisai @mhameed, and anyone else who is interested, what metrics would you like to see?
Here's my current WIP:
messagesPublishedSuccess: prometheus.NewCounter(prometheus.CounterOpts{
	Name: "ntfy_messages_published_success",
}),
messagesPublishedFailure: prometheus.NewCounter(prometheus.CounterOpts{
	Name: "ntfy_messages_published_failure",
}),
messagesCached: prometheus.NewGauge(prometheus.GaugeOpts{
	Name: "ntfy_messages_cached_total",
}),
firebasePublishedSuccess: prometheus.NewCounter(prometheus.CounterOpts{
	Name: "ntfy_firebase_published_success",
}),
firebasePublishedFailure: prometheus.NewCounter(prometheus.CounterOpts{
	Name: "ntfy_firebase_published_failure",
}),
emailsPublishedSuccess: prometheus.NewCounter(prometheus.CounterOpts{
	Name: "ntfy_emails_sent_success",
}),
emailsPublishedFailure: prometheus.NewCounter(prometheus.CounterOpts{
	Name: "ntfy_emails_sent_failure",
}),
visitors: prometheus.NewGauge(prometheus.GaugeOpts{
	Name: "ntfy_visitors_total",
}),
subscribers: prometheus.NewGauge(prometheus.GaugeOpts{
	Name: "ntfy_subscribers_total",
}),
topics: prometheus.NewGauge(prometheus.GaugeOpts{
	Name: "ntfy_topics_total",
}),
httpRequests: prometheus.NewCounterVec(prometheus.CounterOpts{
	Name: "ntfy_http_requests_total",
}, []string{"http_code", "ntfy_code", "http_method"}),

Here's my dabbling dashboard:

Maybe for find big topics:
subscribers: prometheus.NewGaugeVec(prometheus.GaugeOpts{
	Name: "ntfy_subscribers_total",
}, []string {"topic"),

(Also on other metrics, based on topic).

I think adding topic is not a good idea because there could be thousands of topics and adding a high cardinality dimension to prometheus metrics is a bad practice.
So I think original proposal is ok but I was wondering if they are enough to replicate the statistics you generate daily on the stats topic:
IPs: 23000
Clients: 23551
- Google Play: 7905
- F-Droid: 12104
- iOS: 2910
- curl: 5
- other: 627
Messages:
- Successful: 179595
- Failed (rate limited): 49016
- Failed (other): 443320

and I think we would be missing:

a label error to  ntfy_messages_published_failure  (and firebase and emails metrics, too)

for IPs I'm not really sure if ntfy could generate that stat...
for Clients... maybe change it to the "published" metric: add a  client_typelabel to all ntfy_published` metrics so we can get number of published messages per client type.
I'm not sure about the last one. @binwiederhier should know better ;)

What about number of user registrations?
That could be useful for abuse prevention/detection.

I think I am content the way I have implemented this. I may add a few more metrics and then call it a day for now. We can always add more or change it later. The majority of work for me will be to Anisble-ize the Grafana+Prometheus installation.

The funniest thing: Apparently some other dependency had pulled in the prometheus client already, so this won't add any dependencies, whooo.

:loudspeaker: Question around the /metrics endpoint for Prometheus: Right now I have it so that if you configure listen-metrics-http, it'll listen on a different IP/port for the metrics. But I feel like some people may want to just use the same interface potentially.
Are there any best practices around this?
What I have:
listen-http: ":80" # ntfy server, listen on all IPs
listen-metrics-http: "<IP_ADDRESS>:9090" # only /metrics endpoint, listen on internal network

I want to keep it simple, but flexible enough to be useful for everyone. Thoughts?

Thanks. I'll check them out tonight. It feels weird to me that these tools allow them to be publicly available. Metrics are sensitive information and can give attackers insight.

For sourcehut at least is it a design decision that everything around metrics/alerts is public, so that users can get a better grasp of what is going on.
Besides that, it is easy enough for sysadmins to protect the metrics with e.g. their reverse proxy.
Setting up basic auth, or only internal access (1 2) is pretty straightforward.

This is done and will be in the next release.

Here's one: https://cdn.discordapp.com/attachments/874398661709295629/1086744190312001556/ntfy-1679170350783.json
It's a WIP, and I'll add one to the docs once I think it's good enough.


Replace k256 library with rust-secp256k1

Hi! I was having a look around the code and notice the library is using k256 instead of the rust-secp256k1 library. k256 is not cryptographic audited compared to rust-secp256k1 which is probably the most audited crypto library out there.
I was looking to work on a cashu library and found this package. do you think this would be a good change?
I would probably be interested in doing the change.

Hi,
Thank you for taking a look. Ideally we would use rust-secp256k1 however it cannot compile to wasm, and I wasn't this library to be as cross platform as possible. There is an open issue for wasm support in rust-secp256k1 but it may take some time as it's not an issue with the lib itself it's a wider c binding issue. I'll put in a link to the issue later when I'm not on mobile.
On October 27, 2023 2:52:14 PM GMT+01:00, Leonardo Escuer @.***> wrote:

Hi! I was having a look around the code and notice the library is using k256 instead of the rust-secp256k1 library. k256 is not cryptographic audited compared to rust-secp256k1 which is probably the most audited crypto library out there.
I was looking to work on a cashu library and found this package. do you think this would be a good change?
I would probably be interested in doing the change.

Issue on rust-secp256k1:
https://github.com/rust-bitcoin/rust-secp256k1/issues/485
Wider rust issue:
https://github.com/rustwasm/team/issues/291
On October 27, 2023 2:52:14 PM GMT+01:00, Leonardo Escuer @.***> wrote:

Hi! I was having a look around the code and notice the library is using k256 instead of the rust-secp256k1 library. k256 is not cryptographic audited compared to rust-secp256k1 which is probably the most audited crypto library out there.
I was looking to work on a cashu library and found this package. do you think this would be a good change?
I would probably be interested in doing the change.

I agree, I think we should use secp256k1 instead of k256 for the same reason you said. That's one of the things I started doing in my fork :)

rust-secp256k1 can be compiled to WASM. If you are on macOS you need to do this:
brew install llvm
LLVM_PATH=$(brew --prefix llvm)
AR="${LLVM_PATH}/bin/llvm-ar" CC="${LLVM_PATH}/bin/clang" cargo build --target wasm32-unknown-unknown

On Linux it works without having to do anything (at least on debian).

I can take this issue if you're not already working on it, so I can get more familiar with the library :)

I can take this issue if you're not already working on it, so I can get more familiar with the library

I haven't started so that's great, thanks

That's one of the things I started doing in my fork

Definitely open an issue or shoot me a message with any other suggestions


if this then that available ?

hi all,
First i would like to thank everyone especially  @jkandasa for such a great project.
i have a hydroponics greenhouse and i was wondering if with some modification can this project be used to automate some of the processes ?
1- is it possible to trigger an event based on a sensor ?
ie: when temp is  <10c> then turn  relay 1 (heater)
i am also looking to use spark photon and tinysine wifibee also known as RN-XV module.
please let me know if this project could fit what i have in mind.
some of the hardware will be used is:
unipi relay board
2X sparkfun photon weather boards
unipi 1-wire board for sensors
ph, conductivity probes board by https://www.whiteboxes.ch/shop/tentacle/
and bartendro dosing pumps using raspberry pi gateway.
many thanks.

@chrigui Thank you to have interest with MyController.org project.

1- is it possible to trigger an event based on a sensor ?

Yes, MyController.org has a feature called alarm, with this feature you can. MyController alarm supports three types of notifications SMS, Email and SensPayload.With the help of SendPayload option you can control other sensor.
To get more idea about this you can download MyController locally on your computer or DEMO page(Authentication: demo/demo). Also visit Project Document page to get more idea to configure alarm and other features.
Regards the hardware:
For now MyController.org project focusing only MySensors.org project.
MySensors.org project supports wifi modules NRF24L01+, RFM69, etc., MySensors project uses low cost boards and creates mesh network. To know more about hardware visit  MySensors.org project page.

thank you.
let me know if you are interested in some customisation work.

Reach me at jkandasa at gmail dot com to discuses further about your expectation.

thanks


ACM-3247 custom-CA-support

Signed-off-by: John Swanke<EMAIL_ADDRESS>

/test unit-tests-sonarcloud

/hold

/cc @oafischer Can you please review strings John has added? I added my own suggestion for one of them.

/lgtm

/unhold


SyntaxError: expression cannot contain assignment, perhaps you meant "=="?  use-chips=True

QSelect can not understand   parameter use-chips=True, I checked in the parameters lists use-chips is listed.
Ist it possible to fix this quickly? or it is a big bug problem?
style='width: 350px; margin: 0.25rem; padding: 0.25rem;', use-chips=True,  label="Select the goals")
^
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
python-BaseException
@jp.SetRoute('/test')
def test():
wp = jp.QuasarPage()
s = jp.QSelect(filled=True,  options=table_names, a=wp, outlined=True, multiple=True, input=selected_event,
               style='width: 350px; margin: 0.25rem; padding: 0.25rem;', use-chips=True,  label="Select")

return wp

The options in Python are with the underline, not the hyphen. Try use_chips=True instead.

Thank you, that works.


New install. Unable to create a project

Hello,
the following seemed to be a new behavior since I last used (installed) TS ~6 months ago.
New install on Fedora 37 with aws cli and terraform ( latest, OS updated daily)
Install is done using rpm from bolt's rpm repo.
as a user, new project:
(base) [az@fedora WWWPRIV-65-iac-vm]$ terraspace new project SoPro --plugin aws --examples --config --test
=> Creating new project called SoPro
      create  SoPro
      create  SoPro/.gitignore
      create  SoPro/Gemfile
      create  SoPro/README.md
      create  SoPro/Terrafile
      create  SoPro/config/app.rb
=> Installing dependencies with: bundle install
Fetching gem metadata from https://rubygems.org/........
Resolving dependencies...
Using concurrent-ruby 1.1.10
Following files may not be writable, so sudo is needed:
  /opt/terraspace/embedded/bin
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/build_info
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/cache
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/doc
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/extensions
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/gems
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/plugins
  /opt/terraspace/embedded/lib/ruby/gems/3.0.0/specifications
Using aws-eventstream 1.2.0
Fetching minitest 5.17.0
Fetching aws-partitions 1.689.0

Your user account isn't allowed to install to the system RubyGems.
  You can cancel this installation and run:

      bundle config set --local path 'vendor/bundle'
      bundle install

  to install the gems into ./vendor/bundle/, or you can enter your password
  and install the bundled gems to RubyGems using sudo.

  Password:

I'm not sure why there is a need to install anything into /opt. But, if that is a requirement for creating a new project level ( read "default" ) work item, then that should be specified as rpm dependency and probably installed during ts rpm install too.
Current state:
blocked on the work, since  rubygem requirements are not covered in the documentation and I'm not familiar with ruby.

🤔 This might be a clue

Following files may not be writable, so sudo is needed

This is probably/might be system specific, though and more of a question. Maybe at some point some other files were installed with different root level permissions in /opt/terrasace. maybe with some other command. Just a guess 👌 There seems to be something about permissions though.

I'm not sure why there is a need to install anything into /opt

The standalone installers use https://github.com/chef/omnibus to create the installer package. Omnibus installs things into the /opt folder and vendorizes everything including a ruby interpreter. FWIW, the aws cli similarly vendorizes the python interpreter but believe AWS uses their own custom packaging tool.
Mabe try to fix the permissions and then try again:
sudo chown `whoami`:`whoami` /opt/terraspace

However, if upgrading terraspace, actually recommend using bundler. Found it's more than about just updating terraspace but the other gems/libraries could require updating also. Here's the docs that cover this:

Docs https://terraspace.cloud/docs/install/standalone/details/upgrade/
Related https://github.com/boltops-tools/terraspace/issues/217

I'm not familiar with ruby.

Hope that the permissions fixes things above. If not, you might have to use gem installer. This may help if you end up having to go that route:

https://terraspace.cloud/docs/install/ruby/
https://terraspace.cloud/docs/install/gem/

in addition:
the rpm uninstall section needs updating since it does not remove installed wrappers properly:
Removed:
  terraspace-2.2.3-1.amazon2.x86_64

Complete!
[root@fedora ~]#
[root@fedora ~]#
[root@fedora ~]# gem install terraspace
/usr/local/bin/gem: line 5: /opt/terraspace/embedded/bin/gem: No such file or directory
[root@fedora ~]# gem install terraspace
/usr/local/bin/gem: line 5: /opt/terraspace/embedded/bin/gem: No such file or directory
[root@fedora ~]# gem
/usr/local/bin/gem: line 5: /opt/terraspace/embedded/bin/gem: No such file or directory
[root@fedora ~]# gem
/usr/local/bin/gem: line 5: /opt/terraspace/embedded/bin/gem: No such file or directory
[root@fedora ~]# which gem
/usr/local/bin/gem
[root@fedora ~]# ls -l /usr/local/bin/gem
-rwxr-xr-x 1 root root 132 Jan  9 12:53 /usr/local/bin/gem
[root@fedora ~]# file /usr/local/bin/gem
/usr/local/bin/gem: Bourne-Again shell script, ASCII text executable
[root@fedora ~]# more /usr/local/bin/gem
#!/bin/bash
unset GEM_HOME
unset GEM_PATH
export PATH=/opt/terraspace/embedded/bin:$PATH
exec /opt/terraspace/embedded/bin/gem "$@"
[root@fedora ~]# which ruby
/usr/local/bin/ruby
[root@fedora ~]# ls -l /usr/local/bin/ruby
-rwxr-xr-x 1 root root 133 Jan  9 12:53 /usr/local/bin/ruby
[root@fedora ~]# more /usr/local/bin/ruby
#!/bin/bash
unset GEM_HOME
unset GEM_PATH
export PATH=/opt/terraspace/embedded/bin:$PATH
exec /opt/terraspace/embedded/bin/ruby "$@"

Yes. This is noted in https://terraspace.cloud/docs/install/standalone/details/uninstall/

.. This is probably/might be system specific, though and more of a question. Maybe at some point some other files were installed with different root level permissions in /opt/terrasace. maybe with some other command. Just a guess ok_hand There seems to be something about permissions though.

This is interesting. on my other Fedora 35 the ts was installed ( on 2022 10 08) into /usr/local/bin . Worked perfectly fine.
// over the weekend i upgraded the system to latest 37, so i can't say if it works now.
Either way, the root -> dnf (aka yum) install is the only way i 've been installing the software.
If I have to change the permissions on the /opt/terraspace - there should be a note in the doc, no ?

Yes. This is noted in https://terraspace.cloud/docs/install/standalone/details/permissions/

I wish I didn't upgrade F35.
But on the upgraded system the permissions on  /opt/terraspace is 754.
I uninstalled the rpm and installed gem with ruby-dev ( this is something you probably want to add to the doc), so that i can proceed with gem install.
the subsequent "terraspace new project" failed again with  multiple errors, such as:
Bundler::PermissionError: There was an error while trying to write to `/usr/share/gems/cache/aws-sdk-dynamodb-1.80.0.gem`. It is likely that you need to
grant write permissions for that path.

in addition, the /opt does not have terrspace subdir.

Please reopen the issue - if this fails on me, I'm sure a lot of folks will have the same problem.

on the upgraded system "terraspace new project tada" fails now too.
From the end-user perspective - this version is broken. :(


Add workflow to auto-approve and -merge dependabot PRs

Relates to https://github.com/Hochfrequenz/python_template_repository/pull/109

Playing arount with my automated script. Superseded by #72


is there a full list for all support doc tag?

IS here a document to tell us All suport tag? or a example for a full doc block?
just like this:
/**
     * Ger User Address
     *
     * Use this endpoint to get user  address
     *
     * @header Token
     * @param xxxx xxx
     * @return xxx xxx
     */

i only list title description header param return
and i want a full list for my comments.

Check out Documentarian. It's what this package is based on, and it, in turn, is based on Slate. You should find what ou seek there.


Perform delegation after stake

Will help in preventing https://github.com/public-awesome/stakebird/issues/256.

Codecov Report

Merging #257 (7c5ead5) into master (f987623) will not change coverage.
The diff coverage is 33.33%.

@@          Coverage Diff           @@
##           master    #257   +/-   ##
======================================
  Coverage    9.18%   9.18%
======================================
  Files          59      59
  Lines        8450    8450
======================================
  Hits          776     776
  Misses       7590    7590
  Partials       84      84

Impacted Files
Coverage Δ

x/stake/keeper/stake.go
59.25% <33.33%> (ø)

Continue to review full report at Codecov.

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


Question about acceptance length and rate metrics

Hello,
Following my previous question (https://github.com/SafeAILab/EAGLE/issues/148) about the sampling technique, I now have some questions related to the metrics discussed in your paper. I would greatly appreciate your help in understanding the paper.

Regarding the acceptance rate, I understand that tree structures were not considered when calculating this metric. Based on this, would the following example be correct for computing the average acceptance rate?

0-a: 2/2
1-a: 3/4
2-a: 3/4

The average acceptance length 𝑇 can generally be calculated in speculative decoding using the following formula if we assume each step is independent of prior steps.

𝑇 = average acceptance length = 1 + p + p^2 + ... p^K = (1-p^(K+1)) / (1 - p)

Here, 𝐾 represents the number of speculative tokens, and 𝑝 is the average acceptance rate. Using this formula, I derived the following table:

However, in Table 3 of your paper, the average acceptance rate is approximately 0.65, yet the average acceptance length is reported as 3.25. This is significantly higher than the values (2.3–2.7) predicted by the formula-based table above.
Could this discrepancy be explained by the fact that tree structures are not considered when calculating the acceptance rate but are accounted for when calculating the acceptance length?

I'm curious about the number of candidate tokens used in the tree structure experiments in the EAGLE paper. For example, MEDUSA sets 64 or 256 candidates, which corresponds to the number of leaf nodes in the trees for a single batch. (I could only find the settings mentioned in Appendix 2 of the EAGLE paper, which describe 60 draft tokens with a depth of 6 and 10 nodes during the expansion phase. Would it be similar to EAGLE v1?)

Thank you

4. I also have a problem to understand figure 6 as above figures..
@Liyuhui-12 Could you give me some help to understand above problems?


Panic with stack trace

When unknown panic happens,  we shall let it fail with the stack trace.

CC @natasha41575


Dynamic icons with names

Describe the bug
I have dynamic icons to load, and I will receive the icons in string format. I need to render the icon based on that string.

How can I achieve this?
What could be the type of the variable?

Reproduction
<script>
    import { onMount } from 'svelte';
    import * as Icons from 'flowbite-svelte-icons';

    let iconName: string = $props();
    let IconComponent: <what is the type> = $state(null);

    onMount(() => {
           IconComponent = (Icons[iconName as keyof typeof Icons]) || null;
    })
</script>

{#if IconComponent}
    <IconComponent class="ml-1" />
{/if}

Version and System Info
"svelte": "^5.0.0-next.1",
"flowbite": "^2.5.2",
"flowbite-svelte": "^0.47.0",
"flowbite-svelte-icons": "^1.6.2",

Will this help? https://flowbite-svelte-icons.codewithshin.com/guide/svelte-4/getting-started#Import_all

Thanks for your response. As mentioned earlier, I want to create a MyDynamicIconRenderComp that can dynamically load an icon based on the name provided as a prop. For instance:
<MyDynamicIconRenderComp iconName="AddressBookOutline" />
How can I implement this without importing all the Flowbite icons?

Did you read the custom icons page and the setting global icon page?


Closing tabs causes the entire UI to hang

Closing tabs causes the entire UI to hang. Personally, I find this undesirable. I originally thought this was due to having large binaries open, but this happens regardless of binary size it seems.

Binary Ninja 3.5.4526, ec37d737
macOS 13.5 (arm64)

Any clue on if the tab was analyzing or what kind of binary you had open?

This was always on small binaries that had already finished analyzing. It also doesn't seem to matter how long analysis has been completed for.

A hang was fixed in 3.6.4711-dev.


Add DIGICERT_ORDER_TYPE to Digicert plugin

This allows lemur.conf.py to control which kind of certificate to
order.  User defined options are not currently supported in the the UI,
so we cannot create multiple Digicert authorities at runtime for
separate certificate types.

You can see valid types with the API documentation here https://www.digicert.com/services/v2/documentation/order/overview-submit

Coverage increased (+0.006%) to 60.373% when pulling 6ec71736719dd8e35e5db2b5ee9ba57bcf162fb1 on jchuong:upstream-digicert into 7a84f38db986748019dd27ddd21abd09f981bf81 on Netflix:master.

Can you add what this variable does to the docs? http://lemur.readthedocs.io/en/latest/administration.html?highlight=digicert#digicert-issuer-plugin

Coverage increased (+0.006%) to 60.373% when pulling 212b5645c1a14374162aa13e9c72dcf07983b203 on jchuong:upstream-digicert into 7a84f38db986748019dd27ddd21abd09f981bf81 on Netflix:master.


register tenants task threadpoll threads in thread_mgr

needed to avoid this warning: is_shutdown_requested() called in an unexpected thread
closes #2070

is_shutdown_requested will still work for cases like this one: https://github.com/neondatabase/neon/blob/main/pageserver/src/lib.rs#L92
So to me it is not just a stub.
We can even use associate_with so the thread is associated with the tenant/timeline the task is running for, but it is trickier and potentially error prone because this is not in scope of the tokio apis.
I agree that the solution looks a bit hacky, but it allows to keep current cancellation stuff in gc

Not sure what is causing the test failure... I've run the test locally 20 times without a single failure

As people have reported I assume that test failures are caused by the test flakiness, not by the changes introduced in this PR

Hmm. So the idea of having the thread_mgr module and the thread registration system is that we have an easy way for waiting for all threads to finish at shutdown. Or for all threads on a particular tenant to finish, on detach. It seems that we're bypassing that mechanism with async tasks now. For example, let's take a look at tenant_mgr::delete_timeline. It first calls thread_mgr::shutdown_threads, to make sure that the timeline doesn't have any activity on it. Then it proceeds to delete the files on disk. But there might still be async tokio tasks operating on the timeline, thread_mgr::shutdown_threads won't kill them, with or without this PR.
I think we need to expand thread_mgr to keep track of both threads and tokio tasks associated with a timeline. shutdown_threads should wait for both threads and tasks to finish. And is_shutdown_requested should work for both long-running threads, and async tasks.

Currently making the tenant idle blocks on all gc/compaction tasks to finish.
But with delete/detach there's another problem. Even if we wait for all tasks/threads to finish, that doesn't protect against new tasks/threads that start right afterwards, or gc/compaction that is explicitly requested. So the issue here is not thread/task management, but resource locking.

It seems that we're bypassing that mechanism with async tasks now.

Yeah, thats true. This PR is targeted to support calling to our blocking code using tokio's spawn blocking api. And since these threads are not spawned by thread mgr we need to somehow register them. Now I'm thinking that we can even call associate_with in the beginning of the blocking function to pin the task to tenant and have a scopeguard::defer to remove the association. Might even better to have a custom wrapper around spawn blocking to hide these details.
Regarding registration of async tasks, I see two options, having one place the same as thread_mgr works for threads, or have different modules to manage tasks they spawned by themselves, as it currently works in walreceiver for example.
Pros for thread_mgr approach:

The same as with threads
Do not need to know which modules exist, can just shutdown_all (but that means that it can only wait for completion, not cancelling stuff, because async tasks can have some hierarchy etc etc)

Pros for managing tasks by modules internally:

I think this way it can provide better incapsulation, you basically call thing::shutdown and the module manages internally all needed cancellations etc. But you need to do that for every "thing", or gather this inside Tenant::shutdown or something

It should be simple to add the same map for async tasks, and a custom spawn function. WDYT @SomeoneToIgnore?
This a bit resonates with our discurrion regarding CPU quotas

same map for async tasks, and a custom spawn function

We sort of do the latter with the TaskHandle::spawn in walreceiver.rs and have the same global "how to restart a panicked thread" questions, so I think we're moving in the direction already.

So the issue here is not thread/task management, but resource locking.

I think it is both.

that doesn't protect against new tasks/threads that start right afterwards

I think we need to guard against stopping tenant state in the various endpoints like when we make new page_service connections, or starting a walreceiver

have the same global "how to restart a panicked thread" questions

Reminds me about supervisor abstraction from Erlang https://www.erlang.org/doc/design_principles/sup_princ.html and bastion runtime for rust that tries to adopt similar principles https://www.bastion-rs.com/

To summarize, we need to track tokio tasks as well (opened https://github.com/neondatabase/neon/issues/2137 to track that), but I think this PR is useful on its own because it allows blocking tokio threads to gracefully exit on pageserver shutdown, and this way we avoid the noisy warning in logs. Any objections @hlinnaka?

To summarize, we need to track tokio tasks as well (opened #2137 to track that), but I think this PR is useful on its own because it allows blocking tokio threads to gracefully exit on pageserver shutdown, and this way we avoid the noisy warning in logs. Any objections @hlinnaka?

No objections


Reverting an unintended breaking-change.

Reverting an unintended breaking change in reflection.
Thank you, @azchohfi, for reporting it; this makes #824 unnecessary.

@nohwnd, This method returned an empty array when it couldn't find any matching attributes. We refactored it, but it started returning null as an unintended consequence. Fixed that.


arm build failing

Failure: https://github.com/lancedb/lance/actions/runs/6631701633/job/18015778470
Looks like same issue as here:
https://github.com/briansmith/ring/issues/1728

I think amazon linux 2 compatible with on 2_26, does that work?

but was that just for x86?
yeah, if we want to upgrade manylinux for ARM only I think it's fine

Nevermind there was actually a workaround in the upstream thread 💯


Fix getNearestTouchedSpot

Previously it returned the first occurrence of a spot within the threshold, and not the nearest, which I understand is the purpose of this function.
With the updated function the user is able to set the threshold to a big number (like double.maxFinite) and get the nearest spot from this function. This behaviour (clicking anywhere and get the nearest spot) is seen in e.g. charts_flutter.
AFAIK this shouldn't break anything for existing users, just fix / add the above functionality.
Fixes #641, #645.

I reviewed it and everything is okay to be merged.
Please resolve my conversation. Then fix the check style problem (Check out our contribution guideline to fix it.
Thanks!

Hellooo?

I never got to use the plugin but sure, i will fix this asap (prob tomorrow). Or you do (as it's a trivial change) and merge the changes, I don't mind.

I never got to use the plugin but sure, i will fix this asap (prob tomorrow). Or you do (as it's a trivial change) and merge the changes, I don't mind.

Thanks for responding.
I will be happy if we fix this under your name. Because you (community) are the main value of the open source projects.
BTW if you are busy or you feel uncomfortable, we can use your code.
Thanks

@imaNNeoFighT I fixed it just now 👍

Thanks man.
There is a formatting issue.
Please run make format and If you can combine all changes into one commit

I formatted the code in question for this pull request and combined it all into one commit. Should be all good now?

I don't get this check. The code I've changed / added is properly formatted (using Dartfmt), but as far as I can see the check fails because the file in whole is not formatted? I'm supposed to format the rest of the (by me) untouched code, which is out of scope from my fix, too? That would also make it harder to find my specific fix among all formatting changes.
@imaNNeoFighT IMO my code is properly formatted and this check is failing due to everything else not being properly formatted and that should be fixed in a separate commit not related to this PR. What do you think?

No, still there is a problem.
please make sure you can run make checkstyle without any error. If there was any problem you can run make format to fix those issues.
BTW before you push make sure that make checkstyle runs without any error.

We still have this bug.
Can you please rebase your code again and let me know?

I re-implemented it in #850. Like exactly what you did.


add ConnectabilityState and WorkingState fields to the host

This PR moves the functionality described in https://github.com/NebulousLabs/Sia-UI/pull/530 to the back-end, exposing two new API fields, ConnectabilityState and WorkingState. The commits are pretty easy to follow and should be well commented.

Needs a test in the api package as well.

ACK, I added two, one for each field

Latest commits address review comments, I also change the field names from State to Status, because Status is more prevalent in the codebase currently.

LGTM


[Manual Requests] Allow users to request personal IOUs from workspace admins

Problem
While implementing Manual Requests, we seem to have introduced a regression where users can no longer request money from anyone who is a workspace admin. We should allow this case. As an example, I might want to request £4 from the workspace, then £3 from the admin for a non-work related expense.

Solution
??? will figure it out tomorrow
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f8a5a6020f1fbc65
Upwork Job ID:<PHONE_NUMBER>324481536
Last Price Increase: 2023-04-19

Triggered auto assignment to Contributor Plus for review of internal employee PR - @parasharrajat (Internal)

Sorry @parasharrajat, please ignore

Waiting on doc rewrites.

This is a bug, reducing priority.

Agree with reducing the priority.

Still low priroity for now.

Just checking Jules as I comb the project file. This didn't get a clean-up elsewhere and still needs working on?

Seemed to have been resolved with our other changes 👍
User

Admin


Basic Intelli-J Support

I've added basic Intelli-J support to Polyglot (in addition to Eclipse). It will probably need some tweaking, but this is probably a good start-point. If anything, it will be a useful template to use in other Bazel projects.

LGTM. This is very cool, thanks for the contribution!
@mwitkow @devnev FYI


This is  a  good git commit tools

Good!

It really is lol, but please close this issue because it adds more work for the maintainer to close it himself.


Slack notification

Slack notification sample:

Currently, this is just outputting the experiment, which is too long to be practical. We can easily create new payload templates so that something more reasonable can be outputted (current template).
In previous commits, I have explored what else I could do with Slack notifications. Something to note is that code blocks are limited to 3000 characters, which is too short to output the entirety of the experiment. I also looked into uploading files, which would allow us to preview the file in the notification (instead of showing the entirety at its full length) but that will require additional permissions.
iter8 launch \
--noDownload \
--set "tasks={http,assess,slack}" \
--set http.url=http://<IP_ADDRESS>/get \
--set assess.SLOs.upper.http/latency-mean=50 \
--set assess.SLOs.upper.http/error-count=0 \
--set slack.url="https://hooks.slack.com/services/.../..." \
--set slack.payloadTemplateURL="https://raw.githubusercontent.com/Alan-Cha/iter8/slack-notification/charts/iter8/templates/_payload-slack.tpl" \
--set runner=job

GitHub notification sample:

As you can see, the workflow also has access to the client_payload, which means that the user can use information from the experiment for the workflow tasks.
iter8 launch \
--noDownload \
--set "tasks={http,assess,github}" \
--set http.url=http://<IP_ADDRESS>/get \
--set assess.SLOs.upper.http/latency-mean=50 \
--set assess.SLOs.upper.http/error-count=0 \
--set github.owner=Alan-Cha \
--set github.repo=iter8-notify \
--set github.token=... \
--set runner=job

I think we should also consider allowing the user to pass additional payload template values through the notify task inputs. This would allow the user to have greater control over the payload template.
One use case would be to change the repository_dispatch event type in the GitHub notify task workflow. See here

I am not sure where the payload templates should live. Currently, they are with all the other templates.

See #1322


Issue with encrypting special characters

The encryption of special characters can often be problematic and inconsistent.

Fixed.


When will the code of PTTR++ be released？

Hi, I know you have an improved version, PTTR++.  When will the code be released? thank you!

Thanks for your interest. PTTR++ is currently under review, so we will release it at a later time when we receive the outcome.

Looking forward to early release the code,and I also hope the author receive a good outcome.

Hi, I know you have an improved version, PTTR++. When will the code be released? thank you!


dependency problem with angular4 [4.0.0-beta]

[v4.0.0-alpha.6] works fine
but in beta have errors
$ng serve
ERROR in multi script-loader!./node_modules/jquery/dist/jquery.js script-loader!./node_modules/tether/dist/js/tether.js script-loader!./node_modules/bootstrap/dist/js/bootstrap.js
Module not found: Error: Can't resolve './node_modules/tether/dist/js/tether.js' in './node_modules/@angular/cli/models/webpack-configs'
resolve './node_modules/tether/dist/js/tether.js' in './node_modules/@angular/cli/models/webpack-configs'
  using description file<EMAIL_ADDRESS>(relative path: ./models/webpack-configs)
    Field 'browser' doesn't contain a valid alias configuration
  after using description file<EMAIL_ADDRESS>(relative path: ./models/webpack-configs)
    using description file: ./package.json (relative path: ./node_modules/tether/dist/js/tether.js)
      no extension
        Field 'browser' doesn't contain a valid alias configuration
        ./node_modules/tether/dist/js/tether.js doesn't exist
      .ts
        Field 'browser' doesn't contain a valid alias configuration
        ./node_modules/tether/dist/js/tether.js.ts doesn't exist
      .js
        Field 'browser' doesn't contain a valid alias configuration
        ./node_modules/tether/dist/js/tether.js.js doesn't exist
      as directory
        ./node_modules/tether/dist/js/tether.js doesn't exist
[./node_modules/tether/dist/js/tether.js]
[./node_modules/tether/dist/js/tether.js.ts]
[./node_modules/tether/dist/js/tether.js.js]
[./node_modules/tether/dist/js/tether.js]
 @ multi script-loader!./node_modules/jquery/dist/jquery.js script-loader!./node_modules/tether/dist/js/tether.js script-loader!./node_modules/bootstrap/dist/js/bootstrap.js

Tether is no longer a dependency. No idea why you get that error...

seems it has been replaced with popper.js which has to be added to the .angular-cli.json manually, right?

No idea if that's the place, but you need to add it in your deps if you use the JS part of BS4.

Is this safe to close then?

For anyone who is using Bootstrap 4 with Angular and doesn't want to jump through all the jQuery / popper.js hops, we've just release beta version of native Angular directives (no need for jQuery, no need for popper.js: https://ng-bootstrap.github.io. It is fully compatible with Bootstrap 4 beta released today.

Im remove tether from .angular-cli.json, works fine
thanks! :)

[ngClass] is not working properly in bootstrap 4.0.0-beta.

@johnhigginsavila I'm not sure what Bootstrap itself would have to do with [ngClass] "not working properly". Please:

don't comment on closed issues;
report issues with ngClass in the Angular repo


[PE-D] Date in not fully visible

Date in not fully visible in result window.

Labels: severity.Medium type.FunctionalityBug
original: rahulprasad01/ped#7

Unsure if this is a bug.
The user might not have maximised the app on startup.
Maybe we can adjust the default height and width values to ensure that all information can be viewed on startup.
A note can also be added in the UG informing users to maximise the app window if the full information cannot be displayed.
More manual testing with different window sizes is needed to see when this becomes an issue.


lyxal: Watch codetrailblazer.com

lyxal requests the watch of the watch_keyword codetrailblazer\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

codetrailblazer\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Rejected by Spevacus in Charcoal HQ. Reason: 'Accidentally watched over this one. Sorry.'


Content in preview is cut if it is too long

I'm developing a plugin. I noticed an issue with the preview where it won't show all the content possible when it gets to a certain length. That is, you won't be able to scroll up to that point. Any idea what's wrong?
Here's a screenshot

@BrainMaestro from this screenshot I can't guarantee that I understood an issue, but I think it is related to vertical alignment of the preview. By default it is shown in the middle, but if height is bigger than window height you can't reach top of the preview. Am I correct?
If so you have to add css-rule for your root element: align-self: flex-start;, like in cerebro-imdb plugin.

Sorry the screenshot didn't show it well but you're right. It happens exactly as you specified. Any idea why that happens? I'm curious.
Anyway, your suggestion works very well. Thanks for being helpful.


Split the instance admin endpoint configuration.

This makes it easier to run the examples and integration tests, and will
enable much better coverage of the examples in a future PR. The change
is backwards compatible, if a developer has only set
BIGTABLE_EMULATOR_HOST then we use its value for the data, table, and
instance admin APIs.
To see how sad our coverage for the examples is look here:
https://codecov.io/gh/coryan/google-cloud-cpp/tree/1fbddfb7f3db9d96fe531a9260bcd548e495950b/google/cloud/bigtable/examples

This change is

@coryan — Sorry, I am bit confused as to why split instance admin vs. all other admin operations; can you please clarify in the PR description and/or the class itself? Are you saying table admin operations are somehow different from instance admin operations, and need special support to improve testing? Why are they not both treated similarly? Is this something we can fix in the emulator, and simplify in the client library surface?

Thanks, @coryan! This makes much more sense. Added a comment on the code now that I understand it.


CMakeLists.txt and VC++

add_definitions(-O3)  triggers a warning for VC++
-Wall creates too many warnings and should maybe not be the default.

We should change the optimization flag, if it's a Windows build. This seem to be the modern way of setting compiler flags.
As for -Wall can you be more precise about the kind of warning you want to be suppressed? -Wall  -Wextra is, as far as I know, the best practice for warning verbosity for C++. The problem we have with warning is most of them are not caused by libpointmatcher, but by Eigen. There are way of suppressing warning coming from Eigen.

The warnings are not in Eigen, but triggered by how you use Eigen. When you write
const int pointsCount(features.cols());
you get the warning
warning C4244: 'initializing': conversion from 'Eigen::EigenBase<Derived>::Index' to 'int', possible loss of data
So either you static_cast or use the right type.
In my opinion there are too many warnings so Wall is not really helpful.

You would have to write add_definitions( /wd4244 /wd4267)   but it then also silences warnings concerning your own code.


#if SWIFT_PACKAGE_MANAGER

This commit adds a #define SWIFT_PACKAGE_MANAGER when code is built via the package manager.  This simplifies the maintenance of codebases that build both in SwiftPM and another environment (like Xcode).
Specifically, SwiftPM (and Linux generally) doesn't support bridging headers (see SR-76) and so I have to import all my frameworks at the top of each file, but only in the SwiftPM case–I don't want to do that for Xcode builds.

Sounds sensible. SWIFTPM is also an option since we refer to it thus in many places. We should probably take the time to look for similar defines before doing something inconsistent.

I've asked for a standard way to conditionally compile on the use of another package:
#if available("package-name", "1.2.*")
#endif

...which seems natural for this problem.  But in the absence of that new language feature, we should probably follow the API guidelines (since a define is an API):

Avoid abbreviations. Abbreviations, especially non-standard ones, are effectively terms-of-art, because understanding depends on correctly translating them into their non-abbreviated forms.

For that reason I would argue SWIFTPM is not a good option.
There certainly may be options that are not abbreviations.  Can you think of any?

LGTM. We should document this somewhere.

+1, but I agree needs to be documented somewhere.

(I guess I would add that I think SWIFT_PACKAGE would be a reasonable shorter define -- "if this code is being built as a Swift package") but I am fine with this one too)

SWIFT_PACKAGE might be better.
Is there a place that makes sense to document this?  I don't seen obvious location, but I agree it needs to be documented.

In here I reckon: https://github.com/apple/swift-package-manager/blob/master/Documentation/DevelopingPackages.md

As long as it goes somewhere I am cool with it. I think we eventually will need some kind of "reference guide" which is a more verbose enumeration of all features.

I agree with SWIFT_PACKAGE. Once we have that and some cursory documentation (and then squashed) will merge.

Squashed
Changed to SWIFT_PACKAGE
Initial documentation

Great. Thanks Drew!


Update hello-world.ipynb

I would rather use something like this “little endian” as strictly endianness is a description of byte-ordering and since qiskit doesn’t have the ability to address bytes in memory, endianness does not apply;

Just FYI -- related work going on in a new file to be added.

ok but we do need to stop calling it endian as it really is not.

Yep we are removing that terminology. Also, you broke the notebook 😆 so I'm going to revert your changes and reapply them, so don't worry if you see reverted changes in the history

@jaygambetta our preview is temporarily broken, so here's a screenshot of what I did offline -- did I get all the latex math formatting correct?

ok do what you need and what your posted looked good.


[DISCUSS] Provide sample template to users without needing docs

Is your feature request related to a problem?
Customers would like to use a sample template without copying and pasting from documentation.
What solution would you like?
There are many alternatives. We should decide on one that will support front end search/integration.

REST API (list / query sample templates)?
Folder on the class path?
A better idea?

We have some sample templates here that we use for integration testing. Would this be sufficient?


#request Please Make An Noob Friendly Tutorial

Can Anyone Give Proper Instructions Too To Run This On Termux
Like How To Initialise The Upscaling , Where To Place The Files To Be Upscaled , Changing Upscaling Settings etc
Sorry for requesting here but I don't know much about termux and I love this upscaler and want to run it on my phone anyone's help will be appreciated and thanks to the dev for making this library for termux android

Termux is something like linux CLI, so what you needs to do is just follow the instructions in here
What confuses you might be the filesystem of android, so you don't know how to access to the directories where you put pictures.
What you needs to do is termux-setup-storage, after this step, termux will get the permission to access android file system.
Then you can access all of your files via ~/storage/shared. Play and enjoy it!

Thank you for your reply , I will try to follow the instructions sir

Ok so I have cloned the git and setup termux storage but I can not start waifu.sh maybe I don't know the correct command

Ok so I have cloned the git and setup termux storage but I can not start waifu.sh maybe I don't know the correct command

You don't have to run waifu.sh from the very begining, waifu.sh is an template for delaying the startup of waifu2x-ncnn-vulkan with 10s delay (so you can turn off the screen without causing problems).
Try ./waifu2x-ncnn-vulkan, then you will see the instructions about how to operate waifu2x-ncnn-vulkan.
Figure out the command works for you, and then you can put then into your waifu2x.sh, then when you run waifu.sh, it will run waifu2x.sh for you (of course, with delayed startup).
(PS: I would recommend you create two directories, one for input and one for output. Then you can fix it in the script and control the files you want to scale by simply moving files.

Thanks Again For Your Helpful Reply & Advice 👍 . I'll Try This


Prepare for 2024 COSCUP

Make a copy from class presentation here

Bata version for my friends to review
https://docs.google.com/presentation/d/18QUGQZlZZZhaiA9Gy49sncXtLoSfpWp2LBS2UIiBSqc/edit#slide=id.p1

Some modification today that add more examples that try to tell people how the library is capible of and what can we observe even with the very simple examples


NO-JIRA: operator/node-controller, guard-controller: parse the master node selector during construction

while reviewing https://github.com/openshift/library-go/pull/1882 I found that the master nodes selector is being parsed on each sync for some controllers.

/hold
for a proof pr

/hold cancel

/lgtm


Suddenly blanc page and bad gateway 500 response trough API

From the rollout, I suddenly get a Bad Gateway error 500 through the API.
Then when I want to access the web app page through the Azure portal I get a blank blank screen. No error message or the like.
Colleague has checked it and also in another environment the same issue. Did a web app restore from the backup of 1 month ago but that doesn't work either.
Is this problem known? Any idea how to troubleshoot this?
Thanks!

Apologies for not explaining it quite clearly.
The Azure IPAM has been running for several months and is now suddenly giving a blanc page and is not approachable via the API (Bad gateway error 500)
Thanks for the suggestions but those are about rolling out an IPAM webapp.
I use the API in other deployments to see what subnet is available for deploying a virtual network, and then I get the bad gateway error.

Thanks for clarifying @Maurice-AxiansNL . Are you running Azure IPAM as a Function App then?

That is correct.
App service with cosmosdb

Got it @Maurice-AxiansNL, in that case my above recommendations around checking the Log Stream for any errors, and possibly downloading the runtime logs to see why the Function App isn't starting are the same. There has to be something that caused this issue, it could be an Azure Policy, or perhaps a permissions change.
The logs should tell us more and can be found here:
Function App -> Deployment Center -> Logs (tab)
From there we can find out what is causing the Function App to fail and return a 500 error.

I'm sorry, I think I'm a bit confusing with the term Function app in this case.
I deployed the Azure IPAM type "App Service"
I attached a screenshot

Gotcha @Maurice-AxiansNL! When you deployed this, did you use the deploy.ps1 script that we provided, or did you deploy the Azure IPAM solution manually into Azure App Services?
If you did use the deploy.ps1 script, then by default, it deploys the Web UI and Engine containers into an Azure App Service. In that case, my advice from above still stands true that we should examine the App Service logs for a cause of the failure.
I'm more than happy to meet with you 1:1 and personally help you through this issue. If you send me an email at<EMAIL_ADDRESS>and provide your time zone, I'll schedule something that is convenient for you, and together we'll get to the bottom of what is going on.

Thanks for offering your help. I am happy to take it up. Next 3 days I am abroad for work so let's plan something for next week.
Time zone is Amsterdam GMT+2

Sounds great @Maurice-AxiansNL ! Please send me an email at<EMAIL_ADDRESS>so I can create a meeting invite for us next week. Talk to you soon.

After working with @Maurice-AxiansNL, we found the issue was that the Managed Identity was somehow missing, causing authentication issues. After a redeploy, everything is back up and running!
Closing this issue, thanks so much!


Versioning system

Ideally, old versions of extensions should be accessible in some way in order to preserve older demos. It makes sense to have a version number included with the extension metadata so we could support automatic upgrades with semantic versioning for projects made in older versions.
@dragazo has a good idea with using a Github Action. Maybe we can make it use a different branch for Pages, have the action check if the version number for one changed and then create a new folder for it (I'd keep the current URLs valid for the newest version). Maybe another generated file of available versions?

A thought we had today, maybe it could upload the site to S3 instead of adding many copies of every asset for every extension to the repo.


Add GitHub Actions to the repo

Overview of the Solution:

We need to add some actions from github to ensure that our PR workflow for the develop / master branches continues with the lint and tests working.
Examples (if relevant):

https://github.com/actions/starter-workflows
Blockers (if relevant):

Sub Activities

[x] Add action to node.js
[x] Add action to golang

resolved in #11 and #13


[Config Linux] Use MUST and MAY for weight and leafWeight

Signed-off-by: Rob Dolin
Signed-off-by: Rob Dolin<EMAIL_ADDRESS>

The initial 9388832 is missing an email from the Signed-off-by 1.
But it's in a branch in this repo.  Maybe someone with push access can
squash the two commits into one and keep the working Signed-off-by?

@RobDolinMS you shouldn't push branches to origin directly. You can push branches to your fork and then create PRs from there. Thanks!

On Wed, Mar 22, 2017 at 10:48:27AM -0700, Mrunal Patel wrote:

@RobDolinMS you shouldn't push branches to origin directly. You can
push branches to your fork and then create PRs from there. Thanks!

One way to accomplish this would be to remove @RobDolinMS' write
access for this repository.  If we still want maintainers to help
polish the PR (since @RobDolinMS has had trouble rebasing in the
past), we can still do that if he allows maintainers to edit his PR
branches 1.

I've carried this in #751 .


[Feature] Move payload selector

Motivation
I'm am working on a project that for some reason can work only with unformatted JSONs (the whole payload is one single line). And the payload selector is located right above the end of the first row, so it makes it hard to see what is under it. See the picture

Detailed design
There is a lot of free space above the topic field, maybe it is possible to move the selector there. I marked the place on the picture:

Also, how the selector should work? I don't get it. What does the "-" button do, and how is it possible to save the payload I want? Because now there is something I sent a year ago, and I don't know how to remove saved payloads or change them.

Hi, @DimaSes99 Apologies for the late response here. You've raised a good point - the positioning of the payload selector can make it hard to view long payloads. We will look into optimizing the layout in a future release. Please don't hesitate to continue sharing any UX issues you encounter. User-centered design is a priority for our team. We want MQTTX to provide the best possible experience for your workflow!


string: minor improvements and fixing operator== issues

Reworked operator== due to a single instance of a line like if(ret.name == "") with ret.name being of type frg::string<something> in mlibc complaining. This solution is in line with what the C++ spec says (N4835 <IP_ADDRESS> [string.cmp]).

Does this change not cause the exact same warning that #18 fixed?

To my own surprise, no. Both managarm-kernel and mlibc compile, the former (where the warning originally appeared) even with -Wimplicit-fallthrough -Werror.


Fixes #2900

Fastst way to fix empty key value splitting for styled strings.
Signed-off-by: Sven Marquardt<EMAIL_ADDRESS>

Do you have an idea of what the affected string was prior to being compiled? I'm guessing
// a;style=color:#D40511;;href=https://www.dhl.de/de/toolbar/footer/app/datenschutz.data.html
<a href="https://www.dhl.de/de/toolbar/footer/app/datenschutz.data.html" color="#D40511" />

Thinking we should grow the unit tests with this string added so we can detect regressions.

Yes, i could definitely add a testcase.

Ok


Rollup Branch

While waiting on pull requests to develop, this roll up branch will collect the work being done so we can continue.

merged into develop


Question about discriminator

Thank you for your great project! I have a little problem. Can the discriminator accept multi-scale input? I notice that the forward() of discriminator only accept one input, not multi-scale.

@potato123-hash hello! so i'm actually doing that automatically here. let me know if i misunderstood that part of the paper

@gooobot ohh got it! so the generator will need to output all the rgb at all stages
if a real image taken from the dataset is fed into the discriminator, then it would be resized as the code does now?

@potato123-hash @gooobot ok, makes sense! will get this all fixed tomorrow! thank you for raising this issue

@gooobot ohh got it! so the generator will need to output all the rgb at all stages, and be able to pass it into the discriminator. i can get that done tomorrow morning, thank you! 🙏
if a real image taken from the dataset is fed into the discriminator, then it would be resized as the code does now?

Yes, the generator will output images with [4x, 8x, ..., 32x, 64x] resolution when use_multi_scale is enabled.

That's what I mean! @lucidrains Thank you for you great effort!

@potato123-hash do you want to try 0.0.16 and see if that fits your intuition?
import torch
from gigagan_pytorch.gigagan_pytorch import (
    TextEncoder,
    Generator,
    Discriminator,
    StyleNetwork
)

text_encoder = TextEncoder(
    dim = 512,
    depth = 2
).cuda()

discr = Discriminator(
    dim = 64,
    dim_max = 512,
    image_size = 256,
    text_encoder = text_encoder,
    use_glu = True,
    num_skip_layers_excite = 4,
    unconditional = False
).cuda()

style_network = StyleNetwork(
    dim = 64,
    depth = 4,
    dim_text_latent = text_encoder.dim
).cuda()

generator = Generator(
    dim = 64,
    style_network = style_network,
    text_encoder = text_encoder,
    image_size = 256,
    dim_max = 512,
    use_glu = True,
    num_skip_layers_excite = 4
).cuda()

# mock data

real_images = torch.randn(1, 3, 256, 256).cuda()
texts = ['a happy dog wagging her tail']

# generator

image, rgbs = generator(
    texts = texts,
    batch_size = 1,
    return_all_rgbs = True
)

# discriminator

logits, *_ = discr(
    image,
    rgbs,
    real_images = real_images,
    texts = texts
)

feel free to reopen if it isn't resolved!


compile error

Hi,
I try to compile FreeRDP from master with Mac OS Sierra 10.12.3 64-Bit and XCode 8.2.1 SDK 10.2  CMake 3.2.1
I use the following commands:
./scripts/OpenSSL-DownloadAndBuild.command
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/iOSToolchain.cmake -GXcode -DIOS_PLATFORM=SIMULATOR
the shell ouput:
-- Skipping disabled feature X11 for X11 (X11 client and server)
-- Skipping disabled feature Wayland for Wayland (Wayland client)
-- Skipping disabled feature DirectFB for DirectFB (DirectFB client)
-- Finding required feature ZLIB for compression (data compression)
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk/usr/lib/libz.dylib (found version "1.2.8")
-- Finding required feature OpenSSL for cryptography (encryption, certificate validation, hashing functions)
CMake Error at /usr/local/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/local/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)
cmake/FindOpenSSL.cmake:325 (find_package_handle_standard_args)
cmake/FindFeature.cmake:16 (find_package)
CMakeLists.txt:740 (find_feature)
-- Configuring incomplete, errors occurred!
See also "/Users/haibo/Desktop/FreeRDP/CMakeFiles/CMakeOutput.log".
See also "/Users/haibo/Desktop/FreeRDP/CMakeFiles/CMakeError.log".
and CMakeOutput.log  content is :
The target system is: Darwin - 1 - i386
The host system is: Darwin - 16.4.0 - x86_64
How to solve it ? Please give me a hand !

I have this problem, too
os: 10.12.6
xcode:8.3.3
cmake:3.9.1
openssl:1.0.2L
How did you solve the problem? Can you please share?
Thanks!

After adding the folder FreeRDP-2.0.0-rc2 , i am getting the error
" Severity	Code	Description	Project	File	Line	Suppression State
Error		CMake Error at C:\Users\Mickey\Downloads\FreeRDP-2.0.0-rc2\FreeRDP-2.0.0-rc2\CMakeLists.txt:477 (message):
Unknown generator Ninja	FreeRDP	C:\Users\Mickey\Downloads\FreeRDP-2.0.0-rc2\FreeRDP-2.0.0-rc2\CMakeLists.txt	477


mPCC should be installing the mprov_jobserver via PIP in image-gen.

Currently, this is a hard coded copy.  Once mprov_jobserver is public, this should be a pip install mprov_jobserver command.  Temporarily, this can be converted to installing a local wheel.  This ticket will be open to track the final update to pulling the pip from the public repo.

Closed in https://github.com/mprov-ng/mprov_jobserver/commit/ae4e1c215c645dca7bf17ff4bdcdb6adfc907e84


fix: Fixed FAQ active state

Issues Identification
Closes: #331
Description
This pull request modifies the accordion functionality so that only one FAQ can be open at any time.
Summary
When a user opens a new FAQ, any currently open FAQ will automatically close. This improves usability by preventing multiple sections from being expanded simultaneously.
Types of Changes
Please check the boxes that apply

[x] Bugfix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Please check the boxes that apply

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] My changes do not break the current system and pass all existing test cases
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Screenshots
https://github.com/user-attachments/assets/4bd39e65-5bf9-4b20-a79a-cc198af4d86c
Additional Information
N/A

@Someshog press on commit suggestion please no need to make a separate commit

just press on commit suggestion


Content Suggestion: https://live-bitcoin-price.com/

Link to Content:
live-bitcoin-price

Briefly Describe Content:
The project is trying to be the simplest bitcoin price ticker on the internet. I initially built it for someone who was looking to have his Raspberry Pi screen display a simple bitcoin price, sort of as a cool decorative piece (instead of the usual Raspiblitz more technical details about the node and all). Anyway I liked the simplicity of just pinging a website and it returning a straight number. No graph, no other info. Just a straight price ticker.

The ticker is updated every 5 seconds by pinging the Kraken API and asking for the price on the latest BTC/USD trade.
I have registered a domain for it (https://live-bitcoin-price.com/) if you want to use it that way, but I also maintain a single page version of it in a repo here so people can download and just double-click to open in their browser directly. This allows for having it locally on desktop or smartphone and not have to ping my website at all.

Suggested Section:
Not sure about this one. Probably the dev tools.

Cool site, I like how it's direct and straight to the point with no BS. However, it might be too minimalistic for a portal site like Bitcoin Only, typically there is more rich content. Maybe if we had some kind of price tickers resource section it would work, but I'm not sure this fits into the theme of the site right now.

Yeah good point. I can see how it doesn't quite fit anywhere in particular.
I guess the value is more in the single html file which you could reuse and modify if you need a price ticker somewhere (example above was for a small Pi with a screen), but again that's a rather super small and oddball use case haha.

It's a nice idea.
Agree with Wiz that there isn't a place to put it with it's own row. That said, it is similar to cent2sat so I have added it there.

Nice!
Cheers, guys. Love the site, and I always refer people to it!


How to compile C into Wasm with wasi_preview2?

How to compile C into Wasm with wasi_preview2?
Now using command ./wasi-sdk-16.0/bin/clang --target=wasm32-unkown-wasi --sysroot=./wasi-sdk-16.0/share/wasi-sysroot {file1} -o {file2}" could only get Wasm file with wasi_preview1.

That is currently being worked on so you may not have an easy-to-use binary just yet (cc: @dicej, @sunfishcode). If you really, really want to try out a preview 2 compilation and don't mind some unfinished bits, try building the latest wasi-libc and use the wasm32-wasip2 target. You'll have to pass your custom-built wasi-libc sysroot in to --sysroot. (And I would recommend using a much more recent version of wasi-sdk).

Thanks for your reply !


[feature] add distributed tracing and telemetry support

Is your feature request related to a problem? Please describe.
Add distributed tracing support to allow for introspecting traffic/code flow in the guac stack and measuring performance.
e.g. be able to trace a graphql api call and record the time spent at different hops/code path of the processing pipeline.
Describe the solution you'd like
Instrument the guac stack with OpenTelemetry so it could integrate with distributed tracing platform like Jaeger.

@sunnyyip can you link some of the POC code you had already for this here for reference?

@sunnyyip started some of this work here as a POC: https://github.com/pxp928/artifact-ff/pull/60/files#

Thank you for opening the issue and requesting distributed tracing and telemetry support for the guac stack. I propose expanding the solution to include metrics monitoring as well.
By integrating metrics monitoring alongside distributed tracing, we can gain a more comprehensive understanding of the system's performance. We can collect and analyze performance metrics such as response times, error rates, and resource utilization with metrics monitoring. This will provide valuable insights into the performance and health of the guac stack.
To achieve this, I suggest including OpenTelemetry Go in the guac stack. OpenTelemetry Go is a powerful observability framework that can help with distributed tracing, metrics collection, and more. It provides a standardized way to instrument your code and export data to various monitoring systems.
By leveraging OpenTelemetry Go, we can easily integrate with metrics monitoring systems like Prometheus or Grafana. These systems will allow us to visualize and analyze the collected metrics, enabling us to identify performance bottlenecks and optimize the guac stack.
I believe including metrics monitoring and leveraging OpenTelemetry Go will enhance the guac stack's observability and performance optimization capabilities.
https://github.com/open-telemetry/opentelemetry-go
Thoughts?

@pxp928 I would like to help with this issue by adding support to metrics. Let me know.

Sure! Are you planning to add both the tracing and telemetry support? I will assign the issue to you.

I think this is a pretty big item - I would say that it would probably be good to start with a design doc. I think the important points of it is what is being instrumented and how. I think @sunnyyip has implemented some of this on his own and probably can chime in on the design as well.

I think this is a pretty big item - I would say that it would probably be good to start with a design doc. I think the important points of it is what is being instrumented and how. I think @sunnyyip has implemented some of this on his own and probably can chime in on the design as well.

@lumjjb Thanks, I agree.

I can start with an overall design for otel and metrics and how it can be implemented. otel supports metrics and tracing.

I am thinking of only starting with metrics in the design to keep the scope limited and then, as a subsequent design, including tracing.

The design would also include what would be captured.

After we agree on the design, I can start the implementation. This is going to be a lot of changes across packages. So, the best option would be to chunk it by packages.

Absolutely. When the design is ready, I will tag @sunnyyip to get feedback and input.

Let me know if this works.

Here is my design for Metrics https://docs.google.com/document/d/195ro3jcYM_qE3CWiGmRvLbYEYhHmlaTxM1SEsfFOyM4/edit?usp=sharing
cc @sunnyyip  👀

A friendly ping!

My previous work in metrics/tracing were based on https://github.com/ravilushqa/otelgqlgen - i.e. OpenTelemetry Go for the gqlgen framework. The metrics collection logic for both metrics and tracing are common but being expose via different channels - i.e. metric exporter/endpoint or a tracer via middleware.
This looks sensible to me. I added some comments in the doc and questions. Thanks.


[Snyk] Upgrade supertest from 6.1.6 to 6.2.4

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade supertest from 6.1.6 to 6.2.4.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 5 versions ahead of your current version.
The recommended version was released 21 days ago, on 2022-07-01.

Release notes

Package name: supertest

6.2.4 - 2022-07-01
chore: bump deps  f411b02
chore: bump deps  5e54761

v6.2.3...v6.2.4

6.2.3 - 2022-04-26
chore: bump deps  6329e2d
Merge pull request #759 from francescobarbera/master  e6d371c
docs: add an example for complex object in multipart upload  729e818

v6.2.2...v6.2.3

6.2.2 - 2022-01-18
chore: bump deps  8f4dd1e

v6.2.1...v6.2.2

6.2.1 - 2022-01-11
chore: bump deps  9a87305

v6.2.0...v6.2.1

6.2.0 - 2022-01-10
chore: bump deps  e741cab
Merge pull request #653 from torhovland/patch-1  88dc262
Merge pull request #713 from jtomaszewski/patch-1  70a3d00
Merge pull request #749 from jimmywarting/misc  a70c1a0
var to const  aae4d8e
add missing comma  f17be2a
use explicit path  cdb0ad9
only use require in the top of the file  19dcd1e
don't mixup superagent.Response \w fetch.Response  1dc25a1
user super and arrow fn  d2d9616
move exports to the bottom  17cf193
more const  a0a5d57
Merge pull request #748 from jimmywarting/var  1d70492
destruct assert  dc60d5d
refactor: convert var to const / let  03f0084
Merge pull request #747 from jimmywarting/classify  afecc3f
refactor: Convert test to a class  d94ffbc
Update README.md  ad699ed
docs: Add async/await example to README  fc269b6
Add missing require.  3537e4e

v6.1.6...v6.2.0

6.1.6 - 2021-08-17
Merge pull request #735 from benjosantony/master  28116f9
Add on to the mitigation in https://github.com/visionmedia/supertest/pull/728/commits to support empty array response body  ed0f68d

v6.1.5...v6.1.6

    from supertest GitHub release notes

Commit messages

Package name: supertest

5543d67 6.2.4
f411b02 chore: bump deps
5e54761 chore: bump deps
43da071 v6.2.3
6329e2d chore: bump deps
e6d371c Merge pull request #759 from francescobarbera/master
729e818 docs: add an example for complex object in multipart upload
c2fd9ec v6.2.2
8f4dd1e chore: bump deps
bb856d2 v6.2.1
9a87305 chore: bump deps
0b03531 v6.2.0
e741cab chore: bump deps
88dc262 Merge pull request #653 from torhovland/patch-1
70a3d00 Merge pull request #713 from jtomaszewski/patch-1
a70c1a0 Merge pull request #749 from jimmywarting/misc
aae4d8e var to const
f17be2a add missing comma
cdb0ad9 use explicit path
19dcd1e only use require in the top of the file
1dc25a1 don't mixup superagent.Response \w fetch.Response
d2d9616 user super and arrow fn
17cf193 move exports to the bottom
a0a5d57 more const

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Coverage remained the same at 85.161% when pulling 0eda9ae60632d47022ec0f58e4f121f08718ce71 on snyk-upgrade-22bb60399eded30656b2c4664183cf47 into ab8f78d4fceb1e9c7039c8eb22db79400c179187 on main.

supertest is basic module for testing the app. If this passes the tests then I think its 100% fine to merge it.

@pacostas sure I think we need to avoid only the deps related to opentelemetry for now.
All the others can be updated and in case we find issues we fix them. :+1:


Adding functionalities (eg. : undo/redo) to enhance user experience

I want to add a shape/ icon pallete along  with undo and redo functionalities...the functionalities will help
increase user experience
Please assign it to me sir @vishanurag

please assign it under gsoc ext and hacktoberfest, I am new to open source and want to gain hands on experience

Assigning this issue to you.

Thankyou  @vishanurag , I have started working on the issue !

Issue close by #49


[DRAFT] Closing pages, contexts, browsers when scope ends

Is your feature request related to a problem? Please describe.
It is rather easy to accidentally leave a page, a context or a browser open after it is no more needed.
We already close these at the end of execution.
Describe the solution you'd like
As a library listener we can define the position where test execution is when creating a page, a context or a browser.
We can also detect when the scope ends.
For example if "New Page" is called inside of a test case, we could close that page at the end of that test.
If a context is created in a suite setup we can also detect when that suite ends and close the context.

What does scope here means?

For example a suite. If a browser is opened at the suite setup, then when exiting that suite, that browser would automatically be closed. Thus this same browser would not leak to other suites.

So a scope could be a suite or a test. And that would define the max life of that resource.

I was very skeptical at first but after some discussion in slack we figured some points out. Even more design is probably needed before this will be useful.
Why:

Save time with test bugs where state has implicitly been passed from previous test / suite

What:

Opened resources (browsers, contexts, pages) should not implicitly be available in following tests and / or suites

Maybe have the default be to have browsers available but contexts and pages close between suites

How:

Use the robot framework Library Listener hooks to automatically clean up resources when suites change. This could also enable behaviour like parent folder __init__.robot opened resources being available to all suites but when set up in a suite's own setup let the resources close with the suite.

We can detect where a test execution is when creating a new resource and we have a hook on when test execution contexts change.

We are automating resource management. This is similar in my opinion to automatic memory management.
Making these tests the same:
*** Test Cases ***
Test non automatic
New Page  url
Do stuff
Close Page
Test automatic page close
New Page  url
Do stuff
So in ideal situation running a test individually should result in same test env as running the test in a set of suites.

Should we just let users specify a scope themselves and have a default value to suite? Then, the library would close things based on scope argument. Handle automatically might be too much and confused some users if they haven't read the document.

I propose the following:
When inside of a test or test setup or test teardown:
New Page:

close page at the end of test
close context at the end of test if not opened before test
do not close browser

New Context:

close context at the end of test
do not close browser

New Browser or Open Browser:

close browser at the end of test

When in a suite setup or suite teardown:
New Page:

close page at the end of suite
close context at the end of suite if not opened before suite
do not close browser

New Context:

close context at the end of suite
do not close browser

New Browser or Open Browser:

close browser at the end of suite

Also Add ability to disable autoclosing to library init

Related pull request https://github.com/MarketSquare/robotframework-browser/pull/196

Now auto_closing_level argument controls level.


Social media icon

Change footer view impressive by align social media icon to bottom and copyright section to center

Screenshot...

Thank you @Yashraj-sherke for your contribution


[Feature]: Missing OpenTofu Registry GPG Key

Use Cases or Problem Statement
When using snowflake-labs/snowflake provider, getting missing registry GPG key error:
Installing snowflake-labs/snowflake v0.84.0...
Installed snowflake-labs/snowflake v0.84.0. Signature validation was skipped due to the registry not containing GPG keys for this provider

Opened https://github.com/opentofu/registry/issues/727 and got response that the Provider project should submit provider's keys..
Category
category:resource
Object type(s)
No response
Proposal
No response
How much impact is this issue causing?
Medium
Additional Information
No response
Would you like to implement a fix?

[ ] Yeah, I'll take it 😎

Hi @metaloid2k21 👋 Currently, support for OpenTofu is not on our roadmap. cc @sfc-gh-asawicki

Hey @metaloid2k21. Currently, we only publish our provider to the official terraform registry.

Hello @sfc-gh-asawicki
Thanks for your feedback.
The snowflake-labs/terraform-provider-snowflake is already available at the OpenTofu registry: https://github.com/opentofu/registry/tree/main/providers/s/snowflake-labs .
It'd be "only missing" registering its public key there.

Right, a new publishing step isn't required, just GPG public key submission. OpenTofu doesn't need any special support from the provider otherwise.
If this sounds feasible, you can follow this link to submit it: Submit new Provider Signing Key
If you don't have access to the public key anymore, you can retrieve it from the Terraform registry:
curl 'https://registry.terraform.io/v1/providers/snowflake-labs/snowflake/0.83.1/download/linux/amd64' | jq --raw-output '.signing_keys | .gpg_public_keys | .[0] | .ascii_armor'

Note: For security reasons, it has to be submitted by the provider author for the OpenTofu registry to accept it.


Various fixes

This PR is aiming to fix a few different issues. Changes in following comments.

https://github.com/SpigotMC/XenforoResourceManagerAPI/pull/29/commits/8f76315f307ee37da8db1d91ec441b8617699524 fixes #21

https://github.com/SpigotMC/XenforoResourceManagerAPI/pull/29/commits/8f76315f307ee37da8db1d91ec441b8617699524 closes #21

Should put #21 to rest finally and close #27.
#27 constitutes a breaking change, so we'll probably want to announce that. It's minor, but could be impactful for those reading identities.

lgtm

@md-5 works locally for me, so merge at your leisure. Thanks for the check


Add swiper as parameter on slideChange callback function event

Fix for slideChange event callback function returns empty #3757, kindly see the issue that I raised for the whole details.

It is not needed, Swiper automatically prepends Swiper instance to all emits:
https://swiperjs.com/demos/010-default.html
swiper.on('slideChange', console.log)


Added NumPY MASE, rMAE and RMSE losses plots

Added NumPY MASE, rMAE and RMSE losses plots.

@all-contributors please add @FedericoGarza @kdgutier for doc


Removes interpolation characters from input description

https://github.com/Logerfo/close-label/pull/324#issuecomment-1020232217

There's no build or run errors. But it seems like that token still isn't doing anything.


Cleanup SignInAsync extensions methods

Remove all overload besides the ones that take IdentityServerUser

also see https://github.com/IdentityServer/IdentityServer4/issues/2650


Backend challenges are either not working or unclear

Challenge using-packagejson-the-core-of-any-nodejs-project-or-npm-package has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
The goal of the challenge is unclear :

You should precise that HyperDev has been renamed to Gomix
We don't have links to any boilerplates or any tutorial to start a project on Gomix
We don't know how to relate Gomix to the FCC challenges

It seems that all of the backend challenges feel the same.

Duplicate of #12071
@thomlom thanks for the report and we are working on getting the migration done as soon as possible.
/cc @Em-Ant

@thomlom  I am very sorry. This is not the final version of the view. Read [this comment(]https://github.com/freeCodeCamp/freeCodeCamp/issues/12740#issuecomment-275216589) for more details. Please be patient.