No route to kube-system

Describe the bug
maybe iptables issue
I have been reset iptables (#246), restart svclb-traefik daemonSet,traefik, k3s-killall still no route to <IP_ADDRESS>/16
NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP                            PORT(S)                      AGE
service/kube-dns        ClusterIP      <IP_ADDRESS>      <none>
                        53/UDP,53/TCP,9153/TCP       33h
service/tiller-deploy   ClusterIP      <IP_ADDRESS>   <none>
                        44134/TCP                    33h
service/traefik         LoadBalancer   <IP_ADDRESS>    <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>   80:31564/TCP,443:31538/TCP   33h

logs from svclb-traefik
+ trap exit TERM INT
+ cat /proc/sys/net/ipv4/ip_forward
+ '[' 1 '!=' 1 ]
+ iptables -t nat -I PREROUTING '!' -s <IP_ADDRESS>/32 -p TCP --dport 80 -j DNAT --to <IP_ADDRESS>:80
+ iptables -t nat -I POSTROUTING -d <IP_ADDRESS>/32 -p TCP -j MASQUERADE
+ '[' '!' -e /pause ]
+ mkfifo /pause

work iptables
Chain INPUT (policy ACCEPT 438 packets, 98368 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1082 81063 KUBE-SERVICES  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate NEW /* kubernetes service portals */
 1082 81063 KUBE-EXTERNAL-SERVICES  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate NEW /* kubernetes externally-visible service portals */
54186   16M KUBE-FIREWALL  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1030 95853 KUBE-FORWARD  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* kubernetes forwarding rules */
  683 67336 KUBE-SERVICES  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate NEW /* kubernetes service portals */
  683 67336 ACCEPT     all  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16

Chain OUTPUT (policy ACCEPT 1976 packets, 1909K bytes)
 pkts bytes target     prot opt in     out     source               destination
 3458  289K KUBE-SERVICES  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate NEW /* kubernetes service portals */
 161K  133M KUBE-FIREWALL  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0

Chain DOCKER (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-ISOLATION-STAGE-1 (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-ISOLATION-STAGE-2 (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-USER (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain KUBE-EXTERNAL-SERVICES (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain KUBE-FIREWALL (2 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000

Chain KUBE-FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* kubernetes forwarding rules */ mark match 0x4000/0x4000
    1    52 ACCEPT     all  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            /* kubernetes forwarding conntrack pod source rule */ ctstate RELATED,ESTABLISHED
    1    52 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* kubernetes forwarding conntrack pod destination rule */ ctstate RELATED,ESTABLISHED

Chain KUBE-SERVICES (3 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>        /* monitors/prometheus-server:http has no endpoints */ tcp dpt:80 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>         /* monitors/prometheus-pushgateway:http has no endpoints */ tcp dpt:9091 reject-with icmp-port-unreachable

Chain f2b-sshd (0 references)
 pkts bytes target     prot opt in     out     source               destination

traefik logs
{"level":"info","msg":"Using TOML configuration file /config/traefik.toml","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"No tls.defaultCertificate given for https: using the first item in tls.certificates as a fallback.","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Traefik version v1.7.9 built on 2019-02-11_11:36:32AM","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://docs.traefik.io/basics/#collected-data\n","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Preparing server http \u0026{Address::80 TLS:\u003cnil\u003e Redirect:\u003cnil\u003e Auth:\u003cnil\u003e WhitelistSourceRange:[] WhiteList:\u003cnil\u003e Compress:true ProxyProtocol:\u003cnil\u003e ForwardedHeaders:0xc000036520} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Preparing server https \u0026{Address::443 TLS:0xc0002b30e0 Redirect:\u003cnil\u003e Auth:\u003cnil\u003e WhitelistSourceRange:[] WhiteList:\u003cnil\u003e Compress:true ProxyProtocol:\u003cnil\u003e ForwardedHeaders:0xc000036540} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Starting server on :80","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Starting provider configuration.ProviderAggregator {}","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Starting provider *kubernetes.Provider {\"Watch\":true,\"Filename\":\"\",\"Constraints\":[],\"Trace\":false,\"TemplateVersion\":0,\"DebugLogGeneratedTemplate\":false,\"Endpoint\":\"\",\"Token\":\"\",\"CertAuthFilePath\":\"\",\"DisablePassHostHeaders\":false,\"EnablePassTLSCert\":false,\"Namespaces\":null,\"LabelSelector\":\"\",\"IngressClass\":\"\",\"IngressEndpoint\":{\"IP\":\"\",\"Hostname\":\"\",\"PublishedService\":\"kube-system/traefik\"}}","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Starting server on :443","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"ingress label selector is: \"\"","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Creating in-cluster Provider client","time":"2019-07-26T06:05:12Z"}
{"level":"info","msg":"Server configuration reloaded on :80","time":"2019-07-26T06:05:13Z"}
{"level":"info","msg":"Server configuration reloaded on :443","time":"2019-07-26T06:05:13Z"}
{"level":"warning","msg":"Error checking new version: Get https://update.traefik.io/repos/containous/traefik/releases: dial tcp: i/o timeout","time":"2019-07-26T06:15:42Z"}

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.
k3s v0.7.0 (v1.14.4-k3s.1)
traefik (1.7.9)
coredns (1.3.1)
worker os (ubuntu 16.04.5 desktop amd64)
master os (ubuntu 18.04 server amd64)
worker environment: edge, behind nat, floating ip (4G LTE)
master environment: aws ec2, public subnet

When a new Service of the type “ClusterIP” is created, the system assigns a virtual IP to it. This IP is virtual because there is no network interface or MAC address associated with it. Thus, the network as a whole does not know how to route packets going to this VIP.

https://supergiant.io/blog/understanding-kubernetes-kube-proxy/


Default Character Sheet Tries to Pull from Compendium Instead of Imported Roles, etc.

Describe the bug
The default character sheet tries to pull from the locked compendium instead of imported roles in the Items directory.
To Reproduce
Steps to reproduce the behavior:

Go to Compendium
Click on Import
Go to Items
Find a role
Add a path
Go to the character sheet
Add role
It's linked to the Compendium instead of the import

Expected behavior
The character sheet pulls from the import in Items vs Compendium.  If something changes in the compendium in an update, everything is broken and any edits you've made are overwritten.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Win10
Browser Edge
Version 88.0.705.63

Additional context
Add any other context about the problem here.

In my experience, this is the expected behaviour. You need to import from the compendium, make your changes and then export to a compendium. Now, the compendium you export to doesn't need to be the same from the module - in fact, I would suggest that once you've imported the data that you then unload the Quest Basic module from your game.
You would then create 3 new compendiums, named: Abilities, Paths, Roles. You can then export your finished items to those new compendiums, which will allow the character sheets to see and use them. Once that's done, I believe you can remove all the items. You can also export your compendiums for backup and to use in other game worlds.


sendMediaGroup - InputMediaDocument

InputMediaDocument in sendMediaGroup is unavailable, please fix that.
https://core.telegram.org/bots/api#inputmediadocument

You are talking about the typescript types maybe? Because send media documents is possible with sendMediaGroup in this library

ts - yes... has type errors, btw this working, but has not full ts support...
bot.sendMediaGroup(
    subscription.chatId, files.map((file) => ({
        type: "document" as any,
        media: file,
    })),
    {
        disable_notification: true,
        reply_to_message_id: message.message_id,
    },
);


UI Enhancement

Can you assign it to me? @khushi-joshi-05
Full name: Baba Sekhar
GitHub profile link: Baba Sekhar
Email ID<EMAIL_ADDRESS>What is your participant role?: GSSoC-2024 contributor
The Login and Sign up are not that attractive and are not the same theme as main page so I would requesting you to assign me under the GSSOC 2024 and with level.
Thank You.

@sunny0625  bro please check my PR ones


Not able to see any method for type ORDER_TYPE_STOP_LOSS_LIMIT , is there a workaround for it ?

Hello there,
I was going through the library but was not to find any method for supporting STOP_LOSS_LIMIT type orders. I was thinkinh maybe order_limit_buy/sell would do the work but since their type is already defined to ORDER_TYPE_LIMIT. Is there any workaround for creating order of type STOP_LOSS_LIMIT?

need pr for this feature.

need pr for this feature.

any update on this?

any update on this?

id be glad to review and merge a pr for this.

id be glad to review and merge a pr for this.


[BUG] Logging not working

Release version
v2.1.0
Describe the bug
Publisher and Extractor are both erroring out and output only contains stack trace without details about the actual API causing the error even though Logging__LogLevel__Default is set to "Trace"-
Extractor error -
Logging__LogLevel__Default: Trace dbug: Microsoft.Extensions.Hosting.Internal.Host[1]       Hosting starting Unhandled exception. System.InvalidOperationException: API specification format '' defined in configuration is not supported.    at extractor.Program.GetApiSpecification(IConfiguration configuration)    at extractor.Program.GetExtractorParameters(IServiceProvider provider)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)    at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)    at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)    at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)    at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)    at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)    at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)    at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)    at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)    at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)    at extractor.Program.Main(String[] arguments)    at extractor.Program.<Main>(String[] arguments)
Publisher Error -
      System.ArgumentException: An element with the same key but a different value already exists. Key: 'Put'          at System.Collections.Immutable.ImmutableDictionary2.HashBucket.Add(TKey key, TValue value, IEqualityComparer1 keyOnlyComparer, IEqualityComparer1 valueComparer, KeyCollisionBehavior behavior, OperationResult& result)
at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 items, MutationInput origin, KeyCollisionBehavior collisionBehavior)
at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 pairs, Boolean avoidToHashMap)
at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 pairs)
at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 keyComparer, IEqualityComparer1 valueComparer)          at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable1 source, Func2 keySelector, Func2 elementSelector)
at publisher.Publisher.GetCommitIdFiles(CommitId commitId)
at publisher.Publisher.RunWithCommitId(CommitId commitId, CancellationToken cancellationToken)
at publisher.Publisher.Run(CancellationToken cancellationToken)
at publisher.Publisher.ExecuteAsync(CancellationToken cancellationToken)
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
fail: Microsoft.Extensions.Hosting.Internal.Host[9]
BackgroundService failed
System.ArgumentException: An element with the same key but a different value already exists. Key: 'Put'
at System.Collections.Immutable.ImmutableDictionary2.HashBucket.Add(TKey key, TValue value, IEqualityComparer1 keyOnlyComparer, IEqualityComparer1 valueComparer, KeyCollisionBehavior behavior, OperationResult& result)          at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 items, MutationInput origin, KeyCollisionBehavior collisionBehavior)          at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 pairs, Boolean avoidToHashMap)          at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 pairs)          at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 keyComparer, IEqualityComparer1 valueComparer)
at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable1 source, Func2 keySelector, Func2 elementSelector)          at publisher.Publisher.GetCommitIdFiles(CommitId commitId)          at publisher.Publisher.RunWithCommitId(CommitId commitId, CancellationToken cancellationToken)          at publisher.Publisher.Run(CancellationToken cancellationToken)          at publisher.Publisher.ExecuteAsync(CancellationToken cancellationToken)          at Microsoft.Extensions.Hosting.Internal.Host.TryExecuteBackgroundServiceAsync(BackgroundService backgroundService) crit: Microsoft.Extensions.Hosting.Internal.Host[10]       The HostOptions.BackgroundServiceExceptionBehavior is configured to StopHost. A BackgroundService has thrown an unhandled exception, and the IHost instance is stopping. To avoid this behavior, configure this to Ignore; however the BackgroundService will not be restarted.       System.ArgumentException: An element with the same key but a different value already exists. Key: 'Put'          at System.Collections.Immutable.ImmutableDictionary2.HashBucket.Add(TKey key, TValue value, IEqualityComparer1 keyOnlyComparer, IEqualityComparer1 valueComparer, KeyCollisionBehavior behavior, OperationResult& result)
at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 items, MutationInput origin, KeyCollisionBehavior collisionBehavior)
at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 pairs, Boolean avoidToHashMap)
at System.Collections.Immutable.ImmutableDictionary2.AddRange(IEnumerable1 pairs)
at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 keyComparer, IEqualityComparer1 valueComparer)          at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable1 source, Func2 keySelector, Func2 elementSelector)
at publisher.Publisher.GetCommitIdFiles(CommitId commitId)
at publisher.Publisher.RunWithCommitId(CommitId commitId, CancellationToken cancellationToken)
at publisher.Publisher.Run(CancellationToken cancellationToken)
at publisher.Publisher.ExecuteAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.TryExecuteBackgroundServiceAsync(BackgroundService backgroundService)`
Expected behavior
Details about the actual API causing error
Actual behavior
Stack Trace of underlying .Net error
Reproduction Steps
Extract / Publish using V2 with logger enabled

@pranaysharmamanulife - Not every error will be associated with an API. In this case, the extractor is failing because it's picking up an empty specification format from configuration.
Do you set an API_SPECIFICATION_FORMAT or apiSpecificationFormat value somewhere in your pipeline? Could be passed as an environment variable or your configuration YAML.
If you don't pass anything, the code should export your specifications by default to OpenAPIV3 YAML format. You can override this by setting API_SPECIFICATION_FORMAT or apSpecificationFormat to one of these highlighted values:

@pranaysharmamanulife - Not every error will be associated with an API. In this case, the extractor is failing because it's picking up an empty specification format from configuration.
Do you set an API_SPECIFICATION_FORMAT or apiSpecificationFormat value somewhere in your pipeline? Could be passed as an environment variable or your configuration YAML.
By default, the extractor exports your specifications to OpenAPIV3 YAML format. You can override this by setting API_SPECIFICATION_FORMAT or apSpecificationFormat to one of these highlighted values:

Thats correct @guythetechie . This does fix the extraction error.
The publisher error is the one we were getting other environments with V1 as well. Any insight into what might be causing that?

@pranaysharmamanulife - Thanks for confirming the extractor error is fixed. Are you getting the publisher error in v2, or just in v1?


Allow Filter To Persist For Warm Boot

This incorporates the ideas in
https://github.com/stefanpenner/broccoli-persistent-filter and to make optional
via a persist flag. This currently does not work on windows (See https://github.com/stefanpenner/hash-for-dep/issues/8)
however it is not detrimental to the end user as it is opt in.
Todos

[x] Some how test that the persistent cache is working correctly

One high level thought, I would like to be sure we minimize the code complexity moving forward.
Some ideas:

at best: extract all branching logic to instead rely on a strategy pattern
at least: extract branches to be there own methods

@joliss just for reference, this solution costs us a-bit more in terms of complexity and upfront cost but is invaluable for some transforms for large apps.
For example, one of our apps:
➜  dsp git:(master) cloc {app,tests}
    2679 text files.
    2622 unique files.
      62 files ignored.

http://cloc.sourceforge.net v 1.64  T=7.39 s (354.8 files/s, 22297.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                    1994          15572           4755         117565
Handlebars                     521            793            186          13832
LESS                           103           1601            111          10039
CSS                              1              0              0            180
HTML                             2              9              7             78
-------------------------------------------------------------------------------
SUM:                          2621          17975           5059         141694
-------------------------------------------------------------------------------

Initial build, babel alone takes nearly a minute (although babel is improving, the apps growth seems to be growing at a similar rate). With the persistent variant cold builds take 5%-10% longer, but initial builds at 95% faster.
Our Minute babel time on warm builds drops to 2-3s.
–––
Babel isn't the only offender, HTMLBars, JSCS, JShint etc all see similar improvements.

@chadhietala it appears we don't evict persisted(none-volatile) entries. In theory the tmp dir should handle this for us (pruning stale stuff after 3 days or w/e), but it may be worth considering a similar approach as was taken with the filters volatile cache https://github.com/caitp/cauliflower-filter/pull/14/files
The approach taken there was, if a file was known to change during a transform unlink it from the cache dir. That same approach for persistent should work.
I suspect a good approach is actually to make the existing cache optionally layered, using the persistent cache as the final target of a write-through cache. This would allow the cache when evicted to also evict the stale entry from the non-volatile cache.
This will come as a trade-off, if we are evicting some other processes cache it must cause some extra work for them. I believe that will be a minimal problem, as the cache contention is fairly low.

Nice. I totally need to dig into this and see if I can switch to it instead of what I've done in https://github.com/timmfin/broccoli-filter/compare/master...timmfin:broccoli-persistent-filter (and https://github.com/timmfin/broccoli-filter/compare/master...timmfin:broccoli-persistent-filter-with-symlinked-dirs).

Nice. I totally need to dig into this and see if I can switch to it instead of what I've done in timmfin@master...timmfin:broccoli-persistent-filter (and timmfin@master...timmfin:broccoli-persistent-filter-with-symlinked-dirs).

I'm eager to drop https://github.com/stefanpenner/broccoli-persistent-filter (which has been working well for us) in-favor of merging it back into filter proper (this PR)
@timmfin your feedback would be great. FYI we are trying to get this in in the next few days.

I think we can move some of this functionality to broccoli-plugin, and the Broccoli API:

Plugin can provide a persistentCachePath directory (created by the Broccoli builder), if requested by the subclass. The subclass can perhaps provide a cacheKey so that the persistent cache is automatically cleared if something changes.

If on Windows we can't do persistent caches, Broccoli can simply fall back to the regular cache mechanism. (And so then there's no need to concern the consumer with whether to persist or not.)

Once we have that, Filter can switch from this.cachePath to this.persistentCachePath whenever the subclass provides a key.

I'd rather deal with the other parts of the API upgrade first though, and then tackle this. We can't add features like "persistentCache" until we rewrite the builder to use the new API, which is blocking on updating all the plugins.

If on Windows we can't do persistent caches, Broccoli can simply fall back to the regular cache mechanism. (And so then there's no need to concern the consumer with whether to persist or not.)

this limitation should be resolved shortly (days)

I'd rather deal with the other parts of the API upgrade first though,

So this effort is blocked on figuring out the solution at the broccoli-plugin level?
This work needs to land soon to mitigate serious pains, if its blocked we will fork until the core has it handled.

@stefanpenner I took @joliss's comment to mean that we should wait on pulling persistent caches into broccoli-plugin until broccoli-plugins's migration is complete. And not necessarily that we should stop working on it here. (But now I'm not so sure...)

broccoli-plugin until broccoli-plugins's migration is complete.

unclear why that is a blocker – but w/e, babel/jshint/jscs etc will get this soon friendly fork or GM. As long as it eventually goes mainline again.

broccoli-plugin until broccoli-plugins's migration is complete.

unclear why that is a blocker

We can put the tmp handling code for persistent caches straight into Broccoli builder, but only once the migration is complete. If we try doing it before that, we're doing the work twice.
Also, for me it's a matter of time management: The most important thing for me is to finish up the API upgrade, to get us out of the current messy situation of having 2 APIs at the same time. So I don't want to spend too much time on this right now.

but w/e, babel/jshint/jscs etc will get this soon friendly fork or GM

(GM = Git merge?) I'd prefer not to have too many forks flying around. The cauliflower thing was pretty painful and didn't help that much. But if you do want do a fork, here's my suggestion for an API:
For plugins that want to use a persistent cache, simply pass Filter.call(this, ..., { persistentCacheKey: someString }) into the base class constructor. I don't think we need any other method or API.
This still isn't quite optimal because it leaves the common tasks of collecting npm version specs and hashing over everything up to plugin authors, but it's what I'm coming up with off the top of my head. :)

he cauliflower thing was pretty painful and didn't help that much.

This can shave multiple minutes off boot time for an app, which does provide more value then the cauliflower fork.
I can appreciate the API stability goal (big :+1) – but we will need a side-channel option in the short term.

FYI window support has landed for hash-for-dep https://github.com/stefanpenner/hash-for-dep/commit/335d69b3fc7d6ed19b6b94551a7d5e943e084f8c

Here's my perspective: I think we'll be in a place to land proper persistent-cache support in about a month or two, and then it'll be pretty straightforward from an API perspective. (There'll still be some inherent complexities like making sure old caches get cleaned out, but we have that problem either way.)
So if we fork now and try to make it work with some stop-gap code, like this PR, we'll get maybe three months of better performance (i.e. between nowish and November), but we'll all pay a price in extra engineering time: (a) Writing code that gets ultimately thrown away, and (b) having to spend more time on the migration to the new API, because we'll need to think about regressions and we'll need to clean out the code we wrote in step (a).
I'd intuitively prefer we didn't make that trade, but of course I also don't know exactly how bad the problem is on your end. Can you live with it for a while, or are there maybe some other useful things you can do to speed your app up for now, like precompiling sublibraries, or improving Babel performance some more?
Happy to talk on Skype or Slack if you want.

we'll get maybe three months of better performance (i.e. between nowish and November), but we'll all pay a price in extra engineering time:

Us maintainers should carry this burden, or we cause a large amplification of time waste.
Anyways, fork now exists here: https://github.com/stefanpenner/broccoli-persistent-filter
babel + jshint + jscs + htmlbars will be migrated over the next day or so.

I'd intuitively prefer we didn't make that trade, but of course I also don't know exactly how bad the problem is on your end.

Let me share my perspective, to help fill any potential missing information:
as mentioned, on big apps this saves minutes saves per boot.
Reboots happen often, because today the following result in full restarts (hopefully overtime we continue to mitigate this)

changing the brocfile (or adding addons that change it)
changing package.json
running a new addon/tool/app
building prod/dev/tests etc.

It is not uncommon, especially when moving between feature branches to have to restart several times an hour, but lets assume once per hour.
Lets say there are 100 active users spending 5 hours a day using broccoli on large code-basis.

100 users – this is very low relative to our analytics but its a nice round number
1 restart per hour
5 hours a day using the tool
60s of babel + jshint overhead persistent filter will save in most cases on large code-basis. (our big apps are 60s - 70s for each)

(100 * 5 * 60 = 30,000s) / 86,4000 === 1/3 day wasted
Actually, assuming 5h using the tool a day. We are wasting nearly 2 full dev days per 100 users per day.
Lets say 9 weeks (maybe 40 work days or so) till this is supported. Thats potentially 80 dev days of wasted time per 100 users on a large apps.
My stance is, this is our burden to carry.

OK, the math checks out. You got me convinced that this is important.
So I guess we can use your fork for now, and then we can try to get this landed in broccoli-filter hopefully soon (with support from Broccoli and broccoli-plugin)?

So I guess we can use your fork for now, and then we can try to get this landed in broccoli-filter hopefully soon (with support from Broccoli and broccoli-plugin)?

Let it be clear, I am absolutely fine with the fork. I just felt I share share why I am motivated.
The fork does buy us some time, I hope to carve out some upcoming weeks to next to make merge-trees + filter utilize your new persistentOutput flag.

Any update here?

@JamesMGreene i think @joliss has some related work planned, until then feel free to use: https://github.com/stefanpenner/broccoli-persistent-filter


Generalized get utility for use in a hook

softDelete does a get. I'll be writing a stashCurrent hook which gets the current record and stashes it in content.params._before.
There is a question about which params to use in the get https://github.com/feathersjs/feathers-hooks-common/pull/188#issuecomment-309310315. context.params may be inappropriate especially if you're passing thru options to the DB. SoftDelete recently got something more rational in https://github.com/feathersjs/feathers-hooks-common/pull/197.
I think

We need to house the calc of gets params in its own utility
This utility should be based on https://github.com/feathersjs/feathers-hooks-common/pull/197 but also support a custom function.
We need a utility which runs a get using the params utility. Perhaps combined with the prev utility.

We could use these utils in both softDelete and stashCurrent.
We should review existing hooks which use context.params when calling other methods.

Such a get occurs in softDelete and stashBefore.

The new callingParams utility address this.


Add configuration option for archive_url

This allows for specifying a custom archive URL
as an alternative approach to Custom Pages.

Thank you for submitting this PR! I can see from your example code that the motivation for this change seems to be to host your own internal pages - cool idea, I agree that it could be useful.
We need to think about #335 here though. A new version of the client spec is apparently about to be released (see https://github.com/tldr-pages/tldr/pull/10148) which will specify where clients (including tealdeer) will look for language specific archives. So I think we should wait until that is all cleared up and then take note in our documentation accordingly. I will hence mark this as draft for now :)


Use py3's f-strings instead of s.format(**locals())

In light of the bug reported here
https://github.com/apache/incubator-superset/issues/6347, I greped and replaced all
instances of .format(**locals()) using py3's f-strings

BTW we could do a wider sweep and replace all .format() with f-strings.


refactor: make CalendarServiceDateValidator extend SingleEntityValidator

Summary:
This PR provides changes to make CalendarServiceDateValidator extend SingleFileValidator instead of FileValidator class.
Expected behavior:
Unit tests have been adapted to this refactor, but no logic has changed. Therefore the same logic for existing tests should pass.
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Run the unit tests with gradle test to make sure you didn't break anything
[x] Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
[x] Linked all relevant issues
[ ] Include screenshot(s) showing how this pull request works and fixes the issue(s)

Here is an annotation-based solution: https://github.com/MobilityData/gtfs-validator/pull/813

Closing as implemented in #813, thanks @aababilov.


Add-shyamkata'file

This pul request adds shyamkata file to the the _posts folder

i am just learning


Knightos platforms

Motivation for this change
@danieldk's suggestion to add meta.platforms (not already enforced by ofborg?)
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Oops, botched the branch, will rebase.


Secret Key Rotation

If the secret key changes then the encrypted data will be lost. There should be a way to rotate the key with minimal work or problems which might cause downtime.

The cryptography has support for symmetric encryption with key rotation via Fernet: https://cryptography.io/en/latest/fernet/ Migrating the existing field might be tricky but probably worthwhile.


try triple quotes

This is a:

[x] bug fix PR with no breaking changes
[ ] new functionality

Link to Issue

May close #421.
Description & motivation

Integration Test Screenshot

Checklist

[ ] I have verified that these changes work locally on the following warehouses (Note: it's okay if you do not have access to all warehouses, this helps us understand what has been covered)

[ ] BigQuery
[ ] Postgres
[ ] Redshift
[ ] Snowflake
[ ] Databricks
[ ] DuckDB
[ ] Trino/Starburst

[ ] I have updated the README.md (if applicable)
[ ] I have added tests & descriptions to my models (and macros if applicable)

Closing in favor of #422. Thanks, Benoit!


Genbil - transform element does not exist

Hi All,
I have tried to use the Transform element (language="native") as per the documentation on the nbi webpage, but got the error message,
Code:
          <transform language="native" source-type='text'>
          null-to-value
        </transform>

Error Message:
'http://NBi/TestSuite' has invalid child element 'transform' in namespace 'http://NBi/TestSuite'.
List of possible elements expected: 'transformation' in namespace 'http://NBi/TestSuite'.
The transformation element does work however I got another error message regarding source-type= not declared.
Code:
          <transformation language="native" source-type='text'>
          null-to-value
        </transformation>

Error Message:
The 'source-type' attribute is not declared.
Using the transformation element and removing the source-type it is possible to make it work.
Could you check/update the documentation please so it is clear how does it work?
Cheers.

Thx for pointing this discrepancy in the documentation. I’ll check that after this week-end.

Inside the column element, apparently the code is expecting transformation and original-type. I'll switch to transform to be sync with the alterations. For original-type, I'll check what's inline with the wording of the xsd. Naturally, I'll try to support during a few releases the existing notation if I need to change it during this review.

Fixed doc incorrect source-type replaced by original-type


#3 shutting down threads on spring context destroy

You can close this PR as the very same changes are in PR #16


Remake actually works how it should now

I think the layout depends (which are implicit targets) would be better if they were directories, but this is good for now.

Assigned you @ldecicco-USGS as this should make your rebuilding work better (shouldn't have to blow away .remake folder)

👍 👍 👍

merged pre-maturely...sorry @jread-usgs


Chapter 2: kubernetes 1.24 serviceaccount creation does not create Secret by default anymore

See: https://itnext.io/big-change-in-k8s-1-24-about-serviceaccounts-and-their-secrets-4b909a4af4e0

I used: k create token build-bot --duration=9999h

Thanks for raising that. Unfortunately, we cannot easily change the content of the book as of now due to the nature of book creation at O'Reilly. It would require a second edition.
The better place to raise those issues is using the errata. The GitHub repository just contains the code snippets used in the book. Would you mind raising an issue there?

Closing the issue, per our discussion above.


Reorganize for Direct Rationale PPs

CC:2022 says: "A security requirements rationale that directly maps the SFRs and any security objectives for the
operational environment to the SPD-elements is included. It is recommended that this part of the
security requirements rationale is located directly under each of the threats, OSPs and
assumptions in the SPD section. As in STs that contain security objectives for the TOE, the security
requirements rationale also needs to justify the absence of superfluous SFRs and any SFR
dependencies that are not satisfied; this part of the rationale is typically located after the
definition of the SFRs."
So mappings to SFRs and such should all be expressed in the SPD section amongst the Threats, Assumptions, etc.
The Security Requirements Rationale will be reserved for explaining the "absence of superfluous SFRs and any SFR
dependencies that are not satisfied." And the Implicitly Satisfied Requirements appendix can go away.

Direct Rationale PPs and Modules are now supported.


jerryMarry1-patch-1

S ♡ Û 🦋

Why:
Closes [issue link]

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[x] This pull request impacts the contribution experience

[x] I have added the 'writer impact' label
[x] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

S ♡ Û 🦋


QUICStreamVCAdapter.cc:27: undefined reference to `VIO::VIO()'

