Missing Region Pair in Documentation

The Region pair Germany West Central and Central are missing in the overview. Partners were confused by the regions missing in the overview.
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 09a788e4-0130-73f2-d985-6fc3aec77974
Version Independent ID: a9f4ec3f-f0a3-b050-020b-f487c74c5179
Content: Ensure business continuity & disaster recovery using Azure Paired Regions
Content Source: articles/best-practices-availability-paired-regions.md
Service: multiple
GitHub Login: @barbkess
Microsoft Alias: barbkess

Hello @AkioNuernberger,  Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

#assign @anukanade

Has been fixed
#please-close


Use typelevel compiler.

The immediate consequence is the elimination of si2712fix-plugin.
A subsequent commit will exploit type literals and singleton inference
to eliminate the currently extensive reliance on shapeless's Nat.
The apparently unrelated change to move the convertError object
outside of the Errors object is actually necessary for things to
work with the typelevel options. This is life with the scala
compiler: any change at all is likely to alter the profile of
when types get forced, and you never know how it will materialize.
In fact it's very encouraging that only the one change was needed.

👍 Looks good to me, assuming the build passes.

Yeah, excited to get this in!

Not jumping to any conclusions based on a single travis run, but it's not promising that the test jobs are all at 20 minutes and none of them has finished compiling. I'm really surprised if they snuck major performance regressions in with features which we aren't using yet (except inasmuch as we shifted from the plugin to the compiler) but the possibility exists.

We could try without the new compiler options, if this is an issue. I don’t know if we’re at Travis rush hour or what.

I forgot that the typelevel jars won't yet be cached on travis - this probably contributed to the constant factor increase in the test jobs.

Current coverage is 69.60% (diff: 100%)

Merging #1399 into master will decrease coverage by <.01%

@@             master      #1399   diff @@
==========================================
  Files           253        253
  Lines         12928      12929     +1
  Methods       12647      12648     +1
  Messages          0          0
  Branches        143        143
==========================================
  Hits           8999       8999
- Misses         3929       3930     +1
  Partials          0          0

Powered by Codecov. Last update 8f9fd29...7fd0b69

I'd say the performance merits further investigation (which I will do) but it's not so concerning that we shouldn't merge this.

Just for fun, add a CHANGELOG/revision.md for me ;)

@sellout You have a messed up idea of fun


OpsRequest: Make the conditions uniform across database opsrequests

https://github.com/kubedb/apimachinery/pull/1052
https://github.com/kubedb/ops-manager/pull/451


[RFE] Create Notifications area

Current situation
We have the notifications popup which show a fixed number of notifications.
Impact
If we happen to have more than that number of notifications, it is not shown. Also, the popup is a small and maybe difficult to read everything for all users.
Ideal future situation
Besides the notification's popup, we have also a notifications page which shows all the notifications. In the notifications' popup there's a link to the notifications' page.
Additional information
The design only makes sense to be delivered together with #16 .
Design

I have just updated the design to the latest version.
When clicking the <- back button, Headlamp should go back to the previous route. If there's no previous route (user loaded the notifications view directly), the user should go back to the root view (cluster chooser with the black background).


Question: full screen dialog using MdDialog

using config to make dialog full screen doesn't work.  any suggestions?
config: MdDialogConfig = {
width: '100%',
height: '100%'
}
Thanks

Hey, this is a support request, those are better suited for gitter or stackoverflow. Github issues should be used for bugs and feature requests.

@devna13  please refer this link https://github.com/angular/material2/issues/3209

Thanks @lokeshdaiya

Please keep GitHub issues for bug reports / feature requests. Better avenues for troubleshooting / questions are stack overflow, gitter, mailing list, etc.


2 Factor Authentication

This is for for developers using GitHub only

We are only able to turn this on for ourselves. We will need help from an admin to do this user wide, please.

Here's a link to the 2FA status for all the JAC github users: https://github.com/orgs/jac-uk/people

@JeremykJAC @warrensearle Is this still blocked?

Here's the latest status

Status as at 4th October 2021. @joy-ade @HalcyonJAC who is managing this process? Be great to get this ticket closed off!

@warrensearle This was managed by @HalcyonJAC

@joy-ade Jeremy S and JoshKohJAC need to enable 2FA and then the ticket is complete. Who is Josh?

@JeremykJAC  Josh works in account. I will be in touch with him. Can you send me the link pls.

@JoshKohJAC This is where it is added in GitHub - https://github.com/settings/security


better results

do not touch the resources of the container; java memory calculator will handle that for you

Thanks for the PR, I am going to merge the SDKman and Buildpacks upgrade changes, but not the limit one as it is set on purpose to emulate a cheap server in production. Instead, I will likely set JAVA_TOOL_OPTIONS="-XX:ActiveProcessorCount=2" until https://github.com/paketo-buildpacks/libjvm/issues/136#issuecomment-2076579732 is fixed.


usage: 0.3.1 -> 1.7.4

Updated to https://github.com/jdx/usage/releases/tag/v1.7.4
Fixed ./examples/mounted.sh test
Closes #369472

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 369640

x86_64-linux

:white_check_mark: 3 packages built:

helmsman
mise
usage


Docu broken

If i try to click on "Source Code" link @ https://googlecloudplatform.github.io/gcloud-python/#/docs/master/gcloud/datastore/client/client?method=gcloud.datastore.client.Client.put_multi
i get a 404.
404: Link: https://github.com/GoogleCloudPlatform/gcloud-python/blob/master/.tox/json-docs/lib/python2.7/site-packages/gcloud/datastore/client.py#L331

Thanks for the report @xamoom-raphael!
This seems to be related to #2022 and https://github.com/GoogleCloudPlatform/gcloud-common/issues/154.
However that last one looks like the link didn't generate correctly.


[Bug]: Healthcheck not working as expected

Description
After a longer email conversation with andras about health checks i want to track the last bugs around health-checks i have here. Thanks for all the help so far 👍🏼
Before i had this configuration in my dockerfile:
HEALTHCHECK --interval=10s --timeout=3s --start-period=30s \
 CMD curl -f http://localhost/healthz || exit 1

Now i have this configuration:

The two problems i have are:

It looks like the provided route is not called. When i look into the logs, i don't see any logs about that route. When i had the healthcheck in my dockerfile i could the the logs of the healthz route being called every 10 seconds
I'm unsure about the start period, because in my deployment logs the health check is performed immediately and the attempts are counted up. Is this value used?

In my health check i check the database connection. As a test i shut down the database. 5 minutes later the backend resource was still marked as "healthy" so i think the health check is not really executing
Minimal Reproduction (if possible, example repository)
Please let me know if you need a reproduction and what this should contain
Exception or Error
No response
Version
v4.0.0-beta.266

Same problem on 270

Will to re-test after the release and let you know if it works, thanks

Let me know if it still does not work

Let me know if it still does not work

Hello Andras,
In the latest version v4.0.0-beta.271 all healtcheck give me error. If I disable the healcheck and do a curl to the URL from inside the container it responds me correctly.
I would say that something is not working in this latest version.
[2024-Apr-30 14:42:46.736785] Healthcheck URL (inside the container): GET: [http://localhost:80/](http://localhost/)
[2024-Apr-30 14:42:46.739129] Waiting for the start period (5 seconds) before starting healthcheck.
[2024-Apr-30 14:42:51.961738]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:42:51.968983] Attempt 1 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:42:57.166076]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:42:57.182480] Attempt 2 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:02.386444]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:02.409387] Attempt 3 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:07.594036]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:07.602918] Attempt 4 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:12.793358]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:12.815862] Attempt 5 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:17.970307]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:17.990975] Attempt 6 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:23.170582]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:23.185569] Attempt 7 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:28.418971]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:28.427266] Attempt 8 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:33.652387]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:33.658096] Attempt 9 of 10 | Healthcheck status: "starting"
[2024-Apr-30 14:43:38.834104]

[COMMAND] docker inspect --format='{{json .State.Health.Status}}' nsgkgkw-144216520989
[OUTPUT]
"starting"

[2024-Apr-30 14:43:38.845367] Attempt 10 of 10 | Healthcheck status: "starting"

I tried to re deploy my app today, without code changes and the health check is having error. I'm on v4.0.0-beta.271

I added a log when accessing the root path, that should be the default health path.
This is how it looks a deployment, first is the current docker and the second one is the one being deployed and the print "GET /", doesn't show on the second one, meaning it doesn't call the health url.

Can you please show me the healthcheck configuration page?
Also, is your app based on dockerfile buildpack?

Hey @andrasbacsai ,
i also checked my health check now with 271. I use the same health check configuration as in my original post:

My issues seems to be resolved now. The startup time is now awaited and i now see the logs of my defined route, which is called in the interval i provided! 👍🏼
I have the following points still in mind:

Instead of awaiting the startup time, you could already start checking for the health, but in case it fails, don't count up the attempt. Like this it could be marked as healthy quicker with still having a startup time where its "okay" for the healthcheck to fail
In my health check i do only a simple check if my db is accessible atm. When i turn off the db, the following happens: I stop seeing the logs about the request to the health url, but it seems to still call them, because the container is marked as unhealthy after a time. It also gets healthy after i turn on the db again. This is awesome, only thing missing here would be notifications for the health status change

My app is based on Dockerfile
![Screenshot 2024-05-01 at 8 50 13 AM](https://github.com/coollabsio/coolify/assets/4523284/dea5c71d-be68-4614-
9792-4f4407145962)

Still not working on me neither. (I disabled it because it fails)

Hi, why I am not getting any healthchecks option in the ui? I tried docker compose project. Any idea? using 272. Thanks

I just set up a new project where the health check is configured the same as in the other and it does not work..

No matter how I try to replicate this issue, I cannot.
Healthcheck is working on older version of Coolify version with Dockerfile buildpack, because there was basically no healthcheck (exit 0 command was used, so it always returns true).
@lewisdewsbury Your nextjs applications returns a 200 on path / ?

But could you reproduce my two problems?

Missing notification in case of healthy status changes
Somehow missing logs for failed health checks

Also i would like to hear your opinion about my suggestion to the startPeriod to not await it, but don't count up the attempts while in this period.

I had the exact same problem as @lewisdewsbury. Started having the healthcheck not working on version beta.271 on a resource that is build with a dockerfile. Dockerfile is based on a Bun base image. Added apt-get install -y curl in the dockerfile and now the healthcheck runs fine again! thanks @lewisdewsbury for the solution

