MimeMagic.by_magic returns nil for Javascript file

Hi,
I was trying to detect the type for a simple js file and this is what I'm getting:
2.1.2 :028 > @filename = "/home/deployer/ajax.js"
 => "/home/deployer/ajax.js"
2.1.2 :029 > MimeMagic.by_magic(File.open(@filename)).try(:type)
 => nil

Here is more information about the file:
[deployer@production ~]$ ls -la ajax.js
-rw-rw-r--. 1 deployer deployer 316 Dec 22 14:35 ajax.js
[deployer@production ~]$ pwd
/home/deployer
[deployer@production ~]$ cat ajax.js
jQuery(document).ready(function(){

  $("#cart-form form").bind('ajax:success', function(data, response, status, xhr) {
    console.log(xhr.responseText);
    console.log("Great Success!");
  });

  $("#cart-form form").bind('ajax:error', function(data, response, status) {
    console.log("Problem! ");
  });

});

I expected it to return something like "application/javascript", "application/x-javascript" or "text/plain"
This is what I get if I use file:
[deployer@production ~]$ file -b --mime-type ajax.js
text/plain

It seems to be working fine for other extensions:
2.1.2 :024 > @filename = "/home/deployer/prune-var-backups.sh"
 => "/home/deployer/prune-var-backups.sh"
2.1.2 :025 > MimeMagic.by_magic(File.open(@filename)).try(:type)
 => "application/x-shellscript"
2.1.2 :026 > @filename = "/home/deployer/cerdo.jpg"
 => "/home/deployer/cerdo.jpg"
2.1.2 :027 > MimeMagic.by_magic(File.open(@filename)).try(:type)
 => "image/jpeg"

Do you know what could be wrong?

@etagwerker not to speak for @minad, but here's my POV:
This library's initial intent was to use the free desktop.org's "magic" list to do content type detection. They only do JS detection by extension (http://cgit.freedesktop.org/xdg/shared-mime-info/tree/freedesktop.org.xml.in?id=Release-1-5).
For xlsx, I found extra magic by looking through binary dumps of a bunch of excel files. That magic wasn't acceptable to the free desktop project (I have to look too far into the file, and their project has strict performance constraints) so I proposed adding it as an overlay here.  https://github.com/minad/mimemagic/blob/master/lib/mimemagic/overlay.rb#L3
We could add a new overlay for JS magic, but someone needs to find it.

@etagwerker overlays could help here as suggested by @scpike


How to give -copyinkf param at the right place ?

https://superuser.com/questions/979474/first-second-of-cut-video-part-frozen-when-ffmpeg-cuts-a-part-of-a-video
I've tried global_args, that's not the right position to place the param
And as this param does not have a value, how to specify a -copyinkf flag without value?

Nevermind, it's not meant to be a problem with this repo


adding some important lambda limitations

after some issues with those limitations, I thought it would be useful for more developers to understand and know upfront the current limits on lambdas

I'm not a native English speaker, might be wrong, but I"m pretty sure that "resource limits include" is correct, rather than "resource limits includes".
The other two limits are confusing to me. The way I read them is:
🔸 (...) deployment package size (.zip/.jar file) has a default limit of 50 MB (...)
🔸 (...) deployment package (uncompressed zip/jar size) can be at most 250 MB (...)
Does it mean 50MB packed, 250MB unpacked? Can it be rephrased to clarify a bit? Because at first glance it looks like both sentences talk about the same thing, deployment package size, but give different numbers.

yes yes you are right. writing it as 50MB packed, 250MB unpacked would be much simpler. i will update it and create a new pull request

@bgdnlp can you verify that it is better now?
Thanks for the input!

👍 Looks good; I've adjusted the language and formatting for clarity. Thanks @mpetyx and @bgdnlp !


jupyterthemes: init at 0.20.0

Description of changes
Adding jupyterthemes for themes in Jupyter Notebook. It also required a dependency to work.
Demonstration of work of this package:

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 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

[x] Fits CONTRIBUTING.md.

If I do doCheck = true; in lesscpy, I'm getting
error: builder for '/nix/store/l8sa7k7qc6s7j1qycwmwjyy82zqyq80x-python3.10-lesscpy-0.15.1.drv' failed with exit code 1;
       last 10 log lines:
       >   warnings.warn(
       > WARNING: The directory '/homeless-shelter/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
       > WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7ffff57b48e0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/tox/

(the last warning repeats multiple times)
and the last is
       > WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7ffff57b5270>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/tox/
       > ERROR: Could not find a version that satisfies the requirement tox (from versions: none)
       > ERROR: No matching distribution found for tox
       > error: Command '['/nix/store/sp5x6s8n36gjlwck74xhj1i61p66vcpa-python3-3.10.9/bin/python3.10', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/build/tmplldd8w_g', '--quiet', 'tox']' returned non-zero exit status 1.

Does it have to be fixed?

Huh, lesscpy is already there. Albeit an older version and built as a python application instead of package. Any tips? Should I just use that one?

yeah no, jupyter themes doens't work with that one
Lemme bump the version


Quickstart example fails to run

Hello,
Followed the instructions as https://enroute.osgi.org/tutorial/020-tutorial_qs.html but the application fails to run:
➜  java -jar app/target/app.jar
I'm running openJDK 17.0.1 and Maven 3.8.5 on a CentOS 8 Platform and here are the console outputs:
➜  quickstart git:(main) java -version
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment 21.9 (build 17.0.1+12)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12, mixed mode, sharing)
➜  quickstart git:(main) mvn -version
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /usr/local/maven
Java version: 17.0.1, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-17-openjdk-<IP_ADDRESS>.12-3.rolling.el8.x86_64
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-348.2.1.el8_5.x86_64", arch: "amd64", family: "unix"
➜  quickstart git:(main) mvn verify
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] quickstart                                                         [pom]
[INFO] rest                                                               [jar]
[INFO] app                                                                [jar]
[INFO]
[INFO] ----------< org.osgi.enroute.examples.quickstart:quickstart >-----------
[INFO] Building quickstart 0.0.2-SNAPSHOT                                 [1/3]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] -------------< org.osgi.enroute.examples.quickstart:rest >--------------
[INFO] Building rest 0.0.2-SNAPSHOT                                       [2/3]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ rest ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- bnd-maven-plugin:6.1.0:bnd-process (default) @ rest ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ rest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/developer/dev/osgi/osgi.enroute/examples/quickstart/rest/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ rest ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ rest ---
[INFO] Surefire report directory: /home/developer/dev/osgi/osgi.enroute/examples/quickstart/rest/target/surefire-reports

T E S T S
Running org.osgi.enroute.examples.quickstart.rest.UpperTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ rest ---
[INFO] Building jar: /home/developer/dev/osgi/osgi.enroute/examples/quickstart/rest/target/rest-0.0.2-SNAPSHOT.jar
[INFO]
[INFO] --------------< org.osgi.enroute.examples.quickstart:app >--------------
[INFO] Building app 0.0.2-SNAPSHOT                                        [3/3]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ app ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ app ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/developer/dev/osgi/osgi.enroute/examples/quickstart/app/target/classes
[INFO]
[INFO] --- bnd-maven-plugin:6.1.0:bnd-process (default) @ app ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ app ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/developer/dev/osgi/osgi.enroute/examples/quickstart/app/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ app ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ app ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ app ---
[INFO] Building jar: /home/developer/dev/osgi/osgi.enroute/examples/quickstart/app/target/app-0.0.2-SNAPSHOT.jar
[INFO]
[INFO] --- bnd-indexer-maven-plugin:6.1.0:index (index) @ app ---
[INFO] The configured deployment repository OSGi Snapshots has the same id as one of the remote artifact repositories. It is assumed that these repositories are the same.
[INFO]
[INFO] --- bnd-indexer-maven-plugin:6.1.0:index (test-index) @ app ---
[INFO] The configured deployment repository OSGi Snapshots has the same id as one of the remote artifact repositories. It is assumed that these repositories are the same.
[INFO]
[INFO] --- bnd-export-maven-plugin:6.1.0:export (default) @ app ---
[INFO] Exporting /home/developer/dev/osgi/osgi.enroute/examples/quickstart/app/app.bndrun:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for quickstart 0.0.2-SNAPSHOT:
[INFO]
[INFO] quickstart ......................................... SUCCESS [  0.002 s]
[INFO] rest ............................................... SUCCESS [  1.290 s]
[INFO] app ................................................ SUCCESS [  1.819 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.206 s
[INFO] Finished at: 2022-04-25T00:05:49+01:00
[INFO] ------------------------------------------------------------------------
➜  quickstart git:(main) java -jar app/target/app.jar
! Failed to start bundle org.apache.aries.javax.jax.rs-api-1.0.4, exception Could not resolve module: org.apache.aries.javax.jax.rs-api [3]
Unresolved requirement: Import-Package: org.apache.geronimo.osgi.registry.api; resolution:="optional"
Unresolved requirement: Import-Package: javax.xml.bind.annotation
org.osgi.framework.BundleException: Could not resolve module: org.apache.aries.javax.jax.rs-api [3]
Unresolved requirement: Import-Package: org.apache.geronimo.osgi.registry.api; resolution:="optional"
Unresolved requirement: Import-Package: javax.xml.bind.annotation
at org.eclipse.osgi.container.Module.start(Module.java:463)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:439)
at aQute.launcher.Launcher.start(Launcher.java:686)
at aQute.launcher.Launcher.startBundles(Launcher.java:666)
at aQute.launcher.Launcher.activate(Launcher.java:572)
at aQute.launcher.Launcher.launch(Launcher.java:402)
at aQute.launcher.Launcher.run(Launcher.java:184)
at aQute.launcher.Launcher.main(Launcher.java:160)
at aQute.launcher.pre.EmbeddedLauncher.executeWithRunPath(EmbeddedLauncher.java:170)
at aQute.launcher.pre.EmbeddedLauncher.findAndExecute(EmbeddedLauncher.java:119)
at aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:52)

Thanks

For the benefit of anyone reading this issue, the example application will not run with Java 17. I changed to Java 1.8 and can confirm that the application runs correctly.