Clang 13.0.1 currently presents a few warnings for our master branch. These are addressed in #8685. However, after these compiler warnings are addressed, the following linker error is produced:
  CXXLD    traffic_server/traffic_server
/usr/bin/ld: ../iocore/net/quic/libquic.a(QUICStreamVCAdapter.o): in function `QUICStreamVCAdapter':
/var/tmp/trafficserver/iocore/net/quic/QUICStreamVCAdapter.cc:27: undefined reference to `VIO::VIO()'
/usr/bin/ld: /var/tmp/trafficserver/iocore/net/quic/QUICStreamVCAdapter.cc:27: undefined reference to `VIO::VIO()'
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [Makefile:2142: traffic_server/traffic_server] Error 1
make[2]: Leaving directory '/var/tmp/trafficserver/src'
make[1]: *** [Makefile:2813: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/trafficserver/src'
make: *** [Makefile:874: all-recursive] Error 1

This can be reproduced with the CI's fedora:36 Docker image like so:
docker pull controller.trafficserver.org/ats/fedora:36
docker run -it controller.trafficserver.org/ats/fedora:36 /bin/bash
cd /var/tmp
git clone https://github.com/apache/trafficserver.git
cd trafficserver

# Apply the patch from #8685.

export CC="clang"
export CXX="clang++"
export CXXFLAGS="-Qunused-arguments"
export WITH_LIBCPLUSPLUS="yes"

autoreconf -fiv
./configure --with-openssl=/opt/openssl-quic --enable-experimental-plugins --enable-example-plugins --prefix=/tmp/ats/ --enable-werror --enable-debug --enable-wccp --enable-luajit --enable-ccache
make -j4 V=1 Q=

Looks like this is a library ordering issue. libquic.a requires VIO::VIO() which is provided by iocore/eventsystem/libinkevent.a, but that appears earlier in the link command. If I add libinkevent.a after libquic.a, the command succeeds.


Possible bug in NetIPv4_GetAddrSrcHandler()

NetIPv4_GetAddrSrcHandler() checks if the IP address contained in variable 'addr_remote' resides in the same subnet as the IP address configured in the current interface. The problem is that 'addr_remote' is in network order and hence that comparison will always fail. In other words, the if statement on line 2447 of net_ipv4.c (V3.05.00) should be:
if ((NET_UTIL_NET_TO_HOST_32(addr_remote) & p_ip_addrs->AddrHostSubnetMask) == p_ip_addrs->AddrHostSubnetNet) {
}

We are currently investigating a bug caused by the fix in #26
The function header clearly states that addresses passed to this function must be in host order. See note 3:
(3) IPv4 addresses MUST be in host-order.
I think the conversion should be done in one of the callers, not here in this function.

Hi @peschuster. Can you share with us the nature of the bug and the call stack leading up to NetIPv4_GetAddrSrcHandler()? Thanks!

The entry point from our application is NetICMP_TxEchoReq with an IP address as parameter that was returned from NetASCII_Str_to_IPv4.

@yasosa305 were you able to look into this?
We reverted this change and have no issue with uC-HTTPs, uC-SNTPc, uC-TFTP, the above mentioned NetICMP_TxEchoReq and other TCP based servers.


Rest arguments to become Slice for type.

var x:Slice<AnyInterface> -> { var n : GoInt; var err : stdgo.Error; } = stdgo.fmt.Fmt.println;

have: (haxe.Rest<...>) -> ... want: (stdgo.Slice<...>) -> ...
abstract @:from for Rest -> Slice does not work, I'm not sure of a good way to represent the type.

Since haxe.Rest requires special Haxe compiler processing, it is not too surprising that abstract @:from does not work.
Presumably haxe.Rest is required in order to easily model the variadic function "stdgo.fmt.Fmt.println". Because it is part of the go2hx runtime, the conversion could be hand-written as the first part of the function.
In the general case (assuming code must be generated using haxe.Rest), the conversion could be auto-generated at the start of each function with variadic arguments.
By re-writing the parameters, extra code would be generated of course, but some of this might be removed during compiler optimisation. The important thing at this stage of the project is to get a working system, speeding it up can come later.


Hi. Is it possible to add your own cube texture?

Hi. Is it possible to add your own cube texture?

Yes it is possible to use your own texture. You might be able to figure it out from this demo https://codesandbox.io/s/dice-box-threejs-j79h35.
However, in this project, the textures are just background elements and the numbers are rendered individually over top. If you're looking to replace the numbers with symbols then that's a little more complicated. You'd have to create a custom font with the symbols you want. I'd have to dig into the code to see how to support a custom theme, but it is possible. The original project that I based this one on, Major's 3D Dice, did the same for star wars dice.

Thanks. I managed to replace the texture by replacing the picture of another theme leaving the name the same


Writing is not permitted iOS

Kotlin native, we trying to write characteristic, work in Android, but not work  in iOS,  observer characteristic in both  works perfectly  (WriteType.WithResponse)

Thanks for reporting. Currently on vacation but I'll be back next week and try to find time to look into this.

Can you provide logs using the Data log level (if you don't have sensitive data being transferred), or Events log level if you do?
See https://github.com/JuulLabs/kable#logging for details on setting up logging.


Can't browse BREAD

PHP 7.3.8
Laravel V6
MySQL V 8
When using voyager to create a database, it creates it fine. Then I can create the bread for it fine. When I then go to browse bread, it says database does not exist, even though I made the model manually, confirmed table is infact in the database and did migrations. Can also see the model in app/modelname.php
Using homestead, not sure if it is another issue with that.
Error I get
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'voyager.departments' doesn't exist (SQL: select * from departments order by created_at desc)
Stack Trace
vendor/laravel/framework/src/Illuminate/Database/Connection.php
error at line 655
throw new QueryException(

I also tried by selecting the option for voyager to create the model it's self when creating db table in voyager. Even though says success (again, can see model in file system and table in db), voyager still gives the same error. I wonder if this is another homestead issue, file system incompatible with voyager or something)

Issue, looks like a homestead issue again, so I have done a fresh install of laravel+mysql etc not using homestead, and now I get another issue after creating database, adding bread to it and then trying to browse the bread for this table.
PHP 7.3.8
Laravel V6
MySQL V 8
Now, I get this error
Illuminate\Database\QueryException
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'voyager.testtables' doesn't exist (SQL: select * from testtables order by created_at desc)
If this now a Laravel V6 issue, is voyager not compatible with laravel v6
I can see the table has been created in the databse and the model file is in the filesystem.

Laravel just requires you to follow some simple conventions.
That's not related to Voyager.
Also, we do not yet support Laravel 6 (see our readme)

Thanks emptynick, Ok, tried again keeping to conventions, but same issue. Ok, must just be a Laravel 6 issue. I'll track the project and re try when it is supported. Thanks.


Bump github.com/cloudevents/sdk-go to v2.5.0

Changes
This updates the cloudevents dependency from v2.1.0 to v2.5.0. This is over a year
old and catches us up quite far.
There was one manual change in the cloud_event_controller_test.go file. CloudEvents
changed the string representation of an event, which our tests looked for. This
matches the change to their upstream test: github.com/cloudevents/sdk-go/pull/639.
Signed-off-by: Dan Lorenc<EMAIL_ADDRESS>/kind cleanup
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[X] Tests included if any functionality added or changed
[X] Follows the commit message standard
[X] Meets the Tekton contributor standards (including
functionality, content, code)
[X] Release notes block below has been filled in or deleted (only if no user facing changes)

Release Notes
NONE

cc @n3wscott to double check the test change

Looks like you need to run ./hack/update-deps.sh to ensure the patch to apimachinery is applied.

/test check-pr-has-kind-label


Determine how to show warnings

Feature
The BCD on top feature relies on BCD data to determine whether the browsers that people care about are supported. The logic is straight forward for simple cases, where there is only one table row and it's all green, or one table row and there is an unsupported browser. It's more complicated when there is more than one row or missing data. This story intends to clarify the logic.
Acceptance criteria

[ ] Documented how the logic works
[ ] logic for missing support implemented
[ ] logic for partial support implemented
[ ] logic for full support is implemented
[ ] The default set of browser is implemented as "latest Chrome, Edge, Safari, IE, Firefox, chrome on Andorid, Safari on iOS"

Tasks

[ ] List possible cases
[ ] Solve for the simple cases
[ ] Make proposals for the non-simple cases
[ ] Get input from team on those non-simple cases
[ ] Drive decision
[ ] Implement logic

Documented how the logic works
I have been working on[https://github.com/schalkneethling/mdn-magellan] and thinking about this for some time now, and here follows my feedback so far. To start with, this is no simple matter, but here goes.
The first topic that needs to be addressed and decided upon is the meaning of the various colors?
If you have for example the following browser selection:
Firefox, Chrome, Safari, Edge (the latest version only)
Do we show green if, and only if:

All four of these browsers/versions fully support the feature?
What if one of the browsers support the feature, but via a prefix i.e. -moz-, -webkit- etc? Does that count as full support?

Do we show red if, and only if:

All four of these browsers/versions do not support the feature?

If the above is true, does that mean we show partial support for all other instances?
If true, it seems to me that for most(80-90%?) modern language features we will show the partial support bar. Meaning users will have to look over the browser compatibility table to figure out what the actual support breakdown is.
Does this feature then become a lot less useful?
Would it perhaps be better to only focus on full support and no support?
If there is variation in what defines green and red, i.e. it is not all or nothing, how will we communicate this to the user. For example, using the same browser scenario from earlier, what if support is as follows:
Firefox[supported], Chrome[supported], Edge[supported], Safari[not supported]
If we show green for the above scenario, how will we communicate to the user that in fact, one of their browsers does not [fully]support the feature? This becomes a lot more complicated when you have a browser matrix such as:
Firefox 67, 66, 65
Chrome 77, 76, 75
Safari 9.1, 10.1, 11.1
Edge 16, 17, 18

One option that may be worth exploring is to constrain browser/version selection too, at most, 4 browsers and 3 versions per browser. In other words, the above metric would be the most complex.
We can then show a simplified BCD table as opposed to a single bar, for example:
One Browsers, One Version

Two Browsers, Latest Version

Four Browsers, Latest Version

Four Browsers, Three Version (most complex/worst case scenario)

Deprecated features
What do we do about features marked as deprecated? I am thinking we do not want to encourage people to use these feature still so, perhaps we should not show support information on these pages?
The information is still contained in the BCD table. Although, it might still be useful to some users who need to support very old browser versions. Thought I would mention it though.
Partial support of a feature
Have we thought about scenarios such as flexbox's justify-contents? https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content#Browser_compatibility
Here, for example, we generally have great support, but for some of the "newer" values, support is all over the place, and for Safari data is sparse. Do we focus on "basic" support?
There is more to this, but I reckon this is a good place to stop for now. Let me know your thoughts on the above @atopal @nickbrandt - Thank you in advance.

@schalkneethling perhaps I didn't explain this thoroughly enough regarding the initial expectations for when you would receive different warnings. Below are my thoughts on how this would work, but definitely would love to hear your feedback regarding it:
Lets take the scenario a user selects the following in their browser set:

Chrome (last 3 versions)
Firefox (last 3 version)
IE (specific version - 11)

When viewing a reference page...
They would see a red warning if:
Any of those browser versions are not supported for the specific reference. So even if it was just IE 11 that was not supported, we show a red warning. The notion of these browser sets is these are requirements they have for their project, and if even one of these browsers is not supported, this needs to be seen as a red flag.
They would see a yellow/orange warning if:
All of those browsers are supported for the general reference, but some of the subcomponents (ex: values for CSS properties) are not supported. This would mean that overall they are OK using this reference, but there is limited support for what they could do with it.
They would see green in the status if:
All of the browsers are supported for the general reference, as well as any subcomponents for the reference.
One thing that still needs to be determined is what happens when there are unknown values in the table, meaning we don't have answers for whether or not it is supported.
In regards to prefixes: if something is supported, but it requires a prefix, I see that as full support. I don't find it necessary for us to distinguish areas where a user needs to add prefixes, as that is discussed in the reference documentation. These alerts/statuses are more for a quick notice on whether or not there is support for their requirements.
I don't really like the idea of restricting the number of browsers a user can configure, nor the idea of recreating a compatibility table at the top that represents their selections. From the evaluative research, there were some expectations from participants that we would update the compatibility table  (at the bottom) based on their configuration (either filtering or highlighting errors within their configured browsers), though for now we are not planning any enhancements to that for the MVP of this feature.
Let me know your thoughts on this, as I'm sure there are still many unanswered questions. @atopal will probably have some thoughts on this as well.

Thank you for the feedback @nickbrandt, this helps a lot.

(Side comment. Everyone treats compatibility strictly as a mater of browser version numbers. It's also a matter of browser market share and version market share in the geography bounding your target audience or customer base.)

@jpmedley it is dangerous to say things such as everyone, as although that may be the case for some, it is not for all. We definitely had a fair share of participants in our research that explained they didn't have specific versions that they cared about or were required to support on projects, but instead wanted to make sure what they were building was supported by most "modern browsers", or a good percentage of their target audience (hence your comment regarding market share). I think the point you make regarding market share and the geography of your target audience are important factors for determining where those cutoffs are, and I wish we had that information accessible to us at this time (as far as I know we do not). I can definitely see this feature including those sort of capabilities in the future, where user's are able to see what sort of market share their settings support in assisting them in making better judgment calls. I hope that all makes sense.

@jpmedley @nickbrandt I wonder where caniuse get their data? Could it be an open source data set that we can tap into as well? I don't mean for it to be a blocker, but would be useful if we could add that kind of information.
@nickbrandt I do not entirely agree that having to use a vendor prefix is equal to full support. Other than the BCD table at the end of documentation pages, I do not believe it is addressed in the content. I therefore still feel that we need to inform the user in some way that, although the feature works in browser X, it requires a vendor prefix and to look for further details in the BCD table.

I support the idea of being conservative with the meaning of "green". It should signify "no worries, go ahead and use as-is". "Yellow" should mean "Pause, read carefully and think about it". Vendor prefixes require special coding, therefore special consideration, therefore I think they should trigger "yellow".
By similar reasoning, unknown values should trigger a "yellow", meaning "we don't know -- you figure it out"; whereas "red" is "we know it's NOT supported" and "green" is "we know it IS supported". (This implies that "yellow" is doing double duty: in some cases it's about certainty and in other cases it's about completeness. I think this is OK.)

Sounds simple enough. The reality of that is not. Compare Payment Request with Service Worker. Based on W3C status you might set Payment Request to green and Service Worker to yellow. If you look at implementations by major browsers, I'd give them exactly the opposite colors. Payments API are volatile and unstable and based on what I've seen in my inbox, will continue to be for a while. Service workers have been stable and widely supported for several years.

@jpmedley yellow and green would depend on the browser set that people have explicitly selected.
@schalkneethling I'd go with Nick's specification for now. We can still user test to make sure it matches people's expectations in beta. Besides, pre-fixes are becoming less and less of an issue.


Add documentation how the current badger storage is modeled

Which problem is this PR solving?

Describe how the current data modeling is designed in the badger implementation.

@objectiser

I wonder if it wouldn't make more sense to have storage-specific pages in the main documentation. We do have quite a few details worth documenting for each one of them.

@jpkrohling The aim here is to provide some design docs to help with maintaining the code. So not sure relevant for the user docs, but did you have a different place in mind?


Mobile optimisation for the home page

Doesn't scale on small mobile screens. Here's an iPhone 6/7/8/SE2 screen size.

Somewhat addressed here: https://github.com/hackathonsforschools/summer-website/pull/6

Fixed in https://github.com/hackathonsforschools/summer-website/pull/7


Bakcend refactory

No merging, just been told current active branch is dev-client. So just for reference...
The main changes are:

Generate frontend files into /public
Update backend routing to host both API and frontend files
Apply MVC patteren to the backend, instead writing everything in /server/server/, splitting them into routes, controllers, models
Using standard as linting tool

Close at the moment


Not working fully.

I don't mean to be a bother, but I just today learned about sponge and installed it and this plugin. It doesn't seem to be working fully. I can do /balance but that's about it. I only have the base download from sponge, is there something else I need to do? It's saying currency doesn't exist? I'm confused. I would appreciate any help in learning more about sponge, the plugins, and how to fix whatever issue it is I'm having with the plugin.

Any console errors? Send your configuration files in gists (https://gist.github.com/) and post them here. And take screenshots if you can.

Here is the list of configuration files under TotalEconomy- https://gist.github.com/TheIdioticOtaku/e543e89e8789a48cf81248b346c0d7b8
And here is the error screenshot. I also included a screenshot of my mods/plugins. The plugins are highlighted, and the version of totaleconomy I have is the most recent I believe. If possible, I would also love more info on how to work the other features of this plugin, I cant seem to find anywhere to explain. If there is somewhere to explain more in depth how the plugin works, that would be great! It is my first time ever using an economy plugin. Im not very experienced on plugins or running a server either, so I apologize if the information I'm giving isn't what was asked for, it was what I got from it.

You're using Sponge API version 7 please be adviced that you'll need to download the experimental API-7 release of TotalEconomy in order for the plugin to work at all.

Here's the API 7 build: https://ore.spongepowered.org/Erigitic/Total-Economy/versions/1.7.1-API_7. Let us know how that works for you.
The wiki contains information that may help you out in understanding the different features Total Economy has to offer: https://github.com/Erigitic/TotalEconomy/wiki. The wiki is a bit out of date, but should still prove helpful.

Oh, thanks! I can't wait to get my friends on and test all the features out. c:
Update: It works! I'm so excited to get my server town going!


e.g Could not install on Windows Anaconda [replace with your environment]

Operating system, environment, python version
Macbook Pro M2 pro chip with new (repeated) install of Anaconda for Apple Silicone
What you tried
pip install pyportfolioopt
Error message
Copy paste the terminal message inside the backticks.
``Successfully installed pandas-2.0.2 pyportfolioopt-1.5.5 python-dateutil-2.8.2 pytz-2023.3 six-1.16.0 tzdata-2023.3
(PyPortfolioOpt_env) JamesRinne@Jamess-MacBook-Pro ~ % python
Python 3.11.3 | packaged by conda-forge | (main, Apr  6 2023, 08:58:31) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyportfolioopt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pyportfolioopt'
`