I had the same issue. @andrasbacsai you can close the ticket now.

I will make a few changes. Coolify will check if curl or wget is available. If neither, it will try to use the proc filesystem for hc, or just pass healthy state.

But could you reproduce my two problems?

Missing notification in case of healthy status changes
Somehow missing logs for failed health checks

Also i would like to hear your opinion about my suggestion to the startPeriod to not await it, but don't count up the attempts while in this period.

@andrasbacsai did you already looked at these three points?

@andrasbacsai
About 1: Yes, this notification would be awesome! I would be notified directly if my service is unhealthy and i can the look into it why.
About 2: My application is an express backend. I log every request. Successfully requests about the health url are logged correctly. When i turn off my postgres, which causes the health check to return an error, the container status is updated correctly (so the requests are send i guess), but there are absolut no logs about these failed requests in my logs. When i then manually call the health check url via postman there is a log. Thats quite weird
About 3: Thats my suggestion to faster have a healthy container. By not awaiting the start period, but not count up failed attempts this could be arcvhieved.

@andrasbacsai should i create a separate issue for these points?

I opened a feature discussion about point 1 & 3: https://github.com/coollabsio/coolify/discussions/2200

On v4.0.0-beta.276

dockerfile. Dockerfile is based on a Bun base image. Added apt-get install -y curl in the dockerfile and now the healthcheck runs fine again! thanks @lewisdewsbury for the solution

so do we need to do the healthcheck from inside the container ? I always thought healthcheck should be observed from outside the docker container.

No matter how I try to replicate this issue, I cannot.
Healthcheck is working on older version of Coolify version with Dockerfile buildpack, because there was basically no healthcheck (exit 0 command was used, so it always returns true).
@lewisdewsbury Your nextjs applications returns a 200 on path / ?

Is there a way to get the old "healthcheck" ?

previously it wasn't doing anything, you can disable the healthcheck

previously it wasn't doing anything, you can disable the healthcheck

before:

i can deploy and have the old application replaced after the new one is ready, no downtime

currently:

disabled healthcheck, application experiences downtime while the new app is starting. And in case the new deployment fail, the app is down.

@andrasbacsai trying to understand, is the healthcheck is triggered from within the container which I built ? do I need to add curl/wget package in my final stage of app container build ?
if so why its trying to execute from inside ?

dockerfile. Dockerfile is based on a Bun base image. Added apt-get install -y curl in the dockerfile and now the healthcheck runs fine again! thanks @lewisdewsbury for the solution

so do we need to do the healthcheck from inside the container ? I always thought healthcheck should be observed from outside the docker container.

Yes, I would expect the health check to be performed by the server that the resource belongs to.

@steveadams Docker health checks run on the container, not the server, so if you have a curl health check, you must have curl installed in the container.


tools/check-capitalization catches variables with "realm" in its name

Its not currently possible to include a variable with name realm inside the trans tag. It will create error that term realm should not appear on user-facing strings. For example the following lines will create error.
{% trans %}Click here to log in to Zulip and catch up: {{ realm_uri }}.{% endtrans %}
{% trans %}Server: {{ realm_uri }}{% endtrans %}
{% trans %}Server: {{ realm_uri }} Account: {{ user_email }} Time: {{ login_time }}{% endtrans %}

vagrant@vagrant-base-trusty-amd64  /srv/zulip   email-templates  ./tools/check-capitalization
processing locale en
[frontend] processing locale en
Found banned words in backend strings
realm found in 'Click here to log in to Zulip and catch up: %(realm_uri)s.'. The term realm should not appear in user-facing strings. Use organization instead.
realm found in 'Server: %(realm_uri)s Account: %(user_email)s Time: %(login_time)s'. The term realm should not appear in user-facing strings. Use organization instead.
realm found in 'Server: %(realm_uri)s'. The term realm should not appear in user-facing strings. Use organization instead.
See https://zulip.readthedocs.io/en/latest/translating/translating.html#capitalization
Failed!

The variables had to be rewritten to something like this supress the error.
{% trans organization_url=realm_uri %}Click here to log in to Zulip and catch up: {{ organization_url }}.{% endtrans %}
{% trans organization_url=realm_uri %}Server: {{ organization_url }}{% endtrans %}
{% trans organization_url=realm_uri %}Server: {{ organization_url }} Account: {{ user_email }} Time: {{ login_time }}{% endtrans %}

I think the idea for adding the "realm" check was to prevent passing strings with realm in it and not variables.  For example something like this
{% trans %}Realm: {{ uri }}{% endtrans %}

Pros
On the other hand I think preventing variables with name realm to be included in trans tags makes the experience better for translators since they may not know what a realm is. So this probably blessing in disguise.
Dont work on this issue as we first have to decide whether we want to remove the warning for variables.

@zulipbot label "area: i18n" "area: tooling"

Yeah, I actually liked the change to do {% trans organization_url=realm_uri %} from a translator user experience perspective; it's kinda nice for translators to not have to see the word 'realm'.  So I'm basically happy with the current outcome.  It might be not a bad idea, though, to change the variables passed to templates to be organization_uri rather than realm_uri, as the default name...

@hackerkid what are your thoughts on the realm_uri => organization_url question?  I think if we like that idea, it probably belongs as a separate refactoring issue, so I'm going to close this old issue.


anchor.BN.toBuffer("le", 8) not working on the browser

In my typescript tests, this works fine:
async function getGamePDA(setupArgs: { amount: anchor.BN; feePercentage: number; houseWallet: anchor.web3.PublicKey }) {
    const [pdaPubKey, _] = await PublicKey.findProgramAddress(
      [
        anchor.utils.bytes.utf8.encode("game"),
        setupArgs.amount.toBuffer("le", 8), <== HERE
        Float64Array.of(setupArgs.feePercentage).buffer,
        setupArgs.houseWallet.toBuffer(),
      ],
      program.programId,
    );

    return pdaPubKey;
  }

but when running it on the browser, I get this error:
TypeError: setupArgs.amount.toBuffer is not a function

What's the right browser alternative? I've tried new Uint8Array(setupArgs.amount.toNumber()), but get this error instead: TypeError: Max seed length exceeded — The Rust anchor program is expecting this: data.amount.to_le_bytes().as_ref(),

Buffer may not be available in your code bundle depending on the version of node you are building from. Importing a polyfill should solve it.

Try to use BN.toArrayLike


[s2geometry] update to 0.11.1

[X] Changes comply with the maintainer guide.
[X] SHA512s are updated for each updated download.
[X] The "supports" clause reflects platforms that may be fixed by this new version.
[X] Any fixed CI baseline entries are removed from that file.
[X] Any patches that are no longer applied are deleted from the port's directory.
[X] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is added to each modified port's versions file.

Fixes the namespace so the target is s2::s2 instead of s2s2
Fixed building on VS2019
Fixes the upstream CMake config to target abseil as a public dependency of s2geometry, removing the need for a patch

Usage test passed on x64-windows.


cannot start invalid literal for int()

Here log after command execute :

Waiting for device
Getting device info
Uploading binaries
/data/local/tmp/adbmirror/adbmirror/: ...ped. 3.6 MB/s (410176 bytes in 0.110s)
Forwarding ports
Staring GUI
Traceback (most recent call last):
File "gui.py", line 300, in
a = Main()
File "gui.py", line 24, in init
orig = map(int, sys.argv[2].split("x"))
ValueError: invalid literal for int() with base 10: 'not'
Cleaning up
please help

echo the parameters $disp_size $dev_size $dev_dir before starting the guy.py


every stroke i make does not save on the canvas and keeps deleting the previous one

i don't know what is going on here, but one day it became like this all the sudden, i tried restarting my computer, but it did not fix the problem, the little square trial is like this too, did something break?
https://github.com/1j01/jspaint/assets/150201075/1f416d43-036c-418e-8d2e-1fe8c08c90ca
https://github.com/1j01/jspaint/assets/150201075/7ae51be4-31d5-43ae-b1f4-6059dd8fbd4c

Same issue arises after I upgraded to the newest version of chrome.
Version 119.0.6045.105 (Official Build) (arm64)

Ah, the wonders of software rot. (The rectangle tool also broke recently on Firefox, and I've been experiencing tons of graphical glitches and WebGL crashes recently in Chrome.)
I can't reproduce this issue though, on Ubuntu 22 or macOS 10.14.6
What operating system does this happen on? Does it happen all the time?

same here I dont whats happening but i would like it fixed

Does this test page show multiple circles when you click it multiple times, or just one?
I'm thinking this chromium bug could be the culprit.

Does this test page show multiple circles when you click it multiple times, or just one? I'm thinking this chromium bug could be the culprit.

https://github.com/1j01/jspaint/assets/150201075/28b0eb07-686d-4524-82b9-7d52c9b799e4
i see multiple circles, so that means it's good?

i see multiple circles, so that means it's good?

Well it's good in that it's displaying correctly; it's not so good in that we've not identified the problem :)
Thanks for testing though!

I have the same problem. Interestingly, the bug persists even when I use other online MS Paint alternatives.

I have the same problem.
Mackbook Pro  M2 Pro
macOS Sonoma 14.1
Google Chrome Versión 119.0.6045.123 (Build oficial) (arm64)

Same problem

same problem:
macOS (macbook)
OS: 13.6
Chrome: 119.0.6045.123 (arm64)
I think it was OK 20 days ago

same problem
macbook pro M1
macOS Sonoma 14.1
Chromium: 119.0.6045.105 (arm64)

Similar problem for me on macOS 12.7, Chrome 119.0.6045.123
But I noticed that:

Using the fill tool does not reset the canvas, except in Black and white mode
Using the free-form select or rectangle select tools:

Just moving the selection will NOT reset the canvas
Just resizing the selection WILL reset the canvas
Resizing and then moving the selection (without "applying" the resize first by clicking outside the selection) will NOT reset the canvas

Clicking and immediately releasing with the ellipse/rectangle/rounded-rectangle tools (i.e. without dragging into an actual shape) triggers the "Woah! / Your browser may have cleared the canvas due to memory usage" message.
This message is also triggered when using Image > Clear Image from the toolbar

Similar problem for me on macOS 12.7, Chrome 119.0.6045.123
But I noticed that:

Using the fill tool does not reset the canvas, except in Black and white mode

Using the free-form select or rectangle select tools:

Just moving the selection will NOT reset the canvas
Just resizing the selection WILL reset the canvas
Resizing and then moving the selection (without "applying" the resize first by clicking outside the selection) will NOT reset the canvas

Clicking and immediately releasing with the ellipse/rectangle/rounded-rectangle tools (i.e. without dragging into an actual shape) triggers the "Woah! / Your browser may have cleared the canvas due to memory usage" message.

This message is also triggered when using Image > Clear Image from the toolbar

interesting, i think i recalled seeing that just moving a selected box will delete the area around it, but the selected stuff itself will be safe
i ended up recording what i did with the canvas since i don't know how to describe it
https://github.com/1j01/jspaint/assets/150201075/cb10e0ff-dc5e-4d5b-9fcb-62464c264866

I made a tweaked test page, hopefully demonstrating the bug.
Let me know if this reproduces the bug, y'all. (I feel like it won't, since it's a shot in the dark, and the Chrome team ought to have automated tests for things like this, but still...)
@exonjoe

Using the fill tool does not reset the canvas, except in Black and white mode

In Black and White mode it renders the fill region to a separate canvas and then draws that canvas onto the main canvas, whereas in Color mode, it draws the fill directly onto the canvas. This explains the difference. Similarly...

Just moving the selection will NOT reset the canvas
Just resizing the selection WILL reset the canvas

Moving the selection doesn't use drawImage, but resizing the selection uses drawImage. Also, drawing with most of the tools uses drawImage when done.

Resizing and then moving the selection (without "applying" the resize first by clicking outside the selection) will NOT reset the canvas

This is curious. I'm not sure I can explain that. And, well, finalizing the selection also uses drawImage, so that somewhat muddles things.

I made a tweaked test page, hopefully demonstrating the bug.
Let me know if this reproduces the bug, y'all. (I feel like it won't, since it's a shot in the dark, and the Chrome team ought to have automated tests for things like this, but still...)

https://github.com/1j01/jspaint/assets/150201075/d4810ae4-6af8-4e65-85f2-6b499d1c0aff
aight tested the square thing, i already had a pile going before the recording, but i spam clicked even more just incase it wasn't enough

@1j01
Yeah, I'm afraid the test page works fine for me: I'm seeing multiple stacked squares.

Just moving the selection will NOT reset the canvas
Just resizing the selection WILL reset the canvas

Moving the selection doesn't use drawImage, but resizing the selection uses drawImage. Also, drawing with most of the tools uses drawImage when done.

Resizing and then moving the selection (without "applying" the resize first by clicking outside the selection) will NOT reset the canvas

This is curious. I'm not sure I can explain that. And, well, finalizing the selection also uses drawImage, so that somewhat muddles things.

Hmm, I'm not sure whether the behavior changed or I just didn't record it properly, but it does behave a bit differently to how I explained it! Let me try again:

Making a selection immediately resets the canvas outside of the selection
Moving the selection leaves a ghost/shadow of the background color in place of the original selection
Clicking outside of the selection at this point to commit the change will keep the selection and the ghost
Resizing the selection will also leave a ghost
Clicking outside at this point will keep the selection, but deletes the ghost
In fact, I can do any combination of moving and resizing the selection, and the ghost will always disappear if the last thing I did was a resize; or the ghost will stay around if the last thing I did was a move

Quick video demo (where my background color was set to red 🟥):
https://github.com/1j01/jspaint/assets/5204407/a72f9f69-3f65-4b05-8575-90a7095a9ea1
Thanks for the time you're putting into diagnosing this! I didn't realize how much I used the app until I stopped being able to use it 😅

@1j01
I did some research into this myself, and it does definitely seem to be an issue with drawImage(). In fact, it seems to be something particular to passing an HTMLCanvasElement as the image parameter. I found that using an HTMLImageElement or OffscreenCanvas worked fine!
I was tinkering with tool.pointerup() at src/tools.js:1195, using the line tool to experiment. The existing line of code I was replacing is this one at line 1201:
main_ctx.drawImage(tool.shape_canvas, 0, 0);

If I create a dummy canvas element and draw to it as an intermediate step, I just get the same result as usual: each new line erases all existing canvas data. Here's the code for that:
// Dummy intermediate HTMLCanvasElement fails 🚫
const dummyCanvas = document.createElement("canvas");
dummyCanvas.height = tool.shape_canvas.height;
dummyCanvas.width = tool.shape_canvas.width;
const dummyCtx = dummyCanvas.getContext("2d");
dummyCtx.drawImage(tool.shape_canvas, 0, 0);
main_ctx.drawImage(dummyCanvas, 0, 0);
// main_ctx.drawImage(tool.shape_canvas, 0, 0);

However, if I do the same thing with an OffscreenCanvas, this fixes the issue and the line tool works as expected!
// Dummy intermediate OffscreenCanvas succeeds! ✅
const offscreenCanvas = new OffscreenCanvas(tool.shape_canvas.width, tool.shape_canvas.height);
const offscreenCtx = offscreenCanvas.getContext("2d");
offscreenCtx.drawImage(tool.shape_canvas, 0, 0);
main_ctx.drawImage(offscreenCanvas, 0, 0);
// main_ctx.drawImage(tool.shape_canvas, 0, 0);

I also did a version where I rendered the tool canvas to a blob, then put that in an HTMLImageElement and passed that to drawImage()... it's more complicated and maybe a little less performant, but it works too.
// Dummy intermediate HTMLImageElement succeeds! ✅
tool.shape_canvas.toBlob((blob) => {
  const newImg = document.createElement("img");
  const url = URL.createObjectURL(blob);

  newImg.onload = () => {
    URL.revokeObjectURL(url);
    main_ctx.drawImage(newImg, 0, 0);
    newImg.parentElement.removeChild(newImg);
  };

  newImg.src = url;

  tool.shape_canvas = null;
  document.body.appendChild(newImg);
});
// main_ctx.drawImage(tool.shape_canvas, 0, 0);

Okay, so the problem is with HTMLCanvasElements... is it all of them? I tried creating a dummy canvas element and drawing that instead of the actual tool canvas (similar to your test page) and it exhibits the problem too! This code will make a red square appear somewhere on the canvas every time you draw a line, but it clears the whole canvas each time too, so you only ever see up to 1 square:
// Dummy brand new, unrelated HTMLCanvasElement fails 🚫
const canvas = document.createElement("canvas");
canvas.width = tool.shape_canvas.width;
canvas.height = tool.shape_canvas.height;
const ctx = canvas.getContext("2d");
const x = Math.floor(Math.random()*100);
const y = Math.floor(Math.random()*100);
ctx.fillStyle = "rgb(200, 0, 0)";
ctx.fillRect(x, y, 50, 50);
main_ctx.drawImage(canvas, 0, 0);
// main_ctx.drawImage(tool.shape_canvas, 0, 0);

So it would seem that this behavior is happening with any HTMLCanvasElement... except, I tried one other thing, which was to render the main canvas to itself (using a small 10px offset so I can actually see something happening):
// Self-referential HTMLCanvasElement succeeds! ✅
main_ctx.drawImage(main_ctx.canvas, 10, 0);
// main_ctx.drawImage(tool.shape_canvas, 0, 0);

And in this case, the bug doesn't manifest—we are indeed rendering the main canvas on top of itself, without clearing it every time.
I have no idea why we would see the problem when using the tool canvas, or a fresh canvas, but not when using the main canvas. I also have no idea why the test page doesn't reproduce the bug.
Any ideas?

@exonjoe Thank you for your research and clear breakdown!

I have no idea why we would see the problem when using the tool canvas, or a fresh canvas, but not when using the main canvas. I also have no idea why the test page doesn't reproduce the bug.
Any ideas?

Well it's natural that drawing a canvas to itself might behave differently as it's a special case. It probably needs to copy a region of the canvas before performing the operation, in case the source and destination regions overlap. Drawing an OffscreenCanvas also would need a different implementation under the hood, but it's good to know that this works.
As for the test case, what I want to know is:

Does the bug show up when loading JS Paint in an iframe? https://jsfiddle.net/1j01/t23hobw8/ (or https://98.js.org for that matter)
Does the bug show up when loading my test case without any iframes involved, if you save the following as an HTML file and open it?

<!doctype html>

		<title>Bug Repo Attempt for jspaint issue #328</title>

		<canvas id="myCanvas" width="500" height="200"></canvas>
		<button onclick="hopefullyRepro()">Click me</button>

			This should display purple squares with blue outlines on top of each other each time you click.
			If you see only one square "jumping around", it's broken, demonstrating the bug.

		See JS Paint issue about this Chrome bug

Does the bug show up when loading JS Paint in an iframe? https://jsfiddle.net/1j01/t23hobw8/ (or https://98.js.org for that matter)