[FEAT] Making the site feel more interactive with hover effects and a little animation

Feature Description
The buttons and cards on the site feel a little static, we could make them feel a bit more interactive if we add hover effects to the cards and the buttons.
Summary:
Add animations and hover effects
Proposed Method
CSS hover pseduo selectors, action pseudo selectors and animations using keyframes
Additional context
we could have the cards grow in size and have a slight glow when hovered upon, same for the buttons maybe just with the slight glow.

[x] I want to work on this

Hey there @marsian83!
That sounds amazing, I'll assign this Issue to you

@marsian83 - requested two changes to maintain code consitency but on the whole, we're good to go!

Thanks for contributing! ✨
I'll close this Issue now


Namespace clashing with ui-router (Could not resolve 'undefined' from state 'foo')

Hi I'm using overlay modal but everytime I click anywhere in modal I always got this error
angular.js:13550 Error: Could not resolve 'undefined' from state 'foo'

FYI, im using ui.router.
here is my modal

                <button class="close"
                ui-turn-off="someModel">×</button>

Signature

                <button ui-turn-off="someModel" class="btn btn-default">Close</button>
                <button ui-turn-off="someModel" class="btn btn-primary">Save changes</button>

I have the same problem!

I solved my problem by manually initiating the sharedState in controller and not using the ui-state directive in the modal.
SharedState.initialize($scope, 'someModel', false);

but still hoping for better fix ui-router has richer APIs.

I'll consider renaming the prefix, although it would fit for a major release i can think about distributing some sort of no-conflict version.
Going to accept and schedule it somehow. Thanks for reporting it.

@ryanannatuvasquez Would it be a reasonable fix to alias ui-state to something else (ui-shared-state) and deprecate ui-state?

https://github.com/mcasimir/mobile-angular-ui/pull/374

@mcasimir ui-shared-state is a nice fix to avoid conflict 👍 💯
Closing this issue now since it has now been resolved.
Thank you for this fix!


Intercom.JS - Added off method

Added missing off method to intercomjs interface and added example to test file.

@cseufert thanks mate!

note
https://github.com/diy/intercom.js/blob/d7652e76d6caebf45b0a8df76ed9fc5e088d0d96/intercom.amd.js#L22


support fulltext fuzzy search

I see this code is "match" from the beginning,     #1179
Is it for performance reasons?
I'm sorry I don't have the conditions for performance testing,
I would like to support fuzzy search if possible,
@Valodim

We have an issue to improve search overall (#4513). I think for now we'll keep the existing behavior.


required "client_secret" param is missing when calling "Mastodon" /oauth/token

Encountered while trying to login with a newly downloaded app on the Play Store (says v60.01 (361)).
Rigorous OAuth servers won't let this pass ;)

Hello @diligiant
Maybe you mean the Friendica's bug that we discussed recently: https://github.com/andstatus/andstatus/issues/569#issuecomment-1383509331
Please read there.
And Friendica was fixed.

Hello @yvolk,
so you're basically pointing out that you have the only complaint app amongst the ≈30 I tested ;)
thank you so much.
What a world!

@yvolk you made me read a lot ;)
Here rfc6749 section-2.3.1](https://datatracker.ietf.org/doc/html/[rfc6749#section-2.3.1), I read :

Alternatively, the authorization server MAY support including the
client credentials in the request-body using the following
parameters:
client_id        REQUIRED
client_secret REQUIRED

and later a POST /token example is provided.

@diligiant OK, let's read and investigate more :-)
First of all, as https://datatracker.ietf.org/doc/html/rfc6749#section-2.3.1 says and as even your your quote has "Alternatively ..." meaning that "including the client credentials in the request-body" is only one several of possible methods and this method is "NOT RECOMMENDED" - read this in the spec:

Including the client credentials in the request-body using the two
parameters is NOT RECOMMENDED and SHOULD be limited to clients unable
to directly utilize the HTTP Basic authentication scheme (or other
password-based HTTP authentication schemes)

AndStatus does use HTTP Basic authentication scheme, preferred by the spec. More details with a link to ScribeJava team response (ScribeJava library is actually signing requests for us...) see here: https://github.com/andstatus/andstatus/issues/530

I did a little experiment with a mock mastodon

no /well-known/oauth-authorization-server
oauth-authorization-server with token_endpoint_auth_methods_supported: client_secret_post
oauth-authorization-server with token_endpoint_auth_methods_supported: [client_secret_basic, client_secret_post]

and tested with ≈20 iOS and Android apps. This doesn't change anything; they all go but you for "client_secret_post". This was reason of my issue, "go with the flow" even if that's unfortunate.
My mock is much better thanks to this exchange so thank you.

@diligiant AndStatus does work with Mastodon servers, and this is the most important thing.
So your "Mastodon mock" also should work with AndStatus in order to be a correct mock :-)

@diligiant And BTW I don't only "go with the flow", but also change the flow sometimes: I took part in ActivityPub spec and my suggestions were included in its text https://www.w3.org/TR/activitypub/

Masto doesn't mention BasicAuth...

We have different points of view. Looking wider in space and in time today's Mastodon is one of many client-to-server implementations. AndStatus supported Twitter, Gnu Social and Pump.io when Mastodon didn't exist yet.
In recent years I'm mostly working on support of ActivityPub Client-to Sever (C2S) API, and we progressed here with three different servers: Pleroma (some years ago), Microblog.pub and Friendica. I think Mastodon will "change its flow" and will have to join the AP C2S club also :-)
So no wonder that AndStatus works not like the other 30 apps that you tested: our main focus is on compliance to open specifications, sustainability and openness to new solutions. This is why when I searched for the proper OAuth implementation some years ago I chose ScribeJava library that Supports all (50+) major 1.0a and 2.0 OAuth APIs out-of-the-box. And this is why AndStatus happened to work in a more OAuth 2.0 compliant way ;-)


HDDS-3496. Make S3_ADMIN_NAME configurable

What changes were proposed in this pull request?
With buckets and volumes created by s3g, the admin user is now ‘OzoneS3Manager’. We need to change it to other users. This can be changed to configurable.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3496
How was this patch tested?
1、ozone.acl.enableo ozone acl and set ozone.om.s3g.administrator=anyone in ozone-site.xml
2、create bucket use s3api：
aws s3api --endpoint-url http://s3g-host:9878 create-bucket --bucket=test
3、You can see the acl info of the bucket(by default is 'OzoneS3Manager'):
ozone sh bucket getacl s375201e1bbbdba75e600fcd0273c304ca/test

Thanks to fix this issue @captainzmc
I am not sure if it's still relevant. I think it's not a problem any more as HDDS-3385 removed the create volume call (s3v volume is used for all the buckets not s3 bucket is created)

thanks @elek. I'm going to turn off the PR.


[Codeforces] Div1 Problem added

Hi @Vishruth-S,
I have added a Div-1 problem from codeforces.
Thanks,
Shubhakar

Hi @Vishruth-S,
I have added proper explanation for the code :) pr #203


Add a fixer for the no-var-self rule

This change adds automatic fixing for no-var-self if a few criteria are met:

The variable declaration takes place within a function, method, or constructor
The variable declaration does not specify a type
The variable is declared on its own, not in a list of variables
No other declaration of another variable with the same name takes place within the same function or any nested scope within it
There are no assignments to the variable after the declaration
There are no uses of the variable within nested functions defined with the function keyword (arrow syntax is allowed because it preserves the outer this)

@sethbrenith,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

Oops, turns out I can't just plop code that I developed in tslint into tslint-microsoft-contrib and assume it will compile. Sorry!


fix current color typo

just assuming you meant to say "current color" not "current current". Feel free to disregard if not!

Resolved by https://github.com/10up/sanitize.css/pull/103


jsonpb error reporting is poor, and here's how to fix it

JsonPB has very unhelpful error reporting. For example:
json: cannot unmarshal string into Go value of type []json.RawMessage
Its unclear what field this is about (and for multi nested messages it is a huge), and even the type []json.RawMessage is incorrect ([uint32]). I forked the jsonpb.Unmarshaller at go-nicejsonpb and introduced few improvements:

Errors are are now prefixed with a "stack" path of fields that are returned in (including offsets in arrays, and keys in maps)
Poor "cannot deserialize into `json.RawMessage" errors now use proper types
Unknown fields now return a helpful message listing known fields :)

For a comparison of outputs, here's a test against normal jsonpb with the expected values being from nicejsonpb
new: "unparsable field SomeIntRep.[3]: json: cannot unmarshal string into Go value of type uint32"
old: "json: cannot unmarshal string into Go value of type uint32"

new: "unparsable field SomeEmbedded.SomeValue: invalid character 's' looking for beginning of value while looking for an integer in a string"
old: "invalid character 's' looking for beginning of value"

new: "unparsable field SomeEmbedded.Identifier: json: cannot unmarshal number into Go value of type string" (expected)
old: "json: cannot unmarshal number into Go value of type string"

new: "unparsable field SomeIntRep: json: cannot unmarshal string into Go value of type []uint32"
old: "json: cannot unmarshal string into Go value of type []json.RawMessage"

new: "unparsable field SomeEmbedded: fields [someUnknown anotherUnknown] do not exist in set of known fields [identifier someValue]"
old: "unknown field \"someUnknown\" in validatortest.ValidatorMessage3_Embedded"

I'd happily upstream it, but would like to know whether introducing a new jsonpb.FieldError is a viable option for upstream. @bcmills, thoughts?

@bcmills any thoughts on upstreaming the fixes to jsonpb error reporting in https://github.com/mwitkow/go-nicejsonpb?

It probably would be a good idea to make error reporting clearer.  How would your proposal fit in with #256 ?

@bcmills I commented there:
This proposal is compatible with whatever is proposed in #256. The same fieldStackError can be used in code-generated MarshalJSON and UnmarshalJSON functions as they would be be in the nicejsonpb functions: basically as we handle an error propagating up the call tree we add the stack information as to which field generated the error..
Thoughts?

It's a bit hard to tell what the proposed changes are because the commit history of go-nicejsonpb seems to be truncated, but I see a lot of fmt.Sprintf calls in the error construction path which seem like they'll add a lot of unnecessary allocations.  Perhaps there's a more efficient way to structure the errors to give a better balance of overhead and clarity?

Oh, of course. The field path construction can be moved to the error itself
and avoid allocation. We use nicejsonpb to validate config files so there
was no need for performance considerations.
I'll refactor the change into a proper PR once I'm back from vacation.
On Fri, 3 Mar 2017, 20:42 Bryan C. Mills<EMAIL_ADDRESS>wrote:

It's a bit hard to tell what the proposed changes are because the commit
history of go-nicejsonpb seems to be truncated, but I see a lot of
fmt.Sprintf calls in the error construction path which seem like they'll
add a lot of unnecessary allocations. Perhaps there's a more efficient way
to structure the errors to give a better balance of overhead and clarity?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/protobuf/issues/266#issuecomment-284064763,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJNWo_Ku2ViH7O1p5uqXagve85_wZkBBks5riHsFgaJpZM4LGYkX
.

@bcmills I raised #310 with the relevant changes. I do think that the allocations are not that big of a deal, as they're dealing with a relatively rare case of the problem arising in map keys.

@bcmills can you please PTAL at #310? :)

\cc @cybrcodr

@cybrcodr @dsnet any chance we could revisit this? :)

I'm using a fork with the patch from #310 and it's been really useful. It would be nice to have support upstream :)

Is there some reason this PR has not been applied? Using jsonpb is extremely difficult in production with external providers as and error in the input stream is nearly impossible to diagnose. This is an example of re-using the error structs from 'json' and then 'zeroing' fields - when this package should probably define it's own error types.

This logic has been completely re-written in the next major release of Go protobufs. We are only applying bug fixes at this point to the current code base. Better error messages is nice-to-have, but is not a bug fix.

Why can't you apply the PR as a back fix? Error diagnosis is nearly impossible with the current version. It is a real problem when dealing with external systems that may be generating the json not via protobufs.

The JSON implementation for protobuf has been completely rewritten in the v1.20.0 release release that this is unlikely to still be an issue. If the new error output is still insufficient, new issues can be filed.


Use on.path GHA config to run fewer jobs

What would you like to be added:
Use on.path GitHub Action configuration to run fewer jobs. For example, only trigger the Markdown linting/link check GHAs when *.md files are changed. Currently those jobs start only for the tests to detect no modified files and exit.
Why is this needed:
To run fewer jobs, saving resources.

As @manosnoam pointed out, a related optimization would be not running most tests (except GitLint and DCO) when only the commit message is updated.

It should also be considered when modifying the Website pages or Readme files - unit-tests and e2e are not useful for Docs too.

We don't run unnecessary tests in the website repo, but yes I agree overall.


Add support for S3 FileSystem compatible schemes 'cos' and 'cosn'

Description
Tencent COS is a famous object storage system provided by Tencent Corp. From this document COS offers AWS S3-compatible APIs, and we can use the APIs of S3 SDK to access files in COS. This pull request introduce acceptance of cos:// and cosn:// prefixes as supported and compatible S3 implementations.
Usage
With this pull request, We set the following parameters in the hive.properties file to access cos
hive.s3.endpoint=https://cos.ap-beijing.myqcloud.com
hive.s3.aws-access-key=xxxxx
hive.s3.aws-secret-key=xxxx

@mbasmanova could you help me review this pull request.

@mbasmanova I will prioritize https://github.com/facebookincubator/velox/issues/2861. Will have something by early next week. It is long over due.

Thank you, Deepak.


Block: The Voice

Channel ID
TheVoice.bg
Reference
https://github.com/iptv-org/iptv/issues/6486
Notes (optional)
The Voice is owned by United Media, which has requested a removal request in the past.

@Alstruit channels listed from: https://united.group/operations/

Also, some United Group channels (outside of N1) are blocked.

https://github.com/iptv-org/database/pull/7543

Reopening. https://github.com/iptv-org/database/pull/7543#issuecomment-1806942897

https://github.com/iptv-org/database/pull/7543#issuecomment-1806958308


Version for Mac

Hi, today I have tried this project on Mac OS 11.5.2 (with m1), everything works only with minor changes:
I add to source_facility.go cgo rows which help to find headers:
// #cgo pkg-config: gio-2.0 glib-2.0 gobject-2.0
// #cgo pkg-config: gtk+-3.0 gtksourceview-4
// #cgo CFLAGS: -Wno-deprecated-declarations

and of cource in all files where necessary I added:
// +build linux darwin
And I could to compile the example. this is an a result:

Maybe we could do those changes to the main branch?

Hi.
Yes, you can do a pull request with your changes.
Glad to have feedback from an os-x user and to know that my efforts are working well (with some adjustments) for this OS.
Thank you for your expertise.


Refactor + Reconciliation + Various Improvements

Hi,
We're looking to use this controller as the basis of an internal POC for Tailscale in our Kubernetes Clusters, I've made some improvements to it and thought I'd offer them back upstream. As an up-front disclaimer, I'm not a python developer so the resulting code might not be very 'pythonic'. That being said, I've implemented the following changes:

Refactor main.py into separate resources/* classes
Remove the on_create hook in preference for a timer - this allows the controller to reconcile the state of services that existed and were tagged prior to the controller being deployed
Optionally generate the tailscale hostname from the target service name and namespace (allows for consistent naming for each service)
Accept Environment variables that specify imagePullSecrets, imagePullPolicy and requests for proxy containers
Optionally deploy the Tailscale Proxy as a Deployment or a DaemonSet
Use an initContainer to run sysctl on startup (required for Linode LKE, at least)
Make the use of nodeSelectorLabels for Tailscale Proxy deployments optional
Add a test script that will run the controller and ensure relevant resources are being created
Update the chart and documentation to reflect changes
Probably a bit of other stuff I've forgotten

I realise this is a large number of changes, but thought I'd see if there was any interest in accepting them
Cheers!

Hi,
Thank you for this PR. I did not expect anyone to PR something this large, but the initial list seems promising and includes pretty much most of what I wanted to do with this project.
I'll take a more in-depth look later on.

A few days into using this and I already regret using the Env vars to specify resources for containers - the CPU/Memory requests can vary quite a lot depending on the amount of traffic the pod receives. I saw another ticket that suggested annotations, and I think that's a better solution - at some point in the coming weeks I'll investigate this option.

A few days into using this and I already regret using the Env vars to specify resources for containers - the CPU/Memory requests can vary quite a lot depending on the amount of traffic the pod receives. I saw another ticket that suggested annotations, and I think that's a better solution - at some point in the coming weeks I'll investigate this option.

Interesting idea. I'd definitely want to look more into annotation-based setting changes. My personal use case for annotations is the ability to tag a Tailnet device easily.

I requested the help of @Prof-Bloodstone to review this PR as it's quite big and I'm not too familiar with Python myself either. It would be great to resolve the comments that were left and then I'll merge the PR.

Hey, This looks like a lot of awesome work. I tried to keep in mind that previously this was just a hacked together script and to not be too picky. I've left some comments and examples of those easier to do items that would be really nice.

Thanks for taking the time to review - I'll get around to addressing those comments in the next few days


ci: action to build and push docker images to gcp

This PR automates the generation and of Docker images for both apps. There is currently an incompatibility between the architecture of the latest image (ARM64) with Dataproc's own architecture (AMD64).
The latest Docker images uploaded to the Registry were built using docker build, meaning that the image is built for the architecture of the local system. With docker buildx we can do multi architecture builds to solve the issue. I've taken the action in Gentropy as a template.
We have to merge it to test it.

It also updates the Python version in the dockerfile to match the Python version in Dataproc. This is a temporary solution. Because we are not running the code in a virtual env like in Gentropy, compiling dependencies for a python version diff than the ones in Dataproc will result in an error. A better long term solution is to run the code in isolation.
Updating this version solves the issue with numpy.


"raise_version_mismatch" issue

I have phantomjs 2.0.0, is sigh compatible with that?
/Library/Ruby/Gems/2.0.0/gems/cliver-0.3.2/lib/cliver/dependency.rb:151:in `raise_version_mismatch!': Could not find an executable 'phantomjs' that matched the requirements '~> 1.8', '>= 1.8.1'. Found versions were {"/usr/local/bin/phantomjs"=>"2.0.0"}. (Cliver::Dependency::VersionMismatch)
	from /Library/Ruby/Gems/2.0.0/gems/cliver-0.3.2/lib/cliver/dependency.rb:117:in `detect!'
	from /Library/Ruby/Gems/2.0.0/gems/cliver-0.3.2/lib/cliver.rb:24:in `detect!'
	from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/client.rb:36:in `initialize'
	from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/client.rb:14:in `new'
	from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/client.rb:14:in `start'
	from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/driver.rb:42:in `client'
	from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/driver.rb:25:in `browser'
	from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/driver.rb:190:in `headers='
	from /Library/Ruby/Gems/2.0.0/gems/sigh-0.2.1/lib/sigh/developer_center.rb:51:in `initialize'
	from /Library/Ruby/Gems/2.0.0/gems/sigh-0.2.1/bin/sigh:46:in `new'
	from /Library/Ruby/Gems/2.0.0/gems/sigh-0.2.1/bin/sigh:46:in `block (2 levels) in run'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:155:in `run'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:421:in `run_active_command'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:81:in `run!'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/delegates.rb:8:in `run!'
	from /Library/Ruby/Gems/2.0.0/gems/sigh-0.2.1/bin/sigh:61:in `run'
	from /Library/Ruby/Gems/2.0.0/gems/sigh-0.2.1/bin/sigh:81:in `<top (required)>'
	from /usr/bin/sigh:23:in `load'
	from /usr/bin/sigh:23:in `<main>'

Wow, you were fast updating to phantomjs 2.0.
sigh is using poltergeist. As far as I know they haven't yet released an update for phantomjs 2.0. So, please install an older version of phantomjs for now. We have to wait for poltergeist.

@cool8jay I'm happy to announce, sigh now has its own phantomjs installation with https://github.com/KrauseFx/sigh/commit/ca3e783425426525b864b0deb010ef8ccad56c9a
Please update using sudo gem update sigh and let me know if it works :+1:


Using fixtureGrep option in gulp-testcafe or on runner instance.

Are you requesting a feature or reporting a bug?
feature
What is the current behavior?
What is the expected behavior?
We should be able to add this option as part of testcafe options in gulp task, so that we can pass a pattern code to run specific group of tests.
How would you reproduce the current behavior (if this is a bug)?
Provide the test code and the tested page URL (if applicable)
Tested page URL:
Test code

Specify your

operating system:
testcafe version:
node.js version:

You can use the filter option.


Weekly PR

@EugeneButusov @vedi please start writing informative commit messages, and not the title of the task.
Did you check that everything builds correctly using the "build_all" script?

@borisspektor,

we use common industrial standards for the commit messages, and @refaelos was happy enough about this. Please, solve this with him.
the PR is under-code review at the moment, when it passes all the tests, I'll put it as ready for merge.

@borisspektor, checked it, build scripts runs correctly.

@borisspektor, @refaelos, it's ready to merge


Incorrect "JIRA issue tracker" link in Readme

Fixed incorrect "JIRA issue tracker" link in Readme

Thanks for the PR!

Cordova CI Build has one or more failures.
Commit     - Link
Dashboard - Link
316 tests run, 34 skipped, 2 failed.


Can't open upper case file extension (e.g. .JPEG)

🐛 Bug
Opening a file with upper case file extension throws an error, whereas having the file extension in lower case works.
To Reproduce
Steps to reproduce the behavior:

Open napari
Open image some_image.JPEG gives error
Change the file extension to some_image.jpeg
Open image some_image.jpeg successfully

Error message

ReaderPluginError: Tried to read /Users/roaldarbol/Downloads/cell_microscope071117.JPEG with plugin napari, because it was associated with that file extension/because it is the only plugin capable of reading that path, but it gave an error. Try associating a different plugin or installing a different plugin for this kind of file.
WARNING: Populating font family aliases took 460 ms. Replace uses of missing font family "Monospace" with one that exists to avoid this cost.
16:42:34 WARNING Populating font family aliases took 460 ms. Replace uses of missing font family "Monospace" with one that exists to avoid this cost.
(cellpose_napari) ➜  ~ napari
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/components/viewer_model.py:1126, in ViewerModel._open_or_raise_error(self=Viewer(axes=Axes(visible=False, labels=True, col...ings._transform_active_layer at 0x7ff058a0e310>}), paths=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], kwargs={}, layer_type=None, stack=False)
   1125 try:
-> 1126     added = self._add_layers_with_plugins(
        added = []
        self = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x7ff058323520>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x7ff058323580>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x7ff0583235e0>, transform=<napari.utils.transforms.transforms.Affine object at 0x7ff058323640>, allow_new_selection=True, selected_vertex=None)), help='', status='Hold <Alt> key to open plugin selection. Hold <Shift> to open files as stack.', tooltip=Tooltip(visible=True, text=''), theme='dark', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.<locals>.mouse_move at 0x7ff059111700>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.<locals>.mouse_drag at 0x7ff0590ff820>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7ff0561d7b80>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events.<locals>.hold_to_lock_aspect_ratio at 0x7ff0590ffb80>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x7ff058a0e280>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x7ff058a0e310>})
        paths = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        kwargs = {}
        stack = False
        plugin = 'napari'
        layer_type = None
   1127         paths,
   1128         kwargs=kwargs,
   1129         stack=stack,
   1130         plugin=plugin,
   1131         layer_type=layer_type,
   1132     )
   1133 # plugin failed

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/components/viewer_model.py:1216, in ViewerModel._add_layers_with_plugins(self=Viewer(axes=Axes(visible=False, labels=True, col...ings._transform_active_layer at 0x7ff058a0e310>}), paths=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], stack=False, kwargs={}, plugin='napari', layer_type=None)
   1215     assert len(paths) == 1
-> 1216     layer_data, hookimpl = read_data_with_plugins(
        paths = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        stack = False
        plugin = 'napari'
   1217         paths, plugin=plugin, stack=stack
   1218     )
   1220 # glean layer names from filename. These will be used as *fallback*
   1221 # names, if the plugin does not return a name kwarg in their meta dict.

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/plugins/io.py:100, in read_data_with_plugins(paths=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], plugin='napari', stack=False)
     95     message = trans._(
     96         'No plugin found capable of reading {repr_path!r}.',
     97         deferred=True,
     98         repr_path=npe1_path,
     99     )
--> 100     raise ValueError(message)
        message = "No plugin found capable of reading '/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'."
    102 if plugin not in plugin_manager.plugins:

ValueError: No plugin found capable of reading '/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'.

The above exception was the direct cause of the following exception:

ReaderPluginError                         Traceback (most recent call last)
File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/_qt/qt_viewer.py:830, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={})
    829 try:
--> 830     self.viewer.open(
        self = <napari._qt.qt_viewer.QtViewer object at 0x7ff0583d2ee0>
        self.viewer = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x7ff058323520>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x7ff058323580>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x7ff0583235e0>, transform=<napari.utils.transforms.transforms.Affine object at 0x7ff058323640>, allow_new_selection=True, selected_vertex=None)), help='', status='Hold <Alt> key to open plugin selection. Hold <Shift> to open files as stack.', tooltip=Tooltip(visible=True, text=''), theme='dark', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.<locals>.mouse_move at 0x7ff059111700>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.<locals>.mouse_drag at 0x7ff0590ff820>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7ff0561d7b80>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events.<locals>.hold_to_lock_aspect_ratio at 0x7ff0590ffb80>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x7ff058a0e280>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x7ff058a0e310>})
        filenames = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        stack = False
        plugin = None
        layer_type = None
        kwargs = {}
    831         filenames,
    832         stack=stack,
    833         plugin=plugin,
    834         layer_type=layer_type,
    835         **kwargs,
    836     )
    837 except ReaderPluginError as e:

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/components/viewer_model.py:1024, in ViewerModel.open(self=Viewer(axes=Axes(visible=False, labels=True, col...ings._transform_active_layer at 0x7ff058a0e310>}), path=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], stack=False, plugin=None, layer_type=None, **kwargs={})
   1022 # no plugin choice was made
   1023 else:
-> 1024     layers = self._open_or_raise_error(
        layers = <module 'napari.layers' from '/usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/layers/__init__.py'>
        self = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x7ff058323520>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x7ff058323580>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x7ff0583235e0>, transform=<napari.utils.transforms.transforms.Affine object at 0x7ff058323640>, allow_new_selection=True, selected_vertex=None)), help='', status='Hold <Alt> key to open plugin selection. Hold <Shift> to open files as stack.', tooltip=Tooltip(visible=True, text=''), theme='dark', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.<locals>.mouse_move at 0x7ff059111700>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.<locals>.mouse_drag at 0x7ff0590ff820>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7ff0561d7b80>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events.<locals>.hold_to_lock_aspect_ratio at 0x7ff0590ffb80>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x7ff058a0e280>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x7ff058a0e310>})
        _path = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        _stack = False
        kwargs = {}
        layer_type = None
   1025         _path, kwargs, layer_type, _stack
   1026     )
   1027     added.extend(layers)

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/components/viewer_model.py:1135, in ViewerModel._open_or_raise_error(self=Viewer(axes=Axes(visible=False, labels=True, col...ings._transform_active_layer at 0x7ff058a0e310>}), paths=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], kwargs={}, layer_type=None, stack=False)
   1134     except Exception as e:
-> 1135         raise ReaderPluginError(
        trans = <napari.utils.translations.TranslationBundle object at 0x7ff05267df10>
        plugin = 'napari'
        paths = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
   1136             trans._(
   1137                 'Tried opening with {plugin}, but failed.',
   1138                 deferred=True,
   1139                 plugin=plugin,
   1140             ),
   1141             plugin,
   1142             paths,
   1143         ) from e
   1144 # multiple plugins
   1145 else:

ReaderPluginError: Tried opening with napari, but failed.

The above exception was the direct cause of the following exception:

ReaderPluginError                         Traceback (most recent call last)
File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/_qt/qt_viewer.py:1191, in QtViewer.dropEvent(self=<napari._qt.qt_viewer.QtViewer object>, event=<PyQt5.QtGui.QDropEvent object>)
   1188     else:
   1189         filenames.append(url.toString())
-> 1191 self._qt_open(
        self = <napari._qt.qt_viewer.QtViewer object at 0x7ff0583d2ee0>
        filenames = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        shift_down = <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x7ff03c43bba0>
        alt_down = <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x7ff03c43bb30>
   1192     filenames,
   1193     stack=bool(shift_down),
   1194     choose_plugin=bool(alt_down),
   1195 )

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/_qt/qt_viewer.py:838, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={})
    830     self.viewer.open(
    831         filenames,
    832         stack=stack,
   (...)
    835         **kwargs,
    836     )
    837 except ReaderPluginError as e:
--> 838     handle_gui_reading(
        filenames = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        self = <napari._qt.qt_viewer.QtViewer object at 0x7ff0583d2ee0>
        stack = False
        layer_type = None
        kwargs = {}
    839         filenames,
    840         self,
    841         stack,
    842         e.reader_plugin,
    843         e,
    844         layer_type=layer_type,
    845         **kwargs,
    846     )
    847 except MultipleReaderError:
    848     handle_gui_reading(filenames, self, stack, **kwargs)

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/_qt/dialogs/qt_reader_dialog.py:188, in handle_gui_reading(paths=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], qt_viewer=<napari._qt.qt_viewer.QtViewer object>, stack=False, plugin_name='napari', error=ReaderPluginError('Tried opening with napari, but failed.'), plugin_override=False, **kwargs={'layer_type': None})
    161 """Present reader dialog to choose reader and open paths based on result.
    162
    163 This function is called whenever ViewerModel._open_or_get_error returns
   (...)
    185     Dictates whether checkbox to remember choice is unchecked by default
    186 """
    187 _path = paths[0]
--> 188 readers = prepare_remaining_readers(paths, plugin_name, error)
        paths = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        plugin_name = 'napari'
        error = ReaderPluginError('Tried opening with napari, but failed.')
    189 error_message = str(error) if error else ''
    190 readerDialog = QtReaderDialog(
    191     parent=qt_viewer,
    192     pth=_path,
   (...)
    195     persist_checked=not plugin_override,
    196 )

File /usr/local/anaconda3/envs/cellpose_napari/lib/python3.8/site-packages/napari/_qt/dialogs/qt_reader_dialog.py:243, in prepare_remaining_readers(paths=['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'], plugin_name='napari', error=ReaderPluginError('Tried opening with napari, but failed.'))
    241 # if there's no other readers left, raise the exception
    242 if not readers and error:
--> 243     raise ReaderPluginError(
        trans = <napari.utils.translations.TranslationBundle object at 0x7ff05267df10>
        paths = ['/Users/roaldarbol/Downloads/cell_microscope071117.JPEG']
        len(paths) > 1 = False
        len(paths) = 1
        paths[0] = '/Users/roaldarbol/Downloads/cell_microscope071117.JPEG'
        plugin_name = 'napari'
        error = ReaderPluginError('Tried opening with napari, but failed.')
    244         trans._(
    245             "Tried to read {path_message} with plugin {plugin}, because it was associated with that file extension/because it is the only plugin capable of reading that path, but it gave an error. Try associating a different plugin or installing a different plugin for this kind of file.",
    246             path_message=f"[{paths[0]}, ...]"
    247             if len(paths) > 1
    248             else paths[0],
    249             plugin=plugin_name,
    250         ),
    251         plugin_name,
    252         paths,
    253     ) from error
    255 return readers

ReaderPluginError: Tried to read /Users/roaldarbol/Downloads/cell_microscope071117.JPEG with plugin napari, because it was associated with that file extension/because it is the only plugin capable of reading that path, but it gave an error. Try associating a different plugin or installing a different plugin for this kind of file.

Expected behavior
As many DSLR cameras output images upper case file names, I'd expect there to be no difference between lower and upper case file extensions.
Environment

Please copy and paste the information at napari info option in help menubar here:

napari: 0.4.17
Platform: macOS-10.16-x86_64-i386-64bit
System: MacOS 12.6.3
Python: 3.8.16 (default, Mar 1 2023, 21:19:10) [Clang 14.0.6 ]
Qt: 5.15.2
PyQt5: 5.15.9
NumPy: 1.23.5
SciPy: 1.9.3
Dask: 2023.2.0
VisPy: 0.11.0
magicgui: 0.7.2
superqt: unknown
in-n-out: 0.1.7
app-model: 0.1.2
npe2: 0.6.2

OpenGL:
- GL version: 2.1 INTEL-18.8.6
- MAX_TEXTURE_SIZE: 16384

Screens:
- screen 1: resolution 1440x900, scale 2.0
- screen 2: resolution 1680x1050, scale 1.0

Any other relevant information:

Additional context

It was initially reported here #4986 and looks like #5121 does not solve the problem.

Wow, this is a bit embarrassing and a serious issue!
I have numerous files with all caps extensions, I guess i've never used them with napari.
So the other PR ensures a plugin is called, so so I think the issue is in npe2—here's where's I've traced this:
https://github.com/napari/napari/blob/b1d7c4098287a83f5ecb3e5de6756fb0264cbd8c/napari/plugins/_npe2.py#L54-L58
napari calls npe2 here.
In npe2 I've tracked it down to here:
https://github.com/napari/npe2/blob/26c3c474d7268f099ec9c3968b3a0b5657966306/npe2/_plugin_manager.py#L145
fnmatch is case-sensitive on non-windows, so the path is compared to the pattern which is from the manifest--all lower case.
So our options are: 1) pass .lower() in napari when calling the npe2 read_get_reader or put .lower() in that fnmatch in npe2.
I can make a PR for either, but don't have good intuition which is better.
cc: @jni @DragaDoncila @Czaki

Yes @psobolewskiPhD see here related issue in npe2. Based on this issue and the response to that one I would say we standardise both path and pattern on npe2 side.

We should also have proper test in napari .
Windows file systems (NTFS, FAT, EXFAT) are case insensitive.


feat: handle ddos attack by adding capcha and rate limit to processes

[ ] use cloudflare Turnstile

done


please update to null safety, thank you!

What's the work around for this?

@matteocordray

What's the work around for this?

As with any project that uses plugins that have yet to be migrated to null safety, run/build with the option  --no-sound-null-safety
For example:
To build apk: flutter build apk --no-sound-null-safety
To run: flutter run --no-sound-null-safety
To integrate with VSCode IDE launching:
In .vscode/launch.json, Add "--no-sound-null-safety" under the configurations.args array.

@brian-quah Thank you! I ended up just moving to another library instead. I didn’t want to move away from null safety.

@brian-quah Thank you! I ended up just moving to another library instead. I didn’t want to move away from null safety.

Would you tell me which package you have used instead?

It's called Flutter Reactive BLE. It's apparently made by Phillips Hue so it seems like it will have decent support:
Flutter Reactive BLE Library


Only verify the proxy user in server side

Why are the changes needed?

Only verify the proxy user option in server side.
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #2226 (6711970) into master (86cd685) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #2226      +/-   ##
============================================
- Coverage     61.80%   61.80%   -0.01%
  Complexity       69       69
============================================
  Files           331      331
  Lines         16016    16016
  Branches       2031     2031
============================================
- Hits           9899     9898       -1
- Misses         5295     5296       +1
  Partials        822      822

Impacted Files
Coverage Δ

...a/org/apache/kyuubi/service/TFrontendService.scala
93.35% <100.00%> (ø)

...org/apache/kyuubi/ha/client/ServiceDiscovery.scala
89.28% <0.00%> (-3.58%)
:arrow_down:

.../org/apache/kyuubi/engine/hive/HiveSQLEngine.scala
77.77% <0.00%> (+2.77%)
:arrow_up:

Continue to review full report at Codecov.

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


[RFC] Update rfc_process.md to indicate labeling guidance

Changing the wording of labeling procedures based upon TC outcomes.

LGTM, thanks Scott (just need to fix the commit metadata related CI failure).

Yeah, I did this all web-based since my machine is dead atm. Will try and fix.

I just updated the PR with a squashed version of Scott's changes and a sign-off line.

Thanks @imphil ! I'll have to learn your magic some time.


Error when inserting new Series in a place different to the end of the list (for line chart)

Error when inserting new Series in a place different to the end of the list (for line chart)
Hello!
I'm developing a dynamic chart module and I need to be able to add and remove series dinamically.
It throws the following error when I splice a new series in a different index than the last one,
Uncaught TypeError: Cannot read property 'type' of undefined
    at Object.reset (dataSample.js?3d66:84)
    at Task.seriesTaskReset [as _reset] (Scheduler.js?bee6:451)
    at reset (task.js?815e:212)
    at Task.taskProto.perform (task.js?815e:109)
    at eval (Scheduler.js?bee6:267)
    at HashMap.each (util.js?fe0c:663)
    at eval (Scheduler.js?bee6:259)
    at Array.forEach (<anonymous>)
    at each (util.js?fe0c:298)
    at performStageTasks (Scheduler.js?bee6:228)
    at Scheduler.proto.performDataProcessorTasks (Scheduler.js?bee6:213)
    at ECharts.update (echarts.js?21c7:752)
    at ECharts.echartsProto.setOption (echarts.js?21c7:372)
    at EchartsReactCore._this.renderEchartDom (core.js?6560:107)
    at EchartsReact.componentDidUpdate (core.js?6560:155)
    at commitLifeCycles (react-dom.development.js?cada:14369)
    at commitAllLifeCycles (react-dom.development.js?cada:15462)
    at HTMLUnknownElement.callCallback (react-dom.development.js?cada:100)
    at Object.invokeGuardedCallbackDev (react-dom.development.js?cada:138)
    at invokeGuardedCallback (react-dom.development.js?cada:187)
    at commitRoot (react-dom.development.js?cada:15603)
    at completeRoot (react-dom.development.js?cada:16618)
    at performWorkOnRoot (react-dom.development.js?cada:16563)
    at performWork (react-dom.development.js?cada:16482)
    at performSyncWork (react-dom.development.js?cada:16454)
    at requestWork (react-dom.development.js?cada:16354)
    at scheduleWork$1 (react-dom.development.js?cada:16218)
    at Object.enqueueSetState (react-dom.development.js?cada:11299)
    at Connect.Component.setState (react.development.js?99ee:270)
    at Connect.onStateChange (connectAdvanced.js?4805:205)
    at Object.dispatch (createStore.js?6413:173)
    at dispatch (<anonymous>:1:38223)
    at eval (index.js?6c4c:11)
    at dispatch (applyMiddleware.js?be0b:35)
    at eval (index.js?7905:56)
    at eval (index.js?6c4c:8)
    at dispatch (applyMiddleware.js?be0b:35)
    at _callee$ (index.js?7905:72)
    at tryCatch (runtime.js?4a57:62)
    at Generator.invoke [as _invoke] (runtime.js?4a57:296)
    at Generator.prototype.(:8087/app/data-analysis/anonymous function) [as next] (webpack-internal:///378:114:21)
    at step (asyncToGenerator.js?7b11:17)
    at eval (asyncToGenerator.js?7b11:28)

This is the option object when there is no error
{
  "grid": [
    {
      "height": 180,
      "right": 50,
      "left": 50,
      "top": 40,
      "backgroundColor": "#FFF",
      "show": true
    },
    {
      "height": 180,
      "right": 50,
      "left": 50,
      "top": 270,
      "backgroundColor": "#FFF",
      "show": true
    }
  ],
  "xAxis": [
    {
      "gridIndex": 0,
      "type": "time",
      "position": "bottom",
      "splitLine": {
        "show": false
      }
    },
    {
      "gridIndex": 1,
      "type": "time",
      "position": "bottom",
      "splitLine": {
        "show": false
      }
    }
  ],
  "yAxis": [
    {
      "name": "Raw Test Device",
      "type": "value",
      "scale": true,
      "gridIndex": 0,
      "splitLine": {
        "show": false
      },
      "position": "left",
      "nameLocation": "center",
      "nameTextStyle": {
        "fontStyle": "Open Sans",
        "color": "#777",
        "fontSize": 16
      },
      "nameGap": 30,
      "offset": 0
    },
    {
      "name": "Raw Test Device",
      "type": "value",
      "scale": true,
      "gridIndex": 1,
      "splitLine": {
        "show": false
      },
      "position": "left",
      "nameLocation": "center",
      "nameTextStyle": {
        "fontStyle": "Open Sans",
        "color": "#777",
        "fontSize": 16
      },
      "nameGap": 30,
      "offset": 0
    }
  ],
  "series": [
    {
      "name": "Raw Test Device",
      "type": "line",
      "showSymbol": false,
      "lineStyle": {
        "width": 1,
        "color": "#2FBD68"
      },
      "itemStyle": {
        "color": "#2FBD68"
      },
      "data": [
        [
<PHONE_NUMBER>000,
          84
        ],
        [
<PHONE_NUMBER>000,
          73
        ]
      ],
      "xAxisIndex": 0,
      "yAxisIndex": 0,
      "hoverAnimation": false,
      "tooltip": {}
    },
    {
      "name": "Raw Test Device",
      "type": "line",
      "showSymbol": false,
      "lineStyle": {
        "width": 1,
        "color": "#FFAE58"
      },
      "itemStyle": {
        "color": "#FFAE58"
      },
      "data": [
        [
<PHONE_NUMBER>000,
          84
        ],
        [
<PHONE_NUMBER>000,
          73
        ]
      ],
      "xAxisIndex": 1,
      "yAxisIndex": 1,
      "hoverAnimation": false,
      "tooltip": {}
    }
  ],
  "title": {
    "textStyle": {
      "fontWeight": "normal"
    }
  },
  "toolbox": {
    "show": true,
    "feature": {
      "saveAsImage": {
        "title": "save",
        "type": "png"
      },
      "dataZoom": {
        "title": {
          "zoom": "zoom",
          "back": "back"
        },
        "yAxisIndex": false
      },
      "restore": {
        "title": "restore"
      },
      "magicType": {
        "type": [
          "line",
          "bar"
        ],
        "title": {
          "line": "line",
          "bar": "bar"
        }
      }
    },
    "right": "20px",
    "top": "-2px"
  },
  "tooltip": {
    "trigger": "axis"
  },
  "axisPointer": {
    "link": {
      "xAxisIndex": "all"
    }
  }
}

Then when I change to the following option, the error comes
"{
  "grid": [
    {
      "height": 180,
      "right": 50,
      "left": 100,
      "top": 40,
      "backgroundColor": "#FFF",
      "show": true
    },
    {
      "height": 180,
      "right": 50,
      "left": 50,
      "top": 270,
      "backgroundColor": "#FFF",
      "show": true
    }
  ],
  "xAxis": [
    {
      "gridIndex": 0,
      "type": "time",
      "position": "bottom",
      "splitLine": {
        "show": false
      }
    },
    {
      "gridIndex": 1,
      "type": "time",
      "position": "bottom",
      "splitLine": {
        "show": false
      }
    }
  ],
  "yAxis": [
    {
      "name": "Raw Test Device",
      "type": "value",
      "scale": true,
      "gridIndex": 0,
      "splitLine": {
        "show": false
      },
      "position": "left",
      "nameLocation": "center",
      "nameTextStyle": {
        "fontStyle": "Open Sans",
        "color": "#777",
        "fontSize": 16
      },
      "nameGap": 30,
      "offset": 50
    },
    {
      "name": "Raw Test Device 2",
      "type": "value",
      "scale": true,
      "gridIndex": 0,
      "splitLine": {
        "show": false
      },
      "position": "left",
      "nameLocation": "center",
      "nameTextStyle": {
        "fontStyle": "Open Sans",
        "color": "#777",
        "fontSize": 16
      },
      "nameGap": 30,
      "offset": 0
    },
    {
      "name": "Raw Test Device",
      "type": "value",
      "scale": true,
      "gridIndex": 1,
      "splitLine": {
        "show": false
      },
      "position": "left",
      "nameLocation": "center",
      "nameTextStyle": {
        "fontStyle": "Open Sans",
        "color": "#777",
        "fontSize": 16
      },
      "nameGap": 30,
      "offset": 0
    }
  ],
  "series": [
    {
      "name": "Raw Test Device",
      "type": "line",
      "showSymbol": false,
      "lineStyle": {
        "width": 1,
        "color": "#2FBD68"
      },
      "itemStyle": {
        "color": "#2FBD68"
      },
      "data": [
        [
<PHONE_NUMBER>000,
          84
        ],
        [
<PHONE_NUMBER>000,
          73
        ]
      ],
      "xAxisIndex": 0,
      "yAxisIndex": 0,
      "hoverAnimation": false,
      "tooltip": {}
    },
    {
      "name": "Raw Test Device 2",
      "type": "line",
      "showSymbol": false,
      "lineStyle": {
        "width": 1,
        "color": "#5AD0C2"
      },
      "itemStyle": {
        "color": "#5AD0C2"
      },
      "data": [
        [
<PHONE_NUMBER>000,
          0.21899878121466443
        ],
        [
<PHONE_NUMBER>000,
          1.397546677581849
        ]
      ],
      "xAxisIndex": 0,
      "yAxisIndex": 1,
      "hoverAnimation": false,
      "tooltip": {}
    },
    {
      "name": "Raw Test Device",
      "type": "line",
      "showSymbol": false,
      "lineStyle": {
        "width": 1,
        "color": "#FFAE58"
      },
      "itemStyle": {
        "color": "#FFAE58"
      },
      "data": [
        [
<PHONE_NUMBER>000,
          84
        ],
        [
<PHONE_NUMBER>000,
          73
        ]
      ],
      "xAxisIndex": 1,
      "yAxisIndex": 2,
      "hoverAnimation": false,
      "tooltip": {}
    }
  ],
  "title": {
    "textStyle": {
      "fontWeight": "normal"
    }
  },
  "toolbox": {
    "show": true,
    "feature": {
      "saveAsImage": {
        "title": "save",
        "type": "png"
      },
      "dataZoom": {
        "title": {
          "zoom": "zoom",
          "back": "back"
        },
        "yAxisIndex": false
      },
      "restore": {
        "title": "restore"
      },
      "magicType": {
        "type": [
          "line",
          "bar"
        ],
        "title": {
          "line": "line",
          "bar": "bar"
        }
      }
    },
    "right": "20px",
    "top": "-2px"
  },
  "tooltip": {
    "trigger": "axis"
  },
  "axisPointer": {
    "link": {
      "xAxisIndex": "all"
    }
  }
}"

Note that the Raw Test Device 2 was added to the index 1. and then Raw Test Device 1 was moved to the index 2.
I would really appreciate your help

Seem to have SyntaxError: Unexpected token :. Please check by yourself.

There is no syntax error... Maybe you got a Syntax error because I copied pasted the options in Json file format. I created two json files, imported and drew the charts for both options and they are perfectly drawn independently...
The trouble comes when I change the state from the first one to the second one.... :( I hope you can help me out

@dfonnegra You have to provide a working example to show the problem.

@Ovilia I found that if I set "notMerge" option the error is not thrown.
Does this have performance issues?
Thanks a lot for your answers

If notMerge is set, new data will not be compared to the previous data. Technically speaking, this saves the comparing time, so it may be quicker than merge. But more importantly, the animation from the changes will not be available if notMerge.
I'd suggest figure out the real problem rather then use notMerge. But if it works for you, that's also OK.

You are right...
I implemented an example in codepen where the problem is seen if notMerge is not set.
The content is composed of the chart for "option1" and the chart for option2"... You can see that they both are drawn correctly.
Then if you click the button at the top left corner, the option for chart 1 will be changed to option2, the error is then thrown as you will see.
https://codepen.io/daniel-fonnegra-garc-a/project/editor/AdzOPg

As I said, you need to remove the unrelated part and make the option as small as possible so that you can locate what goes wrong.

Here it is, https://codepen.io/daniel-fonnegra-garc-a/project/editor/AdzOPg
The state change is so big because the new series are inserted in the index 0 of the list so the whole elements of the list are changed.
I realized that the problem is in the change of series list. If I remove that change (i.e just changing the axes) the error is not thrown.
Anyways, don't you think its strange that both states are drawn correctly (option1 and option2) but when i change option1 to option2 the error is thrown? It looks like the merging is not correctly made.

How about adding id for series?

Doesn't work either. :(
https://codepen.io/daniel-fonnegra-garc-a/project/editor/AdzOPg

In opendiff.js,
the last series has "yAxisIndex": 2, but it seams that no yAxisIndex in opion1.js.

Yes, there was no yAxis at option1.js but in optiondiff.js I added a new axis


Email address parser

I've been using mail gem for parsing email addresses quite heavily and I've noticed that some real-world addresses can't be parsed.
One example would be Kostelac, Mario<EMAIL_ADDRESS>I know it is not a valid one, but it is really obvious for a human person how it should be parsed. I've been digging into address lists parsing machine and I've realised it's not 100% copy of grammar defined on https://www.ietf.org/rfc/rfc2822.txt.
One example would be obs_phrase defined on https://github.com/mikel/mail/blob/f0efbd4850d1bc06cdcba6178c282eeaba9c8c43/lib/mail/parsers/ragel/common.rl#L49 (the original one does not contain @).
My general question is what is general attitude about this gem. Should it be something that strictly follows the standard and does not go further or it should be as useful as possible for building reliable services that deal with emails.
If the latter one is the answer, I am happy to cover address list parser with more tests and then add parsing for some new address forms.
Also, one trivial example that happens is "Mario Kostelac"<EMAIL_ADDRESS>

I can't answer the question but I'd like to add another example of something similar. We've seen an email that contains:
Keywords: {"Key":"Value"}

Technically this breaks the parser because it's not a valid PhraseList. Is this something that should operate according to the spec verbatim (which will discount a large proportion of real-world messages) or should the parse fall back to allowing a generic string?

Liberal in what we accept, strict in what we generate. Happy to see PRs with looser parsing, so long as it doesn't compromise legit common-case parsing or overly complicate the code.


Can't use a function of robotjs

I saw in the source in robotjs.cc the function CheckMouseButton that can check mouse buttons
Expected Behavior
I need this function to know if a button is pressed in the OS window for my Electron app.
Current Behavior
The result is that it gives me an error, he can't even load robotjs :
`App threw an error during load
Error: Cannot find module './build/Release/robotjs.node'
at Module._resolveFilename (module.js:470:15)
at Function.Module._resolveFilename (C:\Users\florence\AppData\Roaming\npm\n
ode_modules\electron\dist\resources\electron.asar\common\reset-search-paths.js:3
5:12)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object. (C:\Users\florence\node_modules\robotjs\index.js:1:170
)
at Object. (C:\Users\florence\node_modules\robotjs\index.js:38:3)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)`

Can you help me to solve these problems ?
Is this function available in the module or is it an internal function ?
Possible Solution
Can we export this function or create another to know the button pressed
Your Environment

RobotJS version: 0.4.7
Node.js version: 6.10.3
npm version: 3.10.10
Operating System: Windows 7 SP1

I'm also having the problem with Cannot find module './build/Release/robotjs.node'
Any news on this @TheRolfFR or @octalmage?

node --version: v10.15.3
npm --version: 6.11.1
robotjs version: 0.5.1

Update: I seem to have had success with
npm install -g windows-build-tools
cd .\node_modules\robotjs\
node-gyp rebuild

I will now check to see if it was indeed fully successful.

Thank you for your comment, looks like it has been solved :)

it is not working for lunix
error
npm ERR! code EBADPLATFORM
npm ERR! notsup Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"win32"} (current: {"os":"linux","arch":"x64"})
npm ERR! notsup Valid OS:    win32
npm ERR! notsup Valid Arch:  undefined
npm ERR! notsup Actual OS:   linux
npm ERR! notsup Actual Arch: x64
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/lenovo/.npm/_logs/2021-04-06T09_49_28_538Z-debug.log
help plz


Initial release

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@f47295a). Click here to learn what that means.
The diff coverage is 100%.

@@           Coverage Diff           @@
##             master     #1   +/-   ##
=======================================
  Coverage          ?   100%
=======================================
  Files             ?      1
  Lines             ?     72
  Branches          ?      0
=======================================
  Hits              ?     72
  Misses            ?      0
  Partials          ?      0

Impacted Files
Coverage Δ

src/index.js
100% <100%> (ø)

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 f47295a...03257c1. Read the comment docs.


Outdated cask: supercollider

Outdated cask: supercollider.
Info:

version: 3.7.1.
appcast url: https://github.com/supercollider/supercollider/releases.atom.

Please do not run find_outdated_appcasts unless you are a maintainer.


feat: Allow selecting default model on mobile

Is your feature request related to a problem? Please describe.
Can't select default model on mobile
Describe the solution you'd like
Ability to set default on mobile
Describe alternatives you've considered
You can set it on desktop and it will transfer to mobile
Additional context
Looks like you can set it on tablets, but not mobile resolutions

You can already select default model from settings.


use firefox for e2e, chrome is broken

Coverage remained the same at 87.021% when pulling ec053a81249e05ca06a50ba8729d5cdc11ccc1d1 on e2e-firefox into cd0d8bd848a3f3e259e3f8b04e9fbb5e24e7e1c9 on master.


Platform: Windows
Lapce version: 0.1.2

Which Windows programs do this? In my experience, Shift-Delete cuts the selection or current line to clipboard.


Permissions changing instructions are incomplete

After getting myself in a pickle and ending up doing an upgrade of brew using sudo (based on this comment in issue #1055  brew will helpfully remind you to set your permissions back properly:
Chris-Blakes-MacBook-Pro:local chrisblake$ brew upgrade ruby
Error: /usr/local/Homebrew is not writable. You should change the
ownership and permissions of /usr/local/Homebrew back to your
user account:
  sudo chown -R $(whoami) /usr/local/Homebrew

However these instructions are incomplete because you will not actually be able to run any commands as it will give you a permission error when creating a lock file:
Chris-Blakes-MacBook-Pro:local chrisblake$ brew upgrade ruby
mkdir: /usr/local/var/homebrew/locks: Permission denied
/usr/local/Homebrew/Library/Homebrew/utils/lock.sh: line 19: /usr/local/var/homebrew/locks/update: No such file or directory
-e:1:in `initialize': Bad file descriptor (Errno::EBADF)
	from -e:1:in `new'
	from -e:1:in `<main>'
Error: Another active Homebrew process is already in progress.
Please wait for it to finish or terminate it to continue.

I think that the resolution to this is to change the permissions (or ownership) on the /usr/local/var/homebrew folder.

I'll take a look at this, thanks for the report.


Open items for ITI-18

Figure 3.18.4-1 is missing.  The png is missing from the media directory
<IP_ADDRESS>.2.3.5:  I adjusted the bullets because I think the  PDF TF is wrong.  Is the current content correct
<IP_ADDRESS>.2.3.11:  Under the "Returns" prompt, again, I think the TF is wrong.  Check my fixes.
<IP_ADDRESS>.3.3:  The example in this section lost the indenting that's in the PDF

I fixed the missing graphic
Yes, I think your bullets are right
Yes, I think (if you mean  <IP_ADDRESS>.<IP_ADDRESS> GetFolderAndContents) your bullets are right
I agree the indenting is lost... eventually we can fix ... but I don't think this is important....  One possible solution for fixing these is to externalize all the examples as XML content that we point at, with possibly bringing in in an iFrame. Others might just save the XML to implementers-material and link to the file.

I agree we don't have to fix the indenting now; as you suggest, we'll need to determine a general approach

I created an issue to track this into next phase


Unknown crash when using pairwise peer review allocation

Somewere, something becomes None and it crashes.

Okay, so for some reason I've set the default for the team name function to None, and that overrides input from the hook. Weird.


⚠ Avatar API Endpoint has degraded performance

In cb291e1, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 4229 ms

Resolved: Avatar API Endpoint performance has improved in 9098e4d after 8 minutes.


image-lightbox: set alt AND title on the images

https://ampbyexample.com/components/amp-image-lightbox/ needs to add:
      alt="Picture of a dog"
      title="Picture of a dog, view in lightbox"

to the image.
The alt is for the image and the title is for the fact that this a button that opens the image in the lightbox. Both are needed since when in the lightbox, title does not apply anymore.

What's the correct way to handle the sample with a separate image description:
  <amp-img on="tap:lightbox1"
    role="button"
    tabindex="0"
    aria-describedby="imageDescription"
    src="/img/Border_Collie.jpg" width="300" height="246"></amp-img>
  <div id="imageDescription">
    This is a border collie.
  </div>

Are these needed there as well?


Update Using-oref0-tools.md layout

Various layout fixes, for example
before:

after:

also adds line breaks at col. 80 where it doesn't affect layout, to improve readability and make future diffs sane. (let me know if this is undesirable and i'll doing so in any future PRs)

You keep fixing things I just fixed an hour ago in dev.  ;-)

Can you take a look at https://github.com/openaps/docs/pull/347 and make sure this is correctly fixed there?

oooh i forgot there was a dev version, i'll switch to working off of that.
https://github.com/openaps/docs/pull/347 looks sane. the main issues i've been seeing that break readthedocs rendering are omitting the space after the header hashes (###Header) and not using a four-space indent for nested lists.

Normally working off master is more efficient, and exactly how you should be doing things.  It just so happens that tonight I made a dev branch and just happened to find and fix most of the exact same things you're fixing.  ;-)

@scottleibrand is this good to merge or is it unnecessary given your work on dev?

It's gonna cause a merge conflict, so if you'd like to get it merged sooner, you could merge dev into your branch, resolve the merge conflicts, and then target your changes to dev. Otherwise I can resolve them after we get a :+1: and merge dev.

going to close the out from my PR queue – lemme know when dev is merged and i'll reopen if it makes sense


Apply dependencies update

And fix some GitHub actions.
Signed-off-by: Jérôme Benoit<EMAIL_ADDRESS>
PR Checklist

[x] Please add a description of your changes.
[ ] We need your changes to come with unit tests in order to keep this project in quality and easy to maintain.
[ ] If your changes contain any new feature please be sure to document it.
[ ] Please add a link to the open issue or task that this pull request will resolve.
[ ] Add a note to the changelog to indicate the change.

Does this PR introduce a breaking change?

[ ] Yes
[x] No

If yes please indicate it and migration info into the CHANGELOG.md file.

I merge that trivial PR without external reviews to fix some bugs related to the move.


Recode the logs system

While the logs system is working, the code is not clean and lacks of features that cannot be added smoothly to the current code. This system should be recoded.

Done with the recent commits


Fix no-deprecated tests where the GOST engine is present

The GOST test only runs if it detects that the GOST engine is present.
This is the case for the run-checker environment. The GOST engine uses
some deprecated functions, so we disable that test in a no-deprecated
build.

Pushed. Thanks.


🐛 Jest issue with<EMAIL_ADDRESS>

Bug Report
Problematic Behavior
On "@openfun/cunningham-react": "2.5.0, we get this error during the tests with jest.
It seems to come from here:
https://github.com/openfun/cunningham/blob/main/packages/react/src/components/Toast/ToastProvider.tsx#L99
TypeError: t.current.animate is not a function
    at u (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\@openfun\cunningham-react\src\components\Toast\ToastProvider.tsx:99:24)
    at animateContainer (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\@openfun\cunningham-react\src\components\Toast\ToastProvider.tsx:115:22)
    at commitHookEffectListMount (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:23150:26)
    at commitPassiveMountOnFiber (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:24931:11)
    at commitPassiveMountEffects_complete (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:24891:9)
    at commitPassiveMountEffects_begin (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:24878:7)
    at commitPassiveMountEffects (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:24866:3)
    at flushPassiveEffectsImpl (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:27039:3)
    at flushPassiveEffects (C:\Users\antho\Projects\DINUM\code\people\src\frontend\node_modules\react-dom\cjs\react-dom.development.js:26984:14)

Possible Solution
Check that the container is correctly init.

Well, that's why we love JestDOM ... this function is not natively mocked, you have to do it yourself, you can use the code we use in our test suite: https://github.com/openfun/cunningham/blob/main/packages/react/src/tests/AnimateMock.ts

So every project using jest (most of them so) must have this mock setup ?
Because the error is on the toast and we are not even using the toast in the project.

Oh! I thought you were using the toast component, I will see if there is a way to not call this animate function if the toasts are not used

@AntoLC here is a PR proposal: https://github.com/openfun/cunningham/pull/282


How to assign date to selected property when there are multiple DatePickers in a single page?

I have a page where I am creating multiple DatePickers dynamically depending on data returned from the database. The DatePickers are getting rendered correctly but I'm unable to change the dates. Even if I select a date, it does not change. How to handle this scenario?

I am doing the similar thing but the issue I am facing is I select date on one it shows the same on all other DatePicker instances as well.
Any solution for that?


New Translation: 正體中文(Traditional Chinese)

My name: Chang, Zhi-Wei
My github: https://github.com/zwei-c
Please add the Traditional Chinese language.
Thank you!
zh-TW.zip

Hi @zwei-c,
thank you for contribution!
@all-contributors add @zwei-c for translation


Text selection handles track scrolled text fields

Introduce CompositedTransformTarget and CompositedTransformFollower
widgets, corresponding render objects, and corresponding layers.
Adjust the way text fields work to use this.
Various changes I needed to debug the issues that came up.
Fixes https://github.com/flutter/flutter/issues/3861
cc @abarth

Depends on https://github.com/flutter/engine/pull/3787 to run without failing.

will land on green

@Hixie: I made some tests here and the controls get above the title bar when scrolling. I pull the latest master release. Is it happening with someone else?

Yeah, that's expected. In your case, I'm guessing you're using a SingleChildListView; switching to a regular ListView should fix it. In the general case, I'm not really sure how to fix it. In a way, it's not really wrong -- the handles are on top of everything, so it makes sense that when you scroll, they'd end up on top. But obviously it's not ideal.

I put it inside a regular ListView but it do not solve the problem. Am I doing something wrong?
Another thing. When I first select the text to show controls the buttons do not draw. After the first scroll they appears.

Well that's not good. Please file bugs, we should fix those things!


Wrong --arch guess on Darwin

On aarch64-darwin, I get:
$ hydra-check beets
warn: unknown --arch 'aarch64-macos', consider specify one of the following known architectures: [
    "x86_64-linux",
    "aarch64-linux",
    "x86_64-darwin",
    "aarch64-darwin",
]
Build Status for beets.aarch64-macos on jobset nixpkgs/trunk
https://hydra.nixos.org/job/nixpkgs/trunk/beets.aarch64-macos
_ This job is not a member of the latest evaluation of its jobset. This means it was removed or had an evaluation error.

A draft PR is waiting for a fix:

https://github.com/NixOS/nixpkgs/pull/359514

Thank you for reporting this! Sorry for not testing darwin before haha...


Add support for free-standing loki rules and grafana dashboards

TODO:

[x] change config items separator to underscore
[x] provision grafana dashboards
[x] tests

Depends on:

[x] fetch-lib after

[x] https://github.com/canonical/prometheus-k8s-operator/pull/209
[x] https://github.com/canonical/prometheus-k8s-operator/pull/208
[x] https://github.com/canonical/loki-k8s-operator/pull/76
[x] https://github.com/canonical/grafana-k8s-operator/pull/53
[x] https://github.com/canonical/loki-k8s-operator/pull/79
[x] https://github.com/canonical/prometheus-k8s-operator/pull/210

Recent changes to prom and loki broke integration tests.
Reviews are welcome but addition fixes are possible.


SHARD=tool_tests ./bin/cache/dart-sdk/bin/dart ./dev/bots/test.dart  fails when run locally

09:30 +755 ~1 -1: test/integration/flutter_attach_test.dart: attached process can hot reload [E]
  Received app.stop event while waiting for app.started event.

  dart:async                                _Completer.completeError
  test/integration/test_driver.dart 333:18  FlutterTestDriver._waitFor.<fn>
  ===== asynchronous gap ===========================
  dart:async                                _asyncThenWrapperHelper
  test/integration/test_driver.dart         FlutterTestDriver._waitFor.<fn>
  ===== asynchronous gap ===========================
  dart:async                                _StreamImpl.listen
  test/integration/test_driver.dart 313:26  FlutterTestDriver._waitFor
  ===== asynchronous gap ===========================
  dart:async                                _asyncThenWrapperHelper
  test/integration/test_driver.dart         FlutterTestDriver._setupProcess
  test/integration/test_driver.dart 60:11   FlutterTestDriver.run

  Received app.stop event while waiting for app.debugPort event.

  dart:async                                _Completer.completeError
  test/integration/test_driver.dart 333:18  FlutterTestDriver._waitFor.<fn>
  ===== asynchronous gap ===========================
  dart:async                                _asyncThenWrapperHelper
  test/integration/test_driver.dart         FlutterTestDriver._waitFor.<fn>
  ===== asynchronous gap ===========================
  dart:async                                _StreamImpl.listen
  test/integration/test_driver.dart 313:26  FlutterTestDriver._waitFor
  ===== asynchronous gap ===========================
  dart:async                                _asyncThenWrapperHelper
  test/integration/test_driver.dart         FlutterTestDriver._setupProcess
  test/integration/test_driver.dart 60:11   FlutterTestDriver.run

  NoSuchMethodError: The getter 'exitCode' was called on null.

Looks like this roll that saw these failures was reverted by @dnfield in #23170. I did run with this version of the engine locally anyway but I had different failures to those in the related issue, mine are all timeouts at 40 seconds waiting for the isolate to pause after a hot reload:

[{"id":1,"method":"app.restart","params":{"appId":"79529336-1f6a-413d-a3db-c16640c5f345","fullRestart":false,"pause":false}}]
[{"event":"app.progress","params":{"appId":"79529336-1f6a-413d-a3db-c16640c5f345","id":"1","progressId":"hot.reload","message":"Initializing hot reload..."}}]
[{"event":"app.progress","params":{"appId":"79529336-1f6a-413d-a3db-c16640c5f345","id":"2","progressId":null,"message":"Syncing files to device Flutter test device..."}}]

Compiler message:
lib/main.dart:1: Warning: Interpreting this as package URI, 'package:test/main.dart'.
[{"event":"app.progress","params":{"appId":"79529336-1f6a-413d-a3db-c16640c5f345","id":"2","progressId":null,"finished":true}}]
topLevelFunction
[{"event":"app.progress","params":{"appId":"79529336-1f6a-413d-a3db-c16640c5f345","id":"1","progressId":"hot.reload","finished":true}}]
Reloaded 0 of 415 libraries in 497ms.
[{"id":1,"result":{"code":0,"message":"Reloaded 0 of 415 libraries"}}]

{"jsonrpc":"2.0","method":"getIsolate","id":13,"params":{"isolateId":"isolates/1001534799"}}
{"jsonrpc":"2.0", "result":{"type":"Isolate","fixedId":true,"id":"isolates\/1001534799","name":"main.dart:main()","number":"1001534799","_originNumber":"1001534799","startTime":1539760172239,"_heaps":{"new":{"type":"HeapSpace","name":"new","vmName":"Scavenger","collections":1,"avgCollectionPeriodMillis":4630.190000,"used":454640,"capacity":2097152,"external":7440,"time":0.000399},"old":{"type":"HeapSpace","name":"old","vmName":"PageSpace","collections":3,"used":26364480,"capacity":26673152,"external":0,"time":0.031044,"avgCollectionPeriodMillis":1543.399000}},"runnable":true,"livePorts":0,"pauseOnExit":false,"_isReloading":false,"pauseEvent":{"type":"Event","kind":"Resume",/*...*/,"id":13}
Waiting for isolate to pause
{"jsonrpc":"2.0","method":"streamListen","id":14,"params":{"streamId":"Debug"}}
{"jsonrpc":"2.0","method":"getIsolate","id":15,"params":{"isolateId":"isolates/1001534799"}}
{"jsonrpc":"2.0","id":14,"result":{"type":"Success"}}
{"jsonrpc":"2.0", "result":{"type":"Isolate","fixedId":true,"id":"isolates\/1001534799","name":"main.dart:main()","number":"1001534799","_originNumber":"1001534799","startTime":1539760172239,"_heaps":{"new":{"type":"HeapSpace","name":"new","vmName":"Scavenger","collections":1,"avgCollectionPeriodMillis":4641.687000,"used":464192,"capacity":2097152,"external":7536,"time":0.000399},"old":{"type":"HeapSpace","name":"old","vmName":"PageSpace","collections":3,"used":26364480,"capacity":26673152,"external":0,"time":0.031044,"avgCollectionPeriodMillis":1547.231667}},"runnable":true,"livePorts":0,"pauseOnExit":false,"_isReloading":false,"pauseEvent":{"type":"Event","kind":"Resume",/*...*/,"id":15}

The isolate PauseEvent is set to Resume after the reload and a pause event never comes through. On the surface, this seems like a valid failure.
@rmacnak-google LMK if you think there is something wrong with the tests and plan to re-land this and I can do some more digging. Otherwise, if there was an issue with that roll, should this issue be closed?

I landed a PR that should improve the logging when this happens. If you can still repro locally, could you paste the new output?

@rmacnak-google are you OK if we close this? Looks like the issue is stale at this time?

Without additional information we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.