BTW, Pip list does bring up pyportfolioopt as well as cvxopt and cvxpy. >>> import pyportfolioopt
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'pyportfolioopt'
cvxopt             1.3.1
cvxpy              1.3.1
ecos               2.0.11
idna               3.4
numpy              1.24.3
osqp               0.6.3
packaging          23.1
pandas             2.0.2
pip                23.1.2
platformdirs       3.5.1
pooch              1.7.0
pyportfolioopt     1.5.5
Thank you. I use this program's output every day for my portfolio and it has worked on my new computes. So far can import other modules including: >>> import cvxopt

import cvxpy

Thank you for any help. I have a math degree but I am old and I am self-taught with Python. But usually I—with ChatGPT-can make things works.
Jim

Hi @jrinne314, you successfully installed the library, but you are using it incorrectly. You should import the pypfopt, not pyportfolioopt
Please take a look at our example here: https://github.com/robertmartin8/PyPortfolioOpt#a-quick-example
I saw that you opened 2 issues for Macos and Windows, if that solve your problem please close both of them, if not please let me know.

ref https://github.com/robertmartin8/PyPortfolioOpt/issues/539

Wow!!! Meaning thank you for such a simple and effective answer. BTW if interested, my code worked before because of redundancies, I think. Import pyportfolioopt as pypfopt not good but later 'from pypfopt import plotting' may have made the program run. ChatGPT thought it was case-sensitive issue: PyPortfolioOpt. TL;DR: Much appreciated!


