Failed health checks still deploy

From @sstarcher on May 3, 2016 17:19
I created an app that without proper configuration would fail health checks.  The following steps were followed.

Deis create app
git push deis
First version of app is deployed and in a crashback loop as expected
deis config:set HEALTHCHECK_URL=/
Second app version deployed and in a crashback loop as expected.  At this point kubectl get rcs --namespace=app shows 2 app versions are in a crashback loop
deis config:set rest of data to make app function
Third app version claims it has passed the health check, but the app takes several minutes to start up.  At this point the deis router routes to the app and gives a 503 even though the deis command line shows the app is good.  deis info shows version 3 of the app is up
Third version of the app finally comes up after several minutes and the router routes correctly to the app.
deis config:set is used to break the application configuration.
Fourth version of the app comes up and deis believes it has passed the health check.  Deis removes the third version of the app and now the router is back to a 503.

End result is
NAME                 READY     STATUS             RESTARTS   AGE
hound-v1-cmd-2fe47   0/1       CrashLoopBackOff   20         1h
hound-v2-cmd-qggwg   0/1       Error              5          33m
hound-v4-cmd-dw6u6   0/1       CrashLoopBackOff   6          9m

Old RCs are still hanging around and the app is down due to the third version being deleted prior to the 4th version passing health checks.
deis config:list
HEALTHCHECK_FAILURE_THRESHOLD      3
HEALTHCHECK_INITIAL_DELAY          1080
HEALTHCHECK_PERIOD_SECONDS         10
HEALTHCHECK_PORT                   5000
HEALTHCHECK_SUCCESS_THRESHOLD      1
HEALTHCHECK_TIMEOUT                400
HEALTHCHECK_URL                    /

Copied from original issue: deis/workflow#214

As it stand right now Deis has various timeouts when it is checking the kubernetes API and seeing if the pods are up and running. This is roughly ~2 mins timeout or so...
However Deis is not stopping the deploy if you see a situation like you are describing, it could end in a scenario where you have your old RC deleted. There is a failsafe switch that is supposed to rather bring up the old RC (up to previous scale) and kill off the new RC; seems like that is not kicking in for you.
One thing to take note of is the high initial delay and high timeout - We account for neither right now in our timeout handling for deploy / scale operations

@helgi thank you for the additional info.  I have now seen in several different occasions a healthy running app being updated with an app that never passes the health check and the old healthy RC is deleted which takes down the app.

Is it intended going forward that git push deis can succeed, but the application is never put live?  I don't believe that was the case in Deis v1.
Going forward will users need to query Deis to verify the new release succeeded?

@sstarcher I believe there may be a bug in the builder that is showing you success when it should be a failure.
The intent is not to have people verify these by hand, my point in the previous comment was more to list out what we may not be accounting for yet and could be making Deis return earlier, and do additional actions. Such as our cleanup procedure might be kicking in and killing v3 for you.
The way deploy works is that we bring in 1 pod of the new app, and remove 1 pod of the old (which we also did in v1; v2 does try to do more than 1 in/out if it has capacity if you are using current master and you can set DEIS_DEPLOY_BATCHES to 4 if you want 4 in/out kind of deployment) - With that model we will bring in the pod and query k8s on various status checks (including the health check), however we generally only have a 2 minute timeout on that operation.
Now if you consider the 2 minute timeout and then start looking at the fact you have a 1080 second INITIAL_DELAY (18 minute delay) then kubernetes won't even start consider to check the health of the app (readiness nor liveness) until after 18 minutes. During that time the pod should not be attached to the Service (in kubernetes) and thus not routable
If you have more than 1 pod then this will compound and deploy of the pods will take quite a wile, at least for kubernetes to funnel it into active usage
http://kubernetes.io/docs/user-guide/pod-states/ may help understand things beyond my ramblings :)
This is the key thing:

The default state of Readiness before the initial delay is Failure

Right now Deis combines your healthcheck into a readiness and a liveness check
It would help if you could put the controller log into a gist and link here for one of your deploys so I can see what's happening so we can come up with a plan of action.
Hope this sheds a bit of light, let me know if you need more info on a particular piece

I removed the <IP_ADDRESS> "GET /healthz HTTP/1.1" 200 2 "Go 1.1 package http" from the other applications.  v10 was the functional application that got scaled out of existence.  v11 had it's config changed to ensure it would fail the health check.
INFO app-latest: config app-latest-739613e updated
INFO app-latest: release app-latest-v11 created
INFO [app-latest]: jenkins changed HEALTHCHECK_URL
DEBUG create app-latest
DEBUG deploy app-latest-v11-cmd, img app-latest:git-7940f64b, params {'envs': {'HEALTHCHECK_PERIOD_SECONDS': 10, 'HEALTHCHECK_TIMEOUT': 120, 'HEALTHCHECK_FAILURE_THRESHOLD': 10, 'HEALTHCHECK_PORT': 8080, 'deis_whitelist': '<IP_ADDRESS>/16', 'HEALTHCHECK_URL': '/servlet/noooo', 'HEALTHCHECK_SUCCESS_THRESHOLD': 1, 'HEALTHCHECK_INITIAL_DELAY': 60, 'profile': 'aws-us-east-1-production-web'}, 'version': 'v11', 'healthcheck': {'timeout': 120, 'path': '/servlet/noooo', 'success_threshold': 1, 'period_seconds': 10, 'failure_threshold': 10, 'delay': 60, 'port': 8080}, 'batches': None, 'app_type': 'cmd', 'build_type': 'dockerfile', 'cpu': {}, 'replicas': 1, 'tags': {}, 'memory': {}, 'routable': True}, cmd ""
DEBUG scaling release app-latest-v11-cmd to 1 out of final 1
DEBUG waiting for 1 pods in app-latest namespace to be in services (120s timeout)
DEBUG waited 10s and 0 pods are in service
DEBUG waited 20s and 0 pods are in service
DEBUG waited 30s and 0 pods are in service
DEBUG waited 40s and 0 pods are in service
DEBUG waited 50s and 0 pods are in service
DEBUG waited 60s and 0 pods are in service
DEBUG waited 70s and 0 pods are in service
DEBUG waited 80s and 0 pods are in service
DEBUG waited 90s and 0 pods are in service
DEBUG waited 100s and 0 pods are in service
DEBUG waited 110s and 0 pods are in service
DEBUG 0 out of 1 pods in namespace app-latest are in service
DEBUG scaling old release app-latest-v10-cmd from original 1 to 0
DEBUG scaling RC app-latest-v10-cmd in Namespace app-latest from 1 to 0 replicas
DEBUG waiting for RC app-latest-v10-cmd to get a newer resource version than 94307274 (30s timeout)
DEBUG RC app-latest-v10-cmd has a new resource version 95173194
DEBUG waiting for 1 pods in app-latest namespace to be terminated (30s timeout)
DEBUG waited 10s and 0 pods out of 1 are fully terminated
DEBUG waited 20s and 0 pods out of 1 are fully terminated
DEBUG 1 pods in namespace app-latest are terminated
DEBUG Not scaling RC app-latest-v10-cmd in Namespace app-latest to 0 replicas. Already at desired replicas

Thanks - You are being bitten by the (somewhat arbitrary) 120 second timeout which never passes but we then happily go ahead start scaling down old release.
This one is a bit of a tough cookie... On one hand we should bail out if pods are not coming up within X period but on the other hand it is often k8s taking extra long and the deploy will eventually finish. If we bailed out then you'd never be able to finish (as things stand).
I'm going to think about this for a bit and see if I can come up with a solution that accounts for all these variances - Be warned tho, your deploy can take considerably longer if I start adding in more checks and balances (but you could cheat that by being generous with DEIS_DEPLOY_BATCHES or have many nodes)
If you are willing to fork the controller for now and bump up the timeouts then you can modify this line https://github.com/deis/controller/blob/master/rootfs/scheduler/init.py#L858 to be a much higher value, to fit your needs - You may run into this: https://github.com/deis/controller/issues/652 if you do a very high value but that's only a maybe.

@helgi I'm in no hurry as I won't be using this in production until after Deis v2 is stable.  Let me know if you need me to test anything out.  We do have 2 separate apps that take a while to load.  One takes 60-90s and the other one can take upward of 5mins as it has to warm a very large cache before being healthy.

Is that large cache warmed up on every deploy (as in local to every pod) or just the first time you put it on deis?
 Only so fast we can go, the main downside we have is the lack of feedback from the API back into the CLI, or just lack of feedback in generally from the API.

@helgi the things that takes a very long time would be on every deploy, but it's perfectly fine for it to also take a very long time to update.  It's an internal tool and very rarely has any changes applied to it.  If we had two instance of it and it takes them 5 mins to become healthy it would be no problem for it to take 10-20mins for all the applications to roll.

@sstarcher #709 partially addresses this - It basically takes your initial delay and combines it with the normal timeout (120s)
That way each pod gets a longer "wait" time while k8s and the health checkers are doing their thing.
See if you can give it a spin and if it addresses some of your issues

I likely won't get a chance to test it out until next week.

I once again reproduce this problem running rc1.  The deis controller took my app out of service when the new app was never healthy.

Previous apps were deployed via git push deis and the health check port has always been correct at port 80 as defined in the Dockerfile.  A new app was pushed using deis pull which proceeded to take the app out of service and cause an outage.
INFO [APP]: quay.io/IMAGE exists in the target registry. Using image for release 26 of app APP
WARNING [APP]: Private registry detected but no $PORT defined. Defaulting to $PORT 5000
INFO deploy APP-v26-cmd, img quay.io/IMAGE, cmd ""
INFO scaling release APP-v26-cmd to 4 out of final 4
INFO adding 50s on to the original 120s timeout to account for the initial delay specified in the readiness probe
INFO waiting for 4 pods in APP namespace to be in services (170 timeout)
INFO waited 10s and 0 pods are in service
INFO waited 20s and 0 pods are in service
INFO waited 30s and 0 pods are in service
INFO waited 40s and 0 pods are in service
INFO waited 50s and 0 pods are in service
INFO waited 60s and 3 pods are in service
INFO 4 out of 4 pods in namespace APP are in service
INFO scaling old release APP-v19-cmd from original 4 to 0
INFO scaling RC APP-v19-cmd in Namespace APP from 4 to 0 replicas
INFO waiting for RC APP-v19-cmd to get a newer resource version than 332481283 (30s timeout)
INFO RC APP-v19-cmd has a new resource version 332621049
INFO waiting for 4 pods in APP namespace to be terminated (30s timeout)
INFO 4 pods in namespace APP are terminated
INFO Not scaling RC APP-v19-cmd in Namespace APP to 0 replicas. Already at desired replicas

Another example of failed health checks, but the git push claims success.
NAME                  READY     STATUS             RESTARTS   AGE
public-v5-cmd-x3c93   0/1       CrashLoopBackOff   4          2m