Yes, still seeing the bug in both the JSFiddle and 98.js :(

Does the bug show up when loading my test case without any iframes involved, if you save the following as an HTML file and open it?

Nah, the test case is still fine for me!
Doesn't seem like being in an iframe is making a difference...
One thing I just tried: I made a new dummy canvas (using your make_canvas function, to keep the dummy canvas as similar to the main canvas as possible) and added it to the document so I could see what's going on in it. I started drawing the tool.shape_canvas to it, while still also drawing to the main canvas. I did this to check whether the problem applied when writing to any canvas, or just the main canvas.
I also added debugger statements immediately before and after the main_ctx.drawImage() call to confirm that the bug happens during that call.
// Dummy canvas renders fine but main canvas doesn't 😖
if (!document.getElementById(`dummyCanvas`)) {
  const dummyCanvas = make_canvas(tool.shape_canvas.width, tool.shape_canvas.height);
  dummyCanvas.style.position = `fixed`;
  dummyCanvas.style.top = `0`;
  dummyCanvas.style.right = `0`;
  dummyCanvas.style.zIndex = `99999`;
  dummyCanvas.style.border = `2px solid red`;
  dummyCanvas.id = `dummyCanvas`;
  document.body.append(dummyCanvas);
}
const dummyCanvasActual = document.getElementById(`dummyCanvas`);
const dummyCtx = dummyCanvasActual.getContext("2d");
dummyCtx.drawImage(tool.shape_canvas, 0, 0);
debugger;
main_ctx.drawImage(tool.shape_canvas, 0, 0);
debugger;

In this video, we can see in the red box that the dummyCanvas behaves itself just fine. We can also see that the debugger statements coming either side of the main_ctx.drawImage() calls capture the "before and after" of the bug, as we see the main canvas being cleared between the two:
https://github.com/1j01/jspaint/assets/5204407/dd9c7dab-acda-4e30-8842-eda66e1905e9
So... is the main canvas being "corrupted" at some point, making it misbehave in a way that a fresh canvas doesn't? I did try checking the obvious suspects like the globalAlpha and globalCompositeOperation of the canvases, but they're identical...

I have also been encountering this issue. It indeed happens whenever drawImage() is called on the main context.
As others have reported, this issue only occurs on Apple Silicon (M1) Chromium browsers. Firefox for me is fine, as is Chrome on Windows.
I found that disabling Accelerated 2D canvas, which is an experimental Chrome feature, did the trick.
After reloading the browser, the app works with no issue.

I have also been encountering this issue. It indeed happens whenever drawImage() is called on the main context. As others have reported, this issue only occurs on Apple Silicon (M1) Chromium browsers. Firefox for me is fine, as is Chrome on Windows.
I found that disabling Accelerated 2D canvas (chrome://flags/#disable-accelerated-2d-canvas), which is an experimental Chrome feature, did the trick.
After reloading the browser, the app works with no issue. Hopefully it gets fixed with the next Chrome update.

You are a life saver, I can't believe how often I google jspaint to sketch something then remember it's broken due to this bug.

i wonder if there has been further updates since then…? (no pressure! ^^;;)

I reported this issue to Chromium, and it looks like they already have someone assigned.

trying to read the comments over on the chromium forms gives me a bit of a headache

1j01:
Does this test page show multiple circles when you click it multiple times, or just one? I'm thinking this chromium bug could be the culprit.

1431968 and

boowangoo:
I reported this issue to Chromium, and it looks like they already have someone assigned.

1506384 (aka the post above) kinda describes the same situation though right?

@tempaccount9317 I'm not quite sure, I don't fully understand the bisect information either 😅. But 119 is the current stable build. So I focused on the first bisect information, which I'm guessing is to find the first breaking commit. Seems like the issue was traced to a commit in September, and the owner already has a patch for it. I'm guessing that the reverse bisects are to find the last working commit?
I just installed Chrome Beta, which is on build 120.0.6099.62 and already has that patch applied, and can confirm that the issue is not there. Seems like the bug will be resolved in the next stable update.

1431968 and 1506384 (aka the post above) kinda describes the same situation though right?

1431968 was reported on build 112 in April, and the team cannot reproduce it yet. So I'm inclined to believe that it's a separate issue, but I could be wrong.

If you're using Apple Silicon M1 on a Chromium browser then it's a known bug in Chromium and the solution is chrome://flags/#disable-accelerated-2d-canvas via https://github.com/1j01/jspaint/issues/328#issuecomment-1832923230

As per the comment on this bug (1500272#c30), the fix has been merged and the stable build has been shipped.
I just updated Chrome and no longer see the bug on jspaint.

https://github.com/1j01/jspaint/assets/150201075/9b3aca5a-48e3-4149-817a-69de329c0ec6
now on 120.0.6099.62 (Official Build) (x86_64) and it registers again~
(sprite is off because i enlargened my mouse but otherwise nothing off on my end)


[Bug] VCs - Rename "Coin ID" label to "Launcher ID"

What happened?
After minting a VC, the GUI shows "Coin ID", but the value being shown is the launcher ID when comparing to the CLI output.

desired behavior is to show both the Coin ID and the Launcher ID
Version
2.0.0rc4
What platform are you using?
Windows
What ui mode are you using?
GUI
Relevant log output or stacktrace
No response

@rifeljm Can you make sure that the launcher ID is labeled "Launcher ID". If it's not too difficult, we should also show the "Coin ID" representing the current coin for the VC.

Didn't make it into 2.0.0. Targeting 2.1.0 now


Manipulate tiles

It would be super cool to be able to access the 3d tiles on the map and manipulate them on runtime.
That would be a complete game changer.
Some things I would do if that feature was available:

Add a physics engine such as ammo.js so 3d objects cannot pass through buildings.
Animate the buildings in sync with music.
Add shadows to the buildings
Add Elevation to the map to create hills and valleys and adjust the elevation for the 3d tiles accordingly.

I'd love that as well, but as it is right now, there's no way we can make the data accessible to the outside. That would need something like a 3d tileset (essentially, what the photorealistic 3d-tiles are, but with simplified geometries).

okay, thanks for looking into it


Implement support for symbolic shapes

Implements support for symbolic shapes by parsing SymScalars from the Dynamo Fx Graph in our Importer
(as always, inspiration and credit is owed to the original torch-mlir importer)

This is good to go, I'll reformat the importer with black once code review is done.


Fix small lint and unit test issues

Pull request ci was not running and caused these minor issues to not be caught.

Circle is back!

LGTM

Current coverage is 51.20% (diff: 100%)

Merging #2109 into master will decrease coverage by 9.97%

@@             master      #2109   diff @@
==========================================
  Files           129        129
  Lines         11416      11416
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           6985       5846   -1139
- Misses         3541       4821   +1280
+ Partials        890        749    -141

Powered by Codecov. Last update 4428237...b032791


use sysadmin token only for add_read_acl

addressing https://github.com/kbase/handle_service2/issues/92 and https://github.com/kbase/handle_service2/issues/93

@MrCreosote Could you also take a look at this PR? Thanks!


Enables the callbacks for "values" options

Enables the user to configure the "values options" (value, endValue, xMin, xMax, yMin, yMax, xValue, yValue) in order to define the values of annotations at runtime.
Fixes #284

@kurkle I think there is a bug in the adjustScaleRange that I discovered by this PR.
The method doesn't use the "new" options that plugin afterDataLimits hook is providing and then if the user has changed the "values" options, these are ignored and the max and min scales are using previous value.

@kurkle I think there is a bug in the adjustScaleRange that I discovered by this PR.
The method doesn't use the "new" options that plugin afterDataLimits hook is providing and then if the user has changed the "values" options, these are ignored and the max and min scales are using previous value.

@kurkle I think there is a bug in the adjustScaleRange that I discovered by this PR.
The method doesn't use the "new" options that plugin afterDataLimits hook is providing and then if the user has changed the "values" options, these are ignored and the max and min scales are using previous value.
Shall I open an issue or it can be solved in this PR?

The initialization of elements is performed into afterUpdate which is called after afterDataLimits hook.
That mean that inside the afterDataLimits hook we could use the elements but only the options.
Nevertheless I'm gonna try to move the initialization of elements in beforeUpdate. I don't know why updateElements is invoked after the update.

@kurkle I think there is a bug in the adjustScaleRange that I discovered by this PR.
The method doesn't use the "new" options that plugin afterDataLimits hook is providing and then if the user has changed the "values" options, these are ignored and the max and min scales are using previous value.
Shall I open an issue or it can be solved in this PR?

The initialization of elements is performed into afterUpdate which is called after afterDataLimits hook.
That mean that inside the afterDataLimits hook we could use the elements but only the options.
Nevertheless I'm gonna try to move the initialization of elements in beforeUpdate. I don't know why updateElements is invoked after the update.

I don't know why updateElements is invoked after the update.

It seems that chartArea of chart instance is available only afterUpdate.
In this case the adjustScaleRange must use the options and not the elements..

I don't know why updateElements is invoked after the update.

It seems that chartArea of chart instance is available only afterUpdate.
In this case the adjustScaleRange must use the options and not the elements..

@kurkle in this implementation, the element instance can not be passed in the context because both does not exist or is not initialized.
Maybe the scriptable context should contain the annotation options instead of annotation element.

@kurkle in this implementation, the element instance can not be passed in the context because both does not exist or is not initialized.
Maybe the scriptable context should contain the annotation options instead of annotation element.

@kurkle I think there is a bug in the adjustScaleRange that I discovered by this PR.
The method doesn't use the "new" options that plugin afterDataLimits hook is providing and then if the user has changed the "values" options, these are ignored and the max and min scales are using previous value.
Shall I open an issue or it can be solved in this PR?

I think it would be better to separate. I have some concerns about the current approach in this PR (if the value is string for example, it would not work). This should also mean that the annotations are not updated when options are changed?

@kurkle I think there is a bug in the adjustScaleRange that I discovered by this PR.
The method doesn't use the "new" options that plugin afterDataLimits hook is providing and then if the user has changed the "values" options, these are ignored and the max and min scales are using previous value.
Shall I open an issue or it can be solved in this PR?

I think it would be better to separate. I have some concerns about the current approach in this PR (if the value is string for example, it would not work). This should also mean that the annotations are not updated when options are changed?

I think it would be better to separate.

I can split PR to solve the issue of adjustScaleRange and the callbacks implementation.

I have some concerns about the current approach in this PR (if the value is string for example, it would not work).

I can't understand well what you meant. This PS is not changing anything about if the value (or the result of callback) is a string or not. The logic is the same there was before, I guess. Therefore I think if the value as string doesn't work with this PR, it should work with the previous code. Anyway my doubt about string is that we should check if the value is really a label of the chart. If not, the annotation should be disabled.

This should also mean that the annotations are not updated when options are changed?

With former code, when you change the plugin annotation in the chart and you will update the chart to use new values, it used the elements in the state which are not updated because the updateElements is performed afterwards, in the afterUpdate plugin hook because to update the elements you need the chartArea.
If you agree, I'm gonna leave the PR (with callbacks) as is and I'll create new one with a possible solution for this adjustScaleRange. Ok for you?

I think it would be better to separate.

I can split PR to solve the issue of adjustScaleRange and the callbacks implementation.

I have some concerns about the current approach in this PR (if the value is string for example, it would not work).

I can't understand well what you meant. This PS is not changing anything about if the value (or the result of callback) is a string or not. The logic is the same there was before, I guess. Therefore I think if the value as string doesn't work with this PR, it should work with the previous code. Anyway my doubt about string is that we should check if the value is really a label of the chart. If not, the annotation should be disabled.

This should also mean that the annotations are not updated when options are changed?

With former code, when you change the plugin annotation in the chart and you will update the chart to use new values, it used the elements in the state which are not updated because the updateElements is performed afterwards, in the afterUpdate plugin hook because to update the elements you need the chartArea.
If you agree, I'm gonna leave the PR (with callbacks) as is and I'll create new one with a possible solution for this adjustScaleRange. Ok for you?

Splitted. The issue related the adjustScaleRange is in this PR  #323

Splitted. The issue related the adjustScaleRange is in this PR  #323

@kurkle I was reviewing this PR.
Even if I think that the values could be set by a callback as scriptable options because this can enable some use cases like to place the annotation based on data (to calculate average, std deviation, linear regression), I have some doubts about the consistency of this implementation.
First of all, the context passed to a callback. The context is defined as an object with 2 options, chart and element (which contains the annotation options). Unfortunately the elements are created in the afterUpdate hook but the callbacks for value must be executed before that hook, in the afterDataLimits one. Therefore the callbacks can pass only the options.
And for the same reason, also the callback for display option must be executed before the elements creation therefore also that callback could not have element.
My first doubt is if make sense to pass an element (which is not always available) or instead to pass the options (always available).
Of course we can have different context for different callbacks.
Another topic is the callbacks are called twice, during both afterDataLimits and afterUpdate. For performance reason it could be better to invoke once and store the result in an object. The best could be the element, but as said above, if not available.
Therefore I was thinking if make sense to create all elements (empty, with the options) in beforeUpdate hook.
But in this case, being currently the element filling the object by the animation, it is still not clear to me the role of the animation object because, having a look to all samples, I can not see any example where the elements is drawing following the different phases of animation because the annotation is drawn always with the final position.
Sorry for long post.. I need your hints to understand if this PR makes sense as is or if must be changed or  removed in favor of another implementation
Thanks a lot in advance.

@kurkle I was reviewing this PR.
Even if I think that the values could be set by a callback as scriptable options because this can enable some use cases like to place the annotation based on data (to calculate average, std deviation, linear regression), I have some doubts about the consistency of this implementation.
First of all, the context passed to a callback. The context is defined as an object with 2 options, chart and element (which contains the annotation options). Unfortunately the elements are created in the afterUpdate hook but the callbacks for value must be executed before that hook, in the afterDataLimits one. Therefore the callbacks can pass only the options.
And for the same reason, also the callback for display option must be executed before the elements creation therefore also that callback could not have element.
My first doubt is if make sense to pass an element (which is not always available) or instead to pass the options (always available).
Of course we can have different context for different callbacks.
Another topic is the callbacks are called twice, during both afterDataLimits and afterUpdate. For performance reason it could be better to invoke once and store the result in an object. The best could be the element, but as said above, if not available.
Therefore I was thinking if make sense to create all elements (empty, with the options) in beforeUpdate hook.
But in this case, being currently the element filling the object by the animation, it is still not clear to me the role of the animation object because, having a look to all samples, I can not see any example where the elements is drawing following the different phases of animation because the annotation is drawn always with the final position.
Sorry for long post.. I need your hints to understand if this PR makes sense as is or if must be changed or  removed in favor of another implementation
Thanks a lot in advance.

But in this case, being currently the element filling the object by the animation, it is still not clear to me the role of the animation object because, having a look to all samples, I can not see any example where the elements is drawing following the different phases of animation because the annotation is drawn always with the final position.

Now I remember, the sample animation.html even if I'd like that the drawing of animations will be animated but I don't know how to enable it.

But in this case, being currently the element filling the object by the animation, it is still not clear to me the role of the animation object because, having a look to all samples, I can not see any example where the elements is drawing following the different phases of animation because the annotation is drawn always with the final position.

Now I remember, the sample animation.html even if I'd like that the drawing of animations will be animated but I don't know how to enable it.

I did some tests splitting the updateElements method in 2 in order to revert part of PR #323 and then to use elements also in adjustScaleRange method.
The beforeUpdate plugin hook will engaged new method, createElements, like the following (just a prototype therefore the code must be improved):
function createElements(chart, state, options) {
  const annotations = options.annotations || [];
  const elements = resyncElements(state.elements, annotations);

  for (let i = 0; i < annotations.length; i++) {
    const annotation = annotations[i];
    let el = elements[i];
    const elType = annotationTypes[annotation.type] || annotationTypes.line;
    if (!el || !(el instanceof elType)) {
      el = elements[i] = new elType();
    }
    el.options = merge(Object.create(null), [chart.options.elements[elType.id], annotation]);
    el._display = isAnnotationVisible(chart, annotation, el);
  }
}

This method is creating the elements, setting the options.
In this way, the afterDataLimits hook, which is calling adjustScaleRange method and after the beforeUpdate, can leverage on elements, avoiding to apply the same logic to filter options.
And then, afterUpdate will remain the same but the updateElements is updating the animations and resolve the element properties (just a prototype therefore the code must be improved):
function updateElements(chart, state, options, mode) {
  const chartAnims = chart.options.animation;
  const animOpts = chartAnims && merge({}, [chartAnims, options.animation]);
  const animations = resolveAnimations(chart, animOpts, mode);

  const elements = chartStates.get(chart).elements;
  elements.forEach(el => {
    const properties = el.resolveElementProperties(chart, el.options);
    properties.options = el.options;
    animations.update(el, properties);
  });
}

What do you think?

I did some tests splitting the updateElements method in 2 in order to revert part of PR #323 and then to use elements also in adjustScaleRange method.
The beforeUpdate plugin hook will engaged new method, createElements, like the following (just a prototype therefore the code must be improved):
function createElements(chart, state, options) {
  const annotations = options.annotations || [];
  const elements = resyncElements(state.elements, annotations);

  for (let i = 0; i < annotations.length; i++) {
    const annotation = annotations[i];
    let el = elements[i];
    const elType = annotationTypes[annotation.type] || annotationTypes.line;
    if (!el || !(el instanceof elType)) {
      el = elements[i] = new elType();
    }
    el.options = merge(Object.create(null), [chart.options.elements[elType.id], annotation]);
    el._display = isAnnotationVisible(chart, annotation, el);
  }
}

This method is creating the elements, setting the options.
In this way, the afterDataLimits hook, which is calling adjustScaleRange method and after the beforeUpdate, can leverage on elements, avoiding to apply the same logic to filter options.
And then, afterUpdate will remain the same but the updateElements is updating the animations and resolve the element properties (just a prototype therefore the code must be improved):
function updateElements(chart, state, options, mode) {
  const chartAnims = chart.options.animation;
  const animOpts = chartAnims && merge({}, [chartAnims, options.animation]);
  const animations = resolveAnimations(chart, animOpts, mode);

  const elements = chartStates.get(chart).elements;
  elements.forEach(el => {
    const properties = el.resolveElementProperties(chart, el.options);
    properties.options = el.options;
    animations.update(el, properties);
  });
}

What do you think?

I forgot... of course, if OK, we can close this PR going to new 2 PRs,  the first to split the updateElements (as above) and another one to implement the callbacks.

I forgot... of course, if OK, we can close this PR going to new 2 PRs,  the first to split the updateElements (as above) and another one to implement the callbacks.

See PR #326which is refactoring the elements creation and use in the plugin.
Another PR (after approval and merged of #326) will be submitted to implement the value callbacks.

See PR #326which is refactoring the elements creation and use in the plugin.
Another PR (after approval and merged of #326) will be submitted to implement the value callbacks.


animate_2D_field worked locally but not on gadi

Not sure why

Fixed with the current settings for animations but I am not sure why I need to specify the kwargs.


Can't install in Windows

Describe the bug
Unable to install via conda env create -f environment.yml or pip install phoenics.
Using yml file, none of the packages were found (error ResolvePackageNotFound).
Using pip, after having numpy and latest microsoft visual studio installed, an error came up building wheel for phoenics (setup.py) and clean install
To Reproduce
Steps to reproduce the behavior:
In Anaconda Prompt base environment, run conda env create -f environment.yml with yml-file downloaded.
Or, in an empty new environment, run pip install phoenics.
Expected behavior
Clean installation.
Desktop (please complete the following information):

OS: Windows10
conda : 4.6.11
python : 3.7.3.final.0

Additional context
Unsure if installation is okay in Windows.
Also unsure what the prerequisites are for installation.
Please advise.

Hello. I am experiencing similar issues when trying to install phoenics. I initially tried to install on Windows as well, but my company's firewall doesn't allow installation of Visual Studio (at the moment) so I've moved to using the unix system on Google Colab.
Calling pip install phoenics from Google Colab, the ERROR: Failed building wheel for phoenics error comes up, followed by the long setup.py error as well.
When trying to pip install directly from the github, the error becomes ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-req-build-yjso1wjq/
Google Colab comes with Python 3.6.7, but I'm not sure of the rest of the information about the environment.


Facing Connectivity issues in GRPC Calls ( Upstream connect error or disconnect/reset before headers ) after adding istio as sidecar

Error :
\\"message\\\":\\\"14 UNAVAILABLE: upstream connect error or disconnect/reset before headers. reset reason: remote refused stream reset\\\",\\\"code\\\":14,\\\"metadata\\\":{},\\\"details\\\":\\\"upstream connect error or disconnect/reset before headers. reset reason: remote refused stream reset\\\"}\"}"}
**Flow :
App  1  --> Istio SideCar --> ALB ( TLS ) --> Istio SideCar ( App 2 ) --> App 2
We tried couple of other flows as mentioned below, but facing the same issue.
App  1   --> ALB ( TLS ) --> Istio SideCar ( App 2 ) --> App 2
App  1   -->  Istio SideCar --> ALB ( TLS )  --> App 2
Tried to take TCP Dump on app, and we noticed at the time of issue there are some FIN packages that are being sent.
We are facing this issue only with GRPC calls.
Below is the service file for reference :
`  ports:

name: grpc
port: 5001
protocol: TCP
targetPort: 5001`

Istio Version: 1.9.2

i have met the same issue too.

你好，我是刘海伟，QQ 806864128，1310627032，微博 http://weibo.com/1688577641是华南理工09网络工程的学生，你的来信我已收到！请放心！！！

你好，我是刘海伟，QQ 806864128，1310627032，微博 http://weibo.com/1688577641是华南理工09网络工程的学生，你的来信我已收到！请放心！！！


Release Notes for v1.2.0 are not displayed

OS: MacOSX 10.11.1
Atom: 1.2.0

Go to Help / Release Notes --> the last release notes are for v 1.1.0
Go to Help / Release Notes --> does not display release notes for v 1.2.0
Go to Help / Release Notes --> buttons [Restart and update] & [View on atom.io] are active

Duplicate https://github.com/atom/atom/issues/9590


[add-resource] New Plugin: Admin Styles

I would like to add a plugin to the Grav Repository, here are the project details: grav-plugin-adminstyles.
Note: This is a pre-release (v0.9.1), and somewhat of a work in progress. Please report any issues or inconsistencies through the issue-tracker.

Added to GPM. Thanks.

Failed because it needs a release.

Pre-releases don't count? I'll do a proper release of v1.0.0 after some visual regression tests in the next few days and update this issue.

you still need to release, but need to set it to pre-release checkbox.  I strongly suggest still tagging your RC versions too.

v0.9.1 is created as a pre-release and tagged, using GitHubs interface, thought that would work.

I think the problem now is you have tagged 0.9.1, but the blueprints still points to 0.9.0

Ahh, the blueprint gets me 50% of the time I push an update!

Proper release is out, v1.0.0 in release-tag, blueprint, and changelog.

Ok, showing fine now in GPM.


Setting UI tests

@iPiyushPatel I'm converting this to draft for now for @michaelmarshall to review


Stage1 Python3 compatibility

@zancas
Issues:
Fixes #650
Problem:  @chen23 wants Python3 support (as do other users (including me))
Analysis:
Tests:

@caphrim007   this is an incremental move towards Python3 compatibility.

lgtm


Refactor, make usable as pip package [WIP]

@isaacgerg can you have a look if your error persists on this branch? I couldn't reproduce it yet.
Would also be helpful if you could provide installed package versions.


Lost checks while editing issue with Tasklist

Description

Create an issue with tasklist
Check some checkboxes with mouse click, not by edit issue source (as they are completed)
Try edit issue (like add another item in tasklist)
Expected
Altered checks must be [x]
Actual
Checks as empty [ ] , changes are lost

If you refresh page between 2 and 3 [x] will be in place
Screenshots
none
Gitea Version
1.20.3
Can you reproduce the bug on the Gitea demo site?
No
Operating System
No response
Browser Version
116

Related to #24253 and #22907
The solution is to use more AJAX


Generate data for efficiency vs specific work graph

Take compressor pressure ratio varying from 14 to 34, and two turbine inlet temperatures of 1400 K and 1800 K. We need to generate the data array before the alpha release.

Added python script to do this.


instrumentation: add timers and warnings to platform callbacks

Description: Adds Envoy histograms (timers) to most platform-provided callbacks in the Http::Client and in PlatformBridge Filters. Beyond a hardcoded threshold (1s), a warn-level LOG_EVENT will be emitted for slow-to-execute callbacks.
Risk Level: Low
Testing: Manual & Existing Coverage
Signed-off-by: Mike Schore<EMAIL_ADDRESS>

Since this is a user-facing change, can you please add an entry to the version history doc?


Upgrade mechanism to check version, handle subversion issue

Add new way to check version, separate variables for major and minor version, add support for two(or-more) digits in subversion.
Also, executed some tests on different python versions using this snippet:
for orig_ver in "Python 2.7.5" "Python 2.8.3" "Python 2.9.0" "Python 3.0.0" "Python 3.1.0" "Python 3.2.0" "Python 3.7.0" "Python 3.9.0" "Python 3.10.1" "Python 3.11.1"
do
	major_version=$(echo "$orig_ver" | sed 's/[^0-9]*\([0-9]*\)\..*/\1/')
	minor_subversion=$(echo "$orig_ver" | sed -E 's/^[^.]*\.([^.]*).*$/\1/')
	if [[ "$major_version" -ge "3" ]] && [[ "$minor_subversion" -ge "7" ]] # Because of uvicorn==0.20.0 in requirements
	then
	    echo "You have valid version of $orig_ver"
	else
	    echo "Your version $orig_ver not valid, should be >=3.7"
#	    exit 1
	fi
done

There is some results:

@evvfebruary thanks for the fix, if you have a discord account send me a DM there.


Popup fails with dialog "Error: could not connect to main window"

See https://github.com/solid/solid-auth-client/issues/118

Fixed by 2523462


Add Navigator.prototype.msMaxTouchPoints property in IE extern

Note: as of Internet Explorer 11, this property is deprecated and
Navigator.prototype.maxTouchPoints should be used instead (defined in
contrib/externs/w3c_pointer_events.js).

:+1:


Rewrite the aio module

The existing AIO implementation has some problems:

The in_progress field is checked at runtime, not compile time.
The mutable field is checked at runtime, not compile time.
A downstream lio_listio user must store extra state to track whether
the whole operation is partially, completely, or not at all
submitted.
Nix does heap allocation itself, rather than allowing the caller to
choose it.  This can result in double (or triple, or quadruple)
boxing.
There's no easy way to use lio_listio to submit multiple operations with
a single syscall, but poll each individually.
The lio_listio usage is far from transparent and zero-cost.
No aio_readv or aio_writev support.
priority has type c_int; should be i32
aio_return should return a usize instead of an isize, since it only
uses negative values to indicate errors, which Rust represents via
the Result type.

This rewrite solves several problems:

Unsolved.  I don't think it can be solved without something like
C++'s guaranteed type elision.  It might require changing the
signature of Future::poll too.
Solved.
Solved, by the new in_progress method and by removing the complicated
lio_listio resubmit code.
Solved.
Solved.
Solved, by removing the lio_listo resubmit code.  It can be
reimplemented downstream if necessary.  Or even in Nix, but it
doesn't fit Nix's theme of zero-cost abstractions.
Solved.
Solved.
Solved.

Still in the draft state because it's waiting on a libc PR to merge.

I actually was just looking at the existing aio implementation, so I'm glad I saw this.
Some of the existing aio tests fail when run with RUSTFLAGS="-Z randomize-layout -Z layout-seed=0" (and varying the seed). Likely means we were assuming more than should we should have been about a repr(rust) struct.

So the tests are failing on FreeBSD because they use two symbols that are only defined on 13.0+, but we run CI on 12.3.  A good solution would be weak symbol resolution.  Unfortunately, that's unstable, and I can't get it to work anyway.  But it's only the tests that are problems.  The crate itself builds fine on FreeBSD 12.3, as long as no executables try to use aio_writev or aio_readv.  So should we switch CI to 13.0?  That would pose a very low risk that we'd accidentally break something on 12.  A bigger risk would be that we inconvenience outside contributors who might be using 12.  Or do we disable those tests by default, but perhaps enable them with a --cfg option that we set during CI?  I'm not sure which is best.

Should we just bite the bullet and build against multiple versions of FreeBSD as separate jobs? It doesn't mirror any of the other platforms, but neither does the ABI situation.
We could just run tests against the latest, or invent some macro to indicate which versions of FreeBSD support a test.

Given the volume of changes already made to src/sysaio.rs, I'd just as soon we also run rustfmt` on it. It'd fix some style inconsistencies within the new code, and also minimize changes if we subsequent format the entire repo.

Should we just bite the bullet and build against multiple versions of FreeBSD as separate jobs? It doesn't mirror any of the other platforms, but neither does the ABI situation.
We could just run tests against the latest, or invent some macro to indicate which versions of FreeBSD support a test.

What if we skip tests incompatible with FreeBSD 12.3 by default, add a manually-set cfg flag to enable them, similarly to how we do it for qemu, and run a second CI job on FreeBSD 14 ?

What if we skip tests incompatible with FreeBSD 12.3 by default, add a manually-set cfg flag to enable them, similarly to how we do it for qemu, and run a second CI job on FreeBSD 14 ?

Seems reasonable.

Ok, this PR should be ready now.  I left it un-squashed because one commit changes formatting, and the Redox failure is addressed in a separate PR.

What's wrong with the current libc dep?  I did update it from the asomers fork to the rust-lang one, if that's what you mean.

Oh, I missed that. I don't see a new libc release, so yeah that's fine.

bors r=rtzoeller


Build under Linux.

The build script is merged (a47f35a72e0cfbfbdfbb1773d7686817ef3c4e49) but bugs remain (https://github.com/damellis/ESP/issues/211).

Replicate my comment here:
Tested on Ubuntu 16.04
Compilation works. To run the audio example, you will need to invoke jackd separately. On my machine, I did jackd -d alsa --device hw:0 --rate 44100 --period 128. Learned from this thread: https://forum.openframeworks.cc/t/ofxsupercolliderserver-on-linux64/14623, but haven't investigated much.

With https://github.com/damellis/ESP/pull/218, we can now compile all examples under Linux. To run the audio, you still need:
jackd -d alsa --device hw:0 --rate 44100 --period 128
Documentation will be updated accordingly soon.

Commit 38662c82832b3baf06369ae686828350cdbf1bc2 and 0f38abab1941c4deb6fe0072a53d472c662a6b56 updated README file. So this is considered done.


tarpaulin doesn't work with edition = "2018" in Cargo.toml

This happens with any project with it present, even if it's just the empty cargo init project (which has edition = "2018" as of sometime recently.
hi@flare-burn /t/twentyeighteen> uname -a
Linux flare-burn 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u2 (2018-08-13) x86_64 GNU/Linux
hi@flare-burn /t/twentyeighteen> rustc --version
rustc 1.31.0-nightly (2bd5993ca 2018-10-02)
hi@flare-burn /t/twentyeighteen> cargo tarpaulin -v
Error during run

I guess tarpaulin needs to be moved to the latest edition to fix this, are editions nightly only currently? And if so do you know when they are expected to be stabilised?

It's supported in beta and nightly, but not stable. According to this page 2018 lands in stable on December 6, 2018.

Great news all I had to do was call a cargo function to enable nightly features I'm just doing an update, pushing it to my CI. Once the tests are all proven to pass there I'll release a new patch that sorts this

passes on CI, merged into master and travis is releasing it as we speak!

Awesome, thanks!


[BUG] python and sdc-compiled functions generate different output with same input

Reporting a bug
In [25]: num_columns = 20
    ...: features = [f'col{i}' for i in range(num_columns)]
    ...: df = pd.DataFrame(np.random.rand(5, num_columns), columns=features)
    ...: target_col = 'col0'

In [26]: df
Out[26]:
       col0      col1      col2      col3      col4      col5  ...
0  0.847436  0.116855  0.782481  0.485027  0.027340  0.328801  ...
1  0.482504  0.845380  0.753603  0.535273  0.243581  0.861275  ...
2  0.190646  0.539439  0.901377  0.770925  0.908361  0.454777  ...
3  0.355888  0.451189  0.672876  0.745438  0.576982  0.907190  ...
4  0.535901  0.394481  0.118837  0.199040  0.557401  0.653302  ...

[5 rows x 20 columns]

In [27]: def _modified_pipeline(df, target_col):
    ...:     samples = df[df['col1'] >= 0.2]
    ...:     p_sum = (samples[target_col] >= 0.5).sum()
    ...:     r_sum = (samples[target_col] <= 0.5).sum()
    ...:     cnt = len(samples)
    ...:     return p_sum, r_sum, cnt
    ...:

In [28]: from numba import njit
    ...: @njit
    ...: def jit_modified_pipeline(df, target_col):
    ...:     samples = df[df['col1'] >= 0.2]
    ...:     p_sum = (samples[target_col] >= 0.5).sum()
    ...:     r_sum = (samples[target_col] <= 0.5).sum()
    ...:     cnt = len(samples)
    ...:     return p_sum, r_sum, cnt
    ...:

In [29]: _modified_pipeline(df, target_col)
Out[29]: (1, 3, 4)

In [30]: jit_modified_pipeline(df, target_col)
<ipython-input-28-bbc0261853d0>:5: NumbaPerformanceWarning:
The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.
.....
Out[30]: (1, 2, 3)

As you can see, python and sdc obtain different outputs with the same inputs.
Python 3.7.9 & numba 0.52.0 & sdc 0.38.0 & pandas 1.2.0

@dlee992 Hi, Thank you for the report! This is a bug in incorrect definition of a layout for the SeriesType. Unfortunately, strided arrays/series are not tested well in our tests, but we will fix it shortly. You can workaround it by creating DF from dictionary built from column names and transposed array (so that native array layout of columns is contiguous), i.e.
df = pd.DataFrame(dict(zip(features, p.random.rand(5, num_columns).transpose())))

@kozlov-alexey, thanks, the workaround makes sense. I tested a bit more, as below:
def foo1(df):
    choose_col = 'col1'
    filter_series = df[choose_col].apply(lambda x: 0 if x < 0.5 else 1)
    filtered_sum = (df[target_col] * filter_series).sum()

def foo2(df):
    lst  = ['col1', 'col2', 'col3']
    for cho_col in lst:
        filter_series = df[cho_col].apply(lambda x: 0 if x < 0.5 else 1)
        filtered_sum = (df[target_col] * filter_series).sum()

foo1 can be compiled and executed with @njit, (but the filtered_sum has accuracy drift compared with python result, the degreee of accuracy drift will become larger in dataframe with more rows, I am not sure that this drift is expected because of fastmath or some numerical optimizations, or just a bug), while foo2 can't be compiled, why does this happen?
# foo1 without and with njit, df has 10 rows
- [4.207398879779037, 10.0]
?                  ^

+ [4.207398879779036, 10.0]
?                  ^

# foo1 without and with njit, df has 10_000_000 rows
- [2501705.7589422013, 10000000.0]
?                 ^^^

+ [2501705.7589421924, 10000000.0]
?                ++ ^

# foo2 compilation error
  File "/usr/local/anaconda3/envs/.../lib/python3.7/site-packages/numba/core/dispatcher.py", line 482, in _compile_for_args
    error_rewrite(e, 'typing')
  File "/usr/local/anaconda3/envs/.../lib/python3.7/site-packages/numba/core/dispatcher.py", line 423, in error_rewrite
    raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Cannot request literal type.

File "test_ant_9.py", line 57:
def _modified_pipeline(df):
    <source elided>
    for cho_col in lst:
        filter_series = df[cho_col].apply(lambda x: 0 if x < 0.5 else 1)
        ^

During: typing of intrinsic-call at /Users/ld/Work/Code/asdc/sdc/tests/tests_ant/test_ant_9.py (57)

File "test_ant_9.py", line 57:
def _modified_pipeline(df):
    <source elided>
    for cho_col in lst:
        filter_series = df[cho_col].apply(lambda x: 0 if x < 0.5 else 1)

@dlee992, The second error is kind of current limitation of SDC (mostly based on Numba, that is a JIT compiler with static typing), so generally iteration over heterogeneous collections using normal python syntax is forbidden. The reason is simple, in your example DF could have columns with different types, so that variable filtered_sum would need to be of different type on different iterations of the loop. Specifically for this, Numba provides literal_unroll feature, that allows code with minimal changes to be compiled, e.g.
from numba import literal_unroll

@njit
def foo2_error(df):
    lst  = ('col1', 'col2', 'col3')      # a tuple of column names instead of list
    results = []
    for cho_col in literal_unroll(lst):  # literal_unroll used
        filter_series = df[cho_col].apply(lambda x: 0 if x < 0.5 else 1)
        filtered_sum = (df[target_col] * filter_series).sum()
        results.append(filtered_sum)

    return results

Above should work. Regarding the first problem, I think this deviation in precision is somewhat expected, as parallelization of sum with SDC has the consequence of values being added in different order. As far as I see, if operating on sorted sequence and using parallel=False, the summation via explicit loop gives exactly same result for compiled and pure python versions:
# on sorted data with sum via explicit loop:
arr_result:        2500270.1616518456   # numba jitted explicit loop, parallel=False
arr_result_ref:  2500270.1616518456   # python explicit loop

But thank you to pointing this out, we will dig deeper if something can be improved.


Add rtsys init guard and test.

This adds a guard to the methods on the rtsys instance to ensure that
the rtsys is initialized prior to use (lack of init leads to null ptr
access... segfault).
The failing-in-isolation tests reported in #2848 now have an indirect
call to rtsys.initialize() made by virtue of invoking
numba.targets.cpu.CPUContext in the test class setUp, this
initializing the rtsys correctly.
Fixes #2848

Codecov Report

Merging #2850 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2850      +/-   ##
==========================================
+ Coverage   86.11%   86.11%   +<.01%
==========================================
  Files         324      324
  Lines       67557    67578      +21
  Branches     7590     7592       +2
==========================================
+ Hits        58175    58196      +21
  Misses       8170     8170
  Partials     1212     1212

@seibert @sklam please could one of you review with view of merge helping with https://github.com/numba/numba/issues/2451. Thanks.


Deps update

Codecov Report

Merging #181 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #181   +/-   ##
=======================================
  Coverage   90.03%   90.03%
=======================================
  Files          79       79
  Lines        2939     2939
  Branches      619      619
=======================================
  Hits         2646     2646
  Misses        291      291
  Partials        2        2

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 72af2bd...407db4f. Read the comment docs.


CiaB: Enabled remap_stats.so in ats

What does this PR (Pull Request) do?
Enabled remap_stats.so in ats
Traffic stats can not collect some data without this plugin so we should enable it
Which Traffic Control components are affected by this PR?

CDN in a Box

What is the best way to verify this PR?

Start CiaB
Send some requests to demo site, e.g.

curl -L http://video.demo1.mycdn.ciab.test
curl -L http://video.demo1.mycdn.ciab.test/tc_logo.svg
curl -L http://video.demo1.mycdn.ciab.test/1213 # used to generate 4xx status

Check status in influxdb. you can use the following instructions in influxdb container:

# connect influxdb
influx

# query data
use deliveryservice_stats
select * from status_4xx where value != 0  # you should find some records
select * from tps_2xx where value != 0  # you should find some records

You can also check charts on portal:

https://trafficportal.infra.ciab.test/#!/delivery-services/1/charts?type=HTTP

Since there is no any new feature so I didn't provide test
If this is a bug fix, what versions of Traffic Ops are affected?
master
The following criteria are ALL met by this PR

[x] This PR includes tests OR I have explained why tests are unnecessary
[x] This PR includes documentation OR I have explained why documentation is unnecessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR ensures that database migration sequence is correct OR this PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/3865/
Test FAILed.

retest this please

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/3866/
Test PASSed.

I can't get this to work. I have previously been able to view stats_{{N}}XX statistics (which I used when testing my pet Angular 7 project's graphs), but so far using this branch I can't see any changes in the indicated graph. I can see that the plugin was successfully loaded in the edge service's docker-compose logs:
edge_1             | [Jun 24 18:02:03.599] Server {0x2af28e0d1400} NOTE: loading plugin '/usr/lib64/trafficserver/plugins/remap_stats.so'

so at least that's working, but I'm concerned that this is somehow breaking graphs? unless it's unrelated, and graphs have just stopped working in the past couple of weeks...

I retested it on different machines.
Sometimes the chart is normal but sometimes it's not
I think I can't find out the reason in a short period of time.
I'll send PR again when it's fixed


fix(checkbox): center ripple container

offset = 24px + (50px - 24px)/2 = 37px

@ben-girardet any comments on this?

2 pixels off

Ok this looks good to me, if we have issues with the new calculation, we can fix it anytime. Thanks @MaximBalaganskiy


add config flag for syncing to missed stores

fixes #3

Hi @gabriel-vasile
Thanks for this PR. It's a useful change.
There is just one comment I left to address the case when the new config setting has not been defined.
Thanks for adding a test too!

Thanks @gabriel-vasile
Merged :)

Version 10.1.0 has been released containing this change


Thanks for picking this up

You're very welcome!


done

Hi,
Thanks for submitting PR!
Can you deploy this app using github pages, surge or now to check functionality ?

Hello, Ostap!
Sorry for late message, but I didn't expect your answer today))
Just recently saw it :(
I put it here:
https://maksymyr.github.io/strikersoft-frontend-test-assignment/
Thank you for allotted time and good night!
Kind regards,
Maksym
2017-11-27 21:37 GMT+02:00 Ostap Chervak<EMAIL_ADDRESS>
Hi,
Thanks for submitting PR!
Can you deploy this app using github pages, surge or now to check
functionality ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Strikersoft/strikersoft-frontend-test-assignment/pull/3#issuecomment-347301328,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AeeUcow0tq-BaOvW_LgVFV9ui3JVLyucks5s6w-VgaJpZM4QsKtI
.

@Maksymyr not a problem. checked your URL. looks OK.
however, i have some questions on your code. please check out review above.

I saw, thank you for feedback!
I'll inspect and improve it. Trying to make it faster I made many extra
2017-11-28 2:23 GMT+02:00 Ostap Chervak<EMAIL_ADDRESS>
@Maksymyr https://github.com/maksymyr not a problem. checked your URL.
looks OK.
however, i have some questions on your code. please check out review above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Strikersoft/strikersoft-frontend-test-assignment/pull/3#issuecomment-347373032,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AeeUcjAjpUKkRY6GjYmJC0kQ-JaO3cvJks5s61JtgaJpZM4QsKtI
.

@Maksymyr thanks for your motivation to make it better, however our goal is to finilize your codebase.
try to resolve my small comments and thats all.

Be sure, I'll study it now, but I'll probably fix it tomorrow.
My gratitude for conveying of your experience!
2017-11-28 2:28 GMT+02:00 Ostap Chervak<EMAIL_ADDRESS>
@Maksymyr https://github.com/maksymyr thanks for your motivation to
make it better, however our goal is to finilize your codebase.
try to resolve my small comments and thats all.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Strikersoft/strikersoft-frontend-test-assignment/pull/3#issuecomment-347373830,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AeeUcl3FGwemw2kv_6od4UO7nNLpumIfks5s61OUgaJpZM4QsKtI
.

@Maksymyr thanks for your feedback. looks ok for me

Thank you for comments and attention, Ostap!
Best regards!


Error al querer colocar un ToolStrip en el formulario.

Les comentó, estoy intentando hacer una aplicación. Descargué el proyecto DarkUI, pero como no tengo el entorno de desarrollo de Visual Studio 2017 y no tengo intenciones de instalarlo, estoy trabajando con SharpDevelop 5.1
El tema es así, en un momento, logré compilar el proyecto DarkUI.. y utilizar la DLL para agregar controles y demás, pero después, por alguna razón comenzó a arrojar errores, y ahora no me deja agregar controles o me tira errores en el proyecto por muestra errores relacionados a referencia a imágenes incrustadas que dice no encontrarlas o algo así.

Aclaro, para poder abrir el proyecto DarkUI en SharpDevelop tuve que hacer algunas modificaciones.. pero lo había hecho funcionar.
Ahora no se exactamente qué es lo que está ocurriendo.
No se si es problema del SDK o que..
Necesitaría que alguien me pudiera dar una ayuda..

I ran your comment through Google Translate. This is the result:

He commented, I am trying to make an application. I downloaded the DarkUI project, but since I don't have Visual Studio 2017 development environment and have no intention of installing it, I am working with SharpDevelop 5.1
The issue is like this, at one point, I managed to compile the DarkUI project .. and use the DLL to add controls and so on, but then for some reason it started throwing errors, and now it won't let me add controls or it throws errors at the project by shows errors related to reference to embedded images that says not to find them or something like that.
I was also wanting to add more forms like OpenFileDialog or things like that, but this is breaking my head, because I already downloaded the Microsoft Build Tools 2013 and 2015 and it continues to do the same.
I clarify, in order to open the DarkUI project in SharpDevelop I had to make some modifications .. but I had made it work.
Now I don't know exactly what is happening.
I don't know if it's a problem with the SDK or what ...
I would need someone to help me.

It sounds like you're attempting to use DarkUI in SharpDevelop and haven't been able to get it working.
SharpDevelop is discontinued and unsupported (as shown on the wiki page). If SharpDevelop is throwing errors, it's almost certainly due to limitations on their form designer, not a problem with DarkUI or the .NET compiler.
Honestly, if you're looking to use WinForms for designing your applications, the latest version of Visual Studio is basically a requirement. WinForms as a technology is legacy at this point and really should not be used in new projects.
If you do not want to use Visual Studio 2019, I'd recommend either VS Code or JetBrains Rider. These are the tools I personally use to develop cross-platform .NET applications using dotnet core.
Instead of using DarkUI with WinForms, you should use a cross-platform modern GUI library such as AvaloniaUI or Eto.
If you wish to continue using WinForms and SharpDevelop that's fine too, but I won't be able to offer any support.


Add package-info for all main packages in opencensus-api.

https://github.com/census-instrumentation/opencensus-java/issues/1246

Codecov Report

Merging #1245 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1245   +/-   ##
=========================================
  Coverage     82.06%   82.06%
  Complexity     1241     1241
=========================================
  Files           193      193
  Lines          6044     6044
  Branches        560      560
=========================================
  Hits           4960     4960
  Misses          935      935
  Partials        149      149

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 f655b91...cce516a. Read the comment docs.


GH-235: KPMH: Flush the template in stop()

Resolves https://github.com/spring-projects/spring-integration-kafka/issues/235
cherry-pick to 3.1.x

... and cherry-picked to 3.1.x


Opting in: support previewing of private rooms

If I invite the bot to a room that is invite-only but has history visibility set to public, it would be desirable to show the chat log via the web.
You may ask why this odd combination is beneficial. It's a new proposal against scammers for public groups. Anything else other than invite-only allows for spamming and flooding room state, and we proposed creating a CAPTCHA bot that would let you speak this way, while still retaining readability of the room for outsiders.
https://archive.matrix.org/r/mod-ideas:matrix.org/date/2023/06/22?at=$Y42s_vlxoOy_JRm71sKx09a8gguAgK-fKjRe29FtQXk

I think the current logic would work how you want if you set your history visibility to world_readable. Is this sufficient for your use case?
https://github.com/matrix-org/matrix-public-archive/blob/e4800852fff23cd4a03ef05282c71f58516cf2a4/server/routes/room-routes.js#L831-L834
Anything else seems a bit precarious to support.
Maybe, if we support a X-Robots-Tag/<meta name="robots" content="noindex, nofollow"> like thing that is being proposed in MSC4021, we could also include an explicit index directive which is mentioned in a few places but is actually not a specified directive and assumed to be a default anyway (reference)

Muting people based on power level won't work. The moment you allow arbitrary joining in your room, it is vulnerable to uncontrolled join-flooding that poisons aggregate room state that is still not dealt with properly and making joins and sync slower for everyone.
Hence why I suggest to don't let them join in the first place.
I set history visibility to wide-open, the room to private and invited the bot, but the bot did not join the room.

I set history visibility to wide-open, the room to private and invited the bot, but the bot did not join the room.

@bkil I think if you try to visit the room in the archive, the bot user will try to join and may be successful now that you invited it.

Okay, it now worked after following a direct link. So now I have a different question. Why does the room search not return rooms that are marked as private but that could still be previewed (such as due to already having invited the bot there)?

Why does the room search not return rooms that are marked as private but that could still be previewed (such as due to already having invited the bot there)?

We currently only show public rooms in the room directory,
https://github.com/matrix-org/matrix-public-archive/blob/e4800852fff23cd4a03ef05282c71f58516cf2a4/server/lib/matrix-utils/fetch-public-rooms.js#L43-L48
I think it's mainly the case that most non-public rooms won't be joinable and will lead people to 403 Forbidden
But we could change that to also show rooms which are world_readable. Mind creating a PR for that?

It might be wise then to groom the search result page a bit. Hits for rooms should come first that are either publicly joinable or where the bot had already joined (or was invited to). The latter part might require some shuffling with its internal state.
Then the ones with world_readable history could be listed under a different heading that explains that joining these automatically is not allowed per se, but a member is first required to invite the bot there to be able to see the log.

@bkil This kind of complexity isn't possible to support since the app is stateless (or efficient with the current Matrix API's).
Those kind of clarification notes would be nice but I don't see a way to effectively support that kind of thing.

Well, we could meet in the middle then and show world_readable invite-only rooms with a different color/decoration (and at the very end of the search results under their own heading?) with a small disclaimer that clicking this link may fail unless you have invited @archive:matrix.org to your room beforehand.

@bkil I'm open to simply, additionally showing rooms that are world_readable in the list (no complexity needed). Since the room is world_readable, the history will be accessible regardless of whether we can join the room. But we would need to adjust the archive logic to just try to use the Matrix API's first and only try to join if it fails.
I've addressed this in https://github.com/matrix-org/matrix-public-archive/pull/272
We could additionally make the 403: Forbidden error page a lot more friendly (which should be tracked separately)


Remove Conversation from MII as it was deprecated and removed from transformers.

Fixes in MII that correspond to these changes in DeepSpeed

Need to remove the conversational task type unit test, set minimum version of transformers to whatever version removed the task type, and update docs/READMEs to reflect these changes


'mbed export' without arguments should fail with error message

Run: mbed export on a project with a target set. This runs to completion but does not seem to have done anything...
Should show an error telling the user to select the -i flag.

Good catch, this is definitely a problem!
I've issued a patch to mbed OS to clean up some of the arguments over there: https://github.com/ARMmbed/mbed-os/pull/3537
And I've also submitted a patch to mbed CLI to require the -i flag: https://github.com/ARMmbed/mbed-cli/pull/412
@janjongboom could you please review #412?


Switched nullOk for maybeOf

Flutter has changed the MediaQuery API in 1.24.0 to remove nullOk in favour of maybeOf.
This PR fixes the issue raised #6
All tests continue to run successfully and application should now compile if on the latest beta branch:
[✓] Flutter (Channel beta, 1.24.0-10.2.pre, on macOS 11.0.1 20B29 darwin-x64, locale en-GB)

Hi, thanks for helping out! Did something go wrong with the commits? The dev branch is probably a good choice, but perhaps the PR needs to be rebased to get rid of the extra commits?

This was done in a hurry and I didn't realise there was a dev branch until afterward 🥇 . I'll rebase this cleanly and reopen when I get the chance today.


A ClientBuilderBase for REST-based client wrappers

Specifically, this will be used by Storage, Translation and BigQuery.
Currently no tests - I wanted to get feedback on the shape first. Feedback on what aspects you'd want to see tests on would be useful, too...

I note that the test failure is BufferedClientStreamWriterTest, which has been more flaky than usual recently. We might want to look into that. Will restart Travis for now...

Note to self: ApiKey + credentials is probably a scenario we do want to allow. We should probably just not fetch the default credentials implicitly if there's an API key, but allow any credentials to be specified explicitly.

Okay, rewritten a little to handle API keys differently, and added tests. I believe it's ready to merge now - PTAL when you can.


Select it automatically.
Trigger an update.

This pull request is not ready for review.

How do we want this to deal with no country detected (hardly ever happens). Currently defaults to the first in list.

If we're using an entry instead of a combobox, it should be blank so users can see the hint text.
If this branch doesn't intend to use the entry and is just about automatically grabbing the country, I would default to whatever our country with the most visits is (I'm gonna guess US or maybe Brazil)

@danrabbit This isn't an entry, just an auto-selector, so keep US?

@danrabbit I've modified the title for you.