PA2 too large maxDepth

Hi, im facing this wrong output where my maxDepth is too large

this is my current ack method and I understand that we should increment depth before a recursive call and decrement depth after a recursive call which i think i have tried to take into account so im not sure why it still gives too large of a maxdepth

this is how the incrementing and decrementing is implemented in my FuncStat
any help with what is wrong with the tracking im doing is greatly appreciated!

the first case with no recursive call should not have depth incremented, but it can possibly update maxdepth if the current depth is equal to maxDepth

thanks a lot for the help

Hello, dont mind if i ask, my put is returning <Nothing, S> which will then be passed to the next flatmap(...... unit(x)). I am facing this error
The parameterized method <Integer, FuncStat>unit(Integer) of type StateM.StateM is not applicable for the arguments (Nothing)
wonder if you faced the same error, if so how did you overcome it?


[doc] Add doc for linux_script and windows_script

What's changed?

close https://github.com/apache/hertzbeat/issues/2268
Add doc for linux_script and windows_script
Checklist

[x]  I have read the Contributing Guide
[x]  I have written the necessary doc or comment.

hi, you can run cd home && yarn md-lint to check md style.

hi, you can run cd home && yarn md-lint to check md style.

ok, thanks!

hi, you can run cd home && yarn md-lint to check md style.