=== public Config
HEALTHCHECK_FAILURE_THRESHOLD      3
HEALTHCHECK_INITIAL_DELAY          10
HEALTHCHECK_PERIOD_SECONDS         10
HEALTHCHECK_SUCCESS_THRESHOLD      1
HEALTHCHECK_TIMEOUT                50
HEALTHCHECK_URL                    /
PORT                               80

Build complete.

Done, public:v5 deployed to Deis

Use 'deis open' to view this application in your browser

To learn more, use 'deis help' or visit http://deis.io

To ssh://git@deis.cluster.private:2222/public.git
 * [new branch]      master -> master

INFO [public]: build public-be7638f created
INFO [public]: sstarcher deployed 66d4ade
INFO deploy public-v5-cmd, img <IP_ADDRESS>:80/public:git-66d4adee, cmd ""
INFO No prior RC could be found for public-cmd
INFO scaling release public-v5-cmd to 1 out of final 1
INFO adding 10s on to the original 120s timeout to account for the initial delay specified in the readiness probe
INFO waiting for 1 pods in public namespace to be in services (130 timeout)
INFO waited 10s and 0 pods are in service
INFO waited 20s and 0 pods are in service
INFO waited 30s and 0 pods are in service
INFO waited 40s and 0 pods are in service
INFO waited 50s and 0 pods are in service
INFO waited 60s and 0 pods are in service
INFO waited 70s and 0 pods are in service
INFO waited 80s and 0 pods are in service
INFO waited 90s and 0 pods are in service
INFO waited 100s and 0 pods are in service
INFO waited 110s and 0 pods are in service
INFO 1 out of 1 pods in namespace public are in service
WARNING [public]: Router was not ready to serve traffic to process type cmd in time, waited 10.052513599395752 seconds
<IP_ADDRESS> "POST /v2/hooks/build HTTP/1.1" 200 25 "deis-builder"


Add SOCKS5 and SOCKS5H schemes

Is your feature request related to a problem? Please describe.
We cannot use SOCKS5H which is especially required for WebAssembly/Emscripten based implementations
Describe the solution you'd like
Add proxy protocols that can be used for for proxifying connections to AWS servers
Describe alternatives you've considered
Implementing an extension module, but this feature has been requested before by other devs and it's trivial to do.
Additional context
PR has been created 3 months ago and so far nobody has done anything to it:
https://github.com/aws/aws-sdk-cpp/pull/1562

Hi, Sorry for the delay on this, but yea I'm taking a look at this. hopefully we'll be merging the PR soon.

Any chance of getting this issue reactivated, or is there any other existing way to get the aws-cpp-sdk S3 traffic going through an SOCKS5 proxy?


Campaign Index Screen

Description

Users should be able to see a list of all the campaigns they are registered in. This can be a table that lists the title of the campaign as well as the character, if any, they are using in the campaign. They should also be able to see the details of the campaign. This could include the entries that were generated as part of the campaign, among other things like campaign title, characters, etc...
Possible Implementation

N/a
Out of scope

N/a
Requirements / Restrictions

N/a
Mockups
Campaign Index

Hey team! Please add your planning poker estimate with ZenHub @AnnieTran13 @luigibesani @willyyhuang

I took a look at the campaign index page, here are some feedbacks:

Since you have to click on the join button to generate the url to join a campaign i believe, is it better to add the url directly as one of the column, and let user able to click to copy url?
The page looks pretty empty, maybe we can show more data in the table view? I am not sure what fields are related to campaign exactly but if there are not a lot of fields, I don't think we need a detail view


Nested array doesn't work on MySQL 5.7.44

Hello, i'm working on MySQL 5.7 in my office, and when i want use nested array, it doesn't work.
This :
import { jsonArrayFrom } from 'kysely/helpers/postgres'

const result = await db
.selectFrom('person')
.select((eb) => [
  'id',
  jsonArrayFrom(
    eb.selectFrom('pet')
      .select(['pet.id as pet_id', 'pet.name'])
      .whereRef('pet.owner_id', '=', 'person.id')
      .orderBy('pet.name')
  ).as('pets')
])
.execute()

return :
sqlMessage: "Unknown column 'person.id' in 'where clause'",

Anyone has solution for this ?
See you later !

You're importing the jsonArrayFrom helper from Postgres.


No transaction seems to happen

Hi, I successfully managed to run the bot but in more than 15 hours no transaction has been made, my config file looks like this :
{
    "coinbasepro" : {
        "api_url" : "https://api.pro.coinbase.com",
        "api_key" : "---",
        "api_secret" : "---",
        "api_passphrase" : "---",
        "config" : {
            "base_currency" : "ETH",
            "quote_currency" : "EUR",
            "live" : 1,
            "graphs" : 1,
            "verbosity" : 0,
	    "granularity" : 3600,
	    "smartswitching" : 1,
            "sellatloss" : 1
        }
    },
    "telegram" : {
        "token" : "---",
        "client_id" : "---"
    }
}

not even the first BUY has been made, still with fiat only in the wallet
is there something I miss?

Same here. Tried the DOT-EUR market for about 6 hours with granularity: 1h, then switched that off to have it use smart-switching for about 8 hours, no transaction either. Just now switched it to BTC-EUR, nothing happening either.
I'm using Binance rather than Coindesk (couldn't find how to get an api_passphrase? is that a pro thing as I only got the key and secret but no passphrase). So it doesn't seem to be linked to the exchange.
Logs:
2021-06-16 11:43:49 | BTCEUR (BULL) | 15m | Current Price: 33123.93
2021-06-16 11:43:49 INFO     2021-06-16 11:43:49 | BTCEUR (BULL) | 15m | Current Price: 33123.93
2021-06-16 11:44:53 | BTCEUR (BULL) | 15m | Current Price: 33127.53
2021-06-16 11:44:53 INFO     2021-06-16 11:44:53 | BTCEUR (BULL) | 15m | Current Price: 33127.53
* Candlestick Detected: Inverted Hammer ("Weak - Continuation - Bullish Pattern - Up")
2021-06-16 11:45:57 INFO     * Candlestick Detected: Inverted Hammer ("Weak - Continuation - Bullish Pattern - Up")
2021-06-16 09:45:00 | BTCEUR (BULL) | 15m | Close: 33127.9300 | v EMA12/26: 33115.2857 < 33128.7622 v | v MACD: -13.4765 < 0.0681 vv OBV: 1686.9300 (-0.0300%) v | ERI: sell |  | WAIT | Last Action: SELL
2021-06-16 11:45:57 INFO     2021-06-16 09:45:00 | BTCEUR (BULL) | 15m | Close: 33127.9300 | v EMA12/26: 33115.2857 < 33128.7622 v | v MACD: -13.4765 < 0.0681 vv OBV: 1686.9300 (-0.0300%) v | ERI: sell |  | WAIT | Last Action: SELL
Seasonal ARIMA model predicts the closing price will be 33222.06 at 2021-06-16 10:30:00 (delta: 94.13)
2021-06-16 11:45:59 INFO     Seasonal ARIMA model predicts the closing price will be 33222.06 at 2021-06-16 10:30:00 (delta: 94.13)
2021-06-16 11:47:03 | BTCEUR (BULL) | 15m | Current Price: 33120.78
2021-06-16 11:47:03 INFO     2021-06-16 11:47:03 | BTCEUR (BULL) | 15m | Current Price: 33120.78
2021-06-16 11:48:07 | BTCEUR (BULL) | 15m | Current Price: 33097.43

Am I reading it correct that the EMA12 is in fact below the EMA26, the MACD is above signal...? Because that would explain the fact that it's not buying according to: "EMA12 is currently crossing above the EMA26 and MACD is above the Signal OR MACD is currently crossing above the Signal and EMA12 is above the EMA26" in the readme.
But I'm not sure I'm reading the log correctly.


how to get segmentation cost map from segmentation results?

how to get segmentation cost map from segmentation results?I'm rather confused about this part, can you provide the code for this part?

We use a set of values from 0 to 1 for each semantic class. Then the cost values from the images are projected onto the ground plane and create a 2D cost map. This step should be straightforward. This is also explained in the paper.
In our implementation, we integrate it with TERP[1]. We superimpose our semantic cost with the cost map generated by TERP[1]. Please stay tuned for their code release.
[1] TERP: Reliable Planning in Uneven Outdoor Environments using Deep Reinforcement Learning
Please reopen the issue if you have further questions.


Toyota: add Leuxs NX fingerprint

Be sure to include the dongleID for the device these firmware versions were taken from

Hi, the dongle ID is
1303439f4af30ab1


update to v2.0.0b1

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-webservice.
I tried to re-render for you, but it looks like there was nothing to do.

@mcflugen any chance I could get some advise on this... Looking at the build logs, I think the problem is that both the landlab and the terrainbento tests are running... AND there are some errors in the landlab tests because pytest-datadir is not provided...
Any sense of why the landlab tests are running?
Thank you!


[Gene] Expandable description label UX improvements

Feedback from @YogaZenter:

[ ] The little arrow underneath it makes it appear as if you can expand by dragging down on it, which isn’t really the case. Make that work.
[ ] Figure out some heuristics to determine if the label really needs to be collapsed at all. Some descriptions are who short, that expanding only reveals a few more lines.

view has been redesigned since this issue was created


docs(v2): heading typo

Hi there,
It looks like there is a typo in the heading.

Motivation
Reduction of the typo cardinality in the open source world.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
None
Related PRs
None

👍


The package does nothing - "This is likely an error with the language package"

I'm using the 1.23.3 version of Atom and my packages are up to date.
I have atom-ide-ui installed.
As we can see here, java is installed too :

I've also set up the java path :

But when I open a java file, nothing is happening, no error detection or auto-completion.
Furthermore, when I toggle the outline panel I have this message :

Do you have an idea about what's going on ?

I checked my package settings and see that the Java Home setting is set to the default value for me though the executable is in the same directory for me:
$ which java
/usr/bin/java

I see the setting says "path to Java 8 or later home folder" but your screenshot shows that you have it set to the executable /usr/bin/java.  Can you try leaving it at the default value or if that doesn't work, set it to /usr?  /usr/bin didn't work for me, it looks like we tack on /bin automatically?
https://github.com/atom/ide-java/blob/4f7541456f1de96a67b6a52e4b9d2571a5ec9253/lib/main.js#L147

I tried to let the Java home field as blank Atom raised theses errors :

The same errors popup when I set the path as /usr.
I tried /usr/bin and I got this message :

With /usr/bin/java, it's seems fine for the java path, but the package still not working.
According to the dev tool, this is a problem with the server-manager module

It looks like the default Java Home setting is correct (i.e. you are getting openjdk version info back) but ide-java doesn't know how to interpret it.

Well it's fixed.
I downloaded the jdk from the oracle website instead of using the openjdk of my disrto and it's working pretty well.
Thank's you for your help everyone !


Only restart NRPE at the end of the chef-run

On systems that have systemd, the rate limiting will kick in and mark the nrpe service as failed if a lot of checks are changed. This causes the chef-run to fail.
Also, it makes sense to only restart NRPE once at the end of the run when all the files are in place.

Looks good..


How to use with microsoft account?

