Calico with Kubernetes and Digital Ocean firewalls

Kubernetes clusters can use Calico for container networking on Digital Ocean if traffic uses IPv4 encapsulation (ipip protocol i.e. IP protocol 4). However, creating a Digital Ocean firewall blocks such traffic and firewall rules for protocols other than TCP, UDP, and ICMP aren't supported. In practice, this means its not very reasonable to use Calico on Digital Ocean.
Calico tutorials for DO are getting around this by simply never enabling firewall rules on droplets (!). On AWS and Google Cloud, their firewalls allow rules for the "ipip" protocol so there is no issue. I've spoken with DO and requested support (initial issue and vote for the feature)
Possible Solution
In the mean time, are there any alternative configurations folks have successfully used on Digital Ocean? According to #315, Digital Ocean does not allow peering with its networking so IP encapsulation may be the only choice, but the author mentions "there should be no problem". Recommendations?
Steps to Reproduce

Launch Kubernetes cluster on Digital Ocean with Calico
Delete firewall
Verify pod to pod connectivity works
Enable firewall again. Pod to pod connectivity no longer works. There are no firewalls you can add to allow the traffic.

Context
Aim is to have Calico be the default for our Kubernetes clusters across cloud providers. Still using flannel on DO due to this.
Your Environment

Calico version: 2.5.1
Orchestrator version: Kubernetes v1.7.3
Operating System and version: CoreOS 1409.9.0
Link to your project: https://github.com/poseidon/typhoon

rel:

https://github.com/poseidon/typhoon/issues/11
https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
https://tools.ietf.org/html/rfc2003

cc @ozdanborne @gunjan5

@dghubble thanks for submitting. My initial thought is that you could use Flannel for networking, as it uses VXLAN which runs over udp. The canal project bundles flannel with Calico for Kubernetes. Hopefully DO won't block packets when using that.

Yeah, flannel with vxlan for networking and Calico for policy is what we're using on Digital Ocean currently. Its ok for now, but my goal is to get to Calico networking at some point.

@dghubble Thanks a lot for reporting this. I spent hours trying to figure out what the hell was going on today. I have a very simple firewall that wraps all the Kubernetes nodes by tag. I presume switching to Canal may just magically work since my UDP traffic is wide open between my droplets... I'll find out soon enough!

Had the same issue. Switching to Canal indeed just works. Calico only will only work if DigitalOcean adds a feature to their firewall to enable IP-in-IP.

Calico v3.7 will have native VXLAN capabilities: https://github.com/projectcalico/felix/pull/1989
So, won't need to use canal for this - will be similar configuration model as IPIP is today.


calico/node v1.0.0-rc3: add routes after ~3-4 minutes

My setup:
OS: ubuntu 14.04
kubernetes: 1.4.7
docker-engine: 1.12.1-0~trusty
etcd: 3.0.15
calico-containers: v1.0.0-rc3
I run hosted version of calico:
http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/hosted
using yaml file:
http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/calico.yaml
I've edited yaml file changing fields: etcd_endpoints, cidr and version of the image quay.io/calico/node to v1.0.0-rc3:
https://gist.github.com/r0bj/e3773396b287e5378f893907a415cf02
Everythink works.
There are routes in the system:
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/24 dev eth0  proto kernel  scope link  src <IP_ADDRESS>
blackhole <IP_ADDRESS>/26  proto bird
blackhole <IP_ADDRESS>/26  proto bird
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
blackhole <IP_ADDRESS>/26  proto bird
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
blackhole <IP_ADDRESS>/26  proto bird
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev tunl0  proto bird onlink
<IP_ADDRESS>/16 dev docker0  proto kernel  scope link  src <IP_ADDRESS>

When I restart node those routes are added to the system after ~3-4 minutes leaving system in the default state:
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/24 dev eth0  proto kernel  scope link  src <IP_ADDRESS>
<IP_ADDRESS>/16 dev docker0  proto kernel  scope link  src <IP_ADDRESS>

Log from calico/node containe after node start:
https://gist.github.com/r0bj/d4d951561c06e1de59e2af56aa0e79d4
Proper routes are added just after logs (~3-4 minutes after calico/node container start):
bird: Graceful restart done
bird: Mesh_10_14_30_116: State changed to feed
bird: Mesh_10_14_30_117: State changed to feed
bird: Mesh_10_14_30_118: State changed to feed
bird: Mesh_10_14_30_124: State changed to feed
bird: Mesh_10_14_30_110: State changed to feed
bird: Mesh_10_14_30_111: State changed to feed
bird: Mesh_10_14_30_116: State changed to up
bird: Mesh_10_14_30_117: State changed to up
bird: Mesh_10_14_30_118: State changed to up
bird: Mesh_10_14_30_124: State changed to up
bird: Mesh_10_14_30_110: State changed to up
bird: Mesh_10_14_30_111: State changed to up

Is it possible to make this process faster?

It may be related, one of the nodes is off-line:
Calico process is running.

IPv4 BGP status
+--------------+-------------------+-------+----------+--------------------------------+
| PEER ADDRESS |     PEER TYPE     | STATE |  SINCE   |              INFO              |
+--------------+-------------------+-------+----------+--------------------------------+
| <IP_ADDRESS> | node-to-node mesh | up    | 20:48:39 | Established                    |
| <IP_ADDRESS> | node-to-node mesh | up    | 20:48:39 | Established                    |
| <IP_ADDRESS> | node-to-node mesh | up    | 20:48:38 | Established                    |
| <IP_ADDRESS> | node-to-node mesh | up    | 20:48:40 | Established                    |
| <IP_ADDRESS> | node-to-node mesh | start | 20:48:36 | Active Socket: Host is         |
|              |                   |       |          | unreachable                    |
| <IP_ADDRESS> | node-to-node mesh | up    | 20:48:37 | Established                    |
| <IP_ADDRESS> | node-to-node mesh | up    | 20:48:37 | Established                    |
+--------------+-------------------+-------+----------+--------------------------------+

IPv6 BGP status
No IPv6 peers found.

@r0bj is <IP_ADDRESS> actually a running node that you expect to be up?  If it's not you probably need to delete it via calicoctl delete node
My first guess is that BIRD is waiting to program routes until it does a graceful restart and syncs with all its peers, but since it can't reach that peer it's hitting the full timeout before re-programming routes.

<IP_ADDRESS> is down, it's old decommissioned node. After I removed this node the whole process is much faster.
Thanks for explanation.


Cloudflare Page Cache Plugin for WordPress does not cache properly with W3TC

When the very popular W3 Total Cache's page cache (disk enhanced mode) is enabled a very common setting, the Cloudflare Page Cache Plugin header "x-HTML-Edge-Cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_   " is not added to the disk cached page. This results in the requests not being cached at the worker level since they don't see the proper header.  I verified this by turning off W3TC page cache and then seeing immediate caching and hits at worker the worker level whereas before nothing really appeared to be caching.

Could you try, this? In the CloudFlare Page Cache Plugin around line 48, you will see a line like the one below.
add_action( 'init', 'cloudflare_page_cache_init_action');
Could you try replacing it with something like this?
add_action( 'init', 'cloudflare_page_cache_init_action', PHP_INT_MAX );

Did you purge the W3TC cache after installing the Cloudflare page cache plugin? If not it is possible that an older version of the page is being served directly from disk (sometimes before it gets to php if it is using the Apache cache). I use W3TC on my test domain as well and it worked last time I checked but the cache does need to be cleared the first time.
Usually W3TC puts a banner across the top of the admin page when you install a new plugin recommending that the local cache be purged.

@ScottTravisHartley Does not seem to make a difference will test some more.
@pmeenan Multiple full W3TC purges since first installed a week or so ago.
So if I put Cloudflare in Development Mode and clear a page from the W3TC Cache and then reload it in not logged in browser, I can see the header "x-HTML-Edge-Cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_"  on the FIRST load of that page. However, when I hit F5 to reload that page again the header the cloudflare page cache plugin adds is gone. Could this be because the first time it is loading it is not in the W3TC page cache but the second time it is and the edge cache header has been stripped.....?

In the browser cache setting do you have the remove cookies option enabled? Also does it do the same when disk cache is set to basic as opposed to enhance?

Remove cookies is not enabled in browser cache.
So more testing, Cloudflare Development Mode on:
Test 1: Switching to Page Cache Disk: Basic, no change
Test 2: Turn W3TC Page Cache Off, and I see see "x-HTML-Edge-Cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_" everywhere on every page load.
Test 3: Turn W3TC Page Cache back ON, first F5 reload, I see header.  All subsequent reloads no header from the Cloudflare plugin.
So it is really looks like the Page Cache of W3TC is stripping the header out....

My guess is that the page cache is serving the HTML without ever hitting php and the headers can't get added. I have some thoughts on how to deal with it that should solve the problem (will implement them today):
Plugin - Change the plugin to always add the header. For logged-in users it would explicitly say "nocache". That way a missing header means either the plugin isn't installed or the page was a cached page served directly.
Worker - Change the worker to have a server-side list of default cookie prefixes to bypass and do a stale-while-revalidate for HTML that is in cache but without the header set (and when the request doesn't have one of the default cookie prefixes). That means it will serve the cached version of the HTML and asynchronously go back to the origin to update the cache.
In the normal case where the plugin is installed, page edits will still trigger a purge and there will be minimal downside (just no reduction in number of requests to the origin but they will be background requests for cache updates). If the plugin isn't installed then a stale copy of the page will be served once while the cache is updated.
If a user doesn't have the plugin installed AND updated the login cookie to use a different prefix then things could go sideways with cached copies of admin pages being saved.

The 3 commits from earlier today should enable the logic I described above (the plugin has been updated on wordpress.org as well so it should be available as an update).
Basically, if the headers aren't there then the edge will serve a stale copy and update the edge cache from the origin on every page view. If the plugin is enabled it should still purge the cache on any edits preventing stale content from ever being served.

Thank you. I really appreciate it. I will try to test this evening on a site with good traffic.

Only seeing a status of "Miss" after updating the plugin, worker script, and clearing.

OK, that's bizarre. Does it say "Miss, Refreshed" or just "Miss"? It shouldn't be possible to just straight-up miss but it might be tripping over something I didn't handle.
Any chance you can share a URL where it is live (privately to<EMAIL_ADDRESS>if you don't want the URL public)?

Working thanks! On an installed WordPress site, I am seeing the TTFB audit in Google Pagespeed report under 100ms for the root document many times!

@pmeenan Lately I see a very low amount of Hit ratio and cached % in the Cloudflare dashboard. I sue the workers KV and it's very low. On some applications, it's even as low as 5%. And for some 20-40% which is very low. Previously I could see a ratio of 97-99%. Have you checked the compatibility lately? Wordpress 5.2?
Never experienced this with the API and normal worker, and never in the first month of the KV.
@ScottTravisHartley and using WP rocket and the latest version of the streamer in workers KV, the HTML snippet plugin and Wordpress 5.2.
See bypass all the time when I check in dev tools

Here is my test blog on 5.2 and the HTML is being cached (and the analytics show a high hit rate).
If you check in dev tools, make sure to use an incogneto tab (to make sure there are no cookies) and uncheck the "bypass cache" check box in dev tools. Or you can run some WebPageTest tests back-to-back (to give the first round a chance to prime the cache) and check for the x-HTML-Edge-Cache response headers.
I have seen multiple reports of the same issue so something is definitely going on. Maybe try going into the workers editor, edit the script and resources without making any changes but re-saving the current settings. I'm wondering if something in the path "forgot" about the KV config as they get ready to take KV out of beta.

I checked in the incognito and disabled cache and see the Hit and version now. Might be I missed tick the disable cache or incognito and see the response headers.
https://tppr.me/GFyDw
But is there a conflict between the workers and the cache ratio dashboard in cloudflare? Since as you can see the significant drop it even looks like not even the static assets are delivered from the cache. And for the one with like 1-2% cache ratio we have not touched the site so it should trigger a flush every hour for it to be that low.
But none of the sites deliver a 90%+ anymore. I will try to open the workers script editor tomorrow and resave it. And let you know during the week if I see any improvements.

We recently changed -- fixed, really -- the way cache hit ratio is reported in the dashboard. Previously, all workers requests were incorrectly interpreted as cache hits, which was clearly wrong. Now, we decide cache hits based on the CF-Cache-Status header on the response. If your worker passes through this header, then it should be counted correctly. If you strip this header off then you'll see 0% cache hit rate.

@kentonv Many thanks for sharing the information. But it still does not make sense why we have 1-2% cache hits. All static should even if the worker doesn't work be cache and normal rates to be on 30-40% as per default in cloudflare. So how come we see such low numbers?
@pmeenan Is better to answer if the worker passes through this header.

Yes, the worker passes through the header unmodified for most requests and for cases where the response is pulled from the worker cache it explicitly makes sure it is set to CF-Cache-Status: HIT.  You should be able to verify the headers in the responses in dev tools and WebPageTest.

btw, if you want to try just passing the response through without explicitly setting it to HIT you can comment out this line: https://github.com/pmeenan/cf-workers/blob/master/streaming-optimizations/streaming-optimizations.js#L313

Yes it HIT but I see so low % cached resources in the cloudflare dashboard which is very strange don't you agree?
Thanks but made no changes to the cache hit ratio in the cloudflare dashboard
x-content-type-options: nosniff
x-html-edge-cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_
x-html-edge-cache-status: Miss, Cached
x-html-edge-cache-version: 112
x-kinsta-cache: MISS

And then browse and brows back
x-content-type-options: nosniff
x-html-edge-cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_
x-html-edge-cache-status: Hit
x-html-edge-cache-version: 112
x-kinsta-cache: MISS

but this is what I still see in my dashboard:
https://tppr.me/CqWWz
https://tppr.me/faOMq
Looks like it flushes every time while we have not manually flushed or triggered anything that would trigger flush, no comment functions on the site. Do not update plugins/wp/theme every day or hour.
worker:
https://tppr.me/VsrwL

Is the cache version increasing each time (currently 112)? That will let you know if it is explicitly flushing or if the problem is that it is being aged out of the Cloudflare edge cache prematurely.

each time I fetch the url? or if it resets if I flush the edge cache?

Without manually flushing, Next time you see x-html-edge-cache-status: Miss, Cached see if the version number also updated x-html-edge-cache-version: 112.
My guess is not, otherwise it would be a LOT higher than 112 at this point. The version number is how the page cache explicitly purges itself when content changes. If you see a cache miss after a while but with the same version number it is because it was evicted from cache by Cloudflare (not requested frequently or cache pressure), not because it was purged. If that's the case it may be worth opening a ticket with support to see why your content is being evicted.

btw, it's worth checking the CF-Cache-Status: header as well to make sure it is being populated since that's how the cache hit rate is calculated.

Ok, I understand let's check next week and see what numbers I see etc. I can trigger a save on the page to trigger an edge-cache flush next week as well to see.
Yes CF-Cache-Status: is HIT as well.
But you mean I should not worry about the low cache ratio in the Cloudflare dashboard?

Not saying not to worry, for sure. Just trying to get to the root cause of the low hit rate. My guess is that the worker is caching the page and using the cache but that the resources aren't actually kept in the Cloudflare edge cache for as long as requested (the worker caches everything for a year). My guess is that unless the resources are hit pretty frequently that Cloudflare is evicting them automatically.

Got it! Ok, but why would Cloudflare evicting them and for so short of time? You mean the resources are fetched and the traffic is too low? But Cloudflare cache headers are set to respect the origin server as well and as you say. The HTML edge cache is held it for 1 year.

If that ends up being the case then a Support ticket is probably the best way to prod for answers.

At cloudflare? Already have 5days without any reply. Just the automated answer based on the category you select of the ticket.

@pmeenan Can it be an issue by them sharing the same workers KV ID? I can not assign different ID's per site sharing the same name? Which potentially should be the right thing to do to not share the same and have individual containers.

@pmeenan Answer I got:

Hi there,

I would like to clarify a few things. The analytics app in the Cloudflare Panel is what we call HTTP Analytics and shows cache ratio for visitor <--> Cloudflare Cache.
This shows the Cache ratio between requests served from Cloudflare Cache and Origin (uncached). Up until the 8th May, this marked all requests to workers as cached, which was incorrect. From the 8th May, Cloudflare marked all requests to workers as uncached. This is because the initial request from visitor <--> Cloudflare isn't directly returned from cache, an additional request is made internally through your workers script. As this request requires additional processing, this counts as uncached. So, in terms of HTTP analytics, this counts as uncached but this doesn't mean the asset was served from origin, just that the worker returned the asset.
To find out whether the asset was served from Cache, you will need to look at Worker analytics, where I can see its around 30% cache hit. Here we are looking at the responses from the work subrequests, to see whether it was served from Cloudflare (cached) or origin (uncached).
As you are using Workers to cache everything (an approach which is not that common), you should ignore the HTTP analytics and focus only on Worker analytics.
Going back to the HTTP analytics, the reason you're seeing a small % of cached hits, is that these are not going through workers but our traditional caching flow.
I hope the above make sense and clarifies the issue.

@pmeenan See the logs from cloudflare below which tells me the worker is not working as intended.

I have checked our logs (1% sample data) for the last 7 days and these are the percentages of cache vs non-cached requests.

┌──requestPercentage─┬─cacheStatus─┐
│  70.48503611971104 │ unknown     │
│  6.191950464396285 │ miss        │
│  3.199174406604747 │ expired     │
│  19.09184726522188 │ hit         │
│ 1.0319917440660475 │ revalidated │
└────────────────────┴─────────────┘

unknown - means that 70% of the requests are being served from your origin.

@alriksson I think that "unknown" implies that Cloudflare did not consider the URLs to be cacheable. By default Cloudflare will only attempt to cache URLs that end in certain file extensions, but you can change this behavior with settings. See:
https://support.cloudflare.com/hc/en-us/articles/200172516-Which-file-extensions-does-Cloudflare-cache-for-static-content-
https://support.cloudflare.com/hc/en-us/articles/115000150272-How-do-I-use-Cache-Everything-with-Cloudflare-
Unfortunately @pmeenan is no longer at Cloudflare and I don't know anything about this worker, the plugin, nor Wordpress in general, so I don't have any particular advice I can give here.

@kentonv Yes but with this worker we would cache HTML and host other things locally and in the egde such a google fonts etc. So if it was without worker yes it would sound OKish but not with the worker. And we already do cache everything and HTML but with the worker so it can bypass admin and logged in.
Ok, but who owns this worker, @pmeenan or cloudflare?

I still don't think the response from support is accurate. I was under the impression that browser <-> Worker responses would be reported based on the CF-Status response header and if the workers return a response that was pulled from cache that it would correctly report in the top-level analytics as a cache hit.
If that was not the case then any site with a worker route that routes all traffic through the worker would show a zero % cache hit rate.
For example, this is the route configured for my WordPress test site:

I just ran a bunch of test traffic to it from WebPageTest and verified that I'm seeing CF-Cache-Status: HIT in the responses. 100% of the requests are being routed through the worker (in this case, the one that includes the HTML caching as well as font optimizations, etc). I'm seeing close to a 100% cache hit rate which is what you'd expect:

If it was behaving as support reported then it would be at 0% since every request is routed through a worker.
It is possible that you need a page rule to put the Cloudflare cache into "standards mode" where it checks the cacheability of every request and honors the cache-control headers that are set:

That said, if you are seeing CF-Cache-Status: HIT in the response headers then I'm assuming it is checking cache correctly already which is what made me think that the requests were aging out of cache.
Are there multiple domains covered by the same zone, maybe the misses are coming from other content than the HTML?
As far as ownership goes, that's kind of the point of it being an example and being open-source. Cloudflare owns the wordpress.com-distributed version of the plugin in the plugin gallery (because somebody has to) but the worker code is free for anybody to work on and contribute to. I'm happy to help understand what is going on and fix any issues that come up with the worker itself.
The behavior of the underlying cache and reporting UI though are outside of my control.

@pmeenan many thanks for the time you offset to answer this.
Regards the page rules, this should not be needed upon original to use the cache level > cache everything? You just suggested this and the origin cache control > on as an alternative solution, correct? It's super strange since everything used to work good and I saw what you just shared around 90-95% cache hit ratio.
We have e.g 1 account with 3 applications sharing the same zone since that's the way it should be set up no possibility to isolate them to unique workers? What I see is a better ratio of sites that have their own dedicated account and its own worker and workers kV. But it's different sites and projects but even they see a significant drop.
Patrick, can you email and I can maybe share more insights over email or chat? tobias.alriksson(@)gmail.com.

The big drop IS from a change. Previously 100% of the requests routed through workers showed as a cache hit. The change was SUPPOSED to show the actual cache status of requests that go through a worker.
The page rules are not an "alternative" solution, they go hand-in-hand and I strongly recommend doing it even without the worker. Both rules are needed (as part of a single page rule) to put Cloudflare's cache into "standards mode" where it operates like you'd expect a cache to operate.
Cache Everything: Name is a little confusing but this is really "evaluate all requests to see if they should be cached". Otherwise it only considers caching content based on the file extension (js, css, image extensions). I don't think this impacts the cache API the worker uses but it makes sense to always enable on every zone (only when the other flag is set).
Origin cache control: Says to "do whatever the server tells us to do in the cache-control and expires headers". Otherwise Cloudflare has default cache times that it uses depending on the content type.
The only reason you'd want to isolate the applications would be if one of them was causing the cache to purge on a regular basis. If they all use the same worker (and are all WordPress) then an update to any one of the sites will invalidate the cache for all 3 (which is fine if they are all mostly static). If you are using KV then it is possible to update the key name used to track the cache version to include the domain name in the key. That way all 3 sites would purge independently.
Feel free to email me (pmeenan @ webpagetest.org) but as much as possible 'd like to keep the discussion in an issue so it can be referenced by others later that may bump into the same issue.

The page rules are not an "alternative" solution, they go hand-in-hand and I strongly recommend doing it even without the worker. Both rules are needed (as part of a single page rule) to put Cloudflare's cache into "standards mode" where it operates like you'd expect a cache to operate.

I'm aware of the rule but I did not see that this was supposed to be added int he setup installation of the workers. But you recommend using this one to make sure it is caching HTML? The worker will still do the job with bypass on cookies etc? The worries are that we, of course, do not want to cache when logged in so it causes issues and cache WP adminbar. Which is why I never would use this page rule if the worker wouldn't still make it bypass the cookies like in cloudflare business.
The wp admin bar is too handy to remove, but if it still should bypass as normal when adding this page rule surely I will do it! Just good to be on the safe side but did not know it go hand in hand wiht the worker and works as expected with bypass when the rule is enabled.

Cache Everything: Name is a little confusing but this is really "evaluate all requests to see if they should be cached". Otherwise, it only considers caching content based on the file extension (js, css, image extensions). I don't think this impacts the cache API the worker uses but it makes sense to always enable on every zone (only when the other flag is set).

I agree with the naming convention here. We want Cloudflare to work as cache should work as you say. Will set it up when we know the workers still make the HTML cache bypass on logged in and synchronize work with the rule, can you confirm? "(only when the other flag is set)." what do you mean?

Origin cache control: Says to "do whatever the server tells us to do in the cache-control and expires headers". Otherwise, Cloudflare has default cache times that it uses depending on the content type.

Ok, but why would this be needed if we already have set Browser Cache Expiration to respect the existing headers on the origin? But even here you recommend setting this page rule?

The only reason you'd want to isolate the applications would be if one of them was causing the cache to purge on a regular basis. If they all use the same worker (and are all WordPress) then an update to any one of the sites will invalidate the cache for all 3 (which is fine if they are all mostly static). If you are using KV then it is possible to update the key name used to track the cache version to include the domain name in the key. That way all 3 sites would purge independently.

Hmm update a post/page or publish a new trigger the flush of the cache right? Then it can become an unnecessary flush for many sites that are more static and are not having a frequent content flow.
We use KV, so you mean I would create unique Kv namespace? But don't they have the be named as they are to sync and work with the workers script? EDGE_CACHE
= Wordpress Edge Cache
Or does it work to just change Wordpress Edge Cache to a unique per application? But the action in the workers EDGE_CACHE has to be kept to work with the script? Let me know an example. We, of course, want to keep the applications in one account but still would like their cache to be individual.

Feel free to email me (pmeenan @ webpagetest.org) but as much as possible 'd like to keep the discussion in an issue so it can be referenced by others later that may bump into the same issue.

Sure I just more want to share temporary access for inspecting and show website URLs which I prefer to send over private. But the issue I agree should be discussed here. So Conversation can still be in a github issue here but the confidential information should be kept private. Do you think this would be useful to share for further investigation?

@pmeenan Did you see my reply above?

@pmeenan Added the page rules to see if it change anything. I'm just worried this cause the frontend WP admin bar to be cached. But the worker should prevent this from happening even with the page rules?

Let's see in the next 24hours and more to see if it helps.

The only reason you'd want to isolate the applications would be if one of them was causing the cache to purge on a regular basis. If they all use the same worker (and are all WordPress) then an update to any one of the sites will invalidate the cache for all 3 (which is fine if they are all mostly static). If you are using KV then it is possible to update the key name used to track the cache version to include the domain name in the key. That way all 3 sites would purge independently

Would it be possible to set up and sort this, would be better even if the sites are more static than dynamic I want their edge cache to be treated individually.

@pmeenan Last 7 days:

Can not see any improvements after adding the suggested page rules for one of the applications in the shared workers KV.
None of the websites has updated plugins/themes/core or flushed cache manually.
I use Kinsta and just found out the cache lifetime by default is 1hour. This can be the trigger and root cause of the problem. The streamer and edge cache listen to the origin and then flush together with the nginx fastcgi cache module every our. Correct @pmeenan ?

Here a Kinsta, our servers use the nginx fastcgi cache module for page caching. And it is set to expire every 1 hour by default. However, clients can contact us if they need to increase or decrease this duration.

Latest update:
The issue persists, have the same issue with a ratio below 8%:
Cloudflares answer:
< cf-cache-status: DYNAMIC

Dynamic means any requests we are not attempting to cache and are being sent to your origin server. We do not consider HTML can be cached by default. On the page my colleague just tested livecasinokings.com/, it is HTML content with a cookie in the response. To cache HTML with a cookie, you will need to use "Cache everything" along with "Edge Cache TTL".

The Workers script should solve the Edge Cache TTL. If we set it up as a page rule we face the issue with not listening to the cookies to bypass when logged in, and then cache the frontend WP admin bar.
@pmeenan @350d

@alriksson Not sure if it helps you, but I tried to add the Page Rule Cache Everything. This is what actually creates the trouble for me. The admin bar gets cached and I can even go to the backend in incognito mode. Very bizarre. I removed the page rule and purged the CF cache and W3TC cache. I'm now to back to just using the worker KV without CF page rules. Caching Level is set to Standard and Browser Cache Expiration in CF is set to 4 hours (Caching menu in CF).
I have the same CF-Cache-Status: Dynamic in Google Chrome but from the TTFB it's clear that the worker does its job and the request doesn't hit the origin server.
So in general I'm paying more attention the Chrome developer tools and what I see in the response header than what Cloudflare says in their statistics.
I'm using W3 Total Cache and the only thing I'm not sure of, is how to set the right Browser Cache parameters in W3TC. According to the Cloudflare Page Cache Plugin the CF worker stores the pages for one year, by modifying the caching parameters and on client request still replaces it with the original header. So, like you, this would invalidate my stored pages after 1 hour no matter how long they can be stored in the CF edge cache.
@pmeenan

@neostar My problem is solved and I think it was something on CF's side since no change and suddenly it just worked as it should. They never told me but must have been some update on their side.
I dont know but what works for me is having the cache everything page rule. Have no issues with WP admin bar being cached when using the worker and the cache everything helper plugin.
But you´re very much right with the analytics nto being 100% reliable but it is working for me now form 5% to 70-90% cache ratio. Have browser cache to listen to origin.
I do not use W3TC using Kinstas plugin and their origin cache. Modified the nginx page cache to store the html cache for a couple of hours on origin as well.
But as I said for me it just suddenly started to work on all websites after a couple of weeks of no changed on origin/application/cloudflare settings. Kinsta did not change anything according to their engineers. Can not tell what made it work, just happy it do work ;)
Just make sure to place page rules in the right order since it's a hierarchy:

Closing this issue because the initial issue was resolved. Also the templates have moved over to the worker-sdk monorepo: https://github.com/cloudflare/workers-sdk/tree/main/templates.
if you're still experiencing issues feel free to open an issue there.


No expendItem() method in DxAccordionComponent

To help us process the issue more efficiently, please provide the following information:

Specify the version of the devextreme-angular and devextreme packages you are using.
devexteme version: 16.2.5
devextreme-angular version: 16.2.5

Specify the type of the issue (check one with "x"):
[ ] bug Report
[x] feature request
[ ] support inquiry

https://js.devexpress.com/Documentation/16_2/ApiReference/UI_Widgets/dxAccordion/Methods/
The expendItem() method exist in the document as above but not in DxAccordionComponent

Hello,
I believe you are referring to the expandItem method. It exists in the DxAccordionComponent and works correctly as you can see in the plunker example.


Fix openidConnect source regression from #16544

Unfortunately there is bug in #16544 meaning that openid connects aren't
being matched properly as the capitalisation in that PR is incorrect.
This PR changes the capitalisation back to what is expected.
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Codecov Report

Merging #16759 (28499e4) into main (3b2ed47) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main   #16759      +/-   ##
==========================================
+ Coverage   45.36%   45.37%   +0.01%
==========================================
  Files         760      760
  Lines       85483    85485       +2
==========================================
+ Hits        38776    38788      +12
+ Misses      40422    40411      -11
- Partials     6285     6286       +1

Impacted Files
Coverage Δ

services/auth/source/oauth2/providers_openid.go
53.33% <100.00%> (ø)

services/pull/temp_repo.go
30.76% <0.00%> (-3.85%)
:arrow_down:

services/pull/check.go
25.51% <0.00%> (-2.76%)
:arrow_down:

services/pull/patch.go
54.23% <0.00%> (-1.70%)
:arrow_down:

routers/web/repo/issue.go
38.29% <0.00%> (-0.05%)
:arrow_down:

modules/queue/workerpool.go
54.58% <0.00%> (+1.52%)
:arrow_up:

modules/log/event.go
62.50% <0.00%> (+1.85%)
:arrow_up:

modules/cron/tasks_basic.go
88.34% <0.00%> (+2.91%)
:arrow_up:

services/mirror/mirror.go
17.30% <0.00%> (+7.69%)
:arrow_up:

models/repo_mirror.go
69.56% <0.00%> (+10.86%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

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


Please create a "creation" section. There's tons of frameworks that let people CREATE things from scratch.

Hey @HackShitUp can you give us some examples?

Feel free to reopen this when you have suggestions


Bricks documentation

Documentation for the new Brick Grommet component.
PR for the Brick component can be found here: https://github.com/grommet/grommet/pull/288

Thanks


How to run this project?

Should I configure App Links to my own website?
And the url "https://d.android.com/topic/instant-apps" redirect to Google dev website , is this Instant App 's effect？

This repository contains multiple projects.
To run either, open the project in Android Studio and either install the app or run the instant version.
A more detailed explanation can be found in the README of the corresponding projects.


Import client as module

To satisfy this issue, the shared code between the server and client should be removed. This may require changing how the server is namespaced.

Closed with https://github.com/ga4gh/server/pull/1440


Howto for libraries of code that uses cppwinrt

My goal is to create a class library of routines that a cppwinrt application can use.
I would like to expose pure C++ objects like std::vector, and also things like
winrt::Windows::Security::Cryptography::Certificates:Certificate
Should I create a new project of:
DLL (Universal windows)
Static library (Universal windows)
Windows Runtime component (Universal windows)
or something else?
Then what project settings need to be changed to make this work?
Anybody done this yet?

Since C++/WinRT is standard C++, you're not limited in any way.  A few considerations to keep in mind however:

Unless you're exposing your own runtime classes, rather than just reusing system types, a WinRT component is not necessary for your library, and would only restrict its use,
The projection itself is versioned, based on the compiler.  You may want to assert that version in your library, to ensure compatibility.  See the "Mismatched component and base headers." assert in the authoring samples for reference.
Project settings like /std:c++17 and /await may be necessary to light up certain features in the projection
Availability of runtime classes that your library exposes is also subject to runtime context (desktop or store app), whether the class is dual_api_partition attributed, and so on.

Thanks, I'm trying a universal windows static library
Add in project properties, C++, command line, additional objects, /bigobj /await /std:c++latest /d1permissive-
Add in pch.h the includes for cppwinrt
Remove the lean and mean define: WIN32_LEAN_AND_MEAN
But then, perhaps in upgrading to 15063, I started to run into these errors with my original non library version.
1>------ Build started: Project: PivUwpLib, Configuration: Debug Win32 ------
pch.cpp
\prj_nosw\pivuwplib\pch.cpp(1): error C4996:
'winrt::Windows::Media::IMediaControl::~IMediaControl':
MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.
\cppwinrt-master\10.0.15063.0\winrt\impl\windows.media.1.h(58):
note: compiler has generated 'winrt::Windows::Media::IMediaControl::~IMediaControl' here
\prj_nosw\pivuwplib\pch.cpp(1): error C4996:
'winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton::IInkToolbarRulerButton':
InkToolbarRulerButton is deprecated starting from Windows 10 Creators Update.
Please use InkToolbarStencilButton going forward. For more info, see MSDN.
\cppwinrt-master\10.0.15063.0\winrt\impl\windows.ui.xaml.controls.1.h(1884):
note: compiler has generated 'winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton::IInkToolbarRulerButton' here
\prj_nosw\pivuwplib\pch.cpp(1): note: This diagnostic occurred in the compiler generated function
'winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton::InkToolbarRulerButton(winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton &&)'

Yes, unfortunately, the deprecation warnings are a compiler bug.  The
workaround is to leave them disabled in the pch with a WINRT_WARNING_PUSH.
Visual Studio 15.5 should correct many of these.
On Sep 23, 2017 11:44 AM, "andrew7webb"<EMAIL_ADDRESS>wrote:
Thanks, I'm trying a universal windows static library
Add in project properties, C++, command line, additional objects, /bigobj
/await /std:c++latest /d1permissive-
Add in pch.h the includes for cppwinrt
Remove the lean and mean define: WIN32_LEAN_AND_MEAN
But then, perhaps in upgrading to 15063, I started to run into these errors
with my original non library version.
1>------ Build started: Project: PivUwpLib, Configuration: Debug Win32
pch.cpp
\prj_nosw\pivuwplib\pch.cpp(1): error C4996:
'winrt::Windows::Media::IMediaControl::~IMediaControl':
MediaControl may be altered or unavailable for releases after Windows 8.1.
Instead, use SystemMediaTransportControls.
\cppwinrt-master\10.0.15063.0\winrt\impl\windows.media.1.h(58):
note: compiler has generated
'winrt::Windows::Media::IMediaControl::~IMediaControl'
here
\prj_nosw\pivuwplib\pch.cpp(1): error C4996:
'winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton::
IInkToolbarRulerButton':
InkToolbarRulerButton is deprecated starting from Windows 10 Creators
Update.
Please use InkToolbarStencilButton going forward. For more info, see MSDN.
\cppwinrt-master\10.0.15063.0\winrt\impl\windows.ui.xaml.controls.1.h(1884):
note: compiler has generated 'winrt::Windows::UI::Xaml::Controls::
IInkToolbarRulerButton::IInkToolbarRulerButton' here
\prj_nosw\pivuwplib\pch.cpp(1): note: This diagnostic occurred in the
compiler generated function
'winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton::
InkToolbarRulerButton(winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton
&&)'
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/cppwinrt/issues/244#issuecomment-331662088,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALyMI_r7LnqNwZoSWdQkAkTRayBaVbtAks5slVGogaJpZM4Phnf0
.

I removed [[deprecated in the cppwinrt headers to continue with the library attempt.
I did try WINRT_WARNING_PUSH,POP in my .h, but that did not fix the errors.  Perhaps I should have inserted them in the cppwinrt headers.

To be clear, you cannot end your pch with a WINRT_WARNING_POP, you must leave an open WINRT_WARNING_PUSH.  The compiler bug is due to deprecation warnings involving compiler generated functions (ctors and dtors) which happen at the end of the file, and 'outside' any efforts to disable them.

I'm not sure why, but I tried comparing the sample compile options. The compile option allows you to compile the SDL check to No (/sdl-).

Ah!  I wasn't reading carefully.  Yes, the SDL checks turn a deprecation warning (4996) into an error, which the warning disables have no effect upon.  I've already removed that option from our samples and suggest you do the same.

In my templates I make use of a pch.h precompiled-header, so the workaround for me was to disable C4996 in the pch.cpp:
#pragma warning(disable : 4996)
#include "pch.h"


Incorrect keyboard tabindex in icon/button group in top-right corner

Keyboard tab navigation into these buttons is confusing, partially reversed.

PR: https://github.com/readium/readium-desktop/pull/440


Feature/rtodling/gcm 1 12 4 tskinice realfix

Changes to HISTORY consistent w/ fixes to TSKIN over ICE ... now the fields come out correctly in both coupled and uncoupled versions.

Please see:
https://github.com/GEOS-ESM/GEOSgcm_GridComp/issues/544

@rtodling I have removed the changes to gcm_setup that modify n_split based on the c720 resolution. @wmputman would prefer these changes not be done for the gcm_setup. Perhaps fvsetup?

@rtodling I am pulling these changes in. However, I had to resolved many conflicts as this PR was issued prior to merging in GOCART-2G. I corrected the conflicts but noticed there are still several references to legacy GOCART. Some may be okay and some may cause issues. It may be good for @amdasilva or Ravi to look over these files once again


[SP-5058] Backport of PDI-18026 - Text File Output: 'Accept Field as …

…File Name' Functionality not Working for > 1 Row of Data (8.2 Suite)
cherry-pick of 58bec60
@RPAraujo

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'engine' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/steps/textfileoutput/TextFileOutput.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -0.4% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.evaluatetablecontent.JobEntryEvalTableContent

Branch Change: -1% :small_red_triangle_down:
Complexity Change: -1.1% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change: -0.6% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.simpleeval.JobEntrySimpleEval

Branch Change: -0.3% :small_red_triangle_down:
Complexity Change: -0.4% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -1% :small_red_triangle_down:
Complexity Change: -1% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -1.1% :small_red_triangle_down:
Complexity Change: -1.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Branch Change: -2.6% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Branch Change: -4.2% :small_red_triangle_down:
Complexity Change: -3.4% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change: -0.5% :small_red_triangle_down:

org.pentaho.di.trans.steps.textfileoutput.TextFileOutput

Complexity Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.ui.repository.pur.repositoryexplorer.model.UISecurityRole

Branch Change: -1.8% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.5% :small_red_triangle_down:

Note: The list of offending coverage changes extends beyond the presented results and was truncated to prevent reaching the comment size limit.


fix for #91

@chrismattmann
This trivial PR removes extraneous debug/sanity print statement, already present in Readme.
Thanks!

Coverage decreased (-0.1%) to 42.584% when pulling 8ac03b3cd5b8b2488935ce68c8d44ee673f26807 on harsham05:master into b83d9bdb38163e5e2fe055d11a022f78676c818b on chrismattmann:master.

thanks @harsham05 appreciate it. Coverage decreases when we remove comments b/c we reduce the overall LOC, without adding any new tests. Would be great to increase our test base.


PRIO 1 - iOS Verifier - Debug mode is not working - the selected country in debug mode is not remeberred

iOS Verifier 1.2.3(8)
iPad 11 pro

set Debug mode to ON
select level
select GERMANY
tap on DONE
go to settings menu

expected result:
debug mode ist set to ON and GERMANY is selected
actual result:
debug mode is set to ON but GERMNAY is not selected, debug mode is not working

retested successfully in release <IP_ADDRESS>(11)


add a field that hold binary execut args to ExecuteStmt

What problem does this PR solve?
relate to https://github.com/pingcap/tidb/pull/10884
just add a field to ExecuteStmt, this field will be runtime used in TiDB
What is changed and how it works?
add a field that hold binary execut args to ExecuteStmt
Check List
Tests

Unit test
Integration test

Code changes

N/A

Side effects

N/A

Related changes

N/A

This change is

LGTM


[Workflows]: Add a GitHub action, that downloads and runs dash-licenses

Description
We want to further automate the IP due diligence for our project. To achieve that, we should create a GitHub action,
that installs and runs the Eclipse dash-licenses tool.
The action should download the latest version of dash-licenses and install all its prerequisites.
It should then generate a temporary DEPENDENCIES file, like all of our repositories have included.
The action can then give hints on:

Is the current DEPENDENCIES file up-to-date
Are there restricted libraries included, that we need to create IP issues for (still manual step)
Are there even rejected dependencies, that we have to remove

As input the action could receive the dash-licenses input file, which is specific to every build tool. Additionally, the path to the DEPENDENCIES file, the up-to-date comparison is made against could be specified. This will allow repos with multiple DEPENDENCIES (i.e. separate frontend and backend) to use the same action.

Once this action is available, it could be used in workflows like introduced in #167


Style "how do I contribute" section

Right now it's pretty unstyled. Might be nice to make it fancier. Some inspiration:
https://summer.hackclub.com/
https://blair.hackclub.com/
https://github.com/hackclub/contribute/pull/28

@bellesea made the New here? section look amazing in https://github.com/hackclub/contribute/pull/28

@bellesea Do you think we should spruce up the styles of the "How to contribute" section still? Or do you like how it is now that the "New here?" section looks different? 🤔

@maxwofford

That could be cool! Let's do confetti after every check, because someone is taking a positive step closer.

one confettis , two confettis, six confettis, more!


Unable to set update interval.

Hi there,
I need the power information quicker than currently given by this great work.
Is there  a way to set an interval for the update?
I would need about 5 seconds interval.
Any ideas?

Hey,
currently it is set to 10s for all sensors. You have to modify the code at this line and set the value to your wished interval.
I hope this helps.

@teampyt any update on this?

Closed because no more feedback provided. Cant help then.
Feel free to open it again when needed.


No Workspace option

Hi,
I am having an issue with my vscode copy. It recently got updated to vscode 1.15.0. Now i have no workspace option like open workspace or close workspace or add folder to workspace in menu.

VSCode Version: 1.15.0
OS Version: Windows 10

It's only in the insiders build.
From the release notes:

Note: Multi-root functionality is only available in the Insiders build until we are confident enough that we can make it available in Stable. To try it out, grab our Insiders build from https://code.visualstudio.com/insiders.

Thankyou. Can u tell me what is the difference b/w insiders build and stable build?

Insiders is the beta release track


Added new pedestrian, cant spawn Actor

Im using carla 0.9.13
built it on Windows from Source
Python 3.7.9
I tried adding a new pedestrian, a wheelchair user.
To do that, I added the wheelchair first as a skeletal mesh in static
Content/
├─ Carla/
│  ├─ Static/
│  │  ├─ Pedestrian/
│  │  │  ├─ WheelchairUser_/
│  │  │  │  ├─ Meshes_/
│  │  │  │  │  ├─ Phsys_Wheelchair
│  │  │  │  │  ├─ SK_Wheelchair_Skeleton
│  │  │  │  │  ├─ SM_Wheelchair
│  │  │  │  ├─ MI/

Afterwards I created an Animation Blueprint that sits down the Generan skeletal mesh:
Content\Carla\Static\Pedestrian\Animations\WheelchairUser\ABP_WheelchairUser
Then I created a general BP for wheelchair users that is the BP_Walker with the wheelchair sm added and some additional functionalities, such as sitting down the pedestrian. This is inspired by the way 2-wheeled vehicles handle sitting.
Content\Carla\Blueprints\Walkers\BP_WheelchairUser
As a child of that I created BP_WheelchairUser_v1, which is data-only and assigns an ABP and Skeletal Mesh.
I added this BP to the WalkerFactory and gave it a generation value of 3, so I can call it easier
Now when I run a modified generate_traffic.py, that only spawns BPs with generation value 3 (so only wheelchair users).
Unfortunately this leads to following error:
ERROR: Unknown error while trying to spawn actor
in the UE Output log this looks as follows:
LogCarla: Spawning actor 'walker.pedestrian.0050' LogCarla: Warning: Failed to spawn actor 'walker.pedestrian.0050' LogCarla: Error: Actor not Spawned LogCarlaServer: Responding error: Unknown error while trying to spawn actor
Spawning normal pedestrians with generation value 2 doesnt lead to any problems.
Im guessing this is an error with the way I set up the new pedestrian. But I cant find any documentation about importing own walkers. Has anyone achieved this and can help me?

I noticed some more weird behaviour. I noticed that the BPs actually get spawned in the scene, although the error message is shown.
However they are not moving and are having the human model in wrong spot, while my created blueprint is posed correctly (when I just place it in the scene).
pose when spawned by script (with error message):

pose when placed in scene:

Hi, I'm not sure if I understood your issue.
The reason for the ABP is to detect which state the pedestrian is (idle, turning, walking running), and them play the according animation.
This is made at the EventGraph

Then at the Animgraph tab, is where the State Machine handles the animations.

Inside there is a Blendspace (BS_GEN3_v2), handles idle, walking, running animations,
The  right and left turn animations are handled outside of the Blendspace.
@MTeuberItemis   have you changed the animations at the AnimGraph and StateMachine?
Else , if I the issue is different , then tell me.

The approach you reviewed from the 2-wheels vehicles, uses a different method. Uses Blueprints to place the skeletal mesh in position, then the hands are constrained to the handlebar, and the feet have constrains too.
I've to review it, but if you can make some animations set I'd go for the Blendspace/StatMachine option.
Tell me if you want to try this option, or if getting some animations set might be a blocker.

I set up the ABP by copying the nodes from the 2WheelerABP and made the constraints work again. I for now just wanted to sit down the wheelchair user, without any additional animation. The sitting-downp-art of the ABP was working and I still dont really know, why they didnt move.
But I actually found a solution in the last days. Before I duplicated the BP_Walker and created a separate BP for all wheelchair bps as a base. Now I tried to modify the BP_Walker and give him functions that attach a wheelchair and sit him down based on a bool. I still had to adjust the ABP but it seems like carla is only excepting the original BP_Walker as a base for modified pedestrians

I couldn't review so much on this issue,
The riders are constarined to a bone that is placed at the bike's seat.
Have you constarined the pedestrian to a joint located at the seat?
And by the image you show, I don't think the arm constraints are working at the simulation.
I may be wrong, but maybe constraints are not working properlly

At the editor, can you see your bp broken like this one?
They're not really broken, it is because of the constraints.  This way you can tell they're working.
Hope this helps.

I managed to fix it now, by not using constraints, but just an animationBP that is sits the character in the right position. Its a bit more constrained to that one type of wheelchair, but works for now.


Brigadier is not supported by the server

I am getting this error at startup (https://hastebin.com/otezowoxeh.css) on one of my servers and it seems like its an error with tab complete? But idk if there is a way to bypass this or if i just need to ignore it. It doesnt seems to do anything to tab completion.
Plugin Version: 4.4.1
Server version: CraftBukkit git-TacoSpigot-bf023c7d (MC: 1.8.8) (Implementing API version 1.8.8-R0.2-SNAPSHOT)

LuckPerms uses Brigardier which is a Mojang library for the 1.13+ command suggestion.
It normally wouldn't load on versions older than 1.13.
Try updating to the latest dev build of LP.
If it still causes errors, try changing the server to PaperMC

Thanks that fixed the issue!


MAINT: backports of PRs for 1.0.0rc2

No need to review the code, just want to see the included commits and that CI is green.
Backports of:

gh-8019
gh-8001
gh-8010
gh-7978
gh-7973
gh-7962
gh-7960
gh-7952
gh-7948

Is gh-7978 important enough for backport?

Is gh-7978 important enough for backport?

It could be left out indeed, it deals with corner cases. That there was already a bug report for weight inconsistencies (gh-7953) and that gh-7978 tweaks behavior that's only introduced in 1.0.0 are arguments for backporting it. There's something to say for both choices.

@pv would you prefer to leave gh-7978 out?

I don't have a strong opinion, just asking to check.

The appveyor test failures are warning-only due to matplotlib, and
should be harmless. Ditto for "travis 3.5" run. The failures on "travis
2.7" for mstats are similarly warning-only (from numpy master).
These are fixed in master, but I'm not sure if you want to backport
warnings-only fixes.

Yes let's backport them - failing CI and warnings on running the test suites are both annoying, and the fixes look harmless.

That's two questions about gh-7978. Let's take it out, not important enough to take any risk on.

In it goes.

I think also https://github.com/scipy/scipy/pull/7986 would need
backport to get rid of the trsm failures (which break the wheel builds).

I think also #7986 would need backport to get rid of the trsm failures (which break the wheel builds).

done. it's getting annoying now:(

Okay, all green at last!


Changes to claimOwnership implementation

Description
Added minor changes to add lastModifiedTime field for PartitionOwnership objects.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


javax.net.ssl.SSLException: hostname in certificate didn't match:

Hello I setup artifacroty in a container like below
version: '2'

volumes:
    artifactory_data:
    artifactory_logs:
    artifactory_backup:

services:
    artifactory:
        image: mattgruter/artifactory
        container_name: artifactory-maven-repo
        hostname: artifactoryhost
        domainname: repositorys.example.com
        volumes:
            - artifactory_data:/artifactory/data
            - artifactory_logs:/artifactory/logs
            - artifactory_backup:/artifactory/backups
        environment:
            - VIRTUAL_HOST=repositorys.example.com,www.repositroys.example.com
            - VIRTUAL_PORT=8080
            - LETSENCRYPT_HOST=repositorys.example.com,www.repositroys.example.com
            -<EMAIL_ADDRESS>
networks:
  default:
    external:
      name: frontend-network

I also have some other services with an similar script up and running. All subdomain  services are reachable but when I try to get publish a repository to my artifactory service, gradle gives me the following error:
javax.net.ssl.SSLException: hostname in certificate didn't match: <www.sub.domain.online> != <www.sub1.domain.online> OR <www.sub2.domain.online> OR <www.sub3.domain.online>

That looks a lot like a lack of SNI support in the client app you are using (gradle) : https://github.com/gradle/gradle/issues/1868

Yes this is right.


Reset function is not working properly

Hi,
I found out something is not working properly with the reset function.
The scenario is:

create a static memory;
allocate some buffers inside it;
call the reset function;
allocate more buffers inside the static memory
When you try to allocate other buffers with RANDOM_FIT after reset, it is possible to get into a null pointer because "number_of_free_buffers" contains the same value that it had before calling the reset function.

The easy fix that I found is to set this counters to default value after setting the buffer pointers to null in the intern_reset function.
Regards,
Marius

Hi Marius!
Thank you for reporting this issue.
Your suggested fix makes sense. When removing all buffers from the static buffers we also need to set the values to "number_of_free_buffers" to initial value.
Best regards!


Made Lua.get return None if the value is nil, even if the type being …

…casted to has a value for nil
This change is slightly more breaking, since it changes behaviour instead of adding.
This is the second concern in #66.

Thanks!
Could you also change into_get, and get/into_get in lua_tables.rs?

The read_nil test was broken by this change, but I'm not entirely sure how to remove it, since it is in a different branch.

Okay that either worked or broke everything.

Thanks

Could you publish a new version on crates.io. I have a crate that depends on this feature and I can't figure out how to use this package directly from git.


Running the command results in Class "Spatie\Enum\Enum" does not exist.

Package version: 2.1.7
Laravel version: v10.1.5
As stated in the description, php artisan typescript:transform results in Class "Spatie\Enum\Enum" does not exist.
I'm getting this error after putting the @typescript annotation on a Laravel Notification class. Without the annotation the command simply outputs and empty table.

I made another attempt to execute the transform without having to use the command and got a proper error stack trace as a result:
   ReflectionException

  Class "Spatie\Enum\Enum" does not exist

  at vendor/spatie/typescript-transformer/src/Transformers/SpatieEnumTransformer.php:18
     14▕     }
     15▕
     16▕     public function transform(ReflectionClass $class, string $name): ?TransformedType
     17▕     {
  ➜  18▕         if ($class->isSubclassOf(Enum::class) === false) {
     19▕             return null;
     20▕         }
     21▕
     22▕         return $this->config->shouldTransformToNativeEnums()

      +6 vendor frames
  7   app/Console/Commands/PublishEventTypesCommand.php:51
      Spatie\TypeScriptTransformer\TypeScriptTransformer::transform()

      +13 vendor frames
  21  artisan:35
      Illuminate\Foundation\Console\Kernel::handle()

Fixed by changing the default SpatieEnumTransfomer to EnumTransformer. I don't think this package should use a transformer that requires another package to be installed as a default config value.

Yeah, I agree with you. But this requires a major update. We're currently working on the next version of typescript-transformer and that should remove the spatie enum transformer and replace it with the native enum transformer.
That being said, I've tagged v2.2 with the native enum transformer before the spatie one. That should already fix the problem you we're having.

In a newly created Laravel 11 project, I am still experiencing this issue. It just says Class "Spatie\Enum\Enum" does not exist and no traces at all.  The following is how I have ordered my transformers in the typescript-transformer config file:
'transformers' => [
        Spatie\LaravelTypeScriptTransformer\Transformers\SpatieStateTransformer::class,
        Spatie\TypeScriptTransformer\Transformers\EnumTransformer::class,
        Spatie\TypeScriptTransformer\Transformers\SpatieEnumTransformer::class,
        Spatie\LaravelTypeScriptTransformer\Transformers\DtoTransformer::class,
        Spatie\LaravelData\Support\TypeScriptTransformer\DataTypeScriptTransformer::class,
    ],

What could I be doing wrong? This happens when I add typescript notation to data classes like in the following example:
<?php

namespace App\Data;

use App\Enums\AddressType;
use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

/** @typescript **/
class AddressData extends Data
{
    public function __construct(
        public ?int $id,
        public AddressType $type,
        public string $street,
        public string $city,
        public ?string $state,
        public string $country,
    ) {}
}

If I remove the typescript notation it works without error, only producing types for enum classes, no data classes.
<?php

namespace App\Data;

use App\Enums\AddressType;
use Spatie\LaravelData\Data;
use Spatie\TypeScriptTransformer\Attributes\TypeScript;

class AddressData extends Data
{
    public function __construct(
        public ?int $id,
        public AddressType $type,
        public string $street,
        public string $city,
        public ?string $state,
        public string $country,
    ) {}
}


what time will u release the codes or pretrained model ?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@David19970306 its released already no weights


Bluetooth: Controller: Fix overflow in inputs to LL_ASSERT_OVERHEAD

Fix possible overflows in ticks_at_event and ticks_at_start
values that are provided as inputs to LL_ASSERT_OVERHEAD
check implementation.
Relates to commit https://github.com/zephyrproject-rtos/zephyr/commit/96c076b9c12dd49647509046b830b4a503bc807f ("Bluetooth: Controller: Add
LL_ASSERT_OVERHEAD define").
Use ticker_ticks_diff_get() in resume_cb ticks_to_expire
calculations.

These changes do not seems fix any reported issue, its good to have change. But closing it due to lack of practical justification.


Issues installing on Slackware 14.2 x64

I get error:
===> Testing: Readline:ver<0.0.2>:auth<github:drforr>  Failed test 'initialize'  at t/02-base.t line 10  Cannot locate native library 'libreadline.so': /usr/lib64/libreadline.so: undefined symbol: UP
And more of them, very similar.
I check for mentioned in error file with:
$ ls -l /usr/lib64/libreadline.so lrwxrwxrwx 1 root root 16 Jan 17  2017 /usr/lib64/libreadline.so -> libreadline.so.6
So I do not know how to fix that.

Would this fix it?
$ zef install https://github.com/nxadm/perl6-readline.git
If so, it's the same as #22.

That gives similar error:
 Failed test 'initialize'  at t/02-base.t line 10  Cannot locate native library 'libreadline.so.7': libreadline.so.7: cannot open shared object file: No such file or directory
I really do not have version 7:
find /usr/ -iname "libreadlin*" /usr/lib64/libreadline.so.6.3 /usr/lib64/libreadline.so /usr/lib64/libreadline.so.6 /usr/lib64/libreadline.so.5 /usr/lib64/libreadline.so.5.2

Closing as the Perl library now checks /usr/lib64 as well as /lib/x86_64-linux-gnu for libreadline-* versions and picks the highest one it finds.


Edit deployment text in README

Deployment text instructs developer to push gem to Rubygems.  Should be reviewed and altered.

fixed


fix(typescript): don't hardcode values in lua table

This started as an attempt from me to change the shiftwidth value for .js files in order for the tsserver to format the files using the new value.
However, that didn't seem to work. I tried to make the change both in after/ftplugin/javascript.lua and with an auto command on FileType/BufReadPost events. None of them worked, tsserver continued to format with the value of shiftwidth it would read from options.lua. I didn't want to change the top-level value of shiftwidth in options.lua (as I generally prefer it that way for the rest of my LazyVim usage). The other way would be to manually override the values of tsserver format settings in my personal lspconfig configuration.
My first attempt (first commit) was to change the opts into a function, so that the values wouldn't be evaluated when the module loaded, but instead defer the evaluation until lspconfig loaded.
That was successful at first glance, when I noticed that although the auto commands would work as expected, the after/ftplugin files still wouldn't. Changes in settings would only take effect when invoking Neovim with args (thus LazyFile would be delayed executed on User event), but not when invoking Neovim without args (LazyFile would then be aliased to BufReadPost according to the docs).
Further trying to bisect the awkward behavior for after/ftplugin/javascript.lua with and without args, I found out that commenting out the indentSize in tsserver format settings, allowed formatting correctly based on shiftwidth no matter where it was set. Trying to figure out this behavior led me to this comment in conform's repo which stated that LSP servers are aware of the tabsize and further digging led to these lines in Neovim code, which seems to back up the user's claims in the conform's issue that I had found.
So, my final attempt (2nd commit) was to simply remove the format settings from Typescript extra and let tsserver figure out the correct tabsize from shiftwidth that the user is setting. This is the commit where Folke introduced this change, but I could not understand the reason why (from the message of the commit or that it wasn't really linked to any issue that might solve a problem), after the new things that I learned. Of course, I might be missing something.
Huge shoutouts to @abeldekat, who helped me through this endeavour (he was the one who pointed out to me the opts should be a function, as due to my poor Lua knowledge I thought that using closures was a mean to defer requires, so that parsing error from lazy.nvim could be avoided, never thought I could also apply it to defer the evaluation of values until plugin loads and he also was the one that found about uncommenting the setting in the extra would allow tsserver to format correctly and the piece of code in Neovim where that was happening).
@folke Sorry for the lengthy description, just wanted to properly explain the reasons behind my proposal for this PR.

I also just bumped into this.

let tsserver figure out the correct tabsize from shiftwidth that the user is setting

I believe it's actually Neovim that's telling tsserver these settings according to LSP specs.
But perhaps due to some historical reasons, convertTabsToSpaces and indentSize take precedence over insertSpaces and tabSize respectively.
We can still have a default tabSize FWIW, since it exists in both FormattingOptions and EditorSettings.

Yes, it is Neovim that is telling the LSP servers of these settings, as noted both by your first link and the link I provided in my first post.
The problem from my investigation seemed to derive from the application of LazyFile being invoked too late or correctly in time for the settings to take effect, when the user set the shiftwidth option in an after/ftplugin file. When setting the option with an autocommand, it correctly respected the user's setting when invoking Neovim both with args and without args.
Removing the settings from tsserver completely was the only solution I could find that the user's setting of shiftwidth in both an autocommand and after/ftplugin/ files would be respected. If someone has a better solution for this, I would definitely appreciate some input that I might have missed.

Sorry I overlooked your link (well, it was a long post as you mentioned :P).

The problem from my investigation seemed to derive from the application of LazyFile being invoked too late or correctly in time for the settings to take effect, when the user set the shiftwidth option in an after/ftplugin file. When setting the option with an autocommand, it correctly respected the user's setting when invoking Neovim both with args and without args.

I think that's because the tsserver opts is currently written as a plain table, so it's evaluated as soon as the file is read, before your other stuff like ftplugins.
You can make it (somewhat) work while still keeping all the default indent configs: simply change it to a callback: (see at the bottom of the comment). Now opts is only evaluated when lazy.nvim loads lspconfig, and that's usually after ftplugins.
But I really don't think this is how things should work, at least not in Neovim. And if we consider projects with mixed indent styles, even so. These default settings should be interpreted as 'enforcing these indent rules in the workspace' instead of fallbacks.
diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua
index 4f53ae8..6c6483e 100644
--- a/lua/lazyvim/plugins/extras/lang/typescript.lua
+++ b/lua/lazyvim/plugins/extras/lang/typescript.lua
@@ -12,63 +12,65 @@ return {

   -- correctly setup lspconfig
   {
     "neovim/nvim-lspconfig",
-    opts = {
-      -- make sure mason installs the server
-      servers = {
-        ---@type lspconfig.options.tsserver
-        tsserver = {
-          keys = {
-            {
-              "<leader>co",
-              function()
-                vim.lsp.buf.code_action({
-                  apply = true,
-                  context = {
-                    only = { "source.organizeImports.ts" },
-                    diagnostics = {},
-                  },
-                })
-              end,
-              desc = "Organize Imports",
-            },
-            {
-              "<leader>cR",
-              function()
-                vim.lsp.buf.code_action({
-                  apply = true,
-                  context = {
-                    only = { "source.removeUnused.ts" },
-                    diagnostics = {},
-                  },
-                })
-              end,
-              desc = "Remove Unused Imports",
-            },
-          },
-          settings = {
-            typescript = {
-              format = {
-                indentSize = vim.o.shiftwidth,
-                convertTabsToSpaces = vim.o.expandtab,
-                tabSize = vim.o.tabstop,
+    opts = function(_, opts)
+      return vim.tbl_deep_extend("force", opts or {}, {
+        -- make sure mason installs the server
+        servers = {
+          ---@type lspconfig.options.tsserver
+          tsserver = {
+            keys = {
+              {
+                "<leader>co",
+                function()
+                  vim.lsp.buf.code_action({
+                    apply = true,
+                    context = {
+                      only = { "source.organizeImports.ts" },
+                      diagnostics = {},
+                    },
+                  })
+                end,
+                desc = "Organize Imports",
               },
-            },
-            javascript = {
-              format = {
-                indentSize = vim.o.shiftwidth,
-                convertTabsToSpaces = vim.o.expandtab,
-                tabSize = vim.o.tabstop,
+              {
+                "<leader>cR",
+                function()
+                  vim.lsp.buf.code_action({
+                    apply = true,
+                    context = {
+                      only = { "source.removeUnused.ts" },
+                      diagnostics = {},
+                    },
+                  })
+                end,
+                desc = "Remove Unused Imports",
               },
             },
-            completions = {
-              completeFunctionCalls = true,
+            settings = {
+              typescript = {
+                format = {
+                  indentSize = vim.o.shiftwidth,
+                  convertTabsToSpaces = vim.o.expandtab,
+                  tabSize = vim.o.tabstop,
+                },
+              },
+              javascript = {
+                format = {
+                  indentSize = vim.o.shiftwidth,
+                  convertTabsToSpaces = vim.o.expandtab,
+                  tabSize = vim.o.tabstop,
+                },
+              },
+              completions = {
+                completeFunctionCalls = true,
+              },
             },
           },
         },
-      },
-    },
+      })
+    end,
   },
   {
     "mfussenegger/nvim-dap",
     optional = true,

@Frederick888
That's what I did in my first commit. Changed the opts into a closure. The problem however still remained when setting the option in the after/ftplugin files. I explained everything in detail about the steps I took in my initial post. According to my understanding the after/ftplugin are being sourced after lazy.nvim loads the plugins.

Thank you for the elaborate explanation. I wasn't aware that Neovim always passes formatting options based on the actual settings.
I vaguely remember in the past, there were formatting issues with snippets coming from completions.
That's probably why I added those settings. But to be fair, that might have just been a limitation of tsserver snippets (them not being formatted correctly).
So I'll merge this for now.
Thanks!


[RFC] Hello Vite

Hello @mobu-of-the-world/maintainers , this pull request aims to migrate this project's build tool from react-scripts (= create-react-app including Webpack) to Vite.
Motivation
What's Vite?
First, Vite is a build tool for frontend JavaScript applications. You must know Webpack, Parcel, Rollup etc. Vite follows the genealogy.
It uses esbuild for a development web server so that it makes quite faster server bootstrap and HMR. Plus, it uses Rollup for a production build.
Why Vite?
Webpack and create-react-app are not bad tools even in 2022, I think. But they're just not bad, and not great. In 2022, there's happening another paradigm for JS build. That's the Native ESM based build. See Why Vite? in the public document.
The following depicts the core difference between 2 paradigms. Our good old webpack, rollup, parcel are the upper one, and Vite (technically, esbulid) and snowpack belongs to the lower.

Vite's momentum
Vite is the most satisfying build tool in the State of JS 2021 survey. (I feel it's a bit strange to treat Vite / esbuild / Rollup in the same line since Vite includes esbuild and Rollup, though.)
https://2021.stateofjs.com/en-US/libraries/build-tools

Why this project should use Vite?
...
To be honest, there's no strong pressure to adopt Vite in this project since Vite brings out its power in a relatively bigger project than this one.
But I assume mobu maitainers have a kind of challenging spirit to try new things. So I brought the very new thing that may interest you. I'm looking forward to hearing your opinion on this.
Scope
Just improving the developer experience. No influence on users.
Changes
I mostly followed the procedure written in https://darekkay.com/blog/create-react-app-to-vite/.

@ohbarye
Thank you for your great suggestion! Please let me check!

It works...! Brazing fast to start dev server...!

I don't see any obstacle to use Vite for mobu. I love it!
@kachick, hey, how do you think?

@ohbarye
I resolved conflict that is caused by the yarn.lock, by merging main branch. Thanks.

Let's merge it. Let's give it a try!

Thank you @pankona san!
I hope this change could brow the mobu team's mind. 💨

Thank you for integrated the good tool!
Few month ago, I and @pankona ojisan had tackled to integrate Vite into another 🍝 webpack project and both givem upped. Your power > pankona + kachick 🤣

Don't flatter me! 😄
I hope also my recent article would help your project's success!


Fix deps with cargo test --all and doctests

This commit fixes cargo test --all with the way we ship libraries to rustdoc --test. I'm... not entirely sure what the previous incarnation was doing but
the current organization is to interpret compilation.libraries as a mapping
from a package to the list of crates it needs to link to test.
This updates the support in cargo_rustc/mod.rs to create the map appropriately
and tweaks the loop in cargo_test.rs as well.
Closes rust-lang/rust#39879

r? @brson
(rust_highfive has picked a reviewer for you, use r? to override)

@bors r+

:pushpin: Commit eb17a88 has been approved by brson

:lock: Merge conflict

@bors: r=brson

:pushpin: Commit 4ecef02 has been approved by brson

:hourglass: Testing commit 4ecef02 with merge 994ed06...

:sunny: Test successful - status-appveyor, status-travis
Approved by: brson
Pushing 994ed063a6ce4a2d0d673ebf5183e33644480d14 to master...


Fix for spaces in file paths

This patch fixes an issue where the tool would not work if the preferences file or the current .scala file path contained spaces

Thanks @daniel-centore


Migrate tests - DistanceInKMAtThresholds

Building on top of #1815 this makes the translation of tests to merge into branch of #1714. When former is merged, will bring this change into the tests branch.

Will incorporate this into tests PR now that #1815 is merged.


imbridge: try switching gitter to matrix

The discord <-> gitter bridge dies from time to time until restarted.
Try moving to matrix, where gitter channels are also available. Maybe that is more stable.
https://github.com/42wim/matterbridge/wiki/Section-Matrix-(basic)

done in 1897bca32e2d58f7c9930c79ff


get a error message of ##'lber.h' file not found## when I build to iOS

I git clone the cpr and generate a Xcode project, and then I can build successful in macOS platform, but when I change the support platform(in Xcode build settings menu) to iOS, and build again, get a 'lber.h' file not founderror...
in the ldap.c file:
#ifdef USE_WIN32_LDAP           /* Use Windows LDAP implementation. */
# include <winldap.h>
# ifndef LDAP_VENDOR_NAME
#  error Your Platform SDK is NOT sufficient for LDAP support! \
         Update your Platform SDK, or disable LDAP support!
# else
#  include <winber.h>
# endif
#else
# define LDAP_DEPRECATED 1      /* Be sure ldap_init() is defined. */
# ifdef HAVE_LBER_H
#  include <lber.h>  // 'lber.h' file not found
# endif
# include <ldap.h>
# if (defined(HAVE_LDAP_SSL) && defined(HAVE_LDAP_SSL_H))
#  include <ldap_ssl.h>
# endif /* HAVE_LDAP_SSL && HAVE_LDAP_SSL_H */
#endif

@whoshuu when I modify like this, then I got a new error with ldap.h
#ifdef USE_WIN32_LDAP           /* Use Windows LDAP implementation. */
# include <winldap.h>
# ifndef LDAP_VENDOR_NAME
#  error Your Platform SDK is NOT sufficient for LDAP support! \
         Update your Platform SDK, or disable LDAP support!
# else
#  include <winber.h>
# endif
#else
# define LDAP_DEPRECATED 1      /* Be sure ldap_init() is defined. */
# ifdef HAVE_LBER_H
#    if TARGET_OS_MAC
#        include <lber.h>
#    endif
# endif
# include <ldap.h>      // ldap.h file not found
# if (defined(HAVE_LDAP_SSL) && defined(HAVE_LDAP_SSL_H))
#  include <ldap_ssl.h>
# endif /* HAVE_LDAP_SSL && HAVE_LDAP_SSL_H */
#endif

Is this still a problem?

Closing this for inactivity.
Feel free to reopen if this is still a problem.


Proto3 repeated field not packed by default

Message definitions
proto3_test.proto:
syntax = "proto3";

package test;

message Test3Int32RepDefault {
    repeated int32 repeated_int32 = 1;
}

message Test3Int32RepPackedTrue {
    repeated int32 repeated_int32 = 1 [packed = true];
}

Compiled via:
$ protoc --version
libprotoc 3.0.0
$ protoc --go_out=. *.proto

Result
proto3_test.pb.go:
// ...
type Test3Int32RepDefault struct {
	RepeatedInt32 []int32 `protobuf:"varint,1,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
}
// ...
type Test3Int32RepPackedTrue struct {
	RepeatedInt32 []int32 `protobuf:"varint,1,rep,packed,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
}
// ...

The repeated field with default packed setting compiles to a non-packed field although it should be packed by default.

The bugs seems points to  https://github.com/golang/protobuf/blob/545732fb9671625a62a399186a066c4f8b942bc5/protoc-gen-go/generator/generator.go#L1554
As Proto3 specified, repeated fields of scalar numeric types use packed encoding by default. We should add some check here.
** This is an urgent bug because the official Protobuf Javascript implementation doesn't read tag to detect binary is packed or not. **
Both declared proto3 syntax.
repeated int64:

repeated int64 [packed=false]:

Thanks for your comment. Yeah, I've also submitted an issue regarding the JavaScript parser which was labelled as a bug.
For now I'm explicitly defining the packed option as a workaround but I hope both issues will be fixed eventually.

I made a pr https://github.com/golang/protobuf/pull/203 to fix this problem. @cygery give it a try.


⚠ Bofrost.at has degraded performance

In 46c9e9b, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2103 ms

Resolved: Bofrost.at performance has improved in 93218dc after 31 minutes.


Tab

On the orginal dynmap, people are sorted by their suffix in the tab. If you have [group1] name, [group1] name2 than all the group 1’s are under eachother and after that all people with group 2 etc etc
in this overlay, all the names are mixed..
how to fix?

Sorry for the delay in looking at this.
Do you have a link to a map that has this issue (with or without LiveAtlas is fine)? There's likely a specific configuration that LiveAtlas doesn't support correctly here.

Closing this for now as not had a reply. Feel free to reopen if you're still encountering the issue and have more information.


What is this?

Please add a description

This is Klause's finest! Any more information is strictly confidential.


Possible conflict with the Dynamic Prompts extension

Reported on Reddit:
https://www.reddit.com/r/StableDiffusion/comments/14jl0er/ann_clonecleaner_a_new_extension_for_auto1111_to/jpnnfof/

I kind of like Dynamic Prompts saving the list of generated files prompt as csv.
I also think it might be clashing, but so far I can't get CloneCleaner to work, the UI is locked.

Duplicate of #1, closing in favor of that issue.


Add adaptive theming for the search data control

The search data control is does not have adaptive theming yet. Ideally, we need to refactor it as a class.

Refactor the search_data_gui() function as a class. It can use adative theme now.


[PySpark] Fix tests with Python 2.6 in 0.9 branch

[PySpark] [SPARK-2954] [SPARK-2948] [SPARK-2910] [SPARK-2101] Python 2.6 Fixes
- Modify python/run-tests to test with Python 2.6
- Use unittest2 when running on Python 2.6.

Author: Josh Rosen<EMAIL_ADDRESS>Closes #3668 from davies/port_2365 and squashes the following commits:

MLlib require numpy 1.7+

Test build #25302 has started for   PR 3968 at commit ac4a353.

This patch merges cleanly.

Test build #25302 has finished for   PR 3968 at commit ac4a353.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/25302/
Test PASSed.

nice this is actually passing tests! I'm merging this thanks @davies

Can you close this PR now? It's already merged.

merged，thanks!