ok, thanks!

more information you can see: https://github.com/apache/hertzbeat/pull/2640/files#diff-14797f4558afc57d64d406d4d19b829d3a0ec594fcc19cf846398cde4c266dba


Add the Source IP of the DCCG traffic to the logs

Current Implementation
The DCCG doesn't log the information SourceIP for the connection between the DCCG and national backend.
Suggested Enhancement
Currently DCCG have a piece of logic that extract from http headers the thumbprint of the mTLS certificate used to connect
This headers extraction logic should be able to add another field from the same data block containing the thumbprint.
--> The XFF : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For
What we would like to have is an additional field : sourceIP added to the logs (/ec/local/tomcat/logs/dgcg.log) with the value found in that XFF headers.
The Source IP (if governance is properly followed)  are IP from national backends , and doesn’t contains  private data.
Check with the developers on your side the complexity level of this change.
If the change is pushed into the codebase, we will then coordinate with the Splunk team for the actual deployment.
--> They want this to be pushed in phase (TST/ACC/PROD) to validate no side effect on the logs key/value extraction.
Expected Benefits
it helps the OPS team to improve the root cause analysis for any issue with the connection / transaction.

implemented by #203


Fixed TLS shutdown timeout handling.

Still working.

Codecov Report
Attention: Patch coverage is 57.14286% with 6 lines in your changes missing coverage. Please review.

Project coverage is 97.22%. Comparing base (080c6e1) to head (4537c9d).

Files with missing lines
Patch %
Lines

...nc_mqtt/predefined_layer/customized_ssl_stream.hpp
57.14%
6 Missing :warning:

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #355      +/-   ##
==========================================
- Coverage   97.31%   97.22%   -0.09%
==========================================
  Files         153      153
  Lines        9448     9458      +10
==========================================
+ Hits         9194     9196       +2
- Misses        254      262       +8

Flag
Coverage Δ

97.22% <57.14%> (-0.09%)
:arrow_down:

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

Files with missing lines
Coverage Δ

...nc_mqtt/predefined_layer/customized_ssl_stream.hpp
74.41% <57.14%> (-7.40%)
:arrow_down:

... and 1 file with indirect coverage changes


Querying non existent user returns generic error

Querying for a non existing user will return "Something went wrong, please check and try again" however the logs show the Mongo returns "No user found for ..".
{ Error: No user found for<EMAIL_ADDRESS>    at getUserPromise (/Users/ojongerius/repos/fcc-open-api/.webpack/service/src/webpack:/src/dataLayer/mongo/user.js:28:14)
    at <anonymous>
  originalMessage: 'No user found for<EMAIL_ADDRESS>  message: 'Error in resolver Query.getUser\nNo user found for<EMAIL_ADDRESS>}
Error: No user found for<EMAIL_ADDRESS>    at getUserPromise (/Users/ojongerius/repos/fcc-open-api/.webpack/service/src/webpack:/src/dataLayer/mongo/user.js:28:14)
    at <anonymous>
Error: Something went wrong, please check and try again
    at promise.catch.err (/Users/ojongerius/repos/fcc-open-api/.webpack/service/src/webpack:/src/utils/asyncErrorHandler.js:7:11)
    at <anonymous>