Ive seen that there is code for this but how is it done via the client

@pooxie-proxy

Connect to server requiring auth (working in online mode only)
Login to MS account on their portal, use the code provided by us to authorise access
Continue connecting to a vanilla server

please connect to only trusted servers otherwise you might get banned by anti cheat plugins since this client is not official

@pooxie-proxy

Connect to server requiring auth (working in online mode only)
Login to MS account on their portal, use the code provided by us to authorise access
Continue connecting to a vanilla server

please connect to only trusted servers otherwise you might get banned by anti cheat plugins since this client is not official

thanks!

broken for a few weeks, will be fixed in 4 days


[Question]: i want to build a multi-level tools or multi-level agent structure, but don’t know how to do it?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
tools1 = tools.from_tools(
tools = [tool1,tool2,tool3]
)
tools2 = tools.from_tools(
tools = [tool4,tool5,tool6]
)
ReActAgent.from_tools(
tools=[tools1,tools2]
)

Is there any way to achieve something similar to the above?

not use openai

What if I want more levels? @dosu


Remove runs from GUI after delete

Only remove runs from GUI after delete which actually got deleted.
Refactor runs info pane.

Closes #1335

I have a side question on the performance change of constructing graphical sub-elements in postCreate than in constructor. Is this change significant?

@whisperity In constructor we have to initialize only variables such as arrays, numbers etc. For custom widgets we have to use the postCreate method.
For more info see: https://dojotoolkit.org/reference-guide/1.10/dijit/_WidgetBase.html.

This patch is related to the old GUI and also the database clean up runs in a separated transaction which was fixed in #2794 patch. So this patch is not needed anymore.

This patch is related to the old GUI and also the database clean up runs in a separated transaction which was fixed in #2794 patch. So this patch is not needed anymore.


TP: Can't assign DS to servers by CDN/Profiles

This might be a "feature parity" one. With Traffic Ops, we could associate DS to servers using profiles before. Doesn't seem possible with new UI.
Workaround is probably using the filters and use the select all button.

This issue may be obsoleted by topology assignment assuming we get around to deprecating legacy ds-server assignments.


Support Python 3

What does this PR do?
Add Python3 support
Motivation
Getting ready for Py3
Review checklist

[ ] PR has a meaningful title or PR has the no-changelog label attached
[ ] Feature or bugfix has tests
[ ] Git history is clean
[ ] If PR impacts documentation, docs team has been notified or an issue has been opened on the documentation repo
[ ] If PR adds a configuration option, it has been added to the configuration file.

Additional Notes
Remove redundant aggregator fixture

Codecov Report

Merging #2837 into master will decrease coverage by 0.79%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2837      +/-   ##
==========================================
- Coverage   84.71%   83.91%    -0.8%
==========================================
  Files         667        4     -663
  Lines       37912      286   -37626
  Branches     4550       37    -4513
==========================================
- Hits        32116      240   -31876
+ Misses       4462       41    -4421
+ Partials     1334        5    -1329


[WIP][FEATURE] Added json-schema-validation to core

Tests

What is the purpose of this feature?

Once it's done, it will add the possibility of validating API's by a ruleset, defined in a json file.

@turbo-ele ping

Closing due to lack of feedback.


Roll engine 2a22019a8dd8..fcb3c519b29a (5 commits)

