ViewController component properties differ in --prod build compared to a debug build

Ionic version:  (check one with "x")
(For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[X ] 3.x
[ ] 4.x
I'm submitting a ...  (check one with "x")
[X ] bug report
[ ] feature request
Please do not submit support requests or "How to" questions here. Instead, please use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

When ionic app is build is --prod, some ionViewController.component properties differ
Expected behavior:

They should n't differ
Steps to reproduce:

Build a simple app with a Nav as the root component
Push a page, ie
this.navCtlr.push('Page1').then(viewCtrl=> {
let consistent = viewCtrl.component.name=='Page1'
consistent will be false in a build with --prod and true in a build without --prod
})
Related code:

this.navCtlr.push('Page1').then(viewCtrl=> {

let consistent = viewCtrl.component.name=='Page1'
//consistent will be false in a build with --prod and true in a build without --prod
})

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
insert the output from ionic info here

Hello! Thank you for opening an issue with us! Would you be able to provide a sample application via GitHub that demonstrates the issue you are having? Thanks for using Ionic!

This may be due to how uglify processes those names in prod mode: https://github.com/ionic-team/ionic/issues/11920

Good call @saschwarz and thank-you for the link to the other issue. FWIW @cnsimbe, once I got your sample app, I was going to use it to verify just what @saschwarz pointed to in order to verify that was the issue, but if you want to follow the link he provided and verify that on your own that may save you some time.


Run extrinsic first, then check signature

In many cases, signature verification takes more time than running the extrinsic. So if extrinsic weight is less than some threshold, it makes sense to first run the logic, then validate signature only if the run was successful.

Who pays for these transactions?

We still need to check the signature, even if an extrinsic failed.

Why?

Because I can otherwise build a block with invalid "simple" transactions that you will happily import? And I just keep you spinning on these blocks?

Because I can otherwise build a block with invalid "simple" transactions that you will happily import? And I just keep you spinning on these blocks?

Import invalid transaction to where? I speak about reordering of operations (putting cheaper one in front of more expensive), not removing anything.
Check signature takes 50 microseconds, this translates to 50,000,000 weight currently. Anything that is less than this weight makes sense to run before.

I speak about a block.
Let's assume I'm malicious. I build a block with transaction that you will consider as "cheap", so I know that you will skip signature verification when the transaction "fails". So, I send you this block and you will import it. The account that I have chosen to be the sender of these failing transactions, will be the one that needs to pay for it. So, this account pays for a transaction that was included by me into the block, while the signature is invalid.
If you speak about transaction that panic, that is something we don't want to see in the runtime. So, we should not try to optimize for this really small portion and risking to open an attack vector.

Ah, of course if someone has to pay, his signature must be verified, this seems rather obvious to anybody.
I speak about transaction pool validation / block production

Those transactions that never end in the chain. Yeah, this might be only small portion.
Transaction can only be "temporary invalid" - for example, nonce does not match, or another part of logic (specific to our users chain). So we can optimise not to check signatures if they are not required.

Transaction pool validation never executes the transaction, so the weight doesn't tell you anything while validating.
However, executing the cheaper checks (SignedExtension) first in validate_transaction for the transaction pool sounds reasonable.

So if extrinsic weight is less than some threshold, it makes sense to first run the logic, then validate signature only if the run was successful.

We also cannot (trivially) make assumptions about weight and even its existence in the client code as it is a FRAME concept (this was discussed broadly before, making the tx-queue aware of weights).

So if extrinsic weight is less than some threshold, it makes sense to first run the logic, then validate signature only if the run was successful.

We also cannot (trivially) make assumptions about weight and even its existence in the client code as it is a FRAME concept (this was discussed broadly before, making the tx-queue aware of weights).

Signature verification is also happens in the runtime, FWIW.

Ahh then my comment is not correct, ignore :D.


How to find binary from integration test?

Is there a cleaner way to find a binary executable from an integration test other than looking at current_exe() and finding it from there?  Cargo itself uses this logic:
https://github.com/rust-lang/cargo/blob/848250597527659dd54b533c3d35d6505dd60a20/tests/testsuite/cargotest/support/mod.rs#L392-L409
I've seen others use Command::new("./target/debug/NAME") which can fail in some cases.
It seems like this should be easier.  Am I missing a better way?  If not, would it make sense to provide some method to more easily find binaries?

The if path.ends_with("deps") is a compatibility hack for older Cargos, but otherwise that's AFAIK the "state of the art" in terms of being robust to future tweaks in Cargo as well.


Dosent work on sub cards and bugs

Multiply issues with this plugin..
1 - The subcard dosent work, it only works on main card..
2 - The design gets auto responsive, meaning that when editing at card, for the right design, and then the sceen size ex. changes the cards moves arround and get very mesed.
I would like to get this fixed asap because it's very unstable to currently use..
I but for the record, this is a so amazing work u have done, i really apreciate this work!

keeep up the good work..
When is next update on all other issues ?

I would like to get this fixed asap [...]

That's very rude - this is a project Zack develops in his free time. But I'm sure he can give you a full refund of what you paid for this "addon" if you're not happy.

Hahahahhaha why is it rude?
The question when creating this tricket is..
"
Describe the solution you'd like
A clear and concise description of what you want to happen.""
So I did.  But maby u dont know that.

Hahahahhaha why is it rude?
Did u forget to ready the rest 🤣🤣

No, I didn't. You maybe wrote this with a smile on your face, but that doesn't transport well over text. So just sounds like you demand a fast solution of this problem (which is sadly very common in the open source community - at the cost of the maintainers)

It will never work on sub cards. That doesn't really make any sense. Using Vertical Stacks will only allow manipulating the vertical stack.
Yes the view is responsive as you cant keep the same design from desktop to mobile as the cards would be too small.

1 - No what i Mean  is that when u have a menu called ex. Overview then - music, cameras  - lights etc. It only works on Overview menu. Does that make sense ??
2 - ex. If I change the cards on a 29 Inch moniter an then look at a 32 inch then the cards are very messed.

Yes it makes sense. You only added it to one view. You need to add the type to all views

There are some issues with the responsive behavior. I am exploring options on how to resolve them

Yes it makes sense. You only added it to one view. You need to add the type to all views

There are some issues with the responsive behavior. I am exploring options on how to resolve them

Hi Zack, thanks for clarifying. I was just going to add a new comment that "Views" in Dashboards (what denperss1 seems to be referring to "sub cards") don't have "Custom-Grid-View" functionality, until I read your comment "need to add type to all views". Thanks.


Masm boundary constraint divisor

Changes from this PR:

Split the code from the codegen.rs file, since it was getting too big.
Split the procedure to compute the boundary constraints. Instead of having a single procedure to compute all the boundary constraints, now there is one procedure per boundary constraint group. This makes it easier to apply the denominator
Computes the denominator for each boundary constraint group, and aggregates the result.

Closing this PR for the moment. I'm doing this because this is based on another PR that is being split up because of the size, once the underlying PRs are reviewed/merged I will open a new updated version of this.


Great work! Could you plz release the pretraining checkpoint for LLaVAR?

Hello, I wanna test the ability of LLaVAR's pretraining model, but I only find the final weights for LLaVAR. Could you release the pretraining checkpoint for LLaVAR?
Thanks in advance~

Hi:
I have uploaded the pretrained multimodal projector here.
This is the original pretrained version used in the paper (a bit outdated). It should work well with CLIP-L/14-336, Vicuna v1.1.


server: Support default metapb::Store when register to pd

Signed-off-by: CalvinNeo<EMAIL_ADDRESS>
What is changed and how it works?

Issue Number: ref #12849
What's Changed:
Support default metapb::Store when register to pd

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
None

/cc @BusyJay @tonyxuqqi

/merge


181271271: generates a glue enroll recon report

ME-181271271

@nks2109 please remove the ticket number from the PR title and reference ticket as ME- or IVL-


add framework minimal config to avoid a DI crash for profiler_controller service

A more "magic" and, IMHO, cleaner solution would be to expand the following check to the templating service:
https://github.com/contentful/ContentfulBundle/blob/4521b5aef971f72b1f5ede43d0febb248a3ba4f6/DependencyInjection/Compiler/ProfilerControllerPass.php#L23-L25
WDYT @dborsatto?

@realityking I think we can have both 🙂
@lenybernard sorry for the inexcusably long wait, and thanks for the contribution!


[Frameit] The keyword and title text fields should vertically align between multiple screenshots for the same device and language

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
This issue is discovered when analysing issue #15332. It's also applicable to issue #10440.
For proper debugging, added the yellow highlight to the keyword and title text fields by adding the follow temporary lines to text_image.combine_options do |i| of put_title_into_background() in editor.rb:
i.background 'yellow'
i.alpha 'remove'

This shows the problem of the differents heights (and vertical offsets) of the 2 keyword text fields between the left and right screenshot:

Why? Because put_title_into_background() is called for each screenshot. So the trim box adjustment is only done for the 2 text fields on each individual screenshot.

The left image shows that the title "are" is corrected at the top to the proper height of the keyword "We".
The right image shows that keyword "You" is corrected at the bottom to the proper height of the title "they".

But there is no correction between both screenshots, where the following corrections are required:

The keyword "We" should be corrected at the bottom to match the proper height of the keyword "You" (that was already corrected to the height of title "they".
The title "are" should be corrected at the bottom to match the proper height of the title "they".

The proper solution would be that the trim boxes of all screenshots are analysed before adjusting them. At least for each device frame and language, as they are shown next to each other in the App Store.
With the current architecture of frameit this is not possible, as each screenshot is edited individually and has no knowledge of the others.
Has anybody any suggestions?
Environment
🚫 fastlane environment 🚫
Stack

Key
Value

OS
10.14.6

Ruby
2.2.4

Bundler?
false

Git
git version 2.20.1 (Apple Git-117)

Installation Source
~/.rvm/gems/ruby-2.2.4/bin/fastlane

Host
Mac OS X 10.14.6 (18G95)

Ruby Lib Dir
~/.rvm/rubies/ruby-2.2.4/lib

OpenSSL Version
OpenSSL 1.0.2j  26 Sep 2016

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
10.3

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./Fastfile`
#
#  Fastfile
#  myTifi
#
#  Created by Martijn Koopman on 27/09/17.
#  Copyright © 2017 iMKapps. All rights reserved.
#
#  $Rev: 4769 $
#  $Date:: 2019-04-26 #$

before_all do
    # Set Xcode version
    ENV['DEVELOPER_DIR'] = '/Applications/Xcode 10.1.app/Contents/Developer'
end

# Create a lane for SnapShot:
# Run this via Terminal via: fastlane screenshots
lane :screenshots do
    # Generate screenshots for the App Store:
    snapshot
end

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.130.0
🚫 Update available

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

executable-hooks
1.3.2

bundler-unload
1.0.2

rubygems-bundler
1.4.4

bundler
1.16.0

slack-notifier
2.3.2

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

multipart-post
2.0.0

word_wrap
1.0.0

public_suffix
2.0.5

babosa
1.0.2

colored
1.2

commander-fastlane
4.4.6

faraday
0.15.4

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

gh_inspector
1.1.3

mini_magick
4.9.5

security
0.1.3

jwt
2.1.0

declarative-option
0.1.0

representable
3.0.4

signet
0.11.0

memoist
0.16.0

googleauth
0.6.7

httpclient
2.8.3

google-api-client
0.23.9

digest-crc
0.4.1

google-cloud-storage
1.16.0

tty-cursor
0.7.0

tty-spinner
0.9.1

tty-screen
0.7.0

json
2.2.0

highline
1.7.10

excon
0.66.0

rubyzip
1.2.4

CFPropertyList
3.0.1

plist
3.5.0

atomos
0.1.3

colored2
3.1.2

nanaimo
0.2.6

xcodeproj
1.12.0

claide
1.0.3

unf
0.1.4

domain_name
0.5.20190701

faraday_middleware
0.13.1

fastimage
2.1.7

terminal-table
1.8.0

unicode-display_width
1.6.0

addressable
2.7.0

multi_json
1.13.1

os
1.0.1

psych
2.0.8

retriable
3.1.2

mime-types
3.3

mime-types-data
3.2019.0904

uber
0.1.0

declarative
0.0.10

generated on: 2019-09-22

A possible work-around for the inter-screenshot coordination might be to use hard coded strings for each locale (known from the folder name), that will be used to determine the maximum top and bottom boundaries of the text fields. For example “Wy” for English. And “Åy” for Danish. The purpose of each character is to reach either the worst case top and bottom of any character in that languages entire character set.
Of course these 2-character strings are too short, since longer keywords and title will shrink the font size. So these 2 characters should be temporarily appended (or replace the last 2) to the keyword and title in order to have a similar width of the text field.
After this determination of the trim box height, the original strings can be used with this dimension.
Because these same hard coded 2 characters are used in all screenshots for the same language, I expect that all text fields will have the same height and vertical offset.
What do you think?


Blocked / Inactive Tiles cannot be Distinguised from Active Tiles in Dark Theme

In Dark Theme, the Blocked / Inactive Tiles cannot be distinguished from Active Tiles. [ Barely Distinguishable ]
User may be confused and unable to differentiate between Active and Inactive Tiles.
This issue only occurs when User have not already chosen the Department.

Issue Image : -

what do you suggest? try giving it a slightly gray color might be helpful,
are you going to work on this soon, or can I take care of it?

I am currently working on it. This is the same approach I am taking. If I do not complete it in 1-2 days, you may send a PR on this issue.

#42 This PR solves this Issue.


Vendor:publish needs to be more informative

Laravel Version: 5.5.32 (does not really matter)
PHP Version: any

Description:
When running php artisan vendor:publish for a specific vendor to publish its config I got nice green successful message:
"Publishing complete".
But nothing was actually published. After debugging I found out that the system failed to determine publishing paths and there was nothing to publish actually.
Therefore simple successful message is not enough for such case. It would be nice to tell, that nothing was published and probably the reason why.
Steps To Reproduce:
Run vendor:publish for a vendor with errors in publishes declaration or with some invalid options (vendor without namespace or something like that). You just need to make sure that the system won't actually publish anything.

There was a PR #20372 that may have addressed this but I don't think it was resubmitted.

@fitztrev Indeed! It looks that the idea was approved, but the PR has not been merged yet.

This repository is for bug reports only. Please move the discussion to the internals or ideas repos.

I also ran into this issue when adding phpinsights to a project. The behavior can be pretty convincingly argued to be a bug -- "Publishing complete" on a noop publish attempt is clearly deviant behavior.
I searched to see if this had a corresponding open issue and didn't see any. I'm not on the latest and greatest Laravel so I figured I'd checked closed issues and was lucky enough to find this.
@tillkruss
I think this should be reopened and the title changed to something that indicates vendor:publish is giving success messages on failed publishes. What do you think?

@SherSpock Happy to. I imagine it's a simple fix, and maybe just a quick conflict resolution of @GinoPane's work with 5.5 changes. If there's an easy way for me to get that change in while leaving credit where it's due in the history that's what I'll do

Yes, looks very much straight forward: https://github.com/laravel/framework/pull/20372/files

Indeed. Which version to target?

6.x


[ZF3] when deleting an organization logo, reference from the organization entity is not deleted.

If  the organization logo is deleted, you'll get an error like
Doctrine\ODM\MongoDB\DocumentNotFoundException
File:
/var/www/zf3.yawik.org/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/DocumentNotFoundException.php:32
Message:
The "DoctrineMongoODMModule\Proxy\__CG__\Organizations\Entity\OrganizationImage" document with identifier "59bab4980acec31623d66c9e" could not be found.

it only happens on the ZF3 branch

@kilip can you take a look at this?

@cbleek  I am working on this issue now

Sorry @cbleek looks like I can't fix this issue, I don't have a good understanding with doctrine mongodb relation. Looks like this problem caused by doctrine reference issue. Organizations\Entity\OrganizationImage entity always have null value on $organization property, that's why the OrganizationImage::preRemove code never executed:
    /**
     * Tells Doctrine to delete the image reference, if the image is deleted.
     *
     * @ODM\PreRemove()
     */
    public function preRemove()
    {
        if ($org = $this->getOrganization()) {
            $this->getOrganization()->setImage(null);
        }
    }

OK. @TiSiE can you help?

Shouldn't the listener be mentioned in our documentation?
http://yawik.readthedocs.io/en/latest/modules/core/index.html#events

@cbleek @kilip
Yes, I can!
Organizations do not use a single image anymore, but ImageSets instead. (That was implemented to be able to store images in different sizes like thumbnail and original).
The code quoted above is for backwards compatibility and is not used anymore for new organization entities.
The removing of references for ImageSets is done by DeleteImageSetListener, which is registered in the event manager with the key 'Core/File/Events'.
(Core/module.config.php#502).
However, that listener was removed in 2a516cb350ed8b0561324cfcdb23add04ac0a127, effectively caused this issue.
@kilip is to blame here for removing the lines :stuck_out_tongue_winking_eye: , as well as myself for approving the changes :angry: . We (and by we, I mean mostly me) need to improve on pull request reviews.. :confused:
Anyway, it's working again :smile:

@cbleek probably....

@cbleek , @TiSiE
Looks like this issue still not fixed. If possible please reopen the issue and assign me to fix this issue

It WAS fixed.
However, it's broken again.
Because of the LazyControllerFactory. When creating the FileController, the wrong EventManager gets injected! Must be the 'Core/File/Events', but instead is the 'Core/Ajax/Events'.
So, I say using LazyControllerFactory MAY NOT be a good idea, especially in this case! We should always create dedicated factories. (which is the recommend way in ZF anyway.)

Still, there will be a new issue for that!

@tisie
To prevent this happening again I will create a behat feature to test this add and remove logo functionality


Support for get the old value of a switch toggle without livewire

1⃣ Is this something that is wanted/needed? Did you create an issue / discussion about it first?
A problem was not created, but it is something that is needed.
2⃣ Does it contain multiple, unrelated changes? Please separate the PRs out.
It is a single related change.
3⃣ Does it include tests, if possible? (Not a deal-breaker, just a nice-to-have)
No
4⃣ Please include a thorough description of the improvement and reasons why it's useful.
The component was not getting the old value when submitting a form and getting errors (speaking outside of livewire), what was added was support for that functionality.
5⃣ Thanks for contributing! 🙌

Thanks for taking the time to create a PR for this repository. I'm planning on releasing a new version next week and I don't see any issues from making this change, so I'll probably merge this PR next week sometime.


add type definitions for alternate configs

When using the configs as documented in the README typescript compilation fails with:
Type error: Type '() => Partial<AnimationConfig>' is not assignable to type 'Partial<AnimationConfig>[]'.
Update the type definitions so it can be used as documented.

@JohnGale87 Thank you so much :)


Add exit key code

When replicating my Samsung TV remote, I was not able to find the "Exit" button key in the list. After trying, the "KEY_EXIT" worked for me.

Thanks👍


Indent/dedent ignore

I am trying to ignore the indentation before a /* comment.
Like in:
program:
/* an indented comment */
statement;
However:  ^\h+\i"/*"
doesn't same to get matched, only when I remove the \i it is matched, otherwise it matches the normal: ^\h+\i
But there is no method in matcher() to see if stops have been added or removed, which I want to ignore.
The only hack I can come up with is to copy the stops vector when I encounter a \n and restore that when I match ^\h+"/*" which seems a bit of overkill.

To ignore comments (indented or not), it is simpler to use a negative pattern. See the Python ptokens.l example in the examples directory which has the pattern:
(?^^(\f?\h*(#{any}*?)?\r?\n)+) // eat blank lines and comments, anchor ^ in (?^X)

Python has more "line joining" rules that require pushing and popping indent stops, but comments (when matched across multiple lines) can just be "eaten" away without affecting the indent stops. In your case this would be a negative pattern (?^...) that matches the start of a line ^ followed by white space \h* and a /*...*/ comment that may span multiple lines:
(?^^\h*/\*([^*]|(\*+[^*/]))*\*+\/)

This will not work for me, since I plan to allow nested comments, so it should not stop at the first */

Then I suggest to define a start condition to transition to, to eat nested comments by keeping track of the nesting depth, something like this:
int depth; // lexer class member or global var
%x COMMENT

<INITIAL>^\h*"/*"      { start(COMMENT); depth = 0; matcher().push_stops(); }
<COMMENT>"*/"          { if (depth == 0) { start(INITIAL); matcher().pop_stops(); } else --depth; }
<COMMENT>"/*"          { ++depth; }
<COMMENT>.|\n
<COMMENT><<EOF>>       { return 0; } // should report an error here e.g. "EOF in comment"

See also examples/indent.l.

Yes, I did that. But the matcher().stops already has the comment indentation added to it (if new indent) or substracted (if dedent) or unchanged (if same indentation).
So, when I pop it, it still has the (iptional) comment indentation added.
That's why I need to copy the stops at the previous new-line, and restore it after the ^\h+/*

Note that matching a pattern that has a \I or a \j in it changes the stops. No other pattern can change stops. So somewhere you have a pattern that indents/dedents before the comment is scanned, which causes the stops to change. Just adding a pattern that eats the indent and the comment together should work to avoid that.

Sorry for the long contents here.
Then why am I getting this, note the output line starting with 'hc' from debug output:
Lex:
%top{
#include "NateParser.tab.h"  /* Generated by bison. */
#include "location.hpp"  /* Generated by bison %locations. */
%}

%class{
  std::vector<size_t> prevStops;
  int depth;

  void includeFile()
  {
    depth++;
    if (depth > 99)
      exit(EXIT_FAILURE);           // max include depth exceeded
    const char *q = strchr(text(), '"');  // get ..."filename"
    char *file = _strdup(q + 1);     // get filename"
    file[strlen(file) - 1] = '\0';  // get filename
    FILE *fd;
	fopen_s(&fd, file, "r");
    free(file);
    if (!fd)
      exit(EXIT_FAILURE);           // cannot open file
    push_matcher(new_matcher(fd));  // push current matcher, use new matcher
  }

  bool endOfFile()
  {
    if (depth == 0)
      return true;                  // return true: no more input to read
    fclose(in());                   // close current input in() (a FILE*)
    pop_matcher();                  // delete current matcher, pop matcher
    depth--;
    return false;                   // return false: continue reading
  }
%}

%option bison-complete
%option bison-cc-namespace=yy
%option bison-cc-parser=parser
%option bison-locations
%option exception="yy::parser::syntax_error(location(), \"Unknown token.\")"
%option namespace=yy
%option lexer=Lexer
//%option unicode
%option tabs=4
%option debug
//%option fast

%x INLINE_COMMENT

%%

^\h+"//".*\n  // ignore indent changes
"//".*\n      /* ignore */
^\h+"/*"      std::cerr << "hc " << matcher().stops().size() << " " << matcher().last_stop() << std::endl;  // ignore indent changes
              start(INLINE_COMMENT);            // continue w/o indent matching
"/*"	     start(INLINE_COMMENT);            // continue w/o indent matching
<INLINE_COMMENT>{
"*/"        start(INITIAL);                   // go back to the initial scanning state
[^*/]+|.|\n   /* ignore */
}

^\h+          std::cerr << "h " << matcher().stops().size() << " " << matcher().last_stop() << std::endl; /* ignore */
^\h*\i        std::cerr << "+ " << matcher().stops().size() << " " << matcher().last_stop() << std::endl; return yy::parser::make_BEGIN(location()); // indent
^\h*\j        std::cerr << "- " << matcher().stops().size() << " " << matcher().last_stop() << std::endl; return yy::parser::make_END(location());   // dedent
\j            std::cerr << "-- " << matcher().stops().size() << " " << matcher().last_stop() << std::endl;  return yy::parser::make_END(location());   // dedent, for each extra indent level on the same line
(?^\\\n\h+)   /* lines ending in \ will continue on the next line
                 without affecting the current \i tab positions */

^\h*include\h*\".*?\"    includeFile();

"program"	  return yy::parser::make_PROGRAM(location());
":"			  return yy::parser::make_COL(location());

\n            prevStops = matcher().stops();
\h+           // skip space

[$]?[\p{Alpha}]([-\p{Word}]*[\p{Alnum}])?  return yy::parser::make_IDENTIFIER(str(), location());
[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?   return yy::parser::make_NUMBER(str(), location());

<<EOF>>  if (!matcher().stops().empty())
		 {
		     matcher().stops().pop_back();
			 return yy::parser::make_END(location());
		 }
		 else if (endOfFile())
		 {
		     return yy::parser::make_EOF(location());
		 }

.        std::cerr << str() << (int)str()[0] << std::endl; return yy::parser::make_ERR(location());

%%

With input:
  program:
    hoi // comment comment
          /* comment
	   line */
    end

And output:
--accepting rule at line 69 ("  ")
+ 1 2
--accepting rule at line 77 ("program")
--accepting rule at line 78 (":")
--accepting rule at line 80 ("
")
--accepting rule at line 69 ("    ")
+ 2 4
--accepting rule at line 83 ("hoi")
 Id hoi
--accepting rule at line 81 (" ")
--accepting rule at line 55 ("// comment comment
")
--accepting rule at line 56 ("          /*")
hc 3 10
--accepting rule at line 64 (" comment
           line ")
--accepting rule at line 62 ("*/")
--accepting rule at line 80 ("
")
--accepting rule at line 70 ("    ")
- 2 4
--accepting rule at line 83 ("end")
5.4-5: syntax error, unexpected identifier, expecting end block
Oops

Because the rule
^\h+"/*"

still affects the indent stops. I should have clarified this better: any pattern that is longer than the indent/dedent rules still adds a stop, not just rules with \i and \j.
This other rule also adds a stop:
 ^\h+"//".*\n

Make this a negative pattern to avoid that.
I'll take a closer look at the matcher logic to figure out ways for improvement and to explain the logic in the manual. In general, matching indent/nodent/dedent is a tricky business to automate.
PS. I can think of one way to avoid the problem you describe and I'll investigate if that is a viable solution. Basically, patterns that do not overlap with \i-patterns and \j-patterns should not affect the indent stops. Let's see if that can be done.

Yes, that's the best solution, thanks.


ci: Build action has been consistently failing macos-arm64-build in finch-core

The Build action has been consistently failing for the last month: https://github.com/runfinch/finch-core/actions/workflows/release.yaml
GitHub runners use passwordless sudo. However runners provisioned via finch infra don't allow passwordless sudo. (EDIT: this is observed consistently on the macOS 12 runner for arm64 https://github.com/runfinch/finch-core/actions/runs/6010202363/job/16301161154)
The log lines in step Make and release deps before timeout have been:
if [ "Darwin" != "Linux" -a ! -e "/opt/homebrew/bin/nerdctl" ]; then ln -sf nerdctl.lima "/opt/homebrew/bin/nerdctl"; fi
if [ "Darwin" != "Linux" -a ! -e "/opt/homebrew/bin/apptainer" ]; then ln -sf apptainer.lima "/opt/homebrew/bin/apptainer"; fi
sudo may prompt for password to run FileMonitor
Error: The operation was canceled. # <-- timeout, cancelled workflow

This message is coming from https://github.com/runfinch/finch-core/blob/08a4ca2a9285f1dd2fac3bd4701087b1b2fdec87/bin/lima-and-qemu.pl#L46
Still looking to verify but the smoking gun is that the script is hanging on a prompt for password.
eOn my machine macOS Ventura 13.4 M1 chip:
./bin/lima-and-qemu.pl
ls: /opt/homebrew/bin/limactl: No such file or directory
Missing argument in sprintf at ./bin/lima-and-qemu.pl line 213.
sudo may prompt for password to run FileMonitor
Password:

Thanks for the bringing this up! I am slightly confused, why does the x86 one work, but the am64 one not work? Shouldn't they be based off the same underlying infra? In addition, our e2e tests on runfinch/finch works totally fine with sudo commands. See this example. I wonder if it has anything to do with this being a perl script that's run instead of a normal bash/zsh script

I am slightly confused, why does the x86 one work, but the arm64 one not work? Shouldn't they be based off the same underlying infra?

Yes they should be from what I can tell. This is the root of the issue, which I do not have a root cause for. Take a look at this recent execution of the Build action: https://github.com/runfinch/finch-core/actions/runs/6010202363/job/16301161154
You can see the prompt for sudo is blocking. This has been consistent over the last 3months (at least from what I can see).

I wonder if it has anything to do with this being a perl script that's run instead of a normal bash/zsh script

maybe... but this is observed only on a specific macOS version/architecture, the perl script works fine on the others.

Did a quick test on this runner by changing the workflow to the following:
...
          sudo echo hi
          ./bin/lima-and-qemu.pl
...

The runner gets stuck on ./bin/lima-and-qemu.pl and not sudo echo hi.

Hmm, also not a perl thing:

Run echo '#!/usr/bin/env perl' >> test.pl
  echo '#!/usr/bin/env perl' >> test.pl
  echo 'system("sudo echo sudoed")' >> test.pl
  chmod u+x test.pl
  ./test.pl
  shell: /bin/zsh {0}
  env:
    GO111MODULE: on
sudoed

It is due to this line sleep(1) until -s $filemonitor; that the workflow hangs, not the use of sudo's password entry. @vsiravar can you take a look at why it's not correctly evaluating the size changes?
...
END { system("sudo pkill FileMonitor") }
system("sudo echo this-should-show");                # this shows up
print "sudo may prompt for password to run FileMonitor\n";
system("sudo -b /Applications/FileMonitor.app/Contents/MacOS/FileMonitor >$filemonitor 2>/dev/null");
system("sudo echo this-should-show");                # this shows up
sleep(1) until -s $filemonitor;
system("sudo echo this-probably-wont-show");   # this does not show up

The weird thing though is that it does not hang on a self-hosted runner provisioned manually. Log from a previous run.  Does anything show up in the filemonitor.log when the workflow hangs?

No, I tried inserting a system("sudo cat $filemonitor");, right before sleep, but nothing is displayed

can you take a look at why it's not correctly evaluating the size changes?

sleep(1) until -s $filemonitor; is behaving as expected since $filemonitor is empty.
Did you also check if /Applications/FileMonitor.app/Contents/MacOS/FileMonitor process is running after system("sudo -b /Applications/FileMonitor.app/Contents/MacOS/FileMonitor >$filemonitor 2>/dev/null");.

96674 ??         0:00.00 sudo -b /Applications/FileMonitor.app/Contents/MacOS/FileMonitor
96675 ??         0:00.00 /Applications/FileMonitor.app/Contents/MacOS/FileMonitor
96676 ??         0:00.00 sh -c ps -ax | grep FileMonitor
96678 ??         0:00.00 grep FileMonitor

Update after troubleshooting: FileMonitor requires (or makes Terminal require) Full Disk Access. It is unclear why macOS 11 for x86 works.


[HelpTopic] Design review

Update to match current mockups

There is a scheduled review once we're on stage. Leaving this issue here to collect that feedback.

Helptopics are live


.fzf.bash might generate PATH with empty component

Category

[ ] fzf binary
[ ] fzf-tmux script
[ ] Key bindings
[ ] Completion
[ ] Vim
[ ] Neovim
[ ] Etc.

OS

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Windows Subsystem for Linux
[ ] Etc.

Shell

[x] bash
[ ] zsh
[ ] fish

If $PATH is empty, the generated script at .fzf.bash creates a PATH with an empty first component by
export PATH=$PATH:...

An empty component is interpreted by bash to look in the current directory (see man bash entry for PATH), so the above will instruct bash to always look for any executable in the current directory first.
In order to only append the fzf path to the existing one, above line should read
export PATH=${PATH:+${PATH}:}...

This way if PATH is set, it is expanded to $PATH: otherwise to the empty string and the empty component in PATH is not created.

Good suggestion, fixed in devel branch. Thanks.


This is NOT Open Source

Where is the source code?  Who knows what you're installing on people's computers.  There's a DLL in there and I dont see the source code for it

This is NOT Open Source

We know.

Where is the source code?

This project's DLL is a reflected .NET assembly. We can see its source code anytime we want. It still isn't open-source, though.

Who knows what you're installing on people's computers.

The repo's owner isn't installing anything on our computers. We do. Please do not assume to become our lawyer.

Too bad really. Not sure what lawyering has to do with it.  But open source is a good thing.  I mean you have millions of downloads why not just put your code up.  what are you afraid of?
You should update your wiki and disclose you are installing compiled code (reflected or not).  Most people are looking for that simplifies there patching and this seems to fit the bill.  This should be a policy in the gallery, imo.  No source code, no publish...

I mean you have millions of downloads

You should update your wiki

Please check your audience first. I'm not the repo owner.


MORE>Directory Synch not as indicated in this document

The first panel now has this after More> Directory Synchronization:
Active Directory preparation
Active Directory synchronization allows your company’s administrators to continuously sync your existing on-premises user and group accounts with Azure Active Directory.
Microsoft Azure Active Directory Connect tool can be used to setup Active Directory Synchronization
Download Microsoft Azure Active Directory Connect tool
Close

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

ID: 2363e1c8-0003-dbb2-194f-10b25b732b8d
Version Independent ID: ac43d1f5-f0e2-7818-0913-53a590c7a7e0
Content: Set up directory synchronization for Office 365
Content Source: Enterprise/set-up-directory-synchronization.md
Service: o365-administration
GitHub Login: @robmazz
Microsoft Alias: robmazz

@qwirk Thank you for pointing this out
I will get this updated information over to the Enterprise writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.


Some multi-word toponyms get broken up incorrectly

Found using Python bindings, verified using src/address_parser test tool.
Location strings including "Long Island City" can confuse libpostal.  The city can be returned as "city" or "new" and the state returned as "york".  The string "Long Island City, New York, NY" does produce a good result.
I used Google Maps to look up the addresss of businesses in the area, and Google Maps at least uses the form "Long Island City, NY" rather than something fully qualified like "Long Island City, Queens, New York City, NY"  So I think this is a real issue.
Examples from src/address_parser:
> 22-25 Jackson Ave, Long Island City, NY 11101

Result:

{
  "house_number": "22-25",
  "road": "jackson ave",
  "suburb": "long island",
  "city": "city",
  "state": "ny",
  "postcode": "11101"
}

> Long Island City, New York, NY, US

Result:

{
  "suburb": "long island city",
  "city": "new york",
  "state": "ny",
  "country": "us"
}

> Long Island City, NY, US

Result:

{
  "house": "long island",
  "city": "city",
  "state": "ny",
  "country": "us"
}

> Long Island City, New York, US

Result:

{
  "suburb": "long island city",
  "city": "new",
  "state": "york",
  "country": "us"
}

Gotcha, just today I noticed something similar with certain multiword place names that are highly ambiguous (e.g. New York can be city or state).
It has to do with the feature representation of the input for those multiword strings (in the address_parser client, you can type ".print_features [on|off]" to see how libpostal represents your input under the hood - helpful in debugging).
One of the most helpful input features in the model is the combination of the previous tag and the current word. So for instance "prev tag=city and current word=new york". For multiword strings that are known place names from the training data, we group the phrase into a single token in terms of the feature representation. However, the parser still has to make predictions at each individual word. This results in the following confusing-to-parse case: in the phrase "new york", on the word "new", the features might be something like "prev tag=road and current word=new york" whereas on the word "york" it's "prev tag=city and current word=new york" where all the other features are the same. That representation is ambiguous with "new york, new york" where the second "new york" is the state. Hence sometimes it can result in a bad parse. It doesn't affect too many places, but comes up in a few annoying cases like this nonetheless.
That should be able to be fixed by changing the feature representation to take into account which word we're on in the multiword phrase i.e. "prev tag=city and phrase=new york and current word=york". Assuming that goes well in my trials, the parser will have to be retrained, which takes about a week.

Ok, there's a new version training now. However, this may also have to wait on new training data, as in the 1.0 set we were a bit overzealous with requiring city in all training examples. Long Island City is technically a suburb/neighborhood, but can be used in place of a city name next to a word like "NY" - in our training data it would have always been "Long Island City, New York, NY" or "Long Island City, Queens, NY" (libpostal parses those cases correctly) and probably never "Long Island City, NY", so it will have a tough time recognizing a transition from suburb to state.

I think I have another example of this with New York. In my case it seems to change how it parses the city based off the unit present?
> 1 west 4th st apt a new york

Result:

{
  "house_number": "1",
  "road": "west 4th st",
  "unit": "apt a",
  "city": "new york"
}

> 1 west 4th st apt 4 new york

Result:

{
  "house_number": "1",
  "road": "west 4th st",
  "unit": "apt 4",
  "city": "new york"
}

> 1 west 4th st apt 4a new york

Result:

{
  "house_number": "1",
  "road": "west 4th st",
  "unit": "apt 4a",
  "city": "new",
  "state": "york"
}

Interestingly enough it doesn't apply to all units (here's 1a instead of 4a):

@delner same deal. "New York" is easy for our brains to disambiguate, but can be hard for a computer - it often means "city" and it often means "state". The way the features (machine learning features, not product features) are extracted in the currently-deployed model makes the "New York" difficult to distinguish from the "New York, New York" case, as explained in more detail above, so when "New York" is at the end of the string as a city, the current parser is more likely to get it correct in very frequent situations where the machine learning model would incur a large cost in terms of its error function for getting similar cases wrong. We generate unit numbers randomly in the training data (since they're not frequently used in OSM), and something like "Apt 1" is more frequently generated than something like "Apt 4A", so the model might not have enough examples of "4A" followed by "New York" the city to force itself to care about getting that highly ambiguous case (as far as it's concerned) wrong.
I've already implemented the changes proposed above i.e. keeping track of which word we're currently on in known multiword toponyms, which makes the "New York" city/state case much easier to distinguish for the model. A version I recently trained with those changes can correctly parse the "apt 4a" example as well:
> 1 west 4th st apt 4a new york

Result:

{
  "house_number": "1",
  "road": "west 4th st",
  "unit": "apt 4a",
  "city": "new york"
}

That model's overall accuracy improved to 99.56% on held-out test data, so assuming it probably fixes this entire class of errors, but not "Long Island City" because the suburb to state transition is not present in that version of the training data. I'll probably just lump those changes into the 1.1 release with the next batch of training data to avoid having too many models floating around, but if this version is desperately needed in the mean time, let me know.
Re: the "1a" case, that is a bit odd. Usually single digits get normalized to simply "D" in the internal representation, so there generally shouldn't be any differences in parses between "1a" vs. "4a" vs "9a", etc. We just consider the length of the digits as well as any letters that might be part of the token (in the next version it might be sensible to also normalize the letters in a numeric token to "X" so "1A", "2B", "9Z", etc. all normalize to "DX" - this is known in the named entity recognition literature as a "word shape"). If you type .print_featues into the address parser client, it will show the the model's representation or features of the input. This, combined with inspecting the training data with grep, etc. is one of the best ways to debug an incorrect parse in libpostal. Looking at the features, there apparently exists a "city" somewhere in the training data called "1a" (which is probably just an error in a user's OSM tag). We do remove boundary names that are strictly digits presently to account for mislabeled OSM tags, etc. but it might be worthwhile to extend the definition a bit for user-specified place names that are simply a number plus one (Latin) letter. User-specified cities can always be replaced with reverse-geocoded OSM boundaries, so if there really is a place with a digit + single letter name (the only counterexample in Latin script that's coming to mind is something like "9e Arondissement" in Paris but even there I don't think it can be written as simply "9e"), that example could be added to the OSM boundary.

@delner that branch has not been merged in master, would mean deploying the new model and cutting a new release. The multiword toponym features mentioned above means changing the input variables that the parser uses to make predictions. It's important that the model have the same information at runtime that was used at training time so that the weights it learned are useful.
In 1.1 I'll be adding the release version to the S3 keys for the models so there can be multiple data updates (either because of something we changed on our side or just new dump from OSM) per version, but each time there's a model change, we bump the minor version and create a new keyspace for models trained on that version.
The OSM dump starts tonight around 1am GMT and contains a change or two from this week that I wanted to go in to the release. That finishes sometime on Wednesday, and I'm still testing a few changes to training data generation to hopefully correct for various parser issues that have been reported. The full data generation and training process takes a couple of weeks at present, so likely end of May or early June.

Awesome. Thanks for being so responsive @thatdatabaseguy ! I'm looking forward to this.


[CI/CD] New PyPI Infra [skip ci]

Changes on the release_jaxlib workflow:

Usage 1: tagging. When you tag, what will happen is below:

it will compile your tagged alpa branch into three alpa wheels, upload them to the official pypi, and generate bump version PR.
it will compile 9 jaxlib wheels using the tensorflow-alpa branch you tagged as third-party in your tagged alpa branch, upload the 9 wheels as assets of this alpa tag release, generate a wheels.html using the 9 GitHub links, and commit&push the html to the master branch of the alpa-projects.github.io repo, which serves as a PyPI index page at the address https://alpa-projects.github.io/wheels.html.

Usage 2 (not recommended): manual workflow_dispatch in actions page. It will require you to input a valid branch name of the tensorflow-alpa repo. It will then compile 9 jaxlib wheels using your input tensorflow-alpa branch (instead of using the tagged tensorflow-alpa branch in the chosen alpa branch), upload the 9 wheels as assets to the latest tagged release, and do the rest mentioned in Usage 1 for wheels page. No alpa wheel release is involved here.

Changes on the docs.yml workflow:
Now it will overwrite the original master branch instead of deleting original files and putting new files. In this way, the wheels.html updates are kept independent from the doc updates
@zhuohan123 @ZYHowell Take a look at the above and let me know if it does not make sense.

Correct me if I'm wrong. So after this change, when we modify the tensorflow-alpa repo, we need to push a commit into alpa's main branch and also tag that commit to trigger the CD process? What exactly do we need to do to update pypi? Why isn't this action being triggered for every commit to the main branch?

@zhuohan123
The action only happens when you tag a release. It does not trigger for every commit because that's too exhausted to build 9 jaxlib and 3 alpa wheels for every new commit . In the future, when we have more CI/CD resources we can increase the frequency to be nightly.
When you plan to tag a version and release, you need to make sure in alpa repo, that the correct tensorflow-alpa commit is tagged under thirdparty/tensorflow-alpa. That's all.
If you want to manually release jaxlib (instead of releasing by tagging alpa), you need to input a tensorflow-alpa commit hash at the action input.


Update juju-channel=latest/stable

Set juju-channel to latest/stable by default rather than 2.9/stable.  At this point most charms specify what they want because usually they do not want 2.9/stable
update tests to support more current microk8s versions
helps the actions-operator be more aware of the juju channel to use appropriate cli switches
No longer installs juju > 3.x with --classic

@ca-scribner What do you think about these changes?


Chat Card Update

Re: #117
Here are some notes related to this PR.
Chat Card Update
Chat cards generated by clicking on buttons in character sheets generate cards that look and behave little bit nicer, and contain more information.

New info: Items that are clicked will now indicate the item type that has been clicked.  This allows a player to share items like Values, Focuses, and other "items" that it be clear what they're sharing with the table.  Previously, you had no indicator to explain whether you were looking at someone's Value, Focus, or Talent (unless it had a descrption).
New tags: Items shared to chat are more informative; every attribute that any item might have is now displayed in chat. This includes "escalation", "hands", and many other tags that had not previous been shared.
More descriptions: Many items with descriptions did not share those descriptions in chat.  Now they do.
Description Clickability/Collapsing:  The ability to collapse descriptions has been made more reliable, and is indicated by a pointer cursor when mousing over.
Dice Roll Clickability/Collapsing: The ability to collapse dice rolls has been made more reliable, and is indicated by a pointer cursor when mousing over.
Reroll Speaker Fix: Reroll "speaker" no longer unexpectedly switch speakers; the original Actor that did the roll is tracked across rerolls now.  If Token A generated a roll, then Token A will also be identified as the one doing the reroll.

Behind the scenes:

Far less HTML is mixed in with business logic; now primarily it lives within Handlebars.  This will keep the code a bit cleaner, and probably make it a lot easier to maintain updates to chat card HTML in the future.
All Handlebars templates have had their file extensions switched to hbs; this makes the intent of the files more clear at a glance and can also trigger IDE tooling and assistance easier, improving the developer experience.
I implemented a new collapsing behavior rather than relying on the built-in Foundry "dice-tooltip" behavior previously used.  It was kinda clunky and I always had to click 2 times just to collapse anything.  I could not figure out why this was.  I took a look at how the DnD5E system was doing theirs and notice they don't use it, either.
There are new locale strings as a result of more information being displayed in chat cards.

Tested in the Windows version of foundry.  Foundry v10, v11, and v12.

Oop, I need to reroll this, my fork was out of date.

Conflicts have been resolved, but there are some issues that need to be resolved before merge should proceed.

While I was working on the cards, there was a new STARoller app that my changes didn't account for, and now STARoller's rolls don't reroll correctly.

I also made a change to how speakers get related to the chat cards; the existing implementation didn't track speakers consistently across rerolls, which I fixed.  However, this might conflict with the change made to set the speaker as "Reroll" in some cases.  Not entirely sure how to proceed there yet.

I have done some preliminary testing on this today, the 1E rolls look great compared to how they did. The focus, item, talent cards also much tidier. The only thing I am a little ambivalent on is the 2e weapons having (2E) after them, not sure if they need that, but open to being convinced on it.

Yeah, maybe explicitly identifying the edition doesn't really matter, since players won't really care and there's no harm in them both just being called "Character Weapon"

Collabed with @tokeidlom on handling #125 and rolled into this.
Looks like I need to potentially reroll all of this after a dev branch update.

Reroll finished.


textLength at textPaht not supported

What happened?

lib
pic

svg

ink

resvg

rsvg

What should have happened?

same rendering as firefox or inkscape (chrome wrong?)

Copyright
source https://commons.wikimedia.org/wiki/File:Palestine_Ensign.svg
author Sarang
license https://de.wikipedia.org/wiki/Gemeinfreiheit
Version and Operating System:

Inkscape Version: 0.92.4 or 1.1dev
resvg version: 0.9.0
rsvg Version: 2.40.21
Operating System: Ubuntu 18.04

chrome wrong

Why not? Even Chrome and Firefox are far from perfect.
And yes, textLength is not supported. See https://github.com/RazrFalcon/resvg/blob/master/docs/unsupported.md

Duplicate of #204


Bug fixes, Trading fee, pause bot mod+++

Rolling window fix
Trading fee deducted from profits calculations
New mod for pausing the bot in bear conditions
More console info during trading
and more

Small correction

Even smaller correction.

The smallest correction of them all.

Think i fixed the messup of versions.

More fixes


Renamed exception variable to eliminate "Shadow" warnings with GCC

Renamed 'e' to 'ute' to eliminate "Shadow" warnings with GCC -Wshadow
CheckMacros.zip

@jwellbelove thanks for the PR, but I'm going to close due to the history being seriously mangled for some reason. Feel free to re-submit.


Register BUF configuration schemas

Hi, I am working on integrating buf and installed the intellij plugin. I suggest that the plugin is updated to register the JSON schemas for the yaml files - so these are validated by the IDE.

Related to https://github.com/bufbuild/buf/issues/1413 - if we publish schemas to schemastore, this should also make things work out of the box in the IntelliJ plugin.

Related to https://github.com/bufbuild/buf/issues/1413 - if we publish schemas to schemastore, this should also make things work out of the box in the IntelliJ plugin.

Exactly- it will allow validating the configs based on versions

See https://github.com/bufbuild/buf/issues/1413#issuecomment-1764417864 - I've published initial support for these files upstream. I'm not 100% sure on how often IntelliJ pulls down the latest SchemaStore schemas, but hopefully soon.
If you see any issues with the schemas, please report those upstream and feel free to tag me!

See bufbuild/buf#1413 (comment) - I've published initial support for these files upstream. I'm not 100% sure on how often IntelliJ pulls down the latest SchemaStore schemas, but hopefully soon.
If you see any issues with the schemas, please report those upstream and feel free to tag me!

i reported one issue in the linked comment


Solve pre-commit prettier and isort version incompatibility issues

PR Checklist

[x] Referenced issue is linked
[x] If you've fixed a bug or added code that should be tested, add tests!
[x] Documentation in docs is updated

Description of changes
Changed prettier and isort based on the following issues:
prettier version problem causing the node incompatibility
isort incompatibility with newer versions of poetry
Technical details

Additional context

Thank you!


Typo in logingFunction property

logingFunction property has a typo as mentioned in #210. It should be loggingFunction.
We can fix the typo in v2 beta. We might be able to ignore the typo in v1 series to avoid a breaking change, IMO.

👍  This approach looks OK to me.


Select field is not reset within a form on a reset event

Describe the bug
The select field is not reset within a form on a reset event.
To Reproduce
See here: https://jsfiddle.net/2mgpkujd/

Change selected option on both selects
Click reset button
Expect the same behavior from normal Select and TomSelect

Expected behavior
The same behavior from normal Select.
Additional context

OS: Arch Linux
Browser: Google Chrome
Version: 103.0.5060.114

Still not sure if this is the best approach for handling a form reset but it seems to work for the given select: https://jsfiddle.net/et2h5ofc/

This seems to work, thanks.
I currently use it this way so it works with any form/select: https://jsfiddle.net/p0cfej1d/


log error for check

The type check would be suppressed if it failed in a try-catch block:
  try {
    const json = yield call(fetch(target).then(resp => resp.json())) // wrong, it should be a function instead of a promise
  } catch (e) {
    yield put({type: 'FETCH_FAILED', message: e.message})
  }

There is no difference between the error from internal check and the exception from rejection. It's a little confusing for newcomers.

makes sense. Thanks


[Feature Request] Timeline Visualization compatibilty

I think it would be super cool to visualize the timeline of the obsidian brain with something like gource.
acaudwell/Gource
At the moment we are just adding data to obsidian without any time and user/device tracking. I don't think it would be that difficult as it just needs a log file.
OR are their other ways to achieve the same.

Hi! Are you making a mistake? Are these the Self-hosted LiveSync plugin issues?
What does this have to do with the LiveSync plugin?

Hi! Are you making a mistake? Are these the Self-hosted LiveSync plugin issues? What does this have to do with the LiveSync plugin?

You are right its not a Obsidian-Livesync issue, It's a feature request you can clearly see that in the title, I think "Self-hosted LiveSync plugin" is the perfect plugin for this purpose, as it keeps a record of all updates to markdown files from different devices. All it needs is to generate a separate log file with gource readable syntax.
And with this log file/files anyone can run the gource on their system to generate the visualization.


Not working spring configuration

I have faced a problem with spring-kafka 1.2.2
simple configuration of kafka
@Configuration
@EnableKafka
public class KafkaConfiguration {
}

is not working. with this I am facing timeout error on message sends.
Only with additional @EnableAutoConfiguration everything works fine.

Sorry, not enough info.
How can we determine the problem if you don't provide the whole working test-case to play from our side?
Since Spring Kafka advertises @EnableKafka for a while already, if that didn't work you would not be a first one who faces the issue.
The @EnableAutoConfiguration isn't Spring Kafka project responsibility though...
Please, share as much info as possible to let us to reproduce and fix the problem if that.

Closed as Invalid with the leak of responsivity and wrong context.


How to construct connect mssql command with variable?

NET Interactive
© 2020 Microsoft Corporation
Version: 1.0.355307+4cc71ae4e275fd80852b9c2faa317bc3a0033d2c
Library version: 1.0.0-beta.22553.7+4cc71ae4e275fd80852b9c2faa317bc3a0033d2c
Build date: 2022-11-28T21:03:16.1596190Z
Question
How to construct a magic connect command with variable? For example,
#!value --name sqlserver
ServerA
#!share sqlserver --from value
string sqlconnstr = $"Server={sqlserver}; Initial Catalog=mydb; Persist Security Info=False; Integrated Security=true;";
#!connect mssql --kernel-name mydb sqlconnstr
This doesn't work. Expecting to have something similar as this,
#!connect mssql --kernel-name mydb "Server=ServerA; Initial Catalog=mydb; Persist Security Info=False; Integrated Security=true;"

Values from other kernels can be inlined with the syntax @kernelName:variableName so in your scenario it could look something like this:
#!value --name sqlserver
ServerA

#!share sqlserver --from value
string sqlconnstr = $"Server={sqlserver}; ...";

#!connect mssql --kernel-name mydb @csharp:sqlconnstr

That works. Thank you.


Support creating hundreds of simultaneous Bigtable Table clients

In some of their tests our customers need to do things like this:
void F() {

  std::string instance_id = "test-instance";
  std::string project_id = "test-project";

  std::mutex mu;
  std::vector<cbt::DataClient> clients;
  std::vector<std::thread> tasks;

  for (int i = 0; i != 200; ++i) {
    tasks.push_back(std::thread{[&] {
      std::lock_guard lk(mu);
      clients.push_back(CreateDefaultDataClient(instance_id, project_id, ...));
    }});
    tasks.push_back(std::thread{[&](int i) {
      std::this_thread::sleep_for( /* random time */);
      std::unique_lock lk(mu);
      if (clients.size() < i + 1) return;
      auto data_client = clients[i];
      lk.unlock();
      cbt::Table table(client, "table_id");
      table.Apply( /* stuff */);
    }, i});
  }
  for (auto& t : tasks) t.join();
}

They are reporting deadlocks in this code (or code equivalent to it).

Googlers can look at cl/358000434 for more details.

We will revisit in the future.

Problem Diagnosis
So this isn't a deadlock, and the issue doesn't have to do with the threads. What is actually happening is that the DataClients destruction may get held up while waiting for the result of the channel refreshing operation: https://github.com/googleapis/google-cloud-cpp/blob/18937be27e09b01ada592e090014e5b239aae674/google/cloud/bigtable/internal/connection_refresh_state.cc#L76-L78
Note that this timeout is 10s long: https://github.com/googleapis/google-cloud-cpp/blob/18937be27e09b01ada592e090014e5b239aae674/google/cloud/bigtable/internal/connection_refresh_state.cc#L30
So we are seeing delays that could be as high as 10s * N, as we wait for each client to go out of scope. If N is large enough this starts looking like a deadlock.
Simpler Repro
We can write a simpler test that exposes this behavior:
// This test will take longer than 10s as we are guaranteed to hit a refresh
// that will not complete. Ideally it would only take a second or so.
TEST(DeadlocksTest, DataClientNoThreads) {
  auto constexpr kRefreshPeriod = std::chrono::milliseconds(500);
  auto options =
      Options{}
          .set<GrpcCredentialOption>(grpc::InsecureChannelCredentials())
          .set<GrpcNumChannelsOption>(1)
          .set<MaxConnectionRefreshOption>(kRefreshPeriod);

  auto dc = MakeDataClient("p", "i", options);
  (void)dc->Channel();
  std::this_thread::sleep_for(kRefreshPeriod * 1.5);
}

Other Observations
So one thing to notice is that DataConnection does not have this problem. Swapping out the DataClient for a DataConnection does not lead to timeouts. The key difference is that we pass around a temporary shared_ptr<CompletionQueue> when we create the Stubs. https://github.com/googleapis/google-cloud-cpp/blob/18937be27e09b01ada592e090014e5b239aae674/google/cloud/bigtable/internal/bigtable_stub_factory.cc#L60
.... whereas in the DataClient we hold onto it for the lifetime of the object: https://github.com/googleapis/google-cloud-cpp/blob/18937be27e09b01ada592e090014e5b239aae674/google/cloud/bigtable/internal/common_client.h#L188
This means the DataConnection never refreshes its channels. This is a bug. It always backs out, because there are no more references to the CQ: https://github.com/googleapis/google-cloud-cpp/blob/18937be27e09b01ada592e090014e5b239aae674/google/cloud/bigtable/internal/connection_refresh_state.cc#L74-L75
We can "fix" the DataConnection problem by using a shared_ptr<internal::CompletionQueueImpl> (owned by the background threads) for channel refreshing. By "fix", I mean the DataConnection might also need to wait 10s for the CQ work to be done before it can be destroyed. Yay?
Paths Forward
There are a few things we can do.
My Suggestion
I think we can simplify the connection refresh logic to periodically call grpc::Channel::GetState(true).
https://github.com/dbolduc/google-cloud-cpp/commit/d3a9a4182a5751f6c2723eae41e8298e69db9120
The "gRPC Connectivity Semantics and API" doc says calling GetState(true) only matters if the channel is currently IDLE. The channel will continue trying to connect on its own if it is in CONNECTING or TRANSIENT_FAILURE. If it is READY or SHUTDOWN, we are not affecting it. So making one call has the same effect as what we are doing now.
The only difference between this suggestion and the current code is a log entry on why the channel couldn't refresh: https://github.com/googleapis/google-cloud-cpp/blob/501fa37eca2002f0c917984e8a14f6bf61591664/google/cloud/bigtable/internal/connection_refresh_state.cc#L82-L83
I do not think the log entry is worth the extra complications that come with it. We continue scheduling the refreshes regardless of its value.
Pros:

No waiting on gRPC
Simpler code

Lets us deprecate and delete CQ::AsyncWaitConnectionReady.

Cons:

Less information on logs

... sort of. We could always log the current state if we want to.

I do not have an integration test for refresh behavior. We are trusting logic and reading comprehension.

Alternatives Considered
Do Nothing
We could do nothing. The Google team who reported the bug has a vector of clients, protected by a mutex. They want to test that their data access is thread safe. They can just disable channel refreshing.
Make kConnectionReadyTimeout a configurable option.
If anyone needs to make hundreds of clients, they can reduce this timeout to have the application exit considerably faster.
Make AsyncConnectionReadyFuture cancellable. Specifically this operation: https://github.com/googleapis/google-cloud-cpp/blob/f779bb99395bbdfe3aac51864ff2abf2a0b6dffc/google/cloud/internal/async_connection_ready.cc#L75-L78
I did get this to work. My idea was to break up the 10s deadline into smaller pieces, e.g. of 1s each. Then if the operation was cancelled, we can back out early without spending the full 10s.
https://github.com/dbolduc/google-cloud-cpp/commit/b7f1fbcada97146a5121a985bcb20eff66ed7b24
Pros:

This CQ method is in our public API, so cancelling is technically a feature.

... but we should probably deprecate it. It is too low level, and I doubt it is in use.

Cons:

It adds complication

The problem with the proposed approach of just calling channel->GetState(true) is that the state of the channel might not get updated, unless it is being actively polled (by something like channel_->NotifyOnStateChange()).
And to be explicit, channel_->NotifyOnStateChange() is not a cancellable operation. Which is why we would have to manually cancel it in one of the alternatives considered.

Closing, the original motivation no longer applies.


Fails to log in to WebFaction API

Thank you for creating the new release!
My certificate is being created, but XMLRPC login fails. I've confirmed I didn't make a typo by logging into WF by copying and pasting from my command. Also, I have used the same credentials by making api calls of my own.
Here's the command and output with sensitive info replaced.
$ letsencrypt_webfaction --letsencrypt_account_email<EMAIL_ADDRESS>--domains example.com --public ~/webapps/example_http/ --username myuser --password LETMEIN --endpoint https://acme-staging.api.letsencrypt.org/

/usr/local/lib/ruby22/ruby/2.2.0/xmlrpc/client.rb:271:in `call': LoginError (XMLRPC::FaultException)
from /home/myuser/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.0/lib/letsencrypt_webfaction/certificate_installer.rb:33:in `session_id'
from /home/myuser/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.0/lib/letsencrypt_webfaction/certificate_installer.rb:14:in `install!'
from /home/myuser/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.0/lib/letsencrypt_webfaction/application.rb:26:in `run!'
from /home/myuser/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.0/exe/letsencrypt_webfaction:5:in `<top (required)>'
from /home/myuser/.letsencrypt_webfaction/gems/bin/letsencrypt_webfaction:23:in `load'
from /home/myuser/.letsencrypt_webfaction/gems/bin/letsencrypt_webfaction:23:in `<main>'

My first guess is that there might be some special chars in your password that Bash doesn't like. Could you try quoting it, or using the config file by creating something.yml in your home dir containing
username: "myuser"
password: "LETMEIN"

and then adding --config something.yml to the command?
Thanks!

I believe the issue was special characters in my password. I created a yaml config file as instructed and it work without error.
Thanks!! You are awesome!!!

Sweet! I'm glad it works for you.

I'm having the exact same error. I also created a config.yml with just username and password, and still no luck.
I even logged in via SSH by copy and pasting my username and password to make sure they are correct (and they are).
I tried running it from the root user directory (~) and also from the directory I'm trying to use (~/webapps/my-app/) with no luck.
Any ideas?

Hello.
I'm having the exact same issue.

I also copy/pasted my username/pwd to make sure it wasn't a typo by logging in via SSH (I just put my username/password in the config file).
I created a config.yml file as recommended. Still no luck

Any other ideas?

@desduvauchelle, I'd confirm that you have the right username/password. Your SSH password can sometimes be different.
Failing that, could you post the command you are running, and the error message?


[SPARK-17843][WEB UI] Indicate event logs pending for processing on h…

What changes were proposed in this pull request?
Backport PR #15410 to branch-2.0
How was this patch tested?
Existing unit tests. Screenshots for UI changes provided in PR #15410.

@tgravescs - Looking to get this change early with 2.0.x. This merges cleanly - are you ok to let this into branch-2.0?

Test build #69061 has started for PR 15991 at commit 6de3036.

Test build #69061 has finished for PR 15991 at commit 6de3036.

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

Merged build finished. Test PASSed.

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

@tgravesc - are you ok to merge this backport to branch-2.0 ?

The reason I hadn't pulled it back is its listed as a minor improvement and generally we only pull defects back into the maintenance releases.

@tgravescs would like to have this in 2.0 along with the other improvement that got accepted for backport (spark-18010). so would you consider allowing this into 2.0 as well?

since its just in the history server and pretty isolated seems ok. +1


Docker container fails to build in OS X Mojave

Finished <<< hros_cognition_mara_components [12.7s]
Starting >>> opencv_tests
Finished <<< opencv_tests [0.96s]
Starting >>> python_orocos_kdl
Finished <<< mara_utils_scripts [2.05s]
Starting >>> vision_opencv
Finished <<< vision_opencv [1.69s]
Finished <<< python_orocos_kdl [13.2s]
--- stderr: python_orocos_kdl
PYTHON_VERSION_STRING
sip: Deprecation warning: /root/ros2_mara_ws/src/orocos_kinematics_dynamics/python_orocos_kdl/PyKDL/PyKDL.sip:23: %Module version numbers are deprecated and ignored
---
Finished <<< hrim_generic_srvs [1min 10s]
[Processing: gazebo_msgs]
[Processing: gazebo_msgs]
[Processing: gazebo_msgs]
[Processing: gazebo_msgs]
[Processing: gazebo_msgs]
Finished <<< gazebo_msgs [6min 59s]
Starting >>> gazebo_ros
The command '/bin/sh -c echo 'Etc/UTC' > /etc/timezone       && ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime       && apt-get update -qq && apt-get install -qq -y tzdata dirmngr gnupg2 lsb-release curl       && curl http://repo.ros2.org/repos.key | apt-key add -       && echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list       && apt-get update -qq && apt-get install -qq -y          build-essential          cmake          git          python3-colcon-common-extensions          python3-pip          python3-vcstool          wget  	&&  pip3 install         	tensorflow==1.12         	transforms3d         	billiard   	&& apt update -qq && apt install -qq -y     		python3-colcon-common-extensions     		python3-vcstool     		python3-numpy     		python3-sip-dev     		libeigen3-dev     		wget     		libboost-all-dev                 ros-$ROS2_DISTRO-ros-base                 ros-$ROS2_DISTRO-action-msgs                 ros-$ROS2_DISTRO-message-filters                 ros-$ROS2_DISTRO-yaml-cpp-vendor                 ros-$ROS2_DISTRO-urdf ros-$ROS2_DISTRO-rttest ros-$ROS2_DISTRO-tf2                 ros-$ROS2_DISTRO-tf2-geometry-msgs                 ros-$ROS2_DISTRO-rclcpp-action     		libopencv-dev     		&& rm -rf /var/lib/apt/lists/*  	 && curl -sSL http://get.gazebosim.org | sh   	 && wget https://raw.githubusercontent.com/AcutronicRobotics/MARA/ai/mara-ros2.repos && vcs import src < mara-ros2.repos          && wget https://raw.githubusercontent.com/AcutronicRobotics/gym-gazebo2/master/provision/additional-repos.repos && vcs import src < additional-repos.repos   	&& cd ~/ros2_mara_ws/src/HRIM/installator   	&& python3 setup.py install && cd ..   	&& hrim generate models/actuator/servo/servo.xml   	&& hrim generate models/actuator/gripper/gripper.xml   	&& bash -c " cd /root/ros2_mara_ws   	&& source /opt/ros/crystal/setup.bash && colcon build --merge-install --parallel-workers $(nproc) --packages-ignore orocos_kinematics_dynamics   	&& touch /root/ros2_mara_ws/install/share/orocos_kdl/local_setup.sh /root/ros2_mara_ws/install/share/orocos_kdl/local_setup.bash   	&& cd /root/ && git clone https://github.com/ros/urdf_parser_py.git -b melodic-devel && cd /root/urdf_parser_py && pip3 install -e .   	&& cd /root && git clone https://github.com/openai/gym && cd /root/gym && pip3 install -e .         && cd /root && git clone https://github.com/AcutronicRobotics/gym-gazebo2 && cd /root/gym-gazebo2 && pip3 install -e .   	&& echo 'source /root/gym-gazebo2/provision/mara_setup.sh' >> ~/.bashrc   	"' returned a non-zero code: 137

I'll have a look.

Same for me, I'm working to fix it.

I think the problem is the virtual machine that docker runs to compile the image is running out of memory when we compile the ws.

+1 Lander, I have compilation issues whenever i forget to assign swap memory to my OS. I think its gazebo_ros the package that causes the error, but im not sure.

Confirmed. I'm able to compile it using the following configuration for docker daemon:

Nevertheless, compile the image, will be only for development or for CI. We'll push this image to the dockerHub and the people can download everything compiled.

I'll mark as solved. DockerHub image is ready, we should be updating instructions soon.


Publish to maven central repository

Would it be possible to publish kodein artifacts to maven central repository? This would make it available without the need to configure an additional repository in the project configuration.

I'm pretty happy with JCenter.
Also, I need (for stats) the artifacts to be only in one location.
I don't think it's going to happen, sorry.

Given the recent behaviour of Bintray (see https://blog.autsoft.hu/a-confusing-dependency/), I'm very hesitant to continue using JCenter.
Kodein is the only library I depend on that isn't in Maven Central - would you reconsider moving (or at least mirroring) the package there?

I understand the fear of such articles, but you need to know that publishing to MavenCentral is, by no means, safer.
I have published several libraries into MC, and Sonatype's verification is exactly the same as Bintray's: check that the library exists & that the package name corresponds.
At no point did they ask me anything to prove I was the owner of the repo.
Hence, I don't believe MC is any safer than JC.
I'll have a look at publishing to MC, but no promises there.


[SPARK-48897][PYTHON][CONNECT] Make from_xml support StructType schema

What changes were proposed in this pull request?
Make from_xml support StructType schema
Why are the changes needed?
StructType schema was supported in Spark Classic, but not in Spark Connect
to address https://github.com/apache/spark/pull/43680#discussion_r1385332357
Does this PR introduce any user-facing change?
before:
from pyspark.sql.types import StructType, LongType
import pyspark.sql.functions as sf
data = [(1, '''
1
''')]
df = spark.createDataFrame(data, ("key", "value"))

schema = StructType().add("a", LongType())
df.select(sf.from_xml(df.value, schema)).show()

---------------------------------------------------------------------------
AnalysisException                         Traceback (most recent call last)
Cell In[1], line 7
...
AnalysisException: [PARSE_SYNTAX_ERROR] Syntax error at or near '{'. SQLSTATE: 42601

JVM stacktrace:
org.apache.spark.sql.AnalysisException
	at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(parsers.scala:278)
	at org.apache.spark.sql.catalyst.parser.AbstractParser.parse(parsers.scala:98)
	at org.apache.spark.sql.catalyst.parser.AbstractParser.parseDataType(parsers.scala:40)
	at org.apache.spark.sql.types.DataType$.$anonfun$fromDDL$1(DataType.scala:126)
	at org.apache.spark.sql.types.DataType$.parseTypeWithFallback(DataType.scala:145)
	at org.apache.spark.sql.types.DataType$.fromDDL(DataType.scala:127)

after:
+---------------+
|from_xml(value)|
+---------------+
|            {1}|
+---------------+

How was this patch tested?
added doctest
Was this patch authored or co-authored using generative AI tooling?
no

also cc @sandip-db

Merged to master.


Changed description of function

"a compound type of several arguments and one return" may be misunderstood as "one return statement", but in fact it means "one return value". Also, there might be no return value, i.e. [Any]->Void

@simn Any thoughts on this? What about:

a function which expects zero or more arguments of specific types that will return a value

I think it's fine to consider Void a value here so we don't complicate the short description.

This leads to the old "is Void a type" discussion.

Whether or not it's a type, I think we can all agree it's a return type. Which suggests a simple change:

Function: a compound type of several arguments and one return type

Or for consistency:

Function: a compound type of several argument types and one return type

Or if you're fine leaving out the reference to "compound type":

Function: a collection of argument types plus one return type

Or to make it clearer that we're talking about the function type and not a function definition:

Function: a function signature, consisting of a number of argument types plus a return type

...but that doesn't quite fit the rest of the page. The rest of the page draws less distinction between the type and the value stored in a variable of that type. Perhaps this would fit better:

Function: a Haxe function, with known argument types and return type


[staging] Dialog box for adding new contributor to project's children

I have a project that has two components to it. Both components are shared with a contributor (in the screenshot below, ParodyBit), but the parent project was not shared with her.
After I added the contributor to the parent project, the dialog box still came up, offering me the opportunity to add that contributor to either/both of the components, even though she is already a visible, read/write contributor to both of them.
Screenshot:

Just ran across this issue again. User "brownie sundae" is already a contributor on Corn or Flour, but it does not appear so in the modal.

Still confusing and it appears as though @kushG has a pending fix for this from months ago. Trying to revive this so that we can get it resolved, as I do think it is something that users may encounter frequently


ipcMain sender lost Date object

If you will send async message with Date object, on client you will get empty object.
event.sender.send('async-message', {date: new Date()});

But if you will send sync message, everything's fine.
event.returnValue =  {date: new Date();

My guess is that the date object is garbage collected when sent via async-message.

This is because webContents.send uses a different way of serialization from event.returnValue.


Cannot read property 'highWaterMark' of null

Upgraded from 6.3.1 to 6.4.0 and got a breaking change.
This comes from a VectorTileLayer with a VectorTileSouce that has a custom TileLoadFunction.

Looks like this line is missing a check for whether a tile cache exists or not:
https://github.com/openlayers/openlayers/blob/678a61cba0f3dfca12e5343a56c4dfce0b6d1441/src/ol/source/Tile.js#L328

Looks like this line is missing a check for whether a tile cache exists or not:
https://github.com/openlayers/openlayers/blob/678a61cba0f3dfca12e5343a56c4dfce0b6d1441/src/ol/source/Tile.js#L328

Thank you for a quick reply.
Is there a workaround for this? Or should I just wait for a fix?

At this point, there should be a tile cache available. @rasa2k, could it be that your source projection is misconfigured somehow? Can you share your code in a codesandbox? This issue should be easily fixable by not configuring the VectorTile source with a projection.

I don't have a projection on my source. It's set on the view.
Misconfigured how when the same code works in 6.3.1? Do you know of any changes regarding this?
I can try to share a sandbox example but right now the code is embeded in a larger app, so it will take a while to isolate it.
I can give some code example and hopefully you can see a flaw.
new VectorTileLayer({
    declutter: true,
    source: new VectorTileSource({
      maxZoom: config['MaxZoom'],
      minZoom: config['MinZoom'],
      url: 'tilematrix={z}&tilecol={x}&tilerow={y}',
      tileLoadFunction: tileLoadFunction,
      tileGrid: tileGrid,
    })
  });

tileLoadFunction(tile, url) {
    var response = await Api.meshTileLoadGet(tile, url);
    if (response.data.length !== 0) {
      var featuresJson = new GeoJSON().readFeatures(response.data, {});
      tile.setFeatures(featuresJson);
    } else {
      tile.setFeatures([]);
    }
  }

const tileGrid = new TileGrid({
    extent: extent,
    resolutions: config['Resolutions'],
    minZoom: config['MinZoom'],
  });

This show's my problem.
Click on the map to trigger the problem:
OL 6.4.0 -> 6.4.3:
https://codesandbox.io/s/keen-spence-2fmx7
OL 6.3.1:
https://codesandbox.io/s/quizzical-glade-v6pgn

I also picked up the version and noticed this problem.
From what I can see the problem results from changes in the method:
https://github.com/openlayers/openlayers/blob/v6.4.3/src/ol/renderer/canvas/TileLayer.js#L630
a means that if we do not have an explicitly declared projection (default if null is "EPSG: 3857")
and it is different from the View, it will be this error

Correct, @pecet86. VectorTile sources with a projection different from the view projection worked more or less by chance in previous versions. But you could tell from the map flashing on zoom changes that something was wrong.
And yes, @rasa2k, your map is indeed misconfigured. You cannot use a VectorTile source for different projections. A VectorTile source's projection has to match the view projection. It does not support reprojection. Maybe we should document that better or throw an exception in such cases.

@ahocevar physically, both the info in Upgrade notes for version 6.4.x and an exception in the console would be nice.
Due to the fact that the project in which I caught it worked in this way from version 4.x (already 4 years) and the error from the picture did not say much.
Only after tracing the thread and the source did I find out why.


Fixed scanning on Samsung Grand Prime

https://github.com/phonegap/phonegap-plugin-barcodescanner/issues/392#issuecomment-287672090

Hi!
Interesting PR. Did scanning not work at all, or did you see other symptoms?

The issue was the phone chose the minimum resolution possible, therefore the quality of the image was too poor to enable scanning. Below you can see that the screen in portrait was 540x960, the phone supported 960x540 but it didn't choose it as it didn't take into account if screen resolution and camera resolution are of the same orientation. The issue was present on all phones, but on most phones the default resolution is really high (e.g. 1920, 1080) .This particular's phone's default resolution was 144x176. Logs below:
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Display at: 0
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Camera at: 90
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Final display orientation: 90
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Clockwise rotation from display to camera: 90
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Screen resolution in current orientation: Point(540, 960)
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Supported preview sizes: 1280x960 1280x720 960x540 720x540 800x480 720x480 640x480 640x360 352x288 320x240 176x144
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: No suitable preview sizes, using default: Point(176, 144)
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Camera resolution: Point(176, 144)
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Supported preview sizes: 1280x960 1280x720 960x540 720x540 800x480 720x480 640x480 640x360 352x288 320x240 176x144
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: No suitable preview sizes, using default: Point(176, 144)
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Best available preview size: Point(176, 144)
03-27 11:10:07.062 11143-11143/com.app I/CameraConfiguration: Preview size on screen: Point(144, 176)

Let me merge this and run some tests, I'll let you know how it goes. Thanks for now! 👍

I don't have a device that was problematic, so can only confirm this still works fine with my non-Samsung devices.
Thanks for contributing!


Add support for GDT 3.32768 and 3.32769 - Arakawa E Grids

Add support for grid definition templates 3.32768 and 3.32769, Arakawa Staggered E-Grid and Arakawa Non-Staggered E-Grid, respectively.
Support for these grids have been requested by NCEP/EMC and Belgingur (Iceland).
NCEP RAP models provides output on these grids.

A possible source to help generate lats and lons: https://www.ssec.wisc.edu/realearth/solved-north-american-domain-rap-13-5km-rotated-pole-grib2-for-gis/

https://github.com/Unidata/thredds/pull/531

https://github.com/NCAR/ncl/blob/develop/ni/src/ncl/NclGRIB2.c
Contains functions for handling the Arakawa Rotated Lat/Lon Grid.


Rephrase Russian top menu items to free-up space for search field

Fixes #1175 by rephrasing and reducing amount of words in top menu items in Russian translation.

Thanks @rodion-arr !