Serverless: [200] {"statusCode":200,"headers":{"Content-Type":"application/json","Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":true},"body":"{\"data\":{\"getUser\":null},\"errors\":[{\"message\":\"Something went wrong, please check and try again\",\"locations\":[{\"line\":2,\"column\":3}],\"path\":[\"getUser\"]}]}"}

DoD:

[ ] We return the correct error
[ ] Test snapshot has been updated

Interesting, looking at the testing snapshot so this was expected behaviour:
exports[`getUser should return null if no user has been found: no user error 1`] = `
Array [
  [GraphQLError: Something went wrong, please check and try again],
]
`;

However, nothing went wrong the user is not there. Retrying until the user has been created could take a lot of faith and time.

@Bouncey looks like you are overwriting the error message in asyncErrorHandler. What's the thought behind this?

Nice "catch".
I think my top level asyncErrorHandler either needs more work to just re-throw exceptions we have thrown ourselves, or removed completely.

Well played 😄 I'm happy to let it re-throw for now, and we can refactor later. I do see a use for masking internal errors with a default one, but informational errors we should bubble up.
Writing this, it could be to our benefit to include unique IDs with those generic errors so we could find out which GW request and Lambda invocation a support issue would be about.

Found the root cause, and I got what I wanted.
We agree we can make things even better but this will do for now.


New version: Photon v0.7.1

Registering package: Photon
Repository: https://github.com/neurallayer/Photon.jl
Created by: @jbaron
Version: v0.7.1
Commit: f92803495f927060b83472edf408739146141276
Git reference: master

Can close this one, new PR for fixed version exists.


docs: remove "lein clean" from dev, prod in READMEs

Fixes #98
Tested with
lein install
lein new re-frame omgwhathaveidone +test

Thanks again @stevejmp Much appreciated :+1:


[release-v1.4] Ignore trailing slashes for path-based routing (#2462)

Cherry-pick of https://github.com/knative-sandbox/eventing-kafka-broker/commit/7ff9bd142b03cf96cf04ce238f67c90a5bef08ed
Signed-off-by: Pierangelo Di Pilato<EMAIL_ADDRESS>

/cherry-pick release-v1.3

/assign @matzew @aliok

/test 410-test-conformance-aws-ocp-410

/retest
/lgtm


Building a project after deleting a XAML file results in an error

VSF_TYPE_MARKDOWNRepro steps

File -> New -> WPF App (.NET Framework)
Build the project once
Delete MainWindow.xaml
Without saving, build the project

Expected: No error
Actual: error
Severity	Code	Description	Project	File	Line	Suppression State
Error		Unknown build error, 'Object reference not set to an instance of an object.'	WpfApp36
This issue has been moved from https://developercommunity.visualstudio.com/content/problem/595515/building-a-project-after-deleting-a-xaml-file-resu.html
VSTS ticketId: 905549
These are the original issue comments:
David Kean [MSFT] on 6/5/2019, 00:14 AM (10 hours ago): This was also raised here: https://github.com/dotnet/project-system/issues/4728
Visual Studio Feedback System on 6/5/2019, 03:16 AM (7 hours ago): We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.
These are the original issue solutions:
(no solutions)

I suspect the correct repo for this is actually https://github.com/dotnet/wpf
However, I would not expect this to work.
The file is still referenced if the project has not been saved and so the build process would assume the file is still there and so where it goes to parse and package it, it would fail to find the file and so be unable to successfully complete the build.

The project is saved before build. Even if this was case the, the error message isn't appropriate.

I opened an issue in the WPF repo: https://github.com/dotnet/wpf/issues/2156


向量库返回的 Document 中 的 distance 字段应统一

Bug description
我们将向量库由 chromadb 转为 redis-stack，从 vectorStore.similaritySearch 返回的 Document 中，无法 从 Metadata 中获取 distance 值。
Environment
Please provide as many details as possible: Spring AI version, Java version, which vector store you use if any, etc
Springboot 3.3.2
SpringAI 1.0.0.SNAPSHOT
Java 17
RedisStack 6.2.6
Steps to reproduce

使用 chromadb 做向量库，vectorStore.similaritySearch 返回的Document 的 Metadata 中，distance 是表示距离的 键名
使用 redis 做向量库，vectorStore.similaritySearch 返回的Document 的 Metadata 中，vector_score 是表示距离的 键名
分别跟踪进入 org.springframework.ai.vectorstore.RedisVectorStore 和 org.springframework.ai.vectorstore.ChromaVectorStore 类中，发现 DISTANCE_FIELD_NAME 声明 对应的值 不一样

Expected behavior
希望 Metadata 中表示距离的 key 是统一的、确定的，避免切换向量库时代码不兼容
Minimal Complete Reproducible example
请见重现步骤部分
另外：我没有用过 Milvus，但猜测 #1256 可能与此有一点点关系

Hey @yyqqing , could you please update your description in English.

Hey @yyqqing , could you please update your description in English.

when we use different vector db . use vectorStore.similaritySearch method  to get  the distance key is not  same key . eg in  in  the RedisVectorStore  key  vector_score means DISTANCE_FIELD_NAME  , while in ChromaVectorStore means  DISTANCE_FIELD_NAME  .it is a little odd.

Hey @yyqqing , could you please update your description in English.

My English is not good, and here is a bug report that I converted using Google Translate, which I checked and described what I meant more or less accurately：
Bug description
We switched the vector library from chromadb to redis-stack. In the Document returned by vectorStore.similaritySearch, we were unable to obtain the distance value from Metadata.
Environment
Please provide as many details as possible: Spring AI version, Java version, which vector store you use if any, etc
Springboot 3.3.2
SpringAI 1.0.0.SNAPSHOT
Java 17
RedisStack 6.2.6
Steps to reproduce
Using chromadb as the vector library, in the Metadata of the Document returned by vectorStore.similaritySearch, distance is the key name representing distance
Using redis as the vector library, in the Metadata of the Document returned by vectorStore.similaritySearch, vector_score is the key name representing distance
Tracking into the org.springframework.ai.vectorstore.RedisVectorStore and org.springframework.ai.vectorstore.ChromaVectorStore classes respectively, it is found that the corresponding values of the DISTANCE_FIELD_NAME declaration are different
Expected behavior
We hope that the key representing the distance in Metadata is unified and fixed to avoid code incompatibility when switching vector libraries.
Minimal Complete Reproducible example
See the Steps to Reproduce section.
Aside: I haven’t used Milvus, but I guess #1256 may be a little bit related to this.
In other words,

Hey @yyqqing , could you please update your description in English.

when we use different vector db . use vectorStore.similaritySearch method to get the distance key is not same key . eg in in the RedisVectorStore key vector_score means DISTANCE_FIELD_NAME , while in ChromaVectorStore means DISTANCE_FIELD_NAME .it is a little odd.

is what I meant.

The similarity score of each Document is now available via the getScore() method directly from the Document object, and it's used consistently across all vector store implementations.
Note: the similarity score is the inverse of the distance (which is still available as metadata on each Document object, accessible via the key DocumentMetadata.DISTANCE).


[Question] How is this related to ArkType

Question
I've seen another interesting compile-time / runtime typing library called https://github.com/arktypeio/arktype and I'm wondering what are the commonalities / differences with Typia?

It seems zod similar library which requires extra schema definitions.
Besides, typia can utilize the pure TypeScript type directly.
https://typia.io/docs/pure/


NNW 5.1.3 on macOS 11.1 - All feeds stop working as of 1/4/2021 3:18PM EST

NNW 5.1.3 on Mac 11.1 ... all feeds (stored on my Mac) stopped updating yesterday. Last article header received was "Slack goes down..." from AppleInsider at 3:18PM EST. Refresh and/or restart of NNW makes no difference. Anyone else seeing this? All feeds working normally/properly in NNW 4.1.0 on same machine.

Fixed

exported all subscriptions to opal file
quit NNW
nuked contents of ~/Library/ApplicationSupport/NetNewWire/Accounts/OnMyMac/
restart NNW, import subscriptions, mark old articles as read
Annoying to have to do but at least all is working normally again in NNW 5.1.3

Fixed

exported all subscriptions to opal file
quit NNW
nuked contents of ~/Library/ApplicationSupport/NetNewWire/Accounts/OnMyMac/
restart NNW, import subscriptions, mark old articles as read
Annoying to have to do but at least all is working normally again in NNW 5.1.3


Fundamental C#

We'll need at least 5 lessons walking through basic programming concepts using C#.
Design, implement, test, and debug simple programs in an object-oriented programming language.
Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit.

We'll use the Syllabus as a guide to determine which lessons to work on first


[Need Help] Production root shows 404 while local works fine

I'm building my nextjs project refer to this given example.
The local environment totally works fine, where the http://localhost:3000 shows in default "en" language as expected. http://localhost:3000/en and http://localhost:3000/zh also show different content properly.
But after deploying to the production environment on Github Pages, the root url shows 404 page not found. But after manually changing the url to https://oran.zone/en or https://oran.zone/zh it can still show page properly.
I have checked that in config I have set defaultLocale to en, and local environment also proves it is working. I'm struggling on what is wrong with the production.
I'm a bit new to latest next.js and these i18n libraries so hope can get some support. Appreciate a lot if can get any advice.

It looks like your site is not running the middleware. I don't know much about Github Pages, but I did find this library: https://github.com/gregrickaby/nextjs-github-pages
According to the README of the library, Github Pages does not support serverless or edge functions. This essentially means you are using a static export and using middleware is not supported.

Thanks for pointing this out. It does make sense. I'll try to find workaround without middleware or change other deployment solution.


Missing dependency

I got following error:
Get::noopen: Cannot open GitLink`.

Needs::nocont: Context GitLink` was not created when Needs was evaluated.

This error has resolved by installing GitLink.
This dependency should be written in README.md, I think.

GitLink comes w/ MMA after a certain version, so I didn't check it for dependency. Since it is not a requirement, I will mark it as an optional dependent which will not give any warning and skip the update checking.

Fixed in 133ffd523cde000877e8c08faa5d2ea7d4ac55fa.


Custom actions on Pull Request

We are trying to accommodate GOGS in our current process which includes a squash merge of the branch into the target branch.
It would be nice to configure this. The system already checks if a merge is possible automatically. It would be something similar.

Hi, I think this is basically same request to https://github.com/gogits/gogs/issues/3387.


[Device Support Request] TZE200_9yapgbuv

Is your feature request related to a problem? Please describe.
This is to request support for the Tuya Temperature Humidity and Luminance sensor. The device pairs with ZHA but none of the sensor values are exposed - temp, humidity, luminance or even battery percentage.
Describe the solution you'd like
It would be great to have the sensor values exposed in ZHA as one would expect.

Device signature
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0051",
      "in_clusters": [
        "0x0000",
        "0x0004",
        "0x0005",
        "0xef00"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE200_9yapgbuv",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

Diagnostic information
{
  "home_assistant": {
    "installation_type": "Home Assistant Supervised",
    "version": "2022.11.1",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.7",
    "docker": true,
    "arch": "armv7l",
    "timezone": "Europe/Paris",
    "os_name": "Linux",
    "os_version": "5.15.61-v7+",
    "supervisor": "2022.10.2",
    "host_os": "Raspbian GNU/Linux 11 (bullseye)",
    "docker_version": "20.10.19",
    "chassis": "",
    "run_as_root": true
  },
  "custom_components": {
    "spotcast": {
      "version": "v3.6.30",
      "requirements": [
        "spotify_token==1.0.0"
      ]
    },
    "myEnedis": {
      "version": "1.5.1",
      "requirements": [
        "packaging>=20.8"
      ]
    },
    "smartthinq_sensors": {
      "version": "0.24.2",
      "requirements": [
        "pycountry>=20.7.3",
        "xmltodict>=0.12.0",
        "cchardet>=2.1.7"
      ]
    },
    "alexa_media": {
      "version": "4.2.0",
      "requirements": [
        "alexapy==1.26.4",
        "packaging>=20.3",
        "wrapt>=1.12.1"
      ]
    },
    "hacs": {
      "version": "1.28.3",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.34.2",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.84",
      "zigpy-deconz==0.19.0",
      "zigpy==0.51.5",
      "zigpy-xbee==0.16.2",
      "zigpy-zigate==0.10.3",
      "zigpy-znp==0.9.1"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      }
    ],
    "dependencies": [
      "file_upload"
    ],
    "after_dependencies": [
      "onboarding",
      "usb",
      "zeroconf"
    ],
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 8137,
    "manufacturer": "_TZE200_9yapgbuv",
    "model": "TS0601",
    "name": "_TZE200_9yapgbuv TS0601",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 143,
    "rssi": -76,
    "last_seen": "2022-11-11T02:42:41",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0051",
          "in_clusters": [
            "0x0000",
            "0x0004",
            "0x0005",
            "0xef00"
          ],
          "out_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      }
    },
    "active_coordinator": false,
    "entities": [],
    "neighbors": [],
    "endpoint_names": [
      {
        "name": "SMART_PLUG"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "24343b560e6d870d4819d9d0d4df571d",
    "area_id": null,
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "SMART_PLUG",
          "id": 81
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0xef00": {
            "endpoint_attribute": null,
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0001": {
                "attribute_name": "app_version",
                "value": 72
              },
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZE200_9yapgbuv"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0601"
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Additional logs
Paste any additional debug logs here.
Don't remove the extra line breaks outside the ``` marks.

Purchase link:
https://fr.aliexpress.com/item/1005004838346776.html

Maybe it can fit in the TuyaTempHumiditySensor.
Enable the custom quirk folder and copy the ts0601_sensor.py file inside:

https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_sensor.py

Then edit the content adding your device to the MODELS_INFO like:
class TuyaTempHumiditySensor(CustomDevice):
    """Custom device representing tuya temp and humidity sensor with e-ink screen."""

    # RelativeHumidity multiplier
    RH_MULTIPLIER = 10

    signature = {
        # <SimpleDescriptor endpoint=1, profile=260, device_type=81
        # device_version=1
        # input_clusters=[4, 5, 61184, 0]
        # output_clusters=[25, 10]>
        MODELS_INFO: [
            ("_TZE200_bjawzodf", "TS0601")],
            ("_TZE200_9yapgbuv", "TS0601")],
        ],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TemperatureHumidityManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Ota.cluster_id, Time.cluster_id],
            }
        },
    }
    .../...

