Add option for character name colors in chat & move coloration to clientside

About the PR

Provides the option to remove chat name color, and changes the coloration to be applied clientside.
Replaces #24562 after a rebase gone wrong.
Why / Balance

Accessibility request.
Technical details

Adds a [Name] tag to the speech text wrapper, that then is used to inject color formatting clientside.
Injection/extracting the string uses functions from SharedChatSystem.cs
Also solves the issue in #24606.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Added setting to toggle chat name color in Options.

If it's being added as an accessibility request, would it not be better to put under the accessibility options section?

If it's being added as an accessibility request, would it not be better to put under the accessibility options section?

IMO it fits more in line with the other options in the Speech category, as they too change the visuals of the chat system by reducing clutter. The only thing that doesn't really fit is that it's called "Speech"; maybe renaming the category to "Chat" is a better option?

Considering there is high demand for the feature at the moment and the discussion is now about which options category it would fit best in, would it be possible to merge the PR as-is and if the discussion finds that category needs to change that gets done in a future PR?

im not colourblind but i still need this to be able to read chat

Considering there is high demand for the feature at the moment and the discussion is now about which options category it would fit best in, would it be possible to merge the PR as-is and if the discussion finds that category needs to change that gets done in a future PR?

Put it in both categories. This seems to become the common practice in other games as well and I see no problem with this. Both categories are relevant.

Considering there is high demand for the feature at the moment and the discussion is now about which options category it would fit best in, would it be possible to merge the PR as-is and if the discussion finds that category needs to change that gets done in a future PR?

considering the purpose, just place the option under 'accessibility' for now. if/when that becomes its own options menu tab, it should be moved there anyway.


Better package environment search?