https://github.com/flutter/engine/compare/2a22019a8dd8...fcb3c519b29a
git log 2a22019a8dd8..fcb3c519b29a --no-merges --oneline
fcb3c519b Roll src/third_party/skia b726c89ff8a8..d004e0b55c4a (1 commits) (flutter/engine#6373)
5e3d786d0 Use nm from buildtools (flutter/engine#6371)
9ae1c14c3 Update observatory-port default behavior description. (flutter/engine#6365)
5550fdbc2 Remove cull_rects_ from SceneBuilder (flutter/engine#6352)
75e404f39 Roll src/third_party/skia 656cefe65d62..b726c89ff8a8 (8 commits) (flutter/engine#6370)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Loading issues on MacOS / Safari

@WichadaLMK reports that when she loads COVIDcast, it never full loads.
Investigate to see if we have a browser-specific issue.

Did some devtools debugging and found there was a js error:


Token '2015-09-09' doesn't match specifier '%d'

Did a fair amount of digging and still not seeing what i'm missing here.
GoAccess Command:
goaccess -f output.log --log-format='%d %t %h %^ %e %m %U %q %s %^ %b %^ %H' --date-format=%Y-%m-%d --time-format=%T -a -o report.html

Parsed 1 linesproducing the following errors:

Token '2015-09-09' doesn't match specifier '%d'

Format Errors - Verify your log/date/time format

Log:
2015-09-09 18:20:26 <IP_ADDRESS> - - [1]GET / - 302 987 260 - 443
2015-09-09 18:20:26 <IP_ADDRESS> - - [2]GET /EFTClient/Account/Login.htm - 200 5222 314 - 443
2015-09-09 18:20:26 <IP_ADDRESS> - - [3]GET /EFTClient/Shared/forms.css - 200 3687 353 - 443

This works for me:
goaccess access.log --log-format='%d %t %h %^ %^]%m %U %q %s %D %b %^' --date-format=%Y-%m-%d --time-format=%T --http-protocol=no --ignore-panel=OS --ignore-panel=BROWSERS --ignore-panel=REFERRING_SITES

Same result, I am using CowAxcess if that makes a difference.
bash-4.4$ goaccess output.log --log-format='%d %t %h %^ %^]%m %U %q %s %D %b %^' --date-format=%Y-%m-%d --time-format=%T --http-protocol=no --ignore-panel=OS --ignore-panel=BROWSERS --ignore-panel=REFERRING_SITES
Parsed 1 linesproducing the following errors:
Token '2015-09-09' doesn't match specifier '%d'

What's your locale? e.g., locale -a

I tried it in ubuntu (on windows) and got the same result. Cygwin bundled with goaccess didn't have the locale command built-in. I also tried setting the LANG variable but didn't make a difference.
goaccess output.log --log-format='%d %t %h %^ %^]%m %U %q %s %D %b %^' --date-format=%Y-%m-%d --time-format=%T --http-protocol=no --ignore-panel=OS --ignore-panel=BROWSERS --ignore-panel=REFERRING_SITES
Parsed 1 linesproducing the following errors:
Token '2015-09-09' doesn't match specifier '%d'
Format Errors - Verify your log/date/time format
locale -a
C
C.UTF-8
POSIX
en_US.utf8

When I look at the file in VI/VIM I don't show a space before the first line but I do see it when I view via "head". When I delete the first line the space shows up on whatever is the first line.
$ head output.log
2015-09-09 18:20:26 <IP_ADDRESS> - - [3]GET /EFTClient/Shared/forms.css - 200 3687 353 - 443
2015-09-09 18:20:26 <IP_ADDRESS> - - [5]GET /EFTClient/Shared/PTCs.js - 200 2195 371 - 443
2015-09-09 18:20:26 <IP_ADDRESS> - - [4]GET /EFTClient/Shared/jquery-1.4.2.min.js - 200 72476 383 - 443

The space was the issue, I still don't get where that is coming from and why it persists (on the new first line) when I delete the line but I just read the files in backward with tac and was able to get my data imported.


Fixes for paged iterations.

Fix #123: introduces maxResults parameter
Fix #124: fixed the behaviors of the streaming
it seems better to be back of using through2.

Codecov Report

Merging #126 into master will increase coverage by 0.12%.
The diff coverage is 90.62%.

@@            Coverage Diff             @@
##           master     #126      +/-   ##
==========================================
+ Coverage   92.22%   92.34%   +0.12%
==========================================
  Files          11       11
  Lines        1286     1294       +8
  Branches      259      266       +7
==========================================
+ Hits         1186     1195       +9
+ Misses        100       99       -1

Impacted Files
Coverage Δ

lib/gax.js
90.76% <100%> (+0.29%)
:arrow_up:

lib/paged_iteration.js
91.2% <89.28%> (+1.55%)
:arrow_up:

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 bb57085...3a8056e. Read the comment docs.

friendly ping -- please review this.


Find a better way to read secret keys in the launch.json file, so that it can be added to version control

This might help:
https://github.com/microsoft/vscode/issues/14523

what is described in https://github.com/microsoft/vscode/issues/14523 is not supported anymore. a different way needs to be found...


⚠ ETF has degraded performance

In c35f7e1, ETF (https://markets.hankyung.com/equity-product/etf) experienced degraded performance:

HTTP code: 200
Response time: 6966 ms

Resolved: 한경주요지수-코스피 performance has improved in 6bbf735.


Could not parce n transform function

1690349830362.js

1690349830362-base.txt

Stream url may be slow but still works

Yes I have the same!<PHONE_NUMBER>426-base.js)

Same issue:
WARNING: Could not parse n transform function.
Please report this issue with the "1690326539754-base.js" file on https://github.com/distubejs/ytdl-core/issues.
Stream URL may be slow but still works.

Is there a fix to this issue. I keep getting....
WARNING: Could not parse n transform function.
Please report this issue with the "1780478073198-base.js" file on https://github.com/distubejs/ytdl-core/issues.
Stream URL may be slow but still works.

Yesterday, I inspected a file om discord and the error is come from youtube file itself. So we can ignore this warning for now. I will check all your above file when I get home

Yesterday, I inspected a file on discord and the error is come from youtube file itself. So we can ignore this warning for now. I will check all your above file when I get home

WARNING: Could not parse n transform function.
Please report this issue with the "1690340970469-base.js" file on https://github.com/distubejs/ytdl-core/issues.
Stream URL may be slow but still works.
can anyone tell me how to fix this

Fixed with e3444db4b7c78bebc35ac02e26456c4f3f67e009
Update to the latest version with npm i @distube/ytdl-core@latest


Subtitles support

I think it will be a great idea to allows people to load subtitles in str format, when publishing video.
Cause for example im making my videos in polish language but I would like to make it more international by adding translated subtitles. Its anoying to need blend subtitles into video.

Thanks for the issue @kodxana 🙂
This is part of a much larger issue where we want to expand the data that can be included when you publish something. This will definitely require changes at the protocol level, so not much we can do right now. But thanks for documenting it!

I think we should close this for now, there are other ways around it. The new video player will support subs, but I think we should have users bake them into the mp4 as opposed to a separate file. Right now you can only upload one first with a claim, so it would suck to have to go to a separate claim for the subs, and then load the subs in. Even if we had the protocol changes, would still require loading the subs manually, which is worse UX for users. We would teach creators on how to embed them instead.


import all stage damage functions

previously, we were not handling asset type, so we just imported the total stage damage function. now that we have a way to handle asset type, we should import the structure, content, and other stage-damage functions instead of the total. @codymccoy do you have a guess on what that level of effort would be?

I think this would be pretty easy. This is what I have found so far:
1.) All the curves in the text file get read in.
2.) the curves get grouped by their plan name and year name:

3.) That group of curves gets used to create a stage damage element. This is where we are only grabbing the "total" curve

While debugging, I see that we have all the asset types:

This is the order that they come in:

I added logic to add all the curves. In my case, there were 5 curves and each has 5 asset types (including total) which comes out to be 25 curves total for the element:

When we open it up for edit, it shows all 25 curves and has the different asset types selected.

This work was completed in the update_index branch.

@codymccoy could you please exclude the "total" stage-damage functions? that will mess up the way that we aggregate results - we need either total or structure, content, vehicle, and other.

No problem. That is an easy change.

removed the total which produces 20 curves:


Scheduled task for send grant digest emails

Ticket #2133
Description
Adds a scheduled ECS task to send grant digest emails. A flag is introduced to switch from the old sending infrastructure (crons set up on our API boxes) over to the new scheduled ECS task.
The previous implementation was causing a couple problems:

Since we're running 2 API boxes in production, the cron was kicked off twice and users were receiving duplicates of the grant digest emails.
Running the send digest email task on our API boxes (both of them at the same time) would cause the servers to be somewhat unresponsive to normal web requests every morning while the digest emails were being sent.

This solution is meant to be a short-term fix. A more robust solution will require re-architecting the email infrastructure more broadly to support a task queue for individual emails, clear email send retries, dead letter queues, etc.
Additional context and discussion can be found in:

https://github.com/usdigitalresponse/usdr-gost/issues/2133
https://github.com/usdigitalresponse/usdr-gost/pull/2023
https://usdigitalresponse.slack.com/archives/C05GD4B55J9/p1711474419996129

Note to reviewer:

Recommend turning off whitespace in the Github diff view, as it'll make clearer what's changed in some of the tf blocks
I left a couple implementation questions inline as comments

Screenshots / Demo Video
Testing

Added automated unit tests
We'll need to actually run a test of this in staging, since it's prohibitively difficult to test the terraform scheduled task setup in development

Automated and Unit Tests

[ ] Added Unit tests

Manual tests for Reviewer

[ ] Added steps to test feature/functionality manually

Checklist

[ ] Provided ticket and description
[ ] Provided screenshots/demo
[ ] Provided testing information
[ ] Provided adequate test coverage for all new code
[ ] Added PR reviewers

@TylerHendrickson fixed!


Use grid model to create scenario

Pull Request Etiquette doc
Purpose
Allow the user to specify the grid model he wants to use in his scenario and access the corresponding profiles.
What the code is doing
It instantiates the _Builder class with an additional parameter grid_model. To use the usa_tamu grid model for the Western interconnect, the user will call the set_builder method in the Create class as follows:
from powersimdata.scenario.scenario import Scenario

scenario = Scenario('')
scenario.state.set_builder("usa_tamu", "Western")

By default set_builder will instantiate the Builder class for the full U.S. TAMU grid.
Testing
The following script:
from powersimdata.scenario.scenario import Scenario

scenario = Scenario('')

# Start building a scenario
scenario.state.set_builder("usa_tamu", "Western")

# set plan and scenario names
scenario.state.builder.set_name("test", "dummy")
# set start date, end date and interval
scenario.state.builder.set_time("2016-08-01 00:00:00",
                                "2016-08-31 23:00:00",
                                "24H")
# set demand profile version
scenario.state.builder.set_base_profile("demand", "vJan2021")
# set hydro profile version
scenario.state.builder.set_base_profile("hydro", "vJan2021")
# set solar profile version
scenario.state.builder.set_base_profile("solar", "vJan2021")
# set wind profile version
scenario.state.builder.set_base_profile("wind", "vJan2021")

# scale capacity of solar plants in WA and AZ by 5 and 2.5, respectively
scenario.state.builder.change_table.scale_plant_capacity(
    "solar", zone_name={"Washington": 5, "Arizona": 2.5})
# scale capacity of wind farms in OR and MT by 1.5 and 2, respectively
scenario.state.builder.change_table.scale_plant_capacity(
    "wind", zone_name={"Oregon": 1.5, "Montana Western": 2})
# scale capacity of branches in NV and WY by 2
scenario.state.builder.change_table.scale_branch_capacity(
    zone_name={"Nevada": 2, "Wyoming": 2})
# add AC lines in NM and CO
scenario.state.builder.change_table.add_branch(
    [{"capacity": 200, "from_bus_id": 2053002, "to_bus_id": 2053303},
     {"capacity": 150, "from_bus_id": 2060002, "to_bus_id": 2060046}])
# add DC line between CO and CA (Bay Area)
scenario.state.builder.change_table.add_dcline(
    [{"capacity": 2000, "from_bus_id": 2060771, "to_bus_id": 2021598}])
# add a solar plant in NV, a coal plant in ID and a natural gas plant in OR
scenario.state.builder.change_table.add_plant(
    [{"type": "solar", "bus_id": 2030454, "Pmax": 75},
     {"type": "coal", "bus_id": 2074334, "Pmin": 25, "Pmax": 750, "c0": 1800, "c1": 30, "c2": 0.0025},
     {"type": "ng", "bus_id": 2090018, "Pmax": 75, "c0": 900, "c1": 30, "c2": 0.0015}])
# add a new bus, and a new one-way DC line connected to this bus
scenario.state.builder.change_table.add_bus(
    [{"lat": 48, "lon": -125, "zone_id": 201, "baseKV": 138}])
scenario.state.builder.change_table.add_dcline(
    [{"from_bus_id": 2090023, "to_bus_id": 2090024, "Pmin": 0, "Pmax": 200}])

# get grid used in scenario
grid = scenario.state.get_grid()
print(grid.plant)
# get change table used to alter the base grid.
ct = scenario.state.get_ct()
print(ct)

# review information
scenario.state.print_scenario_info()

prints the expected outputs:
Transferring ScenarioList.csv from server
100%|########################################################################################################################| 408k/408k [00:00<00:00, 3.57Mb/s]
Reading bus.csv
Reading plant.csv
Reading gencost.csv
Reading branch.csv
Reading dcline.csv
Reading sub.csv
Reading bus2sub.csv
Reading zone.csv
--> Summary
# Existing study
test | Julia | Anchor | CEM | Terrapower
# Available profiles
demand: vJan2021
hydro: vJan2021
solar: vJan2021
wind: vJan2021
        bus_id      Pg     Qg   Qmax  Qmin      Vg   mBase  status  ...   This will be the next step.
Where to look

write ModelImmutables class in powersimdata.network.model: abstract the grid model
rename powersimdata.network.usa_tamu.usa_tamu_model as powersimdata.network.usa_tamu.model and change import statements.
empty __init__ file
refactor are_to_loadzone function in powersimdata.network.usa_tamu.model: remove dependency on the a Grid object
refactor code/tests using area_to_loadzone
add interconnect_to_name function in powersimdata.network.usa_tamu.model: convert a list of interconnect(s) to a string that will be written in the interconnect column of the ScenarioList.csv, e.g. ["Western", "texas"] --> "Texas_Western"
move usa_tamu related tests in powersimdata.input.tests.test_grid into a new powersimdata.network.usa_tamu.tests.test_model
change calling signature of get_profile_version method of InputData class
modify standard definition of dir in sub-modules powersimdata.network.usa_tamu.constants following PEP 562 to allow easy look up in ModelImmutables class
refactor the copy_base_profile of the BackupDisk class in powersimdata.scenario.move module
delete the _create_link_to_base_profile and _prepare_transformed_profile methods of the SimulationInput class in powersimdata.scenario.executemodule. Refactor the _prepare_profile one. The reason is that we cannot create link to base profiles because the profile being normalized, we need to scale the values by the nameplate capacity of the plants at the very least. We could still create a symbolic link to the demand profiles but these being small I decided to keep the code simple and make no distinction among profiles.
refactor the Create and _Builder classes in powersimdata.scenario.create module. The module has been greatly simplified.
delete unused powersimdata.scenario.helpers module

Time estimate
It will be long

I've read through this line by line and would like to checkout this branch to use it for a while as integration tests before approving. Thanks for handling the refactor of area_to_loadzone function and fixing the corresponding tests. It's everywhere. All tests passed!


Clarification of sRGB L_A calculation

I know this was changed and considered a "serious bug" in 9a4d871, however I haven't managed to follow your calculation.
In "Colorimetry: Understanding the CIE System" (ISBN: 978-0-470-04904-4), page 294 states equation 11.A1:
The L_A is computed: L_A = (E_W/PI) * (Y_b/Y_W)
where E_W = PI * L_W is the illuminance of reference white in lux unit; L_W the luminance of reference white in cd/m2 unit, Y_b the luminance factor of the background, and Y_W the luminance factor of the reference white.
Given the sRGB viewing environment stated here:
https://en.wikipedia.org/wiki/SRGB#Viewing_environment
Wouldn't that seem to be something more like 80 / 5 = 16?
This also happens to match the value stated in Table 16.3 on page 298 in "Color Appearance Models, 3rd Edition" (ISBN: 978-1-119-96703-3), which gives the "Viewing self-luminous display in office" L_A a value of 16 for an average surround.
Additional reference, p. 25, table 2.1 states a value of 15 for office (average surround).
http://www.springer.com/cda/content/document/cda_downloaddocument/9781441961891-c1.pdf
Thanks!

That's... a really interesting question.
So I think the discrepancy here is that sRGB actually specifies two different luminance conditions: notice that in that table on wikipedia, there's the "viewing environment" luminance at 80 cd/m^2, and the "encoding ambient illuminance level" at 64 lux = 64/pi cd/m^2 ~= 20.4 cd/m^2.
It's not obvious which of these numbers CIECAM02 should be using. Currently, colorspacious uses the latter. This is independent of the "serious bug", which is that we were calculating L_A as 20.4 cd/m^2 * 5 ~= 100 instead of 20.4 cd/m^2 / 5 ~= 4. So that was definitely a bug that needed fixing independently of this issue :-).
However, I really don't understand the games that the sRGB standard is playing with "viewing" versus "encoding" conditions, and it could be that the you're right, and the 80 cd/m^2 value is the one that we ought to be using. The reason I did it this way is that Moroney (2002), when giving recommendations for how to use CIECAM97s, the precursor to CIECAM02, says:
"For example, the sRGB standard has an ambient illumination level of 64 lux or an L_A value of 4. Annex D in the sRGB standard provides a typical office ambient illumination of 350 lux or an L_A value of 22. [...]
"An example is useful to illustrate how surround is determined. For the sRGB specification, the ambient illumination level is 64 lux and the monitor white is 80 cd/m^2. Using equation 1 the surround luminance can be computed to be 20.4 cd/m^2..."
From this I think (but am not certain!) that what's going on is the sRGB spec assumes that we are looking at a monitor that outputs 80 cd/m^2, in a room whose lighting is otherwise 64 lux, and that it's the latter number we're supposed to use for computing L_A.
If this is wrong, then I'd very much like to know, though I'm not sure who to ask...
Note also that the parameters from the sRGB spec may or may not be a good fit for your particular setting. The 64 lux value definitely corresponds to a rather dim setting (I think it's supposed to simulate, like, watching a movie with the lights off and curtains closed), and if you'd rather do calculations assuming a "typical office environment" then you're free to use a different L_A regardless of what sRGB says. But I do want to know what sRGB says, because I think that's the only reasonable way for us to set our defaults, even if it turns out to be a bit weird.

CC @KelSolaar

80 cd.m^-2 is indeed the white point luminance of the display and not Luminance of the background / surround.

This page from ICC cites IEC 61966-2-1:1999 which should give you what you need: http://www.color.org/chardata/rgb/srgb.xalter

Perhaps I misunderstand, but I believe the formula used for L_A does use the luminance of the reference white:
https://en.wikipedia.org/wiki/CIECAM02#Parameter_decision_table
The absolute luminance of the adapting field, which is a quantity that will be needed later, should be measured with a photometer. If one is not available, it can be calculated using a reference white:
...
where Yb is the relative luminance of background, the Ew = πLW is the illuminance of the reference white in lux, LW is the absolute luminance of the reference white in cd/m2, and Yw is the relative luminance of the reference white in the adapting field. If unknown, the adapting field can be assumed to have average reflectance ("gray world" assumption): LA = LW / 5.
So doesn't that lead to, LW = 80 (absolute luminance of reference white in cd/m2), Yb/YW = 1/5 ?

sRGB defines two different reference whites: the reference white of the medium (the monitor itself), and the reference white of the viewing environment (the rest of the room).
So we have an unambiguous statement from Nathan Moroney (who chaired the committee that designed CIECAM02) saying that L_A should be calculated using the 20.4 cd/m^2 value, and an ambiguous statement from wikipedia that is open to interpretation, but that you interpret as saying it should use the 80 cd/m^2 value. Given that I can't really make a definitive statement myself, I'm open to the possibility that Nathan Moroney is wrong -- we all have off days, or maybe there's some obscure technical change that happened between CIECAM97s and CIECAM02! But it will need much more to convince me than this :-).


[BUG] Kafka *ByteRate metrics are non-zero for idle pipelines

Describe the bug
While my pipeline is idle the kafka source plugin continuously reports byte rate data when there is no data flowing from the kafka cluster to my pipeline. This is seen for both incomingByteRate and outgoingByteRate.
Ideally I would expect this to be zero during idle periods.

incomingByteRate and outgoingByteRate are obtained from the Kafka Client Library by doing consumer.metrics(). I think they are non-zero because there are house-keeping messages like heart-beat messages are sent between the client and the server even when there is no regular traffic. DataPrepper just exposes whatever value is returned by consumer.metrics()


Feature Request: Translate String to HotKey

I have a very simple feature request: implement a map or function to translate string to a hotkey.
This is very helpful when we use a custom hotkey configuration.

I think this feature has been discussed before, and we don't do it because the string-key mapping is not always bijective. See #14.
For a user of this package, one can always maintain the desired string to hotkey map themselves.

Based on the previous discussion, this is obsolete.


YAML Support for sidebar menu

I'm using Academic to create a site for a class I teach. I'm using the Projects section to hold the textbook I'm writing and the Tutorial section for our R labs. Because I'm teaching students how to use R I'm writing the site in RStudio and deploying it through Github and Netlify. I really like the sidebar menu that is available in the Projects section and want to use the same tool for my Tutorials but since I'm using R-markdown I have to use a YAML header rather than TOML. I copied the sidebar block from the .md file and tried about a ba-zillion permutations of that code to make it work with YAML, but have not been successful. In every case, I get an error message, "...could not find expected ':'...". So, of course, I inserted all kinds of colons, but that did not help. I've used various indentation schemes, single and double square brackets around "menu.textbook," and reordered the lines, but it still fails. The only attempt that did not throw an error was this:

menu.labs:
  linktitle: "Lab 1"
  parent: "Part 1"
  weight: 10

However, that also did not produce a sidebar menu. Maybe the sidebar menu just plain does not work with YAML and, if so, I'll accept that and do without; but it would be nice to have that feature.
Thanks for your consideration of this question -- I appreciate any help that I can get.

That appears to be a Blogdown issue - I suggest raising it with them to fix the issue with "hugo is not available".


fixing __soapCall() method signature

Storm complains when the correct method signature is in place. Using the stub's signature throws a warning in the error_log, so I updated the method signature.
Please see https://youtrack.jetbrains.com/issue/WI-47198

Hello, thx for your contribution!

Thanks for the speedy merge! :-D


[HTML-CSS output] msubsup with maction rendering issue

Originally reported at https://github.com/mathjax/MathJax-RespEq/issues/43
Minimal(?) sample:
<math>
<msubsup>
      <mrow>
        <mo fence="true" stretchy="true" ></mo>
        <mrow>
          <maction actiontype="toggle">
            <mtext mathcolor="blue">◂+▸</mtext>
              <mi>a</mi>
          </maction>
          <mo>|</mo>
        </mrow>
      </mrow>
      <mi>y</mi>
      <mi>x</mi>
    </msubsup>
</math>

To describe the visual result: the sub/sup appears on the far left, ie., attached to the empty mo not the |, overlapping the mtext element from the maction.

I suspect it is due to the fact that the <mtext> paired with <mo> is an embellished operator, and the layout is getting confused by the width of the base in that case.  I will have to check further.  In any case, a slightly reduced case is
<math display="block">
  <msubsup>
    <mrow>
      <mo></mo>
      <mrow>
        <mtext>xx</mtext>
        <mo>|</mo>
      </mrow>
    </mrow>
    <mi>y</mi>
    <mi>x</mi>
  </msubsup>
</math>

It turns out that the width of mrows that contain embellished operators that could stretch but don't actually have to was being computed incorrectly (he width of the core mo was being used rather than the complete operator).  That is why the embellished operator in this case was causing the problem.
So an even more reduced test case is
<math display="block">
  <mrow mathbackground="red">
    <mrow>
      <mtext>x</mtext>
      <mo>|</mo>
    </mrow>
  </mrow>
</math>

Here the red background color will be too small (it should cover the complete expression, but will only cover about half of the "x").
The issue1332 branch of my fork of MathJax includes the fix for this.

=> In testsuite
MathMLToDisplay/issue1332.html

=> Merged


Metrics

This PR adds the metrics outlined in proposal 47.
Note there are a couple of name changes in the implementation compared to the proposal:

Proposal
Implementation

io.strimzi.kafka.quotas:type=LocalThrottleFactor,name=ThrottleFactor
io.strimzi.kafka.quotas:type=ThrottleFactor,name=ThrottleFactor

io.strimzi.kafka.quotas:type=LocalThrottleFactor,name=FallbackThrottleFactorApplied
io.strimzi.kafka.quotas:type=ThrottleFactor,name=FallbackThrottleFactorApplied

io.strimzi.kafka.quotas:type=LocalThrottleFactor,name=LimitViolated
io.strimzi.kafka.quotas:type=ThrottleFactor,name=LimitViolated

io.strimzi.kafka.quotas:type=ClusterVolumeSouce,name=ActiveBrokers
io.strimzi.kafka.quotas:type=VolumeSouce,name=ActiveBrokers

io.strimzi.kafka.quotas:type=ClusterVolumeSouce,name=ActiveLogDirs
io.strimzi.kafka.quotas:type=VolumeSouce,name=ActiveLogDirs

In short LocalThrottleFactor -> ThrottleFactor and ClusterVolumeSource -> VolumeSource as the local and cluster distinctions no longer make sense (I don't think they actually did when merged the proposal but no one picked up on the fact we had lost the distinction).

Instead of having the static metricName called from a few spots could we instead pass in some class with the metrics bits on it? Like new QuotaPluginMetrics(defaultTags) and call methods on it like metrics.volumeSource().incrementConsumedBytes(xyz). Then we could avoid some of the defaultTags fields and hopefully contain the metricName logic.

@ppatierno @tombentley I don't believe there is anything outstanding on this PR, if I'm right could one of you kindly hit the merge button? Otherwise please let me know what else needs looking at?


Slack Log Levels?

Version
0.90

Description
The bot is connected to Slack and reports all events. Can I limit what bot sends to Slack and filter out all trailing messages?

Hello @peweb
It is not possible right now but you can submit a PR if you like

The PR has been merged.
Close the issue.

@chrisleekr
@rando128
How can I set notifyOrderConfirm notifyDebug to false?

Hello @peweb
Add these lines to your .env file:
BINANCE_FEATURE_TOGGLE_NOTIFY_DEBUG=false
BINANCE_FEATURE_TOGGLE_NOTIFY_ORDER_CONFIRM=false


Add Zebra BI visuals.

@MitjaBezensek : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @MitjaBezensek,
We removed the list of 'certified Power BI visuals' from the Get a Power BI visual certified article, and replaced it with the Certified Power BI visual badges section.
Following this change, there's no need to add Zebra BI visuals to this article.
Thanks,
Kesem

I see. I saw the list and since we recently got certified I wanted to update it.
Thanks for letting me know.


Is it possible to disable app close when swipe down?

Hello! Right now if the mini app is open (fully expanded) and you swipe screen down the app closes. It's a standard behavior for many apps. But I have seen an app that doesn't cloce on swipe-down. It stays open and it doesn't even change the viewport size when you drag it down. It stays full height despite this.
Is it possible to do the same with vue-telegram ???
Thank you in advance!

Hello!

But I have seen an app that doesn't cloce on swipe-down. It stays open and it doesn't even change the viewport size when you drag it down

Can you show me an app doing this? Probably some hacks are used to make Telegram app think that there is scrollable content in the webview. I don't recommend doing something like that, it's very unreliable and more importantly it's bad UX.
The intended way to prevent an app from closing is to use a closing confirmation:
<script lang="ts" setup>
import { useWebAppClosingConfirmation } from 'vue-tg'

const { enableClosingConfirmation, disableClosingConfirmation } = useWebAppClosingConfirmation()

enableClosingConfirmation()

// or

const { isClosingConfirmationEnabled } = useWebAppClosingConfirmation()

isClosingConfirmationEnabled.value = true
</script>

This will open a confirmation popup when the app closes.

Here is an example of the App that doesn't close on drag down: https://t.me/notcoin_bot
It's a game and in this case such App behavior doesn't break user experience.

Here is an example of the App that doesn't close on drag down: t.me/notcoin_bot

Doesn't work for me. If I understand you correctly I should not be able to close the app this way?
https://github.com/deptyped/vue-telegram/assets/26162440/914ee473-50d6-4ad6-85b7-45db8cdfe67b

Yes, you got me right. But on my smartphone, it doesn't close when you drag it down... iPhone.

Yes, it works on iPhone but unreliably, sometimes I can close the app this way, sometimes not. Looks more like a bug in the Telegram app rather than something done on the Notcoin web app side.

Another app that have done that perfectly (tg bot) @tapswap_bot
I'm still investigating how they have done that, but it doesn't even try to swipe, just locked.

@maybephilipp Interesting, looks like some height: 100vh + overflow: hidden magic, this prevents closing, but also breaks scrolling

Yeah @deptyped  I've investigated their source code (debug) and found the solution. I've also made the scrolling working (their solution was breaking it)
So steps to implement:

Document/body magic (without this touchmove step doesn't fix the problem for some reason):

const overflow = 100
document.body.style.overflowY = 'hidden'
document.body.style.marginTop = `${overflow}px`
document.body.style.height = window.innerHeight + overflow + "px"
document.body.style.paddingBottom = `${overflow}px`
window.scrollTo(0, overflow)

Block touchmove (block scroll on doc and body, because of the first step. Make body's child scrollable and then...):

let ts: number | undefined
const onTouchStart = (e: TouchEvent) => {
  ts = e.touches[0].clientY
}
const onTouchMove = (e: TouchEvent) => {
  if (scrollableEl) {
    const scroll = scrollableEl.scrollTop
    const te = e.changedTouches[0].clientY
    if (scroll <= 0 && ts! < te) {
      e.preventDefault()
    }
  } else {
    e.preventDefault()
  }
}
document.documentElement.addEventListener('touchstart', onTouchStart, { passive: false })
document.documentElement.addEventListener('touchmove', onTouchMove, { passive: false })

After that it works perfectly, no rage scroll breaks it. The only concern is that maybe some device has reversed scroll direction, in that case we will need to reverse touchmove condition logic, but anyway - it's working.

onst overflow = 100
document.body.style.overflowY = 'hidden'
document.body.style.marginTop = `${overflow}px`
document.body.style.height = window.innerHeight + overflow + "px"
document.body.style.paddingBottom = `${overflow}px`
window.scrollTo(0, overflow)

it's awesome !

Has anyone tried this method with Flutter Web? It seems like scrollTo doesn't work after loading, leaving a white stripe. Nothing helped.

Yeah @deptyped I've investigated their source code (debug) and found the solution. I've also made the scrolling working (their solution was breaking it)
So steps to implement:

Document/body magic (without this touchmove step doesn't fix the problem for some reason):

(tailwind style) document: h-auto, overflow-hidden body: min-h-screen h-screen overflow-hidden
js code:
const overflow = 100
document.body.style.overflowY = 'hidden'
document.body.style.marginTop = `${overflow}px`
document.body.style.height = window.innerHeight + overflow + "px"
document.body.style.paddingBottom = `${overflow}px`
window.scrollTo(0, overflow)

Block touchmove (block scroll on doc and body, because of the first step. Make body's child scrollable and then...):

let ts: number | undefined
const onTouchStart = (e: TouchEvent) => {
  ts = e.touches[0].clientY
}
const onTouchMove = (e: TouchEvent) => {
  if (scrollableEl) {
    const scroll = scrollableEl.scrollTop
    const te = e.changedTouches[0].clientY
    if (scroll <= 0 && ts! < te) {
      e.preventDefault()
    }
  } else {
    e.preventDefault()
  }
}
document.documentElement.addEventListener('touchstart', onTouchStart, { passive: false })
document.documentElement.addEventListener('touchmove', onTouchMove, { passive: false })

After that it works perfectly, no rage scroll breaks it. The only concern is that maybe some device has reversed scroll direction, in that case we will need to reverse touchmove condition logic, but anyway - it's working.

牛逼

let ts: number | undefined
const onTouchStart = (e: TouchEvent) => {
  ts = e.touches[0].clientY
}
const onTouchMove = (e: TouchEvent) => {
  if (scrollableEl) {
    const scroll = scrollableEl.scrollTop
    const te = e.changedTouches[0].clientY
    if (scroll <= 0 && ts! < te) {
      e.preventDefault()
    }
  } else {
    e.preventDefault()
  }
}
document.documentElement.addEventListener('touchstart', onTouchStart, { passive: false })
document.documentElement.addEventListener('touchmove', onTouchMove, { passive: false })

牛逼

是的@deptyped 我调查了他们的源代码（调试）并找到了解决方案。我还是使用滚动功能阅读（破坏他们的解决方案）
实施步骤如下：

文档/正文（缺少此touchmove步骤，由于某种原因无法执行）：

（顺风风格） document: h-auto, overflow-hidden body: min-h-screen h-screen overflow-hidden
js代码：
const overflow = 100
document.body.style.overflowY = 'hidden'
document.body.style.marginTop = `${overflow}px`
document.body.style.height = window.innerHeight + overflow + "px"
document.body.style.paddingBottom = `${overflow}px`
window.scrollTo(0, overflow)

阻止 touchmove（阻止在 doc 和 body 上滚动，因为第一步。使 body 的子项可滚动然后...）：

let ts: number | undefined
const onTouchStart = (e: TouchEvent) => {
  ts = e.touches[0].clientY
}
const onTouchMove = (e: TouchEvent) => {
  if (scrollableEl) {
    const scroll = scrollableEl.scrollTop
    const te = e.changedTouches[0].clientY
    if (scroll <= 0 && ts! < te) {
      e.preventDefault()
    }
  } else {
    e.preventDefault()
  }
}
document.documentElement.addEventListener('touchstart', onTouchStart, { passive: false })
document.documentElement.addEventListener('touchmove', onTouchMove, { passive: false })

之后，它就完美地运行了，没有愤怒滚动会破坏它。唯一担心的是，也许有些设备反转了滚动方向，这样，我们需要反转 touchmove 条件逻辑，但无论如何 - 它正在工作。

牛逼

Thanks maybephilipp...
In addition to maybephilipp solution you have to expand the window in some cases for this to work using Telegram.WebApp.expand() or if you are using packages like telegram-mini-app use WebApp.expand()

Finally, with the latest Bot API 7.7 update, Telegram supports this natively 🎉
Support for Bot API 7.7 has been added to vue-tg in 0.7.0.
You can now disable vertical swipes easily:
<script lang="ts" setup>
import { useWebAppViewport } from 'vue-tg'

const { enableVerticalSwipes, disableVerticalSwipes } = useWebAppViewport()

disableVerticalSwipes()

// or

const { isVerticalSwipesEnabled } = useWebAppViewport()

isVerticalSwipesEnabled.value = false
</script>

Also, you can check that this feature is supported:
<script lang="ts" setup>
import { useWebApp, useWebAppViewport } from 'vue-tg'

const { isFeatureSupported } = useWebApp()
const { disableVerticalSwipes } = useWebAppViewport()

if (isFeatureSupported('DisableVerticalSwipes')) {
  disableVerticalSwipes()
} else {
  // some kind of fallback or alert
}
</script>

  window.addEventListener("touchmove", (e) => e.preventDefault(), { passive: false });
        window.scrollTo(0, 100);

But it isn't work, in console I can see warning that current version 7.6 doesn't support this feature...

@rn-lazuka This is correct, Bot API 7.6 does not support this feature. Make sure your Telegram client supports Bot API 7.7.

@rn-lazuka This is correct, Bot API 7.6 does not support this feature. Make sure your Telegram client supports Bot API 7.7.
<script lang="ts" setup>
import { useWebApp } from 'vue-tg'

const { version } = useWebApp()

console.log('Supported Bot API version:', version)
</script>

It's not my client, it's telegram client, and they don't update it. Since begining of July

@rn-lazuka Bot API 7.7 available in beta versions of some clients (Telegram Android Beta, for example)


Feature: Message Encoders

Currently, MessageDecoder class has all the WM message decoders. Also provide the opposite, for making messages from the decoded parameters.

Resolved with version 2 - Uses Packets that can be used for both encoding and decoding.


fix bugs issues

TITLE
Description
Description of the pull request changes and motivation.
Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (92c2801) 73.90% compared to head (1d07c8c) 73.94%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #368      +/-   ##
==========================================
+ Coverage   73.90%   73.94%   +0.03%
==========================================
  Files          97       97
  Lines       22153    22152       -1
==========================================
+ Hits        16372    16380       +8
+ Misses       5781     5772       -9

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[WIP] VCR cassettes for updated client

It's a continuation of #38 to validate test coverage and publish VCR cassettes.
Please, don't merge, created for review.

Current coverage is 94.96% (diff: 96.58%)

Merging #40 into master will increase coverage by 1.16%

@@             master        #40   diff @@
==========================================
  Files            14         16     +2
  Lines          1178       1470   +292
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1105       1396   +291
- Misses           73         74     +1
  Partials          0          0

Powered by Codecov. Last update 85de25b...3f1fce9


Improve docstring for on_local_process

Makes the docstring aligned with the rest of the on_*_process docstrings

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


go mod tidy

Signed-off-by: Kazuyoshi Kato<EMAIL_ADDRESS>Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

LGTM :ship:


Detecting user exit from live

Hey, I have a specific requirement where I need to track when users leave a live. I noticed that the library provides a method to capture when a user joins a stream, but I couldn't find a way to determine when they leave. Is there a recommended approach or workaround to achieve this functionality using the TikTokLive library? Ideally, I would like to be able to detect when a user is no longer present in the stream and perform certain actions based on that information. Any guidance or suggestions on how to implement this feature would be greatly appreciated. 🙏🏻

Not possible, TikTok do not provide that data

Thank you, can you suggest if there is a way to get information about all current viewers?

As a general rule: If you can't see it on TikTok, you can't do it with this lib. We can't make up data.


add package dependencies to nytaxi example

when running the app, python will complain about missing direct imports
(dask, xarray, datashader), but the other missing dependencies (fastparquet
and python-snappy) are more difficult to track down, since the bokeh serve
command will simply show a white page with no exception on the
python console.
The dependencies listed in the PR are the ones needed in addition if
holoviews was installed via the recommended way:
conda install -c pyviz holoviews bokeh

Thanks @Iltalirz, much appreciated.


Add ApiDog Logo -- Icon one

Name with link
ApiDog
Description
Link to the vector file, preferably from an official source

Added in 29e8719bf78915c7a82a26a6c203f53c4cb8fff2
Thanks

Thanks for the consideration. 👌


FieldBackedProviderFieldInjectionDisabledTest was never run due to broken config

Can I ask somebody to rerun CI?

I will merge this as soon as the intensely sporadic failures (not related to this PR) are fixed by #354, and I can update this PR to get a clean build.

Commenting to trigger CLA-recheck(?)


Fixes BusyBox nsenter from parsing iptables script args

Prevents BusyBox's build of nsenter from incorrectly parsing istio-iptables.sh arguments as its own. Discovered when using the Kubernetes distribution "k3s" (https://github.com/k3s-io/k3s/issues/1434). A similar fix was used for Linkerd.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
[X] Does not have any changes that may affect Istio users.

Hi @marshallford. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@marshallford: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
ecd741486e3508e07439dd62370de5825ff3aa22
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@marshallford: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
ecd741486e3508e07439dd62370de5825ff3aa22
link
/test unit-tests_istio

integ-pilot-multicluster-tests_istio
ecd741486e3508e07439dd62370de5825ff3aa22
link
/test integ-pilot-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@marshallford: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
ecd741486e3508e07439dd62370de5825ff3aa22
link
/test unit-tests_istio

integ-pilot-multicluster-tests_istio
ecd741486e3508e07439dd62370de5825ff3aa22
link
/test integ-pilot-multicluster-tests_istio

integ-telemetry-mc-k8s-tests_istio
ecd741486e3508e07439dd62370de5825ff3aa22
link
/test integ-telemetry-mc-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@marshallford this PR was approved. Please fix the test failures.

@marshallford this PR was approved. Please fix the test failures.

/retest

/retest


Rewrite of tests to actually test

Rewrite of tests in three ways.

Table-driven tests so that it is easier to add additional tests in the future.
Actually tests to see that the number of expected entities and kinds of entities are actually there when reading.
Added a test for checking for writing as well.

Thank you for excellent PR for tests!


Improve animation handling in scene_viewer

Objective
Cleanup and improve animation controls in scene_viewer
Solution

Print named animations when loading the scene
In the instructions printed in the terminal, say how to add animation handling
Associate animation with name, so as to display their name in the terminal when switching to a new animation
Extract animation code into its own individual module. Mostly to eliminate the #[cfg()] peppered over the source.

Note, this was first part of #8158.

Changelog

Add animation names when switching animation in scene_viewer
Add instructions on how to enable animations in scene_viewer when not compiled with the animation flag

Superseded by #8158


[TextField] Autofill font size changes on page interaction

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
When a text field is prefilled the font size changes when the user interacts with the page.
Autofill on page load

Autofill on page interaction

Gif

Expected behavior 🤔
The font size should be consistent so the user doesn't see a flicker of resizing when interacting with the page.
Steps to reproduce 🕹
Steps:

Enable autofill on Chrome or Edge
Have save details like username / password
Load a page that prefills saved details

Context 🔦
Consistent look and feel for a prefilled text field.
Your environment 🌎

`npx @mui/envinfo`
  System:
    OS: Windows 10 10.0.19042
  Binaries:
    Node: 16.13.2 - C:\Program Files\nodejs\node.EXE
    Yarn: Not Found
    npm: 8.1.2 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 101.0.4951.54
    Edge: Spartan (44.19041.1266.0), Chromium (101.0.1210.39)
  npmPackages:
    @emotion/react: ^11.8.2 => 11.8.2
    @emotion/styled: ^11.8.1 => 11.8.1
    @mui/base:  5.0.0-alpha.74
    @mui/icons-material: ^5.5.1 => 5.5.1
    @mui/material: ^5.5.3 => 5.5.3
    @mui/private-theming:  5.5.3
    @mui/styled-engine:  5.5.2
    @mui/system:  5.5.3
    @mui/types:  7.1.3
    @mui/utils:  5.6.1
    @mui/x-data-grid: ^5.10.0 => 5.10.0
    @mui/x-date-pickers: ^5.0.0-alpha.2 => 5.0.0-alpha.2
    @types/react: ^17.0.43 => 17.0.43
    react: ^17.0.2 => 17.0.2
    react-dom: ^17.0.2 => 17.0.2
    typescript: ^4.6.3 => 4.6.3

Still no fix?
Doesn't work anymore: input:-webkit-autofill::first-line { 	font-size: 16px; }

Any workaround? I've tried everything about autofill...

Same problem. Is it the browser's behavior or something else?


Add/fix searching getters

Getters like first on Pair<A, B> should be generated in inkuire-plugin and be searchable in engine

Probably is fixed by #116


I wish /docs/user-guide/kubectl-overview/ linked to the correct google groups URL

I wish /docs/user-guide/kubectl-overview/ linked to the correct google groups URL
I came in through the "I wish" box in the footer, but realized a PR would get us further toward my goal than an issue would
The groups page linked to in the existing footer now has scary language in a big font, along with a membership requirement. That page does mention kubernetes-users but it does not link to said group. This fixes both of those problems.

@mdaniel Thanks for fixing this.  Yes this PR will go a lot farther towards a resolution than filing an issue!


FIX-#3884: Fix read_excel() dropping empty rows

Signed-off-by: Naren Krishna<EMAIL_ADDRESS>
What do these changes do?
In Pandas 1.3.0, read_excel behavior changes from dropping empty rows or rows with a border in .xlsx files to including them with "NaN" values. This Modin change ensures compatibility with Pandas. Resolves #3884.

[x] tests added and passing
[x] module layout described at docs/development/architecture.rst is up-to-date
[x] added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

Could you please add issue #3884 in the PR description?

Thanks @naren-ponder! Looking at this, there may be cases where the partitions are parsing both values and border-only cells. Can we create a test case that is 50 rows or so with every other row being empty with a border? This implementation might fail that test from my understanding of the code.

Added a test case for this to test_io.py.


No permissions on project filter causes odd message

When I navigate to a team details page, if I don't have access to the projects filter, I still see a message "Expecting more projects? Try adjusting your filter"

this work has been deprioritized.


Create a soft-delete plugin

Very likely based on https://github.com/CoderDojo/community-platform/issues/1102 's solution

Closing, this is seneca related.


Misleading docs

This page says: https://pulumi.io/quickstart/kubernetes/configure/

"Configure Kubernetes so the Pulumi CLI can connect to a Kubernetes cluster."

Yet the homepage says:

"Kubernetes
Deploy and orchestrate cloud native Kubernetes services in real code, no YAML needed."

So how can there be no YAML needed when I first need to set up the entire kubernetes platform and run it by myself outside of Pulumi? That doesnt make any sense.

We do this now in https://www.pulumi.com/docs/get-started/kubernetes/ (and to a lesser extent https://www.pulumi.com/docs/intro/cloud-providers/kubernetes/).


weird baseline issue in multilanguage LaTeX objects

Description of bug / unexpected behavior
When mixing Chinese script and Western text inside the same Tex() object using the TexTemplateLibrary.ctex or XeLaTeX directly, the baselines of the Chinese script is not adjusted to the rest of the text. Running the same code on Docker with Manim v0.16.0 results in a correct rendering.
Expected behavior
The baseline generated by LaTeX/XeLaTeX should be preserved.
How to reproduce the issue

Code for reproducing the problem
class MyScene2(Scene):
    def construct(self):
        tex = Tex(r'Hallo 你好 \LaTeX', tex_template=TexTemplateLibrary.ctex).scale_to_fit_width(12)
        self.add(tex)
        self.wait()

Additional media files
Images/GIFs
XeLaTeX output:

Docker

Manim v0.17.3

System specifications
System Details

OS: Windows 10
Python version 3.9.8
XeTeX, Version 3.141592653-2.6-0.999995 (MiKTeX 23.5)

Additional comments
same unwanted behavior is observed on the Manimator on Discord

Conversion using a xetex-generated .pdf instead of .xdv works:
class MyScene3(Scene):
    def construct(self):
        template = TexTemplateLibrary.ctex
        template.output_format=".pdf"
        tex = Tex(r'Hello  你好  \LaTeX', tex_template=template).scale_to_fit_width(12)
        self.add(tex)
        self.wait()

Actually this bug is brought by dvisvgm program.
dvisvgm involves converting dvi/xdv format generated by LaTeX into SVG picture, the latter being what manim is really operating with. You can check the cache files in media folder and find some LaTeX files and corresponding xdv and SVG files.
I suggest you can collect all these files and report an issue to https://github.com/mgieseki/dvisvgm.

Actually this bug is brought by dvisvgm program. dvisvgm involves converting dvi/xdv format generated by LaTeX into SVG picture, the latter being what manim is really operating with. You can check the cache files in media folder and find some LaTeX files and corresponding xdv and SVG files.
I suggest you can collect all these files and report an issue to https://github.com/mgieseki/dvisvgm.
EDIT: MWE.tex for this case:
\documentclass[preview]{standalone}
\usepackage{xeCJK}
\setCJKmainfont{SimSun}
\begin{document}
Hallo 你好 \LaTeX
\end{document}

Commands for generating xdv and SVG file:
xelatex -no-pdf MWE.tex
dvisvgm -n MWE.xdv

https://github.com/mgieseki/dvisvgm/issues/235
Commit: fixed vertical placement of "vertical fonts" in horizontal mode

Conversion using a xetex-generated .pdf instead of .xdv works:
class MyScene3(Scene):
    def construct(self):
        template = TexTemplateLibrary.ctex
        template.output_format=".pdf"
        tex = Tex(r'Hello  你好  \LaTeX', tex_template=template).scale_to_fit_width(12)
        self.add(tex)
        self.wait()

Two weeks ago dvisvgm released a repaired version, you can download the new version of dvisvgm, and then replace the old version under the LaTeX installation path.
dvisvgm 3.1

Is this fixed now ?

Is this fixed now ?

Till now, the hotfix of dvisvgm (v3.1+) has not yet been updated in TeX Live 2023 bundle. For now, people have to manually download patched dvisvgm executable to replace the buggy one. This hotfix is supposed to take effect in the next year's TeX Live build.

Is this fixed now ?

https://dvisvgm.de/Downloads/

I  checked the Tex Live Utility and found that it has an update package for dvisvgm 3.1.2 as of January 10, 2024. I proceeded to update all packages, but unfortunately, the issue persists. The Chinese characters are still not in the correct position.


poetry shell loses shell prompt config

[X] I am on the latest Poetry version.
[X] I have searched the issues of this repo and believe that this is not a duplicate.
[X] If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

OS version and name: macOS 10.13.6
Poetry version: 0.12.8

Issue
On a Mac, when I start a shell with poetry shell, I lose my prompt:
tweedledee:carly chris$ poetry shell
Spawning shell within /Users/chris/Library/Caches/pypoetry/virtualenvs/carly-py2.7
bash-3.2$ poetry --version
Poetry 0.12.8

The bug is that it doesn't stay the same, I guess a really nice to have would be to append the poetry env in use:
tweedledee:carly chris$ poetry shell
Spawning shell within /Users/chris/Library/Caches/pypoetry/virtualenvs/carly-py2.7
tweedledee:carly [carly-py2.7] $ poetry --version
Poetry 0.12.8

This works perfectly for me - could it be that you're configuring your prompt in the wrong shell initialization file?

I'm doing whatever macOS does by default, if that's wrong, it might be something that new users hit...

Anyway, thanks, moving stuff to ~/.bashrc fixes this for me!


Debugging is totally unberable with large buffers

I use nodejs v6.10.2 on win10. Debugging with VS is totally unacceptable when you try to do something that's is not a "hello world" app.
For example, I load 10 zip files into Buffers (each zip if 5MB). Then I create this simple object pseudo code):
  something:{a: 1, b: 2},
  else: {x:"abc", y: "999", z: "z"},
  files: {
    "file1.zip": {size: 5000000, data: <Buffer for file1.zip data>, stats: {some simple obj with stats}},
    "file1.zip": {size: 5000000, data: <Buffer for file2.zip data>, stats: {some simple obj with stats}},
    "file3.zip": ... etc
}

So, then if I try to inspect X in VS, it totally chokes, it pauses, waits ... waits and then fails, often VS crashes. Surprisingly, I didn't even try to inspect data, I simply tried to expand "file1.zip" without even trying to look into 5MB of data.
Note, that VS 2017 has identical problem. It totally cannot handle this as well.

I simplified code, now I have a simple object where for each file name I create another simple object that has two fields data and 'file'. When I try to simply inspect object it takes loooong time with mouse cursor turning into a spinning wheel and then it fails as this:

From this point debugging is busted, VS is choking, constantly all kinds of popups showing up. Doing anything basically halts VS and it crashes shortly after.
FYI, I also tried NTVS.Dev.2017-05-09.VS.2015.msi with 64bit nodejs 6.10.3 (I have latest VS2013 up3). Note VS2017 exhibits absolutely identical miserable behavior.
In contrast if I inspect that in node-inspector it all works perfectly, with no issues whatsoever:

Hey @pps83 , can you link to a sample repo with a .sln file that can be opened to reveal the problem?
With an (ideally consistent) repro, we can make progress on fixing this much more quickly.

This should be for Node 8 debugging.


Mongo.delete_* naming

Was writing some more documentation and noticed naming of "remove" from Mongo is named as "delete_*". The main Mongo API uses remove(), so I was looking for that in the code. Connection is using remove though, so not sure why its like this. Could just be something that's going to change later.
Summary: Why is Mongo using delete_* instead of remove?

The specification Mongo provides for driver implementors say that the names deleteOne and deleteMany should be used.
https://github.com/mongodb/specifications/blob/master/source/crud/crud.rst#id18

Interesting, maybe they are moving to delete from remove. They have almost identical functionality, yet have no mention of each other in the documentation except that remove uses delete.
Thanks for the clarification :sweat_smile:

I think most drivers use delete but some have aliases from remove to delete. The node driver is aliasing, the ruby driver only provides delete, the python driver is doing partial aliasing, the c# driver only does delete.
The official mongo docs use the shell for example code. You will have to ask 10gen why the shell driver doesn't follow their own guidelines :).


PORT-7787 | Remodeling Launchdakrly Relationship Mapping

Description
What - Added a new blueprint (Feature Flags In Enviroment) and remodeled entity relationships (0.1.6)
Type of change
Please leave one option from the following and delete the rest:

[ ] New feature (non-breaking change which adds functionality)

Screenshots
Launchdarkly Environment

Launchdarkly Feature Flag

Launchdarkly Project

Feature Flag In Environment

this is a great initiatve cause indeed todays model does not reflect LD data model.
I have one concern in terms of cardinality because for instance in our company we have a project with 1000 flags and 12 environments, that will make 12000  featureflagInEnvironment items.
it is acceptable for the perspective of Port to manage that many items ?
Is there way in the integration to select projects/environnement to synchronize ?

this is a great initiatve cause indeed todays model does not reflect LD data model. I have one concern in terms of cardinality because for instance in our company we have a project with 1000 flags and 12 environments, that will make 12000 featureflagInEnvironment items. it is acceptable for the perspective of Port to manage that many items ? Is there way in the integration to select projects/environnement to synchronize ?

@sgandon Port is able to handle such numbers of entities and numbers much larger (it is however important to note that Port's free tier allows for up to 10K entities).
In addition, all integrations powered by Ocean have the option to filter the data ingested into Port based on the configuration mapping, you can read more about the query filtering here (take a look at the section that explains about the selector and query keys)

@mk-armah please remember to update the blueprints and mapping in the documentation according to the changes here


Update README example to run only on PRs targeting main

@stefanv, I am assuming this is what you meant with https://github.com/scikit-image/scikit-image/pull/7018#issuecomment-1586213529.

Thanks!


Make the TV Integrator less susceptible to noise

This should work even better when we have better than 1ms time resolution, but should still be an improvement to diminish random walk that's coming from white noise integration.
See my simulations here
The unit test for this is a bit hacky, but does its job of failing with previous design and passing with this one.
Had to update expected values of existing checks because we don't use the rectangle rule anymore.

If I understand the behavior of this patch, it's relying on the fact that the clock has a granularity of 1ms and the main loop runs much faster than that.  We're saying that every 1ms we take a reading and average them together every 5ms -- is that correct?
In https://github.com/RespiraWorks/VentilatorSoftware/pull/330, I enable hardware ADC oversampling.  You can oversample up to 256x in hardware.  One reason I like this is that the hardware is doing it for us.  How do you feel about that approach?

We're saying that every 1ms we take a reading and average them together every 5ms

I also wonder, is the behavior of this patch different from taking the current code at HEAD and modifying the integral interval from 5ms to 1ms?

it's relying on the fact that the clock has a granularity of 1ms and the main loop runs much faster than that. We're saying that every 1ms we take a reading and average them together every 5ms -- is that correct?
Not really... whenever time changes (which for now is every ms. but could be every loop) it uses the last data to update the local average flow, and then uses this local average to update the volume every 5 ms.

How do you feel about that approach?
That depends on how the oversampling is performed in hardware, it should help more than what I implemented here, which is mostly making-do with imperfect data, while hardware oversampling should provide less imperfect data to begin with.

is the current PR implementing one of them
Yes, but it is the simplest of the lot.

have we explored the other ones?
Not yet, but I felt like testing this one would be easy enough to just give it a try...
This solution is actually a prerequisite for most of the other ones: make sure you have as many data points as possible to then be able to filter down the noise.

I also wonder, is the behavior of this patch different from taking the current code at HEAD and modifying the integral interval from 5ms to 1ms?
Currently, it is only marginally different : we no longer use rectangle rule (though we could) and the update interval stays at 5 ms,
When we get better time resolution, it really is better, as it means the samples are all used whatever the time between loops is (so long as it is measurable) is, even if the volume itself is not updated on every call.

I think updating the volume on fixed intervals (duration TBD) is a good thing if we decide to use volume measurement for patient triggered breaths, as it inherently filters down some of the HF noise, and make it easier to determine a criterion, but we need a way to have both that and still use as many sample as possible to not have too much random walk (middle range noise).

[HW oversampling] should help more than what I implemented here

OK!  Should we drop this PR then?
Sorry for the duplicated work.

Maybe, having this as well as the oversampling could still be an improvement over the oversampling alone, depending on how well oversampling removes the white noise (it should do it pretty well).
I agree there is no emergency in taking this to master if the other solutions work better.


Conditionally enable psp

Issue: https://github.com/rancher/rancher/issues/40384
Problem:
The rancher-k3s-upgrader chart will deploy PSP's if the kubernetes version running on the downstream cluster still has the capability to do so. This presents a problem when upgrading a cluster to a version which no longer has PSP support. Helm will be unable to upgrade or uninstall the upgrader due to it holding references to PSP's which can now no longer be removed.
Solution:
Add a new field to the rancher-k3s-upgrader chart, psp: enabled and set its default value to true. This value will be used within Rancher to determine if PSP's are enabled or disabled on any version of Kubernetes, and will be used to block upgrades to 1.25+ until a new version of the upgrader is deployed which has psp's disabled.
I've added a new version, 0.4.1, though I don't believe 0.4.0 has been released yet. If it's better that I modify that version let me know.

I've updated this PR to change the contents of 0.4.0 instead of introducing 0.4.1


Installer Closing before install

After I type y to download the file the app just closes and I don't know why.
https://github.com/PBSK15/PBSK15/assets/168051288/62a04e58-ec17-4419-8fd6-9f49aab84754

I found the issue, and I also found some other issues and added better error handling in the process. I will release the updated installer soon. Sorry that the installer has so many issues.

Fixed (at least for now) installer released.


Question about find's methods

Currently when a record is not found in the database we have that:

But I think it will be better to return undefined in this case, to check with an if like so:

e.g the return type should be User | undefined I think, so give me your opinion about that, thanks

Closing as a duplicate of https://github.com/prisma/photonjs/issues/89


Dark Mode

Bring in the darkness for the dashboard

Thanks, @RexRowan. We had it for a while and took it out because it was looking a bit ugly. Once things settle down on the front-end, I promise we'll bring it back. @mdwelsh has been championing this weekly.


Allow path operations on UPath instances without import

This would allow to implement a "PurePath" equivalent for path manipulation, that would not require the specific dependencies to be installed.
For known_implementations we can vendor the two required methods (_strip_protocol and _get_kwargs_from_urls) for each protocol.
That allows for example, to do all kinds of path operations on s3 without s3fs to be installed.

Responding here for https://github.com/apache/airflow/pull/37524
I think only operations that do something on the fs should invoke the backend. String operations like is_relative_to ,stripping protocols or just str(upath) should not. This is equivalent how Pathlib handles it currently.
In Airflow's case the DAG processor would need to have present and instantiate every backend that often does additional eager loading. That is something we really don't want as this can add significant compute time for simple operations.
For now we derive ObjectStoragePath from CloudPath for strict object storage behavior (buckets, keys, etc). So also file would behave the same way (I'm not sure if it does now with upath > 0.2.1).  We might additional ones if we can make them behave the same way so users have a uniform and predictable experience.
Summarizing: I think upath should not forward anything to the backend if _protocol_dispatch is False for non filesystem operations.


Motoko Unresponsive Dbank

I'm currently working with Motoko, However I kept getting errors. Im using vs code terminal and  on terminal B  I tried to deploy  the dfx , but got Error: The build step failed for canister 'rrkah-fqaaa-aaaaa-aaaaq-cai'   //and in terminal A I received error_  `` starvation detected: Finalizer has not been invoked for 11.426271s ` I tried several recommended  ways to solve it but since the language is still pretty new there is a lack of information.

What Did you Expect to see?
https://smartcontracts.org/docs/current/developer-docs/ic-overview

Have you ever   encountered this issue from motoko, if yes, share your  solution?

Hi Techi-Dev,
That looks like more of an issue with dfx than Motoko. I'd suggest detailing the steps you've gone through and posting a description on the forum (https://forum.dfinity.org/) - more people will see the post and you're more likely to get someone's help that way.
I assume you did do "dfx --start" before dfx build or dfx deploy in the Motoko project folder, right? Sometime it helps to kill dfx and start again.


Add PIP build to CI/ CD

🛰 Feature
Description

Upload the pip artifact if the tests pass and the version is not a dev version.
Solution

The solution must respect security credentials for the pip repository.
Alternatives

Additional context

This might help https://github.com/marketplace/actions/pip-upload

Another example from Pytorch-Lightning https://github.com/PyTorchLightning/pytorch-lightning/blob/master/.github/workflows/events-nightly.yml

Another example https://github.com/kornia/kornia/blob/master/.github/workflows/pypi-release.yml

for now do it manually


How can I instruct switch to output the list of the context without triggering the fuzzy finder feature?

I do not want to disable the fuzzy finder feature I just want switch to output a single list of all contexts. I have a few scripts that can work on multiple clusters using parallel however that needs input parameters and previously I used  kubectx plus some grep to generate that input list.
However switch does not recognize if its output is piped into another tool and turns on the search window.
Thanks.

Hey, have you checked switch list-contexts?

I have to retrain my reading skills while looking at man manuals. This is exactly what I needed, thanks.

I have to retrain my reading skills while looking at man manuals. This is exactly what I needed, thanks.