Save changes and restart HA.
Check if the device signature change after the restart. And double check if the values are correct.
If something is not fine, enable the debug logs and attach a couple of reports from the device.

Hey there @javicalle, thanks for your reply!
So I tried doing as you said, and now when I pair the device I'm able to see 3 new sensors. One each for battery, temperature and humidity. Initially all 3 of them showed their status as "Unknown".
However, now as I'm writing this first the Temperature and then the Humidity value showed up. I guess the sensor doesn't report values too frequently. The battery percentage still shows as 'Unknown' but that's fine - I don't really care.
Thanks a lot for your help! Btw, should I or someone be submitting a MR for this change?

There is a forum post asking about this device too.

@FeignMan if you can confirm that the battery entity is working too, would you to create a PR for the device. You can do it directly from the web page, just editing the file content and following the rules:

https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_sensor.py

Thanks in advanced.

Maybe it can fit in the TuyaTempHumiditySensor. Enable the custom quirk folder and copy the ts0601_sensor.py file inside:

https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_sensor.py

Then edit the content adding your device to the MODELS_INFO like:
class TuyaTempHumiditySensor(CustomDevice):
    """Custom device representing tuya temp and humidity sensor with e-ink screen."""

    # RelativeHumidity multiplier
    RH_MULTIPLIER = 10

    signature = {
        # <SimpleDescriptor endpoint=1, profile=260, device_type=81
        # device_version=1
        # input_clusters=[4, 5, 61184, 0]
        # output_clusters=[25, 10]>
        MODELS_INFO: [
            ("_TZE200_bjawzodf", "TS0601")],
            ("_TZE200_9yapgbuv", "TS0601")],
        ],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TemperatureHumidityManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Ota.cluster_id, Time.cluster_id],
            }
        },
    }
    .../...

Save changes and restart HA. Check if the device signature change after the restart. And double check if the values are correct. If something is not fine, enable the debug logs and attach a couple of reports from the device.

Could you please explain how to do this with Home Assistant Yellow? As far as I understand I need to replace the standard version of Zigbee plugin with a forked one. Can this be done via Home Assistant UI? Ideally I would like to avoid moving files directly to my HA device.

You just need to enable the local quirks configuration.
There is a good guide:
https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274

Yeah, I was able to do this using VSCode plugin. Thanks


Zerver: Fix line with length greater than 120 in zerver folder

This PR follows PR #1165 . Fixes some of the lines with length greater than 120.
Issue #1041

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

@timabbott :  please review

Posted one comment, otherwise this looks good.

@timabbott : this works?
disp_recipients = [", ".join(recipient['
                   for recipient in cast(
                      Sequence[Mapping[str, Any]], get_display_recipient(mesg.recipient))
                   if recipient['email'] != user_profile.email)
                   for mesg in missed_messages]

It turns out we just merged commits deleting the relevant code entirely.  So I dropped that hunk and merged this as a8a4caf2c00ff6b9e3aebb6f0ecac4f4e1156690.  Thanks @staranjeet!
As a sidenote, perhaps you should set your GIT_AUTHOR_NAME to your full name so that your name appears properly in your commits?


Add burned_mana field to Block - python

https://github.com/iotaledger/tips-draft/blob/tip46/tips/TIP-0046/tip-0046.md#basic-block

Closed by https://github.com/iotaledger/iota-sdk/pull/1152


upgrade to rxjava 1.x

NetflixOSS » suro » suro-pull-requests #29 ABORTED

suro-pull-requests #199 FAILURE
Looks like there's a problem with this pull request