This is somewhat related to, but different from, #45.
As I understand it, coc-julia is currently configured so that LanguageServer.jl checks the current working directory for a Manifest.toml file from which it indexes the packages in the current environment. This means, for instance, that the Julia LS will not find this file if you are in a subdirectory of your project folder that contains the manifest. Moreover, it seems that it ignores Project.toml files, even though Manifest.toml can be generated from the project file, which is also more common than the manifest file. (For example, Manifest.toml is an entry in the template .gitignore for Julia projects.)
Is it possible for coc-julia to employ slightly more sophisticated behaviour regarding this? For example, it could check for Project.toml files as well, and do that search in the parent directories of the working directory. As a fallback, it could check $JULIA_DEPOT_PATH/environments for directories containing these files. (If this is not set in the user's shell, one can recover this in Julia using Base.DEPOT_PATH. The first directory in this path on a nix-like OS is $HOME/.julia.)
Is this something that can be implemented in coc-julia? I remember reading that the standard config for the built-in nvim-lsp does something like this, so it seems like it's something configured at the plugin-level. (I can't find the GH issue/PR where I read it, unfortunately, but I'm trying to track it down.)
Thanks again for your time.

I've had a closer look at what coc-julia does when one opens a .jl file. It seems it starts Julia with https://github.com/fannheyward/coc-julia/blob/master/server/main.jl, and passes some command-line arguments to LanguageServerInstance, which sets the project environment.
You currently have it set to only use the current working directory, which isn't ideal, I think.
However, it seems using Manifest.toml instead of Project.toml is a limitation of LanguageServer.jl, so probably should be fixed there. I'll follow that part of this issue there.

Should be fixed in v0.6.0 with #67 , please give it a try.


Terminating a working actor causes crash

^CI, [2012-02-18T19:51:35.056764 #62323]  INFO -- : Shutting down
I, [2012-02-18T19:51:35.066260 #62323]  INFO -- : Pausing 5 seconds to allow workers to finish...
E, [2012-02-18T19:51:43.739123 #62323] ERROR -- : Sidekiq::Manager crashed!
Celluloid::DeadActorError: attempted to call a dead actor
/Users/mperham/.rvm/gems/ruby-1.9.3-p125@sidekiq/gems/celluloid-0.8.0/lib/celluloid/responses.rb:22:in `value'
/Users/mperham/.rvm/gems/ruby-1.9.3-p125@sidekiq/gems/celluloid-0.8.0/lib/celluloid/actor.rb:183:in `handle_message'
/Users/mperham/.rvm/gems/ruby-1.9.3-p125@sidekiq/gems/celluloid-0.8.0/lib/celluloid/actor.rb:130:in `run'
/Users/mperham/.rvm/gems/ruby-1.9.3-p125@sidekiq/gems/celluloid-0.8.0/lib/celluloid/actor.rb:89:in `block in initialize'
/Users/mperham/.rvm/gems/ruby-1.9.3-p125@sidekiq/gems/celluloid-0.8.0/lib/celluloid/thread_pool.rb:46:in `call'
/Users/mperham/.rvm/gems/ruby-1.9.3-p125@sidekiq/gems/celluloid-0.8.0/lib/celluloid/thread_pool.rb:46:in `block in create'

In this case, the actors are just sleeping for 10 seconds.  After 5 seconds, Sidekiq calls terminate on all busy actors.  The stack trace results (that's the entire trace).

+1 This just happened on our production server.

There's a bug in Celluloid 0.8.0 which is fixed in HEAD. Here's the fix:
https://github.com/tarcieri/celluloid/commit/7107f2c36e0b99fc9cd4525ef287c198fd14934e
I'm trying to get 0.9.0 out this weekend.

Note that this won't necessarily fix your problem, however it will at least ensure that DeadActorError is raised in the context of where you made the call instead of inside of Celluloid's internals.

Is this fixed now, or at the very least, is it manifesting itself differently?

I'll be testing it RSN.

Looks much better, no backtraces anymore!

Awesome :D


[tool_crash] ProcessException: No such file or directory Command: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome, OS error code: 2

Command
flutter devices --machine --suppress-analytics --timeout 10

Steps to Reproduce

...
...
...

Logs
ProcessException: No such file or directory Command: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome, OS error code: 2

[✓] Flutter (Channel unknown, 1.23.0-14.0.pre.128, on Mac OS X 10.14.6 18G103 x86_64, locale en-US)
    • Flutter version 1.23.0-14.0.pre.128 at /Users/flutter/.cocoon/flutter
    • Framework revision 10c78c264a (24 minutes ago), 2020-10-12 12:51:37 -0700
    • Engine revision 11d756a62e
    • Dart version 2.11.0 (build 2.11.0-207.0.dev)

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A420a
    • CocoaPods version 1.8.4

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).

[☠] Connected device (the doctor check crashed)
    ✗ Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
    ✗ ProcessException: No such file or directory
        Command: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --version
    •

! Doctor found issues in 3 categories.

Flutter Application Metadata
Type: null
Version: null
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: null
Creation framework version: null

Reverted and will be fixed


Setting the coverage variable name does not work

Invoking coffeecoverage with the -c parameter set to for example _coverage_ will produce instrumented sources that still use the _$jscoverage variable name, ignoring the user provided name.
I will provide a PR for this ASAP.

Should be fixed.


[ALLUXIO-2119] Remove UnderFileSystemClusterTest

https://alluxio.atlassian.net/browse/ALLUXIO-2119
This test was so closely coupled to the implementation that any internal change would break the test. If we want to test the static methods of UnderFileSystemCluster, we need to redesign the class to be testable.

alluxio-bot, check this please

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11005/
Test PASSed.

Merged build finished. Test PASSed.

LGTM


Wrote a tutorial on testing addons on Mac

I wrote this tutorial on how to test addons when you are running microk8s with multipass on Mac.
I would like to add the link or the content somewhere to the docs e.g. https://github.com/canonical/microk8s-community-addons/blob/main/HACKING.md
Could you please advise where you would preferably have it? Should I rewrite it and add it to the HACKING.md?
https://anaisurl.com/writing-a-microk8s-addon-on-mac/

Thank you for this blog post @AnaisUrlichs I have already shared it with our community on #microk8s over in the kubernetes slack!
The part that this blog covers really well is how to setup a development environment for addons on Mac. We have a couple of options to promote this work:

we could have a post on https://discuss.kubernetes.io/ with the potential to make it part of the official docs we have for MicroK8s (ed https://microk8s.io/docs/addons). The docs pages are essentially blog posts.
place it under a docs folder in the microk8s repo template (https://github.com/canonical/microk8s-addons-repo-template). This template repository is the repository developers are expected to use to bootstrap their addons.
place a doc under the docs of the main MicroK8s repository (https://github.com/canonical/microk8s/tree/master/docs)
create an entry of the blog post in the https://github.com/canonical/microk8s/blob/master/docs/community.md

What do you prefer?
Many thanks!


Disable the debug menu

Describe your problem here.
I wanna disable the debug menu in a song and idk how can you give script please
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
It's not build

function onUpdate()
	if getPropertyFromClass('flixel.FlxG', 'keys.justPressed.SEVEN') then
		--code
	end
end

ok let me try

It didn't work

function onUpdate()
	if getPropertyFromClass('flixel.FlxG', 'keys.justPressed.SEVEN') then
		--code
	end
end

dude it dosn't work comon

Replace --code WITH SOME CODE

Like I wanna make it go to song how could i make it?


Why mamba2 is much slower than mamba?

Hi, I have compared the inference time of mamba and mamba2 using the same input, but I found the mamba2 is much slower than mamba.
My environment version:
pytorch==2.1.2
pytorch-cuda=12.1
here is the code
`import torch
from mamba_ssm import Mamba, Mamba2
batch, length, dim = 8, 1024, 128
x = torch.randn(batch, length, dim).to("cuda")
Initialize the Mamba model
model = Mamba(
# This module uses roughly 3 * expand * d_model^2 parameters
d_model=dim, # Model dimension d_model
d_state=64,  # SSM state expansion factor
d_conv=4,    # Local convolution width
expand=2,    # Block expansion factor
).to("cuda")
Initialize the Mamba2 model
model2 = Mamba2(
# This module uses roughly 3 * expand * d_model^2 parameters
d_model=dim, # Model dimension d_model
d_state=64,  # SSM state expansion factor, typically 64 or 128
d_conv=4,    # Local convolution width
expand=2,    # Block expansion factor
headdim=32,  # Additional parameter for Mamba2
ngroups=1,   # Number of groups for group normalization
sequence_parallel=False, # Whether to use sequence parallelism
).to("cuda")
Function to count model parameters
def count_parameters(model):
return sum(p.numel() for p in model.parameters())
Print the number of parameters for each model
print(f"Mamba model parameters: {count_parameters(model)}")
print(f"Mamba2 model parameters: {count_parameters(model2)}")
Measure inference time for Mamba model
start_event = torch.cuda.Event(enable_timing=True)
end_event = torch.cuda.Event(enable_timing=True)
start_event.record()
y = model(x)
end_event.record()
Wait for all CUDA operations to finish
torch.cuda.synchronize()
mamba_time = start_event.elapsed_time(end_event) # Time in milliseconds
print(f"\nMamba model time: {mamba_time} ms")
print(y.shape)
assert y.shape == x.shape
Measure inference time for Mamba2 model
start_event = torch.cuda.Event(enable_timing=True)
end_event = torch.cuda.Event(enable_timing=True)
start_event.record()
y = model2(x)
end_event.record()
Wait for all CUDA operations to finish
torch.cuda.synchronize()
mamba2_time = start_event.elapsed_time(end_event) # Time in milliseconds
print(f"\nMamba2 model time: {mamba2_time} ms")
print(y.shape)
assert y.shape == x.shape
`
and the output
`/home/xd/anaconda3/envs/mamba/bin/python /home/xd/gdw/mamba/main_test.py
Mamba model parameters: 153344
Mamba2 model parameters: 117912
Mamba model time:<PHONE_NUMBER>3798828 ms
torch.Size([8, 1024, 128])
Mamba2 model time: 8146.93310546875 ms
torch.Size([8, 1024, 128])
Process finished with exit code 0
`
Thanks for your kindly help.

#355

@Hprairie Thanks a lot.


Added responsive password meter

Resolved conflicts from PR #283
What does this PR do?

Fixes #266

Type of change

New feature (non-breaking change which adds functionality)

How should this be tested?
Enter password to test it strength
Mandatory Tasks

[x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.

@YadavAkhileshh Please merge this.

@PavanTeja2005 SOLVE THE CONFLICT

@YadavAkhileshh Please cheeck #345


Python 3

It'd be nice if dots worked w/ both Python 2 and 3.
When I try to run it:
$ python3 ./dots
name 'single_directory_groups' is not defined

I've added python 3 support. Only a year later! :+1:


[runtime] initial run-time feature detection support

This is completely untested, but an initial step towards run-time feature support. This is based on @gz and @shepmaster libraries. Should I document this directly in the file, or somewhere else?

So I've tested this on Broadwell and Ivy Bridge and it works. If you want to check it with your CPU just cargo test -- --nocapture and one of the tests will output the values of all feature flags.

Resolved the conflicts, travis-ci should be green.

Ok I'm gonna go ahead and merge this and we can continue to iterate in-tree


Add workflow, fixes for GPU test pipeline

Description

Add workflow, fixes for GPU test pipeline.
Types of change

New feature.
Checklist

[x] I confirm that I have the right to submit this contribution under the project's MIT license.
[ ] I ran the tests (including the external tests), and all new and existing tests passed.
[x] My changes don't require a change to the documentation, or if they do, I've added all required information.

GPU BK run predicated on this branch succeeds.


F2 Init() Initialization

Hi ,
I have few F2 App on a page, Some on header ,some on body and some on footer.
I have both 'GET' and 'POST' app also among them.
When the page loads , the apps on the header is getting initialized. when comes to page or body since the app is already initialized its not initialized further and problem coming with registering them.
Is there a way to initialize to make sure all app are loaded and then initialize and then register.
FYI - I'm checking all the time F2.isInit() also.
Thanks,
Sudheer.

Hello Sudheer,
I am not sure I understand the issue you are describing. Are you calling F2.registerApps() and passing all the apps you want to register? The typical pattern is to register the apps and when F2 pulls the apps in, it will then initialize the apps after they have loaded. The flow would go Register App > F2 Loads App > F2 Initializes app class.
Hope this helps,
Christofer Peterson

It might be helpful to get a Gist or JsFiddle of a simple example for the issue, Sudheer, so that the team can see what's happening.

Sure, I will make one JS Fiddle and share you. Is there a way to prioritize F2.Init() ?

A JsFiddle will help with my understanding of your issue. Until then, I am not sure I can give a satisfactory answer to your question.

Closing. No Response.


Physical trough freeze protection fails in some cases

To reproduce, run default Physical trough model using the Fargo ND weather file. The simulation will crash near the end of the year. To crash earlier in the year, change the field freeze protection inlet temperature to 100 C.
Why is code crashing?
Is there some way to reset to initial conditions if All Off mode is failing?

Issue resolved here https://github.com/NREL/ssc/pull/793


Improved hex docs

The current hex docs are quite bare: Only a minimum API reference, empty modules (Poison.Encoder, Poison.Pretty) and no examples of what options can be passed to encode etc.
It would be nice to expose the current README in the hex docs, to start with. Thanks!

I'm willing to submit a PR for this. Currently I'm looking for a way to pretty encode a value using
Poison.encode/2 and the docs
def encode(value, options \\ [])

Encode a value to JSON.

┃ iex> Poison.encode([1, 2, 3])
┃ {:ok, "[1,2,3]"}

One shouldn't have to have to look at the code to figure out the available options.

I'm also willing to take the time to write some doc blocks. For such a popular module it has uncharacteristically sparse docs. It's a significant barrier to entry.

I'm also willing to help improving the docs. I see that there's already a related PR open https://github.com/devinus/poison/pull/123


FileNameSniff triggers on taxonomy-{taxonomy_slug}.php files with underscores

The advice when registering a custom taxonomy is "Name should only contain lowercase letters and the underscore character", yet if you do this and have a custom taxonomy with underscores such as resource_category then have a theme template called taxonomy-resource_category the FileNameSniff triggers.
According to the template hierarchy documentation this sniff would also trigger if a theme were to customise based on post formats, such as taxonomy-post_format.php.
Seems to be that the sniff needs to take into account these taxonomy template files and allow these instances.

@grappler I'm looking to fix this. Any input on other typical file names used in themes which are considered valid exceptions ?

@jrfnl See #470 and #642.

@GaryJones Thanks! I'd forgotten about those. I guess we should close this issue as a duplicate in that case.
@davidpagepsycle Thanks for bringing it up again.

Ah, sorry for the duplicate submission, didn't see it already here.


Support psycopg (aka psycopg3)

Hey, thx for the library 🙏 I'm wondering if it's possible to support psycopg v3 over current v2 (or ideally both)

Hello!
Better late than never I suppose. Terribly sorry, I have missed notifications totally from this and it's been almost a year since you opened this ticket.
Support is added, dependencies updated and old Django version support has been dropped. Version _3.0.0_has been released.
I am not certain about adding both libraries, with the psycopg V3 it seems to work nicely with new Django version >= 4.2. Let's see what we can come up with if it does not work.


Style focused button; improve focused radio

This PR sets the button :hover styles to also serve as the :focus styles. It also modifies the radio element styles to only animate on hover or focus, to indicate to the user that the radio element is in focus.

closes #22

I did not realize you had a PR open, @scottaohara. 🙌

Thanks 🙇
LGTM 🎉
I will resolve conflicts 🔧

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Improve the retry policy so that the thread doesn't sleep after the last failure

in the previous code, if I set _maxNumAttempts = 3 the program will do

action
attempt

try
0

sleep
1

try
1

sleep
2

try
2

sleep
3

break

For failed attempts, where the last sleep is cause unnecessary hanging especially for exponential back off case. The new code will be

action
attempt

try
0

sleep
1

try
1

sleep
2

break

try

Codecov Report

Merging #9158 (fd208dd) into master (dad2586) will decrease coverage by 37.27%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master    #9158       +/-   ##
=============================================
- Coverage     63.48%   26.21%   -37.28%
+ Complexity     4970       44     -4926
=============================================
  Files          1799     1836       +37
  Lines         95706    98107     +2401
  Branches      14492    14898      +406
=============================================
- Hits          60760    25718    -35042
- Misses        30574    69847    +39273
+ Partials       4372     2542     -1830

Flag
Coverage Δ

integration1
26.21% <0.00%> (?)

unittests1
?

unittests2
?

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

Impacted Files
Coverage Δ

.../apache/pinot/spi/utils/retry/BaseRetryPolicy.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../java/org/apache/pinot/spi/utils/BooleanUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...java/org/apache/pinot/spi/trace/BaseRecording.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...java/org/apache/pinot/spi/trace/NoOpRecording.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/config/table/FSTType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/config/user/RoleType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/data/MetricFieldSpec.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/utils/NullValueUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...java/org/apache/pinot/common/tier/TierFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...a/org/apache/pinot/spi/config/table/TableType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 1503 more

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Cleanup unused Picard files/references

This change removes some unused scripts and references to the now-deprecated Picard repository, which was removed in https://github.com/cfpb/cfgov-refresh/pull/3110.
Removals

Removes defunct picard_scripts directory.
Removes all references to /picard URLs.

Testing
Check public GH usage of Picard to see these aren't used anywhere, and also search on GHE to see similarly that these are deprecated.
Checklist

[X] PR has an informative and human-readable title
[X] Changes are limited to a single goal (no scope creep)
[X] Code can be automatically merged (no conflicts)
[X] Code follows the standards laid out in the development playbook
[X] Passes all existing automated tests
[X] Any change in functionality is tested
[X] New functions are documented (with a description, list of inputs, and expected output)
[X] Placeholder code is flagged
[X] Reviewers requested with the Reviewer tool :arrow_right:

LGTM 👍


Why do the examples use hostPorts?

On GCP, the HTTP load balancers do not currently support TLS-SNI, which means you need a new frontend IP address per SSL certificate you have. For internal services, this is a pain, as you cannot point a wildcard DNS entry to a single IP, like *.mydomain.com and then have everything just work. Using a TCP load balancer with the NGINX Ingress Controller works just as well, and supports TLS-SNI no problem. In addition we can use Kube-Lego to automatically get Let's Encrypt certificates so that helps out a lot as well.
But there are multiple ways to deploy the NGINX Ingress Controller.  In the examples folder there are examples for a daemonset, a deployment without a service and in "/static-ip" there is an example using a service with a static loadbalancer IP. I can't seem to find any guidance about when to use what model (see questions below).
My preferred method is to leverage GCP "the product" as much as possible.  So on GCP I can create a deployment with two replicas (for rolling updates, redundancy, etc.) and a service with a "LoadBalancer" and a "loadBalancerIP" static IP (that I have already reserved) and the platform will create an external loadbalancer, create the external firewall rules, and point them to my internal K8S service, which points to my deployment. It seems to work just fine and therefore I don't have to manually setup a loadbalancer and firewall rules. My configuration is below.
MY QUESTIONS

can anyone give advice why not to do it this way?  Why use a daemonset for example, or a deployment without a service?
Why are all the examples mapping hostPort's? The Kubernetes Overview says: "Don’t use hostPort (which specifies the port number to expose on the host) unless absolutely necessary, e.g., for a node daemon. When you bind a Pod to a hostPort, there are a limited number of places that pod can be scheduled, due to port conflicts— you can only schedule as many such Pods as there are nodes in your Kubernetes cluster."

apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-controller
  namespace: nginx-ingress
  labels:
    app: nginx-ingress-controller
  annotations:
    service.beta.kubernetes.io/external-traffic: "OnlyLocal"
spec:
  type: LoadBalancer
  loadBalancerIP: <IP_ADDRESS>
  ports:
    - port: 80
      name: http
      targetPort: 80
    - port: 443
      name: https
      targetPort: 443
  selector:
    k8s-app: nginx-ingress-controller
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-ingress-controller
  namespace: nginx-ingress
  labels:
    k8s-app: nginx-ingress-controller
  annotations:
    prometheus.io/port: "10254"
    prometheus.io/scrape: "true"
spec:
  replicas: 2
  template:
    metadata:
      labels:
        k8s-app: nginx-ingress-controller
    spec:
      terminationGracePeriodSeconds: 60
      containers:
      - name: nginx-ingress-controller
        image: gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.3
        readinessProbe:
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
        livenessProbe:
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          initialDelaySeconds: 10
          timeoutSeconds: 1
        ports:
        - name: http
          containerPort: 80
          # hostPort: 80  << Why?
        - name: https
          containerPort: 443
          # hostPort: 443 << Why?
        env:
          - name: POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
        args:
        - /nginx-ingress-controller
        - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
        - --publish-service=$(POD_NAMESPACE)/nginx-ingress-controller
        - --configmap=$(POD_NAMESPACE)/nginx-ingress-controller

@dstroot there is no particular reason that explain the use of hostPort in the examples.
The idea of using hostPort to expose ports 80 and 443 is to have a ootb experience and a configuration that can be used in multiple environments (like minikube, kubeadm, cloud providers, etc).
If you are running in the cloud it makes no sense to use hostPort because you can use a service with type=LoadBalancer like here

can anyone give advice why not to do it this way? Why use a daemonset for example, or a deployment without a service?

This is related to how you want to run the ingress controller (or any other service). Using daemonset you are saying I want 1 pod en each node of the cluster and avoid multiple instances in the same node. This makes sense in a small cluster but if you have 100 nodes this is no the way to run the ingress controller

Fantastic!  So I am running it on GKE with a service pointed to a deployment just like the example you linked to.  Mine also has a static IP so I direct can DNS to it:
type: LoadBalancer
  loadBalancerIP: <IP_ADDRESS>

Suggestion
Maybe have examples specifically for GKE and AWS?  These should be common use cases yet the current examples "seem" to not really show a good working example.  The one you linked to does.

@dstroot aws example created in #503

Fantastic! So I am running it on GKE with a service pointed to a deployment just like the example you linked to

Using the flag --publish-service you can specify which service should be used to update the ingress status information

@dstroot please reopen if you have doubts or suggestions

Thanks!


need support for UI flipping for RTL language in iOS 9

MMDrawerController doesn't seem to work with iOS 9 UI flipping feature for RTL languages (Hebrew, Arabic). Using the Kitchen sink sample as reference, when you click the left menu button the right drawers pops out; and vice versa.

Is there any simple solution for RTL?


[fix][client] fixed getProxyConnection when the topic is migrated

PIP: https://github.com/apache/pulsar/pull/20748

Motivation

When a topic is migrated to a cluster with a proxy, it needs to use the proxy in the new cluster.
Modifications

updated getProxyConnection func to select lookup service based on redirectedClusterURI.

Verifying this change

[x] Make sure that the change passes the CI checks.

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

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

Since this is touching this area, I'm reminding about #22061 . :)

Beside advertised listeners, it's possible that the destination cluster has SNI proxy routing. I guess supporting that would be necessary to have full coverage of the different connectivity options that Pulsar provides?

It appears that client restart is required as per this code, https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConnectionPool.java#L327
I guess we could address this question in the PIP discussion to confirm how blue-green migration should support sni-proxy routing.
https://github.com/apache/pulsar/issues/16551


Use fetch instead of node-fetch

node-fetch isn't necessary for this, and is causing issues with ease of installation. Using fetch instead yields the same results but works without additional installation settings.

Sounds good, thanks.

Also, I edited the 3rd Party Modules page in MagicMirror to get this one out of "Outdated/abandoned."  With this fix, the module works just fine.  It doesn't seem like OneTracker is moving forward, though, so I may look into alternatives.
Thanks for your work on this one!

Thanks! I haven’t had a mirror for a while so I haven’t been keeping up with it. If you find a better alternative to one tracker let me know! Hopefully I’ll get a new mirror up eventually.


Balancing

Yeah, I wouldn't guess you're still active here, and this may just be me being pretentious, but I have some ideas for rebalancing some of the charms in mod.
First of all, overall, this is one of my favorite mods I've used. The charms feel super organic and fitting for the game, their effects are interesting and useful, and for the most part, they are balanced WAY better than other charm mods I've used cough cough fyrenest cough cough.
There are a few that are blatantly broken, though. I'll list my thoughts for them and one or two that might be better reworked.
Lemm's Strength
As it stands, this is probably the most broken charm in the game - more so than Always Furious Fury of the Fallen. If you plan on using this charm and don't sell anything to Lemm, you can get up to +39 damage - nearly tripling a Pure nail's damage - for the same cost as F/U Strength, which is +50% (which stacks on top of this, by the way, making it 90 total!). My rework would be simple - change the threshold for the damage increases. If you make it +1 damage every 3 relics for the first 15 (for a total of 5), then every 4 relics for the last 24 (for a total of 6), then it totals +11, equal to the max bonus from F/U Strength. Then it still incentivizes seeking out relics for a bit of extra damage but isn't completely game breaking once you have all of them.
Millibelle's Blessing
This charm is a gamebreak in and of itself - equip it and walk away for 24 hours and you can afford every buyable item in the game. There's a simple fix, though. It's already pretty good in normal gameplay, so just make it deactivate after 10 seconds of inactivity and boom, it's balanced.
Greedsong
This one isn't necessarily because it isn't balanced well, I just think it would make more sense for it to scale with the enemy that's hitting you. I would say something like every time you get hit you gain 25% or 50% of the geo worth of the enemy that dealt the damage, then have a set amount for any enemy that doesn't drop geo.
Marissa's Audience
This charm is strong but not overpowered when coupled with one familiar based charm at a time. As soon as you equip multiple, though, it's insane. Simple fix - the notch cost for Marissa's Audience is equal to the number of familiar based charms you have equipped (minimum 1). This way, you can still use it to double the effectiveness of familiar based gameplay, it's just now for the cost of more than a single charm notch.
Vespa's Vengeance
I don't actually have a rebalance for this, I just wanted to mention that I love this charm so dang much. As a proud Hive Knight skin user, it makes my heart happy.

Thank you for the feedback - I am glad that you're enjoying the mod, and that you find the charms fit well in the game - that's just what I was going for with their design.
With regards to the changes you're suggesting:

Lemm's Strength: of the charms you mention it's the strongest candidate for a potential nerf and really does get over the top if you max it out... but that's if you max it out. As you mention, you can always "nerf" the charm yourself by selling relics to Lemm, and you even get some extra geo for that, too.  Did you know Amp also works on Vespa's Vengeance, by the way?) On the other hand, if I were to reduce its default damage value, you (and others) could not get the current max even if they wanted it. So I'd rather keep it as-is.
Millibelle's Blessing: I considered this matter too while working on the mod, but ultimately, if someone wants to cheese their way to massive amounts of geo then they can already do that in seconds with the debug mod.
Greedsong: I've considered making it scale with the amount of damage you take (so for example if you take double damage, you also get double the geo), which is in a similar spirit to what you suggested. But no promises.
Marissa's Audience: In my opinion, even with all the familiars the charm isn't nearly as powerful as things like Lemm's Strength or Snail Soul. But also, making the notch cost variable is troublesome because it interacts with things like overcharm status, or potentially rando logic. Furthermore, if you're adding on more familiar charms, those already do cost extra notches (unless you got a very lucky rando seed), so that should cover it.
Vespa's Vengeance: I'm slightly surprised you didn't suggest any balance changes to this - it can be very powerful in some situations! But I'm happy you like it; I had a blast creating it, too.

Thanks for the response! I wasn't expecting any response, so to get one so promptly and so respectfully feels pretty good.
As far as your responses to my suggestions, I was surprised, but after reading through them and thinking about them for a bit, I've actually come to agree with you on pretty much all of them. I realized that I was looking at the mod through the wrong perspective. I was looking at it as if I were the game developer, wanting things not to be exploitable or any of that. I should be, however, looking at it through the eyes of a modder/mod user. From that perspective, you've done even better with the mod than I originally thought. A mod user is already seeking out to change the game how they see fit, and therefore your clever integration of user choice with charms like Lemm's Strength and Shaman Amp as to how powerful they actually are is perfect for the target audience. Bravo.
In regards to Vespa's Vengeance in particular, I didn't include any balancing notes on it because I had not yet had the chance to use it. My notes in that regard are relatively simple. It would probably be less insane in its certain situations if the bees could only deal damage once, as with flukenest's projectiles. As is, since each can hit multiple times/multiple enemies, yeah, I can see how that could get crazy in the right circumstances. Other than that, maybe 10/20/15/30 instead of 15/30/20/40 would help to balance it, I dunno.
However, addressing the other reason I love that charm - it builds on Flukenest, a charm that seems oddly out of place in the base game. It's the only charm that changes a fundamental aspect of your dps kit unless you count sharp shadow, and it does it in a very interesting way. At the expense of some crowd control and a bit more difficulty in landing all the damage, it offers more single target damage overall. The two points I think you captured really well with Vengeance are the flavorful concept and the trading of a single large, extended active hitbox for many smaller, shorter hitboxes. You get both Flukenest and Vespa's Vengeance by defeating a boss (in my head cannon that VV and Hiveblood are switched in aquisition location) and then gaining a portion of that boss' power. I love that.
Now, the other thing I love is that it opens up a brainstorm for what could replace DD/DD. Here are my ideas.
Crystalline Crash
You perform a downward slam, similar to DD/DD, but do not gain I-frames. You also do not set off an explosive hitbox, instead creating a crystalline object akin to those created by the crystal shooter bugs from crystal peak which has a longer lasting but smaller hitbox and less damage. In place of the I-frames, you gain a crystal armor which prevents damage like Carefree Melody but disappears after 10 seconds or after tanking one hit.
Thorny Thlam (hehe, slam with a lisp)
You perform a downward slam, similar to DD/DD, but do not gain I-frames. You also do not set off an explosive hitbox, instead firing out 5/8 orange thorn projectiles akin to those fired by that one thorny bush husk enemy. These projectiles deal a small amount of damage in addition to having the unique effect of pinning a hit enemy in place for a number of seconds equal to twice the number of thorns that hit it.
Anyways, those are some more of my thoughts. Again, thanks so much for responding!

It really would've been fitting for Vespa's to be found after Hive Knight, but alas, there is only one notable spot to put things there, and it was already taken up by Hiveblood. Rando can change that, of course, if you get lucky.
I like your thinking in extending the same concept to DD, and the two concepts you suggest are interesting. Bear in mind, though, that I am going for quality over quantity with this mod (partly out of space considerations; we can only add so many charms before the charm menu gets cramped and unwieldy), so the bar for any additional ones to be included in Transcendence is high, and rising with each new one added. In fact, I've had several ideas for charms since its initial release, and so far Vespa's Vengeance is the only one that proved compelling enough to get past that bar. Will there be more? Maybe, or maybe not. Can't really say for sure.
Likewise the boss concepts you mention may well make for some very cool modded bosses - in fact, I think you're not the first to think of a CG3 boss, and I find your "MMC with Thorns" idea to be quite amusing -, but such things are well outside the scope of what I want to do with Transcendence.

Fair enough, fair enough, and fair enough. I tried Fyrenest, which adds 30 charms, and it was just hard to look at.
And for the boss thing, yeah, I can see that being a much bigger task than would be reasonable - building a new arena, spriting, programming attack patterns, etc. To be honest, though, I've always been an avid daydreamer, so the inspiration for brainstorming and theorycrafting might actually be more important to me in the end than the actual execution of whatever I come up with. I actually fall into a similar boat with homebrew in D&D - I create a ton of my own content for the game but am more satisfied with the process of creation than I am with applying the homebrew when playing the game. Somehow keeping things as concepts rather than actually implementing them in game can, in some cases, make them more interesting for me. I know none of that means much to you, but in short, you creating Vespa's Vengeance opened me up to the idea of more spell changing charms, which will be fun for me to stew on for a while.
Wow, that was a lot of words to not say very much. Anyways, you're awesome.


[Fix #4289] Clarify how overriding config hash values works

It was not stated in specs or the manual how you can use nil values when overriding a configuration parameter value that is a hash.

[x] Wrote [good commit messages][1].
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[ ] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run rake default or rake parallel. It executes all tests and RuboCop for itself, and generates the documentation.

Btw, @jonas054, don't forget to accept the invitation to join RuboCop HQ :-) (I think you can do this here https://github.com/rubocop-hq)

@bbatsov Thanks for the reminder!


Can't edit shared task

When you share a task with another users, they are not able to edit the task.
I don't know if they are able to remove it.

Sorry I did not save a screenshot, but it happens like this: the button is visible, you access to the interface, but when you try to save the changes, you get a red box error message stating something like "Error in saving the task".

What should be done in this case. I think only owner should see edit/delete buttons. If this task is shared with someone, that user can just use it. What do you think?

Hey, I just edited my previous comment

Indeed, at least if the buttons are hidden then it is a feature and not a bug.


Error message when introducing predictions with unvalid format

This example misled me:
{'Unnamed: 0': 0, 'id': 3334, 'text': '@sexyany99 Te daria $1000 x p*ta eso te mereces amor a mí me encantan las p*tas', 'label': 'discredit'}
ValidationError: 1 validation error for TextClassificationRecord
prediction
value is not a valid list (type=type_error.list)
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
<ipython-input-19-66b59178c1f9> in <module>
      4
      5 for record in annotation_ds:
----> 6     records.append(rb.TextClassificationRecord(
      7         inputs=record["text"],
      8         annotation=record["label"],

~/Documents/RecognAI/rubrix/src/rubrix/client/models.py in __init__(self, *args, **kwargs)
    132     def __init__(self, *args, **kwargs):
    133         """Custom init to handle dynamic defaults"""
--> 134         super().__init__(*args, **kwargs)
    135         self.status = self.status or (
    136             "Default" if self.annotation is None else "Validated"

~/anaconda3/envs/rubrix/lib/python3.8/site-packages/pydantic/main.cpython-38-darwin.so in pydantic.main.BaseModel.__init__()

ValidationError: 1 validation error for TextClassificationRecord
prediction
  value is not a valid list (type=type_error.list)

This error might be common, we can specify that a format error is happening and how to correctly format a prediction.

I've done some tests with pydantic and validation errors:
class MyTestModel(BaseModel):

    a: List[str]
    b: int = Field(le=10)

a = MyTestModel(a="wrong_error", b=100) # This statement raise a validation error with 2 error info, but validation error has no referred value/data model in its context

The conclusion here is by using directly pydantic ValidationError instances we have no way of determine the value or model value that raised the error. So, it's hard to customize message errors including wrong value without a custom wrapper.
Maybe there is some info in pydantic repository

Understood!
Using @validator annotations like https://pydantic-docs.helpmanual.io/usage/validators/ at least for the most common fields like prediction and annotation in specific model.py files to add a more detailed message, is not an option right?

As far as I know, @validaror are used for custom or complex validations. If we use validators class methods, we would surely have to re-implement part of the validation logic. Maybe @ignacioct you could take a look on that

Yes, definitely if we have to reimplement the validation logic that's definitely a no-go.

After analyzing this, I've seen values will likely be included in the context of the validation errors for V2 of Pydantic so I guess we can close this until V2 arrives and we can upgrade (when FastAPI upgrades too)

After analyzing this, I've seen values will likely be included in the context of the validation errors for V2 of Pydantic so I guess we can close this until V2 arrives and we can upgrade (when FastAPI upgrades too)

Yeah, I think we may.


support ha for tenant‘s VirtualCluster

What would you like to be added:
Currently, when creating a tenant's cluster, the services of the tenant's cluster cannot provide services to the outside world through a high-availability mode. Therefore, when creating a tenant cluster, kubenest also needs the ability to dynamically create keepalive plus haproxy or directly use metalLB to expose services externally.
Why is this needed:

/assign @OrangeBao

/assign @zhouhaoA1

/assign @village-way


Update Google benchmark library to version 1.5.0

Requires this PR to merged as well.

LGTM, merging all three libraries now - They should be live shortly. Thank you so much for taking the time to keep the libraries updated, as always, we really appreciate it :)


Avataars

#112

Deployed to https://avataars.test.league.aeternity.org

Deployed to https://avataars.test.league.aeternity.org

it is because the built failed, but the publish url ci job is always running (could not make it dependent on the build)


Remove ? from nullable typehints

Description
Basing from https://github.com/codeigniter4/CodeIgniter4/pull/3033#discussion_r429997442
Checklist:

[x] Securely signed commits

I would still like the ? to stay, but thats just personal opinion. Implementing it with just = null seems a bit hacky to me (although it is valid).
As we strive for nicely formatted and readable code, I personally would leave the explicit nullable hint.

I assume this does not count as "changing the signature"? Like, extended version with the ? will still work fine?

This does not break LSP. https://3v4l.org/CiQth

Note that reverting these changes for any reason later will break BC though:

@sfadschm I don't think that applies here since both are actually nullable and amount to the same actual types. I just wanted to make sure the parser didn't complain about the signature which it seems it will not.

@sfadschm I don't think that's the same here. This PR changes the signature for nullables with default null value. It turns explicitly nullable to implicitly nullable.
Your example, on the other hand, requires explicit nullability since the parameter is required. One cannot deduce a required parameter as nullable unless explicitly marked with ?.

Alright, agreed. I was misleaded here.

@sfadschm does that mean your original opinion (preferring the ?) is changed?

@MGatner not really. I will try to elaborate.
While the functionality is the same with or without the ? operator, I would vote for handling this consistently all over the framework. For me, the typehint is meant to tell the developer what values an argument can take, the default value is for assigning values in case the developer does not provide any. There are two different cases to think about:
Case 1:
https://github.com/codeigniter4/CodeIgniter4/blob/c42e79d95b9b842275fed90d0d8b0ada22ed551e/system/BaseModel.php#L1176
Here, the parameter is clearly intended to be optional, as in BaseModel itself, it is called various times without passing any parameter.
Case 2:
https://github.com/codeigniter4/CodeIgniter4/blob/c42e79d95b9b842275fed90d0d8b0ada22ed551e/system/Database/BaseBuilder.php#L1620
Here, limit will never be called without its first parameter. The original intend to use int $value = null, in this case hence was to allow null to be passed to this argument before nullable types where introduced to PHP. The parameter is not optional, so the most precise statement here would be ?int $value, in my opinion. This is however a breaking change I think.
Espacially in Case 2 I think the syntax proposed in this PR misleads the developer to believe that $value is intended to be an optional parameter.
While I understand the intention to use the  superset functionality, I think that the gain from these changes (as far as I see, thats only sparing some single characters) does not compensate for the loss of readablity and precision.
Thats my two cents 😄

Honestly, I'm used to scanning variables for the ? sign just to know if the null value is acceptable, even without looking at the default value. That being said, I would vote to leave the ?.

I don't have a strong opinion either way, but these are all good points toward keeping them. I suppose one more would be for once we are >= 7.4 and we have many more nullable types throughout the framework.

Personally, I would like to have things be explicitly marked to avoid surprises in the future. However, this PR is based on @lonnieezell 's preference. If majority wants to keep the ? and Lonnie is okay with it, I can gladly turn this PR around to do the opposite. 😁

Closed in favor of #4928


module 'xclim' has no attribute 'icclim'

xclim version: 0.1.0
Python version: 3.6.7
Operating System: macOS

Description
I have just installed xclim with pip and I have tried to run the four lines in the Github README:
import xclim
import xarray as xr
ds = xr.open_dataset('myfilename.nc')
tg = xclim.icclim.TG(ds.tas, freq='YS')

and...
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-82f75f519f18> in <module>
----> 1 tg = xclim.icclim.TG(ds.tas, freq='YS')

AttributeError: module 'xclim' has no attribute 'icclim'

@matteodefelice The library now has a beta version available on PyPI. Can you try reinstalling via "pip install xclim" and let us know if the problems persist?

now it works! Great!


Install libmodsecurity on centos6.5  for Nginx error

@csanders-git @victorhora When I according to "libModSecurity: https://github.com/SpiderLabs/ModSecurity/wiki/Compilation-recipes" about centos 6.5 and I already install libmodsecurity successful . ItBelow is the error screenshot

@Hello-Linux please try not to create new issues for the same subject. Add your comments, issues to the issues you already created related to the same subject like #1425.
Thank you.


Make Blogs Editable

Magic! If you right-click a blog, you can now edit it.
A bit of testing added
Also fixed a bug selecting/unselected deleted blog records

Current coverage is 71.14%

Merging #49 into master will decrease coverage by -2.29% as of d219973

@@            master     #49   diff @@
======================================
  Files           21      21
  Stmts          384     402    +18
  Branches         0       0
  Methods          0       0
======================================
+ Hit            282     286     +4
  Partial          0       0
- Missed         102     116    +14

Review entire Coverage Diff as of d219973

Powered by Codecov. Updated on successful CI builds.


Feature: pre-release / npm tag

From https://github.com/webpro/release-it/issues/34#issuecomment-141190112.

@shimikano, please check out v2.1.0 if you're interested. I've added release types (pre*) and a prereleaseId option for pre-releases; and the npm.tag option to register to npm with a specific tag.

Thank you for this as well!
While the release types implemented here are very handy too, what I actually meant in my comment in #34 is the possibility to execute custom commands before or after the bump/release steps (sorry for my blurry phrasing).
grund-release provides
beforeBump: [], // optional grunt tasks to run before file versions are bumped
afterBump: [], // optional grunt tasks to run after file versions are bumped
beforeRelease: [], // optional grunt tasks to run after release version is bumped up but before release is packaged
afterRelease: [], // optional grunt tasks to run after release is packaged

and npm version offers
"scripts": {
  "preversion": "npm test # executed before the bump",
  "version": "npm run build && git add -A dist # executed after the bump",
  "postversion": "git push && git push --tags && rm -rf build/temp # executed after the commit/tag step"
}

for this purpose.

Ah I see. I actually like that feature as well. Will look into this later.

Looking forward, thank you!


Extension breaks the code on Kotlin files

https://github.com/TonicArtos/SuperSLiM/blob/master/library/src/main/kotlin/com/tonicartos/superslim/layout.kt
This is the URL I tested it against, and also other Kotlin files in the same repo.
Here is what the file looks like when the extension is disabled.

Here is what it looks like when the extension is enabled.

A quick fix would be to just prevent any logic to run on files that have .kt extension so that people who have this plugin installed can still read the Kotlin code without having any trouble.

not a real issue in the current code base


feat(cache): cache the requests instead of responses

Summary
This PR update the strategy for caching the requests. With the current implementation we cache the results when we receive the response. It means that when we perform multiple exact same requests in parallel the client will trigger multiple network requests.
This PR introduce a different approach, we cache the promise of the requests. Now when multiple exact same requests are triggered in parallel the same promise is reused for all the requests. Only one network call can be trigger for a request.
List of the changes:

add the responseText property to each _request implementation. The jsonRequest method now return an object with { body, responseText } to properly resolve the cached value. It brings consistency in the jsonRequest response, we can now safely use both of the attributes.
update the jsonRequest method to cache the result of doRequest instead of caching the raw response

Questions:

I didn't found a way to test the different builds. The PR adds the responseText to each of the implementation but I don't know how to test that the _request method correctly return the response.
Some implementation might rely on the cache attribute of the client. We don't document it but it's still accessible on the client instance. The type of the value cached change from string to a promise. To avoid a BC we can introduce an option for handle different caching strategy with the default value on the previous implementation.
We do clear the cache in case of error now. ~Last but not least since we cache the results of doRequest we also cache the error when the retry strategy fails. It means that on subsequent requests the error will be fetch from the cache instead of doing a new call. We can avoid this issue by clearing the cache in case of error, but it's not implemented in this PR.~

Before

After

Some implementation might rely on the cache attribute of the client. We don't document it but it's still accessible on the client instance. The type of the value cached change from string to a promise. To avoid a BC we can introduce an option for handle different caching strategy with the default value on the previous implementation.

What if we threw a warning on accessing the .cache outside of the client? Should be possible right?
Still of the opinion that I can't see a use case of anyone directly using .cache so it isn't really that important that the implementation changes

I didn't found a way to test the different builds. The PR adds the responseText to each of the implementation but I don't know how to test that the _request method correctly return the response.

What we could do is create a new unit test where you target the local server that is running and there we would do checks that when launching two searches at the same time, only one is received by the server.

Some implementation might rely on the cache attribute of the client. We don't document it but it's still accessible on the client instance. The type of the value cached change from string to a promise. To avoid a BC we can introduce an option for handle different caching strategy with the default value on the previous implementation.

Yes for the time being we could add an option to activate the new behaviour. It would allow us to be compatible, then next major we remove the old cache.

We do clear the cache in case of error now.

Can you precise what you mean?

This is a nice addition, let's make it as a feature flag and release!

Tests on develop were fixed. Now all unit and integration tests are running on every platform.

just rebased to have passing tests

I've updated the PR and the description.

Some implementation might rely on the cache attribute of the client. We don't document it but it's still accessible on the client instance. The type of the value cached change from string to a promise

This is no more true right since you made it a feature flag?

I didn't found a way to test the different builds. The PR adds the responseText to each of the implementation but I don't know how to test that the _request method correctly return the response.

This is now tested via a functional/black box test I believe? If so we are good to go

This is no more true right since you made it a feature flag?

Yep indeed when the feature is not enable the type of the cache remains the same. It changes only when we enable the option.

This is now tested via a functional/black box test I believe? If so we are good to go

Almost all the tests use the _jsonRequest function, since this function use the _request implement we should be good. What is was looking for is a unit test for each build.

Let's goooo!

Please add the option to the defintions of Typescript.
TS2345: Argument of type '{ _useRequestCache: boolean; }' is not assignable to parameter of type 'ClientOptions | undefined'.

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/26904
note for the future @eglinetwork, anyone can do a PR to DefinitelyTyped. Currently TypeScript isn't an officially supported language for us, so we won't proactively update the typings unless for breaking changes, or things we are actively deprecating. Thanks for mentioning this thogh


Handle local notification when app is in foreground

Currently, it shows a heads-up notification even if the app is in foreground and doesn't emit localNotification event which is not the previous behavior. Previously, no notification was shown and the localNotification event was emitted and the notification could be handled in the app as the app developer see fit.
I see that in willPresentNotification, we just call completionHandler(UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge); which is probably the reason a heads-up notification is shown. I tried adding [RNCPushNotificationIOS didReceiveLocalNotification:notification]; to the method and call the completionHandler using completionHandler(UNNotificationPresentationOptionNone); but I get the following error:

Due to my limited knowledge in Objective-C, I don't know what kind of casting is needed to cast to the right type. Please advice.

I realize the issue. The notification parameter is of type UNNotification * and the method required a parameter of type UILocalNotification *. I guess we this can be fixed by either adding a converter to RCTConvert to convert UNNotification to UILocalNotification.

Seeing this issue as well. Upgraded from 1.8.0 to 1.11.0. For now, we are downgrading back to 1.8.0

try to touch/tap the localNotification notification, you will get the listener triggered


usm: http2: tests: Use empty configuration

What does this PR do?
Use the new test helper to get the configuration, as many features are enabled by default
Motivation
Disable redundant features in http2 monitoring, and fasten test time.
Describe how you validated your changes

Possible Drawbacks / Trade-offs
Additional Notes

/merge


[Bug] MultiSelect Default Value return value is not string.

Description
The expected structure of multi select values are Array<{ "label": "string", "value": "string" }> and if we do INT and FLOAT on the value part the widget automatically converts it to string.
The same is not being followed on Default value. For e.g. if I put INT or FLOAT on default value, it doesn't automatically converts to string.
Behaviour of data type across the widget should have same expected results.

Steps to reproduce the behaviour:
Add steps to reproduce this behaviour, include console / network logs & screenshots

Go to '...'
Click on '....'
Scroll down to '....'
See error

Important Details

Version: [Cloud / Self-Hosted vx.x]
OS: [e.g.MacOSX]
Browser [e.g. chrome, safari]
Environment [production, release, deploy preview]

@Tooluloope @SatishGandham this is happening in case of the select widget too. The widget need to accept both string and int value, This failed because of a change in #7698, We need to make sure how to cover the cases here.

We are reverting the validation changes and continue to support numbers and boolean values.


TN-605 Practitioner module

added Practitioner class

stores first/last names, phone, and external identifiers (via 'practitioner_identifiers' table)
FHIR-compliant

added Practitioner API endpoints (search, POST, PUT, GET)

for PUT and GET, objects can be accessed EITHER by their internal ID (/api/practitioner/<id>), OR by external identifier (/api/practitioner/<value>?system=<system>)

added practitioner_id field to User model

read/writes to FHIR output/input via the 'careProvider' element, which now takes Organizations and/or a Practitioner

added internal and external id References for Practitioner

internal works as normal ([Pp]ractitioner/<id>)
external expect [Pp]ractitioner/<value>?system=<system>

this logic is also now what Organization external identifier References use, instead of the previous Organization/<system>/<value>

added relevant migrations
added extensive unit tests for all the above, update some existing tests to match new logic

Hello @OptimusRhine! Thanks for submitting the PR.

In the file portal/models/reference.py, following are the PEP8 issues :

Line 175:21: E722 do not use bare except'


sql between function should be inclusive

The sql between function should be inclusive. See https://www.w3schools.com/sql/sql_between.asp for an example.

Codecov Report

Merging #11467 (ea4e06e) into master (f14700a) will decrease coverage by 48.49%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master   #11467       +/-   ##
=============================================
- Coverage     62.92%   14.43%   -48.49%
+ Complexity     1108      201      -907
=============================================
  Files          2318     2318
  Lines        124328   124326        -2
  Branches      18980    18980
=============================================
- Hits          78234    17948    -60286
- Misses        40539   104860    +64321
+ Partials       5555     1518     -4037

Flag
Coverage Δ

integration
?

integration1
?

integration2
?

java-11
14.43% <0.00%> (-48.48%)
:arrow_down:

java-17
?

java-20
?

temurin
14.43% <0.00%> (-48.49%)
:arrow_down:

unittests
14.43% <0.00%> (-48.49%)
:arrow_down:

unittests1
?

unittests2
14.43% <0.00%> (-0.01%)
:arrow_down:

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

Files Changed
Coverage Δ

...ot/common/function/scalar/ComparisonFunctions.java
0.00% <0.00%> (-28.58%)
:arrow_down:

... and 1486 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Setting mail settings thru env variables doesn't work

Description:
I have tested with several ghost versions, both alpine and non-alpine version, but I haven't been able to have ghost docker to set the mail settings thru environment variables into config.production.json. I don't understand why it is not working!
Linux kernel: 5.4.13
Docker version 19.03.5-ce, build 633a0ea838

Steps to reproduce:
I have tested both using env file and inline env vars within the docker command, none worked.
Here is using the env file:
docker run -d -p 3001:2368 -v /srv/ghost/content:/var/lib/ghost/content --env-file=test.env --name ghost ghost:3.3.0-alpine

My test.env file is as follows:
url=https://www.example.com
mail__transport="SMTP"
mail__options__service="Gmail"
<EMAIL_ADDRESS>mail__options__auth__pass="my-pass"

And here is using docker command only with inline env vars with same results:
docker run -d -p 3001:2368 -v /srv/ghost/content:/var/lib/ghost/content \
-e url=https://www.example.com \
-e mail__transport="SMTP" \
-e mail__options__service="Gmail" \
-e<EMAIL_ADDRESS>\
-e mail__options__auth__pass="my-pass" \
--name ghost ghost:3.3.0-alpine

Expected behavior:
config.production.json contents:
{
  "url": "http://localhost:2368",
  "server": {
    "port": 2368,
    "host": "<IP_ADDRESS>"
  },
  "database": {
    "client": "sqlite3",
    "connection": {
      "filename": "/var/lib/ghost/content/data/ghost.db"
    }
  },
  "mail": {
    "transport": "SMTP",
    "options": {
        "service": "Gmail",
        "auth": {
            "user"<EMAIL_ADDRESS>            "pass": "my-pass"
        }
    }
  },
  "logging": {
    "transports": [
      "file",
      "stdout"
    ]
  },
  "process": "systemd",
  "paths": {
    "contentPath": "/var/lib/ghost/content"
  }
}

Actual behavior:
config.production.json contents:
{
  "url": "http://localhost:2368",
  "server": {
    "port": 2368,
    "host": "<IP_ADDRESS>"
  },
  "database": {
    "client": "sqlite3",
    "connection": {
      "filename": "/var/lib/ghost/content/data/ghost.db"
    }
  },
  "mail": {
    "transport": "Direct"
  },
  "logging": {
    "transports": [
      "file",
      "stdout"
    ]
  },
  "process": "systemd",
  "paths": {
    "contentPath": "/var/lib/ghost/content"
  }
}

I'm curious what you did to get that to work...
I'm having an issue where mail actually doesn't send while using Sendgrid (sending a test email throws "Failed to send email. Reason: Authentication required, invalid details provided.")
My docker-compose environment looks like this:
environment:
      database__client: 'sqlite3'
      url: 'https://domain.com'
      mail__transport: 'SMTP'
      mail__options__service: 'Sendgrid'
      mail__options__port: '587'
      mail__options__secureConnection: 'true'
      mail__options__host: 'smtp.sendgrid.net'
      mail__options__auth__user: 'apikey'
      mail__options__auth__password: ${SMTP_PASSWORD}

I've verified the API key I put in the .env file works, and has permissions to send. When I docker exec into the ghost container and do a prinenv, I can see the API key correctly listed as an environment variable.
I also tried hardcoding it in, just in case, to no avail.
Running Ghost 3.7

@colorfulsing are you seeing errors from Ghost around the mail configuration not working, or is the confusion around why the config.production.json file isn't being updated?
As far as the config.production.json file goes, you won't see your environment variables added to it. Ghost itself knows how to pull configuration fields from both config.production.json and environment variables, so there's no need to modify the contents of the json file. You can take a look at the docs here for more information on how it works smile

Is Ghost expected to function normally without config.development.json & config.production.json if all of the relevant variables are supplied via docker's --env-file? Thanks.

@colorfulsing all configuration settings, when supplied via environment variables, override what's in the file. I can make a note to get the docs updated to note that environment variables override what's in the config.production.json file.

But that file still needs to existing with some certain variables or else ghost will explode on start, it seems... Correct? I agree with @colorfulsing that this is confusing and opaque.


Single image import, with scale, rotation, and lock down - [5]

Allow Import of png, gif, jpeg/jpg
On import, give same object controls to scale, move and rotate
Big "Done" button, will also accept [enter], [esc], double click etc
Include controls at top once imported, for setting opacity, over/under, hide, remove, replace, edit.
Only one image at a time allowed
Image is included in saved project (with position, scale, etc)
Image is locked in place until edit button pressed, ensuring users don't click accidentally.

99% of the UI suggestions at the front of this were eschewed for the simplicity of a single tool button. While missing a bit of tweaking perfection, this does work well, and is exceptionally simple.
Opacity of image is set to 50%, which seems to work pretty well, but tracing photos of pancakes is still incredibly difficult as you can't see any difference between pancake lines and the image. Converting them to black and white might be a good interim solution.


Nightly Rebuild pipelines for V4

This PR should introduce a new nightly build pipeline that triggers a nightly release flow. The nightly build pipeline runs every night at midnight UTC and merges the newest bits on dev into a branch -> nightly-build then pushes that to remote. Nightly-build has been added as a trigger for all v4 build pipelines. So, the push to nightly-build should trigger builds of all images. Finally, the publish pipeline has been updated with a 3 AM cron job that should run after all builds have been finished. When the pipeline is triggered using the cron job, it targets the 'nightly-build' images and pushes them to publish on a 4-nightly tag schema
This PR also updates build pipelines in v4 with better re-fresh pipeline support.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which has an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] If applicable, the PR references the bug/issue that it fixes in the description.
[ ] New Unit tests were added for the changes made and CI is passing.

Validated broken pipelines on CI.  Still expecting some issues with CI but, no good way to address them without running into them


Fix typo in index.md

Seems to me like there is a not missing.

Hi @adrianbartnik - thanks for your contribution.
Please address the comments below:

Its not that flakeheaven does not support those entries, they are disabled. So id change unsupported for disabled instead.
https://www.conventionalcommits.org/en/v1.0.0/ (please ammend or squash)

Thanks @pwoolvett. I have updated the PR with your suggestions.

Thanks @pwoolvett. I have updated the PR with your suggestions.

commit header should be docs(index), not docs[index]
Then we should be OK


Improve and correct peer drain

clear any prior timer (just in case)
use peer.drain with a timeout
actually close drained connections
don't delete the peer until after the drain and close is done

r @Raynos @rf

:+1: this is an improvement.
The fact that we forgot to close the peer was an important oversight.

Agreed there may be more work to do, but going to just merge this as progress for now.

@jcorbin please 30000 instead of 30.

Please ship.
Ignore feedback about race conditions.


[AMP <IP_ADDRESS>] ./ampinstmgr Help fails with System.ArgumentOutOfRangeException

Note: I'm on the nightly build per CCL\Mike due to issues with /sbin/ldconfig in the current release.
AMP@olympus:~/AMP$ ./ampinstmgr Help
[Info] AMP Instance Manager v<IP_ADDRESS>
[Debug] Starting process /sbin/ldconfig
[Debug] Working Directory: /home/AMP/AMP
[Debug] Arguments: -p
[Debug] Started process with ID 22086
[Debug] Starting process /bin/uname
[Debug] Working Directory: /home/AMP/AMP
[Debug] Arguments: -m
[Debug] Started process with ID 22087
[Debug] Loading instances from /home/AMP/.ampdata/instances.json...
[Debug] Loaded 1 instances.

Unhandled Exception:
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <3574b7750bbd4f3481d1561b74d01b33>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <3574b7750bbd4f3481d1561b74d01b33>:0
  at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <3574b7750bbd4f3481d1561b74d01b33>:0
  at InstanceManagerCLI.Core.Run () [0x0037a] in <ebd319e3eea14fb090708d9fe6ed019f>:0
  at InstanceManagerCLI.Program.Main (System.String[] args) [0x00005] in <ebd319e3eea14fb090708d9fe6ed019f>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <3574b7750bbd4f3481d1561b74d01b33>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <3574b7750bbd4f3481d1561b74d01b33>:0
  at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <3574b7750bbd4f3481d1561b74d01b33>:0
  at InstanceManagerCLI.Core.Run () [0x0037a] in <ebd319e3eea14fb090708d9fe6ed019f>:0
  at InstanceManagerCLI.Program.Main (System.String[] args) [0x00005] in <ebd319e3eea14fb090708d9fe6ed019f>:0

"Help" doesn't exist. Try just ./ampinstmgr

Then the documentation should be updated -
https://cubecoders.com/AMPDownload

You can get a full list of commands for the AMP instance manager by running:
./ampinstmgr Help

It's quite frustrating to have documentation that isn't correct as I prefer to try to find answers to my questions there, rather than bugging support.

Fixed in nightly.


⚠ Fortnite has degraded performance

In 4ad98d4, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1723 ms

Resolved: Fortnite performance has improved in c050215.


Upload as a draft

I want to be able to just upload the video to youtube as a DRAFT, so that It's no longer in my local computer but is in youtube servers, and be able to edit, add, thumbnail, captions etc later. Is it possible?

just delete the last click "NEXT BUTTON'", youtube will save automaticly the draft

okay got It!


Incorrect name of color tool in documentation

Documentation says we should use swiftgen-color, but real name is swiftgen-colors

Closing this as you fixed it in #28 :+1:


Grab all headers from header_str when using Curb

The problem
I noticed that I got Elasticsearch::UnsupportedProductError
when using Curb as the transport class.
This is how the Ruby API determines that error:
def verify_with_version_or_header(version, headers)
  if version.nil? ||
      Gem::Version.new(version) < Gem::Version.new('8.0.0.pre') && version != '8.0.0-SNAPSHOT' ||
      headers['x-elastic-product'] != 'Elasticsearch'

    raise Elasticsearch::UnsupportedProductError
  end

  @verified = true
end

After putting some p's around, I could determine that the header x-elastic-product is not passed when using Curb as the transport class, along some other header parameters.
Repro
# docker-compose.yml
version: "3.1"

services:
  db:
    image: elasticsearch:8.0.1
    environment:
      - xpack.security.enabled=false
      - xpack.security.http.ssl.enabled=false
      - discovery.type=single-node
    ports:
      - 9200:9200
    command: bin/elasticsearch

gem versions:
elasticsearch (8.2.2)
    elastic-transport (= 8.0.1)
    elasticsearch-api (= 8.2.2)

require "curb"
require "elasticsearch"
require "elastic/transport/transport/http/curb"

hosts = [{host: "localhost", port: 9200 }]
args = { hosts: hosts}

transport_curb = Elastic::Transport::Transport::HTTP::Curb.new(args)
transport_faraday = Elastic::Transport::Transport::HTTP::Faraday.new(args)

p transport_curb.perform_request("GET", "/")
#<Elastic::Transport::Transport::Response:0x00007f7f0269fc70 @headers={"content-type"=>"application/json"}, @body={"name"=>"25ec6cf5e464", "cluster_name"=>"docker-cluster", "cluster_uuid"=>"Js_9nTKBQf6PDputTzkcjA", "version"=>{"number"=>"8.0.1", "build_flavor"=>"default", "build_type"=>"docker", "build_hash"=>"801d9ccc7c2ee0f2cb121bbe22ab5af77a902372", "build_date"=>"2022-02-24T13:55:40.601285296Z", "build_snapshot"=>false, "lucene_version"=>"9.0.0", "minimum_wire_compatibility_version"=>"7.17.0", "minimum_index_compatibility_version"=>"7.0.0"}, "tagline"=>"You Know, for Search"}, @status=200>

p transport_faraday.perform_request("GET", "/")
#<Elastic::Transport::Transport::Response:0x00007f7f0263ed08 @headers={"x-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"326"}, @body={"name"=>"25ec6cf5e464", "cluster_name"=>"docker-cluster", "cluster_uuid"=>"Js_9nTKBQf6PDputTzkcjA", "version"=>{"number"=>"8.0.1", "build_flavor"=>"default", "build_type"=>"docker", "build_hash"=>"801d9ccc7c2ee0f2cb121bbe22ab5af77a902372", "build_date"=>"2022-02-24T13:55:40.601285296Z", "build_snapshot"=>false, "lucene_version"=>"9.0.0", "minimum_wire_compatibility_version"=>"7.17.0", "minimum_index_compatibility_version"=>"7.0.0"}, "tagline"=>"You Know, for Search"}, @status=200>

Note the @headers instance variable.
The fix
Found this SO thread where this example of grabbing all the headers from header_str.
diff --git a/lib/elastic/transport/transport/http/curb.rb b/lib/elastic/transport/transport/http/curb.rb
index c082a46..607b736 100644
--- a/lib/elastic/transport/transport/http/curb.rb
+++ b/lib/elastic/transport/transport/http/curb.rb
@@ -55,9 +55,11 @@ module Elastic
               end

               connection.connection.http(method.to_sym)
-
+              header_string = connection.connection.header_str.to_s
               response_headers = {}
-              response_headers['content-type'] = 'application/json' if connection.connection.header_str =~ /\/json/
+
+              _response_status, *response_headers = header_string.split(/[\r\n]+/).map(&:strip)
+              response_headers = Hash[response_headers.flat_map{ |s| s.scan(/^(\S+): (.+)/) }].transform_keys(&:downcase)

               Response.new connection.connection.response_code,
                            decompress_response(connection.connection.body_str),

After applying above fix, I got this result:
require "curb"
require "elasticsearch"
require_relative "../elastic-transport-ruby/lib/elastic/transport/transport/http/curb"
require_relative "../elastic-transport-ruby/lib/elastic/transport/transport/http/faraday"

hosts = [{host: "localhost", port: 9200 }]
args = { hosts: hosts}

transport_curb = Elastic::Transport::Transport::HTTP::Curb.new(args)

p transport_curb.perform_request("GET", "/")
#<Elastic::Transport::Transport::Response:0x00007faf46ad57d0 @headers={"x-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"539"}, @body={"name"=>"25ec6cf5e464", "cluster_name"=>"docker-cluster", "cluster_uuid"=>"Js_9nTKBQf6PDputTzkcjA", "version"=>{"number"=>"8.0.1", "build_flavor"=>"default", "build_type"=>"docker", "build_hash"=>"801d9ccc7c2ee0f2cb121bbe22ab5af77a902372", "build_date"=>"2022-02-24T13:55:40.601285296Z", "build_snapshot"=>false, "lucene_version"=>"9.0.0", "minimum_wire_compatibility_version"=>"7.17.0", "minimum_index_compatibility_version"=>"7.0.0"}, "tagline"=>"You Know, for Search"}, @status=200>

Now finally the missing header is being passed. :)

Hi @Chrizpy, great catch, thank you very much for this contribution!
Could you please sign the Contributor Agreement so I can merge this?
Thanks!

Hi @picandocodigo! I have signed the Contributor Agreement twice already... Not sure what I'm doing wrong, but I'll try once more!

Yeah it looks like maybe it was stuck and got unstuck when there was some activity on the issue. Thanks again! This will be out on the next release, coming soon :+1: