org-ref quick copy format

Would it be possible to add the org-ref format to quick copy? It is very similar to the orgmode format except instead of the "@" it uses "cite:". So a reference would look like:
@Wei2015

with orgmode and
cite:Wei2015

with org-ref where "Wei2015" is the cite key.

Totally possible. I'm in the middle of a major code cleanup but I expect to be done somewhere next week, and then it'll be a 10 minute job.

How are multiple citations put together?

Took a little longer than a week BTW 🙄.

:robot: this is your friendly neighborhood build bot announcing test build 4568 ("fixes #651").

Haha no problem. Thanks for doing this.
Each subsequent citekey is comma separated: cite:Yang2018,Ronzitti2017

:robot: this is your friendly neighborhood build bot announcing test build 4573 ("fixes #651").

Can you try 4573?

Closing for inactivity

Apologies for the slow response. The build is no longer accessible. Let me know if there is another way I can test this functionality.
Cheers

:robot: this is your friendly neighborhood build bot announcing test build 5117 ("Merge branch 'master' into 651").

Test builds expire after some time; 5117 has the changes related to this issue but also everything that's in the latest release.

any luck with 5117?

It works in 5117. Cheers.


Airlock data cleanup deletion when moving between stages

Resolves #1963
What is being addressed
Clean up data when moving between stages: after source blob has been copied into destination blob, source blob can be deleted.
How is this addressed

Created a new Service Bus queue and EventGrid topic for blobs that need to be deleted
Send an event from BlobCreatedTrigger function
Added a new function ToDeleteTrigger that is triggered by messages in said queue
Added "copied_from" field to blob metadata to trace where the blob has been copied from

In addition to this, some small refactorings (I left comments to the PR)

/tests-extended

/test-extended

/test-destroy-env

/test-extended

/test-destroy-env

/test-extended

/test-extended

/test-destroy-env

/test-extended

/test-extended

/test-extended

/test-force-approve
The airlock tests pass, the only test that failed is test_create_guacamole_service_into_base_workspace but I think there are now intermittent issues with private endpoint which causes the test to fail often, so I won't attempt to get it to pass on this PR


chore(api): remove jsonrpc backend

What ❔
The new release of jsonrpsee removes all known blockers for removing jsonrpc backend.
Checklist

[ ] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[ ] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.
[ ] Code has been formatted via zk fmt and zk lint.
[ ] Spellcheck has been run via cargo spellcheck --cfg=./spellcheck/era.cfg --code 1.

Meta-comment: I don't think it's a chore, as it contains a fair chunk of new functionality.

@popzxc which is in no way exposed to the user, but I am happy to change to whatever fits

which is in no way exposed to the user, but I am happy to change to whatever fits

@montekki people start to hack around the code too (and will do that more with zkStack), so we should start to treat the API our code provides too; I'd propose it to be a feat so that this thing will appear in changelog.


In PDF, $A$ and $\Alpha$ give identical glyphs. But not in browser.

Description
The unicode code points
MATHEMATICAL ITALIC CAPITAL ALPHA
MATHEMATICAL ITALIC CAPITAL A

are represented by what appear to be identical glyphs. Please note that my shell (on fedora) provides different glyphs for these two code points (see further details below). ~The same goes for my browser, which is Firefox~.
[Edit: Add strike-though and following comment] My browser, which is Firefox, has the same problem when I preview this issue, but not when I am writing it.
Minimal example demonstrating the issue

\documentclass[12pt]{article}
\usepackage[math-style=ISO]{unicode-math}
\begin{document}
\shipout\hbox{$\Alpha$ $A$}
\stop

Further details
This arise from a conversation on texhax, see: https://tug.org/pipermail/texhax/2023-April/026046.html
Most of the following comes from that post. Copy and paste from PDF to Python console (fedora) gives:
>>> tuple(map(ord, '𝛢𝐴'))
(120546, 119860)
>>> import unicodedata
>>> for c in '𝛢𝐴': print(unicodedata.name(c))
...
MATHEMATICAL ITALIC CAPITAL ALPHA
MATHEMATICAL ITALIC CAPITAL A

whether the glyphs are the same or not is purely down to the font designer. There is no issue for unicode-math here.

yes, the latin and greek scripts share some glyph forms. That isn't really suprising in view that they have a common origin. Btw: cyrillic and latin share glyph forms too:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{heuristica}
\begin{document}
AM АМ
\end{document}

I'd like to focus on the user experience. A diligent user might look at the package documentation http://mirrors.ctan.org/macros/unicodetex/latex/unicode-math/unicode-math.pdf, which is recommended for users.
I've searched in that document for \Alpha. I get 3 matches, all for \alpha. From I conclude that even the diligent user would not discover that $\Alpha$ and $A$ produce identical glyphs.  I believe that showing the user this feature in the package documentation would be helpful.
I note that the documentation states:

Maths input can also be simplified with Unicode since literal glyphs may be entered instead of control sequences in your document source.

I fully support this facility being made available.  Unicode is a widely used standard for the interchange of text files containing special characters. However, this Unicode editing faciliity is not so useful if the fonts used by the editing software use identical glyphs for:
MATHEMATICAL ITALIC CAPITAL ALPHA
MATHEMATICAL ITALIC CAPITAL A

It is a little odd that unicode-math requires appropriate glyphs to properly utilise this Unicode-editing feature on input, but does not provide it (in this case) on output.

It is a little odd that unicode-math requires appropriate glyphs to properly utilise this Unicode-editing feature on input, but does not provide it (in this case) on output.

sorry I can not guess what you mean by this. the issue seems unrelated to unicode-math. glyphs are purely a font issue, and as far as I can see all OpenType math fonts have both U+1D6E2 𝛢 and U+1D434 𝐴.  Whether or not these glyphs look the same depends on the font not any latex package. But for cultural and historic reasons I would guess they are the same in most fonts, so I doubt any user is surprised by that.

@davidcarlisle wrote

as far as I can see all OpenType math fonts have both U+1D6E2 𝛢 and U+1D434 𝐴.

Well said and most helpful. When I read and write in the Github issue tracker I see these two as distinct glyphs and so can tell the two code points apart.
But first note that my main point and concern is that the user documentation tell the user that $A$ and $\Alpha$ produce the same glyph. This is, I think we agree, a fact. I believe the user should have ready access to that fact.
Back to the side issue. I will clarify my previous comment.

It is a little odd that unicode-math requires appropriate glyphs to properly utilise this Unicode-editing feature on input, but does not provide it (in this case) on output.

When you created your comment (as quoted about) you could visually check that the two code points are different, because they look different.
This feature is of course useful for anyone authoring a LaTeX source document that uses these two code points in Unicode (as opposed to using $\Alpha$). Without that feature (different glyphs) authoring in math in Unicode would be less pleasant (when both the $A$ and $\Alpha$ code points are in use).
However, my main point is that I'd like the user documentation to tell the user that $A$ and $\Alpha$ produce the same glyph.

As David mentioned, this is a font design choice and unrelated to this package.


How to decrease the size of app.framework on iOS?

Hi,
As we add more and more dart code to our flutter application, we found that the size of app.framework increased greatly(about 5MB for each architecture). We expect there could be some tools or methods to help us determine the most influential factor of the size.
We generate app.framework by using command :
flutter --suppress-analytics build aot --output-dir=build/aot --target-platform=ios --target=lib/main.dart --release --ios-arch=armv7,arm64 --extra-gen-snapshot-options=--print-snapshot-sizes

We tested a case that adding a simple class to the application and use it in some place, before we added the class:
[+14501 ms] VMIsolate(CodeSize): 4732
[        ] Isolate(CodeSize): 2482670
[        ] ReadOnlyData(CodeSize): 2609504
[        ] Instructions(CodeSize): 6835712
[        ] Total(CodeSize): 11932618

and after we added the class:
[+14446 ms] VMIsolate(CodeSize): 4732
[        ] Isolate(CodeSize): 2482791
[        ] ReadOnlyData(CodeSize): 2609728
[        ] Instructions(CodeSize): 6835840
[        ] Total(CodeSize): 11933091

Code of the class:
class RentHeadTest extends StatefulWidget {
  final VisibilityChange _visibilityChange = new VisibilityChange();

  @override
  State<StatefulWidget> createState() => RentHeadCommonState();
}

flutter doctor -v
[✓] Flutter (Channel unknown, v0.8.2, on Mac OS X 10.14 18A293u, locale zh-Hans-CN)
    • Flutter version 0.8.2 at /Users/kangkai/fwn_idlefish/flutter
    • Framework revision 5ab9e70727 (6 days ago), 2018-09-07 12:33:05 -0700
    • Engine revision 58a1894a1c
    • Dart version 2.1.0-dev.3.1.flutter-760a9690c2

[!] Android toolchain - develop for Android devices (Android SDK 26.0.2)
    • Android SDK at /Users/kangkai/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 26.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3.1)
    • Xcode at /Applications/Xcode9.3.1.app/Contents/Developer
    • Xcode 9.3.1, Build version 9E501
    • ios-deploy 1.9.2
    • CocoaPods version 1.6.0.beta.1

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 27.1.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

@eseidelGoogle @mraleph
The app.framework's size increases rapidly after we refactor another business in our app.
Why?
It could be a problem if we want refactor more original existed native logic into flutter if the package size issue lasts.

Thanks for the report.  A couple questions:

You only have one app.framework, correct (not multiple)?
Can you provide a rough estimate of the number of files or LOC in your app and the resulting rough-estimate of the size of app.framework (to sanity check that we aren't facing an egregious compile-size bug)?

@mraleph @a-siva  Are there code-side profiling tools to point @kangwang1988 at?

FYI @goderbauer who is working on reducing our compile sizes across all platforms.

@kangwang1988 @youyou76 can you specify which part of the snapshot grew by 5mb? was it Instructions or ReadOnlyData?
if you are looking  specifically at the instructions then you can use --print_instructions_sizes_to - you pass this option to the gen_snapshot and it would write out a JSON file that contains size for each instruction object written into the snapshot. you can then visualize this data using this script (you need to run it from the Dart SDK checkout).

@mraleph @eseidelGoogle OK, I will compare the size of the old（24MB） and new（34MB） framework by the method you suggested to determine which part impacts size most, thank you!

Hi, @mraleph @eseidelGoogle
We now get the result of comparison:
【before】
VMIsolate(CodeSize): 4664
Isolate(CodeSize): 1753133
ReadOnlyData(CodeSize): 2600528
Instructions(CodeSize): 5915552
Total(CodeSize): 10273877
Building App.framework for arm64...
【now】
VMIsolate(CodeSize): 4664
Isolate(CodeSize): 2568696
ReadOnlyData(CodeSize): 3719408
Instructions(CodeSize):8391424
Total(CodeSize): 14684192
Building App.framework for arm64...
The code size of Isolate increased about 800K, ReadOnlyData increased about 1.1MB, and Instructions increased about 2.4MB.
By using --print_instructions_sizes_to option, we get following comparison of instructions code size:
【before】

【after】

That is awesome and we are able to make more in-depth analysis now.  However, we have no idea about how to analyze the code size of Isolate and ReadOnlyData, is there any way to approach that?

One thing that will help with the size of app.framework is stripping debug symbols. I am working on that as part of https://github.com/flutter/flutter/issues/18693#issuecomment-421308268.

One thing I observe here - is that we still have dart:vmservice lurking around - this should be gone now (/cc @sjindel-google could you verify what is still pulling that in even after we excluded it?)

However, we have no idea about how to analyze the code size of Isolate and ReadOnlyData, is there any way to approach that?

I was planning to implement similar JSON output for ReadOnly/Isolate components - but I did not get to it. That should not be that hard - so I will look into that while on my flights next week.

@mraleph
sorry, the data I supplied is exported by using flutter v0.5.6, so I think it's OK to have dart:vmservice.

Hi，@mraleph @eseidelGoogle
We notice that Json parsing and conversion adds big size in our flutter application, the original size:
Building AOT snapshot in release mode (android-arm-release)...
VMIsolate(CodeSize): 4660
Isolate(CodeSize): 1189322
ReadOnlyData(CodeSize): 1295080
Instructions(CodeSize): 3922880
Total(CodeSize): 6411942
Built to build/aot/.

after add a series of json parses，It's increased by 10068 bytes
void testSize(Map<dynamic, dynamic> json) {
    String name1 = json["name1"] as String;
    String name2 = json["name2"] as String;
    String name3 = json["name3"] as String;
    String name4 = json["name4"] as String;
    String name5 = json["name5"] as String;
    String name6 = json["name6"] as String;
    String name7 = json["name7"] as String;
    String name8 = json["name8"] as String;
    String name9 = json["name9"] as String;
    String name10 = json["name10"] as String;
    String name11 = json["name11"] as String;
    String name12 = json["name12"] as String;
    String name13 = json["name13"] as String;
    String name14 = json["name14"] as String;
    String name15 = json["name15"] as String;
    String name16 = json["name16"] as String;
    String name17 = json["name17"] as String;
    String name18 = json["name18"] as String;
    String name19 = json["name19"] as String;
    String name20 = json["name20"] as String;
    String name21 = json["name21"] as String;
    String name22 = json["name22"] as String;
    String name23 = json["name23"] as String;
    String name24 = json["name24"] as String;
    String name25 = json["name25"] as String;
    String name26 = json["name26"] as String;
    String name27 = json["name27"] as String;
    String name28 = json["name28"] as String;
    String name29 = json["name29"] as String;
    String name30 = json["name30"] as String;
  }

Building AOT snapshot in release mode (android-arm-release)...
VMIsolate(CodeSize): 4660
Isolate(CodeSize): 1190054
ReadOnlyData(CodeSize): 1297248
Instructions(CodeSize): 3930048
Total(CodeSize): 6422010
Built to build/aot/.

after define independent parse method,the size was reduced by 6403 bytes.

VMIsolate(CodeSize): 4660
Isolate(CodeSize): 1189819
ReadOnlyData(CodeSize): 1296264
Instructions(CodeSize): 3924864
Total(CodeSize): 6415607
Built to build/aot/.

Why? Whether my optimization method will have a performance impact？Are there other ways to optimize？

@kangwang1988  x as String is compiled down to some big code. if you do an implicit cast:
    String name1 = json["name1"] /* as String */;

that should yield smaller AOT code.
Of course the result would be even smaller if you share the code across all the call-sites like you did with a helper method.

Whether my optimization method will have a performance impact？

I would say that impact should not be very large - if size is important to you then you should definitely use helpers like that.

@mraleph
Is there any optimization which can be compiled when generating aot code?
Like the optimization level and flags in clang.
As to the call-sites, do you think it should be done by the developers or the compiler might optimize it later?

@youyou76 Can you elaborate on what action you would like us to take specifically to resolve this bug? We are definitely continuing to work on making both our overall footprint smaller and on making specific features in Dart compile more efficiently. If you have a specific concern that you would like us to focus on we can definitely look at doing that too. We're not sure at this point what exactly it is we should do for you to consider this bug resolved, though.

FYI: I just submitted https://github.com/flutter/flutter/pull/22245, which reduces the size of App.framework by about 22% (uncompressed) in my tests on the hello_world and flutter gallery app simply by stripping the debug symbols. A dSYM file with the debug information is created under build/aot/App.dSYM in case they're needed.

@youyou76 Can you elaborate on what action you would like us to take specifically to resolve this bug? We are definitely continuing to work on making both our overall footprint smaller and on making specific features in Dart compile more efficiently. If you have a specific concern that you would like us to focus on we can definitely look at doing that too. We're not sure at this point what exactly it is we should do for you to consider this bug resolved, though.

I think we need tools to analyze code size of Isolate and ReadOnlyData, just like Instructions.

I have filed https://github.com/dart-lang/sdk/issues/34632 to track this work. @sjindel-google would be looking into that.
We also discussed if we can implement outlining pass in the AOT compiler - similar to LLVM's outlining pass - and we will looking into that.
@youyou76 can you share with us more details about the size breakdown of your app? e.g. I saw in the previous screenshots that you have .5MB in the proto section - is that some sort of protobuf serialization/deserialization code? Have you tried drilling down to see where the size comes from?

@mraleph Can you tell me the specific meaning represented by VMIsolate/Isolate/ReadOnlyData/Instructions ?

Instructions are the generated code.
ReadOnlyData are generated code metadata (PcDescriptor, StackMap, CodeSourceMap) and strings
Isolate/VMIsolate are the rest of objects. (e.g. constants you have written in your code and any other VM specific metadata like Class, Function etc objects).

@mraleph thank you!
why  x as String  compiled down to some big code? What is the internal treatment？

@hamiao123 it used to be compiled to a range check and inlined throw, essentially this:
if (x.classId < A && x.classId > B) throw "x is not subtype of String";

We have removed this treatment upstream in https://dart-review.googlesource.com/c/78748 now it should compile down to a much smaller code.

Status: We are awaiting progress on https://github.com/dart-lang/sdk/issues/34632 to be able to make more useful progress here.

I'm going to close the issue since there's nothing actionable for us here any more; please don't hesitate to open a new bug if there's more you would like us to do!

It looks like this never got fixed. All my apps so far are 6-8mb in Android and 30mb each in iOS. All the apps are pretty much basic templates since they use zero images. I even removed the Cupertino icons package so should be very small indeed.
It seems to be about the size everyone is getting on iOS, based on my experience, the OP here and the author of this: https://blog.codemagic.io/flutter-vs-swift/
The question is - why.....Anyway, any idea when this is going to be addressed?

Instructions(CodeSize): 5915552

By the way，anyone know why "Instructions(CodeSize): 5915552" is different from the binary size shown by html file?


Imagefap galleries not downloading

Ripme version: 1.7.70
Java version: java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) Client VM (build 25.191-b12, mixed mode)
Operating system: Windows version 1709 (OS Build 16299.611)
Exact URL you were trying to rip when the problem occurred:
https://www.imagefap.com/pictures/7782666/N-Fucking

Actual Behavior
Not downloading any image. Not even  creating a folder.
"No images found at http://www.imagefap.com/gallery.php?gid=7782666&view=2"

Actually, I think I know the problem. The http site is banned in my ISP. But the https site isn't. Can you please add a feature so that ripme tries the https version, if no images are found at http?

Shouldn't HTTPS be used anyway ?

Actually, I think I know the problem. The http site is banned in my ISP. But the https site isn't

That would do it

Can you please add a feature so that ripme tries the https version, if no images are found at http?

I think an auto https redirect would be better. It should be possible to add in

Still can't download for Image fap. Running version 1.7.86

Any update on this?


push proceeds even if custom resource build fails

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
14
Amplify CLI Version
7.x
What operating system are you using?
macos
Amplify Categories
Not applicable
Amplify Commands
push
Describe the bug
When the typescript compilation fails for custom resources push still proceed (and fail)
Expected behavior
Don't proceed with push if compilation failed
Reproduction steps

add custom resource
modify the TS file to not to compile
push

GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
No response

Yes. It shows the error in red with compilation and then asks 'Do you want to proceed?

"

And on --yes it proceeds

I am also having the same issue

This has been fixed in<EMAIL_ADDRESS>


Enhance #[near_bindgen] to be able to bind to trait implementations - would make composition easy into the contract

The goal is to be able to write reusable components that can be used to compose a contract. For example, FT (NEP-141), Account Storage (NEP-145), etc. The rusty way of doing this is to leverage auto-traits, i.e., blanket trait implementations.
Component
trait KeyValueStore {
    fn get(&self, key: U128) -> Option<U128>;

    fn set(&mut self, key: U128, value: U128);
}

trait HasKeyValueStore {
    fn get_key_value_store(&self) -> &dyn KeyValueStore;

    fn get_mut_key_value_store(&mut self) -> &mut dyn KeyValueStore;
}

impl<T> KeyValueStore for T
where
    T: HasKeyValueStore,
{
    fn get(&self, key: U128) -> Option<U128> {
        self.get_key_value_store().get(key)
    }

    fn set(&mut self, key: U128, value: U128) {
        self.get_mut_key_value_store().set(key, value);
    }
}

type Data = Object<u128, u128>;

#[derive(Default)]
struct KeyValueStoreService;

impl KeyValueStore for KeyValueStoreService {
    fn get(&self, key: U128) -> Option<U128> {
        Data::load(&key.0)
            .unwrap()
            .map(|object| (*object.value()).into())
    }

    fn set(&mut self, key: U128, value: U128) {
        Data::new(key.0, value.0).save()
    }
}

the above code provides a KeyValueStore implementation for any type thate implements HasKeyValueStore
KeyValueStoreService is the resuable component that implements the KeyValueStore

Contract
#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)]
pub struct Contract {
    #[borsh_skip]
    key_value_store: KeyValueStoreService,
}

type Data = Object<u128, u128>;

#[near_bindgen]
impl Contract {
    #[init]
    pub fn init() -> Self {
        assert!(!env::state_exists(), "contract is already initialized");
        Self {
            key_value_store: KeyValueStoreService,
        }
    }
}

impl HasKeyValueStore for Contract {
    fn get_key_value_store(&self) -> &dyn KeyValueStore {
        &self.key_value_store
    }

    fn get_mut_key_value_store(&mut self) -> &mut dyn KeyValueStore {
        &mut self.key_value_store
    }
}

the contract would be able to implement the KeyValueStore trait by implementing the HasKeyValueStoreby wiring in the KeyValueStoreService
the problem is that the KeyValueStore implementation is not bound by near_bindgen

The work around is to implement the trait directly and delegate manually:
#[near_bindgen]
impl KeyValueStore for Contract {
    fn get(&self, key: U128) -> Option<U128> {
        self.key_value_store.get(key)
    }

    fn set(&mut self, key: U128, value: U128) {
        self.set(key, value)
    }
}

Naturally, you don't want to pull in all auto-traits, the trait implementations to pull in should be explicitly defined. I imagine something like this:
#[near_bindgen(KeyValueStore, FungibleToken)]
#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)]
pub struct Contract {
    #[borsh_skip]
    key_value_store: KeyValueStoreService,
}

in the above example, KeyValueStore and FungibleToken trait functions would be bound
and to round it out, near_bindgen would need to also support marker annotations on the trait, e.g., something like

#[near_bindgen_trait]
trait KeyValueStore {

    fn get(&self, key: U128) -> Option<U128>;

    #[payable]
    fn set(&mut self, key: U128, value: U128);
}

in the example above, set is marked as payable
near_bindgen_trait would be a new marker attribute

I'm currently exploring ways to achieve what's stated in this issue (for now, prototyping in here).


Create LICENSE

Fixes ISSUE.

You don't correctly link the pull request to the issue or backworth

solve #1

close #1


Website Down

Describe the bug
Flowbite-Svelte site is giving a 400 Error

Reproduction
Navigate to https://flowbite-svelte.com
Flowbite version and System Info
Not relevant

Yes, I know. I just sent a support request to Vercel.

I'm using a preview build ATM just to view the site as needed
Link for anyone else: https://flowbite-svelte-update-git-fork-jjagielka-tooltip-themesberg.vercel.app

@shinokada Roger that

Fixed.


Package is not compatible with Create React App and it's testing setup

I see the published package contains import statements. This produce the following error in default create react app setup after running npm test
Test suite failed to run

    /home/igor/react-hooks-beer-example/node_modules/wouter/index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import locationHook from "./use-location.js";
                                                                                ^^^^^^^^^^^^

    SyntaxError: Unexpected identifier

Can we publish a transpiled version containing require statements so no babel transpilation would be required inside node_modules?

Good call! I actually was thinking about moving the package declarations back to CommonJS exports. And here is why:

The ES6 module resolution for node_modules is still not standardized. You can use ES6 modules in the browsers now, but only for files that you know the exact location of, but you can't really write something like import { ... } from "wouter" in the browser.
The ES6 modules are still aren't adopted without a flag in Node.js, which makes it hard to test. One of the main reasons we keep Babel as a dev dependency here in wouter is because we want to run Jest, and that creates an extra complexity in my opinion.

So I would rather have something that can easily be imported without a special setup in both setups until the ES6 modules are fully supported.

Usually in package.json of popular packages I see "main" for require and "module" for ES6. See https://webpack.js.org/guides/author-libraries/#final-steps The first one points to the dist version with requires, the second also to dist version but with imports. Webpack is reading the later one and is doing tree shaking of es6 modules

Due to reason I was not able to use it in CRA I had to drop it and write an own minimal routing hook. Which is sad as I loved your package idea

Its here if you're interested :)
https://github.com/mucsi96/react-hooks-beer-example/blob/master/src/core/useRouteParams/useRouteParams.ts
https://github.com/mucsi96/react-hooks-beer-example/blob/master/src/core/Link/Link.tsx
I am not patching push state

Looking good!
Does this work properly? I had issues with it and it seems like popState isn't triggered when the location changed through pushState:

Note that just calling history.pushState() or history.replaceState() won't trigger a popstate event. The popstate event will be triggered by doing a browser action such as a click on the back or forward button (or calling history.back() or history.forward() in JavaScript).

Webpack is reading the later one and is doing tree shaking of es6 modules.

Right, tree shaking seems like a good reason to use ES6 modules.

Check the source of the Link. Apart from doing a push state it triggers a pop state event. Then the implementation of router is very easy.
Yes ES6 is very good. But not for "main" property but for "module"

Check the source of the Link. Apart from doing a push state it triggers a pop state event. Then the implementation of router is very easy.
Yes ES6 is very good. But not for "main" property but for "module"

Hey @mucsi96 I did some research and I think we could carry a folder called cjs/ in our project where we keep all CommonJS versions of our scripts (generated by the rollup on pre-publish).
We could also then point the main to cjs/index.js, however I just want to point out that this won't solve the problem for exports like import a from "wouter/use-location". This is a known behaviour, there was a proposal somewhere specifies the mutiple entry points in package.json, but this is still work in progress.

Yes that would be awesome. I think supporting users with CRA is much more important then exporting ES6 modules. Espetially that even its work in progress Webpack and rollup reads the module property for ES modules. So I don't see any isse by pointing main to cjs and ponting modules to current entrypoint

@mucsi96 Hi, I've just released the latest version v2.2.1 which comes with proper CJS sources, located in the cjs/ folder. The package.json's main field now also points to the CJS source, so it should work fine in both NodeJS and Webpack, Rollup, CRA etc. (they will fetch the ESM sources instead).


fix(sidenav): correctly parse opened boolean attribute.

The sidenav didn't parse the boolean attribute correctly.

Fixes #300.

LGTM


GSEControl creation is not schema valid/correct

Thank you for this plugin. I have done a little recent testing.
I tried to create a new GSEControl and the output is in the attached file:
Test_GSEControl.zip

I noticed an issue with the GSEControl:

<GSEControl name="newGSEControl_001" confRev="10001" type="GOOSE" appId="XAT_2202_M1>>LD0>newGSEControl_001" datSet="newDataSet_001x" appID="hey"/>

The appId is there twice, one appears to be an identity string.
The identity string should not be there at all (i.e. the following attribute should be removed: appId="XAT_2202_M1>>LD0>newGSEControl_001")

I am sorry this was a version conflict on scl-editor. It should work now. Can you confirm?


Is this project still alive?

Hello.
I would like to know if this project is still alive, because there hasn't been recent activity.
Kind regards.

Well there is not much to be fixed and the program works as expected, so low activity is quite ok I think.

I have a small "issue", I'm going to submit another issue about it...

In the meantime I think this one can be closed.

Hi @timofonic
This project is still alive i just was quite busy. Anyway, if you have more issues let me know.
@nodiscc Thanks for helping dude :+1:


configure media query mixins for easier responsive styling

JIRA

A link to the JIRA ticket

Description
Ok... I did this and forgot we're adding Tailwind. I didn't see a card for adding that to the Vue repo but maybe we should prioritize that. I'm not sure if Tailwind will solve all of our responsive needs or if we'll need media queries for edge cases. Let's talk?
CSS variables are not supported in media queries (this Stack Overflow is more helpful).
E.g. you can't do
@media screen and (max-width: --phone-width) {
}

Sprinkling 576px throughout the code for responsive styling felt icky, so this is my attempt at an easier solution for us to use going forward (easier to use, wasn't so easy to configure 😂)
We have some sass variables in screen.scss that we're using in mixins.scss This is to just set up all the different pre-configured media queries that we'll want to use the mixin for. Note: I added some additional breakpoints just in case we want to do more than phone and not-phone going forward.
Then I configured our sass loader to preload the mixins.scss globally so that we don't need to remember to import it into every component that we want to responsive style. It only loads the mixins file, not all our styles so I'm not too worried about style bloat.
If we want more mixins for reusable styles going forward, we can add them to mixins.scss and it should "just work".
Here's some documentation that helped me get to this solution

Vue config CSS loader options
Sass loader options: additionalData
Getting these options to work with Storybook

Reviewer Checklist
This section is to be filled out by reviewers
Testing

[ ] This code was tested by somebody other than the developer. Do not merge until this has been done.

This is deprecated after we configured tailwind breakpoints. If we ever need to include custom scss (like mixins) this will be a good resource to refer to but we don't need it now.


Toast message updation

"Passcode updated successfully"

@Raheel1258 Did not get toast message (I have not done backup and redirected me to backup flow have done the backup and updated passcode but toast did not came

@AreejKhalid21 To update this in Design

Updated in Design in App Access screen:
https://www.figma.com/design/m5eMFTKD391AiJAXaEzgxB/Bitcoin-Keeper?node-id=2280-1802&t=novBcNs2Vw4LhIp5-1


fix(cine): Use the frame rate specified in DICOM and optionally auto play cine

Context
See #2883 and #2939 and thanks go to the authors/contributors of those PRs.

Changes & Results
If the DICOM frame time is specified for a display set, use it as the cine frame rate. For those display sets with frame time specified, optionally start playing cine based on configuration.

Testing
Test A

Open https://deploy-preview-3735--ohif-dev.netlify.app/viewer?StudyInstanceUIDs=<IP_ADDRESS>.4.1.145<IP_ADDRESS>.1188.2803.137585363493444318569098508293
Play cine on each of the various display sets.
Notice the frame rate differs per display set.

Test B

On a local dev server set the configuration value autoPlayCine:true
Open http://localhost:3000/viewer?StudyInstanceUIDs=<IP_ADDRESS>.4.1.145<IP_ADDRESS>.1188.2803.137585363493444318569098508293
Cine should start playing as each display set is viewed/opened.

Checklist
PR

[x] My Pull Request title is descriptive, accurate and follows the
semantic-release format and guidelines.

Code

[x] My code has been well-documented (function documentation, inline comments,
etc.)

Public Documentation Updates

[x] The documentation page has been updated as necessary for any public API
additions or removals.

Tested Environment

[x] OS: Windows 11
[x] Node version: 18.16.1
[x] Browser: Chrome 118.0.5993.71

I found one issue
Previously if the CINE is on, and we change displaySet it correctly plays the new DS, but with this PR that seem to be broken
https://github.com/OHIF/Viewers/assets/7490180/4e4fadde-39d2-4f2f-92d8-f1393b6398c4


Zoom resets on every action

Question
Answer

Java Version
x.y.z

Operating System
e.g. Ubuntu/Windows/MacOS

stack trace
 %paste your stack trace here%

This is a side-affect of RuneScape updating.
Fixed in #4177


Editing category or memo field crashes the extension

Defective ToolKit Feature Name:
Expected Behavior
Ability to edit the category or memo field.
Actual Behavior
Multiple times; can't get past: "An error occurred in Toolkit for YNAB (a browser extension you installed to enhance YNAB). Click here to report the issue to the YNAB Toolkit project."
Steps to Reproduce the Behavior

Double-clicked field (category or memo)
Started typing
Got error message

Export of Toolkit Settings (Bottom Left of Settings Page)
[{"key":"AutoCloseReconcile","value":false},{"key":"CustomFlagNames","value":false},{"key":"DisplayTargetGoalAmount","value":false},{"key":"HideReferralBanner","value":false},{"key":"RunningBalance","value":false},{"key":"ShowCategoryBalance","value":false},{"key":"StealingFromFuture","value":true},{"key":"TargetBalanceWarning","value":true},{"key":"accountsClearSelection","value":false},{"key":"accountsDisplayDensity","value":"0"},{"key":"accountsEmphasizedOutflows","value":false},{"key":"accountsRowHeight","value":"0"},{"key":"accountsStripedRows","value":true},{"key":"activityTransactionLink","value":true},{"key":"betterScrollbars","value":"0"},{"key":"budgetBalanceToZero","value":true},{"key":"budgetProgressBars","value":"0"},{"key":"budgetQuickSwitch","value":true},{"key":"budgetRowsHeight","value":"0"},{"key":"calendarFirstDay","value":"1"},{"key":"categoryActivityPopupWidth","value":"0"},{"key":"changeEnterBehavior","value":true},{"key":"checkCreditBalances","value":true},{"key":"checkNumbers","value":true},{"key":"closeReconcileWindow","value":false},{"key":"collapseExpandBudgetGroups","value":true},{"key":"collapseSideMenu","value":true},{"key":"colourBlindMode","value":false},{"key":"compactIncomeVsExpense","value":false},{"key":"currentMonthIndicator","value":true},{"key":"daysOfBuffering","value":false},{"key":"daysOfBufferingHistoryLookup","value":"0"},{"key":"editButtonPosition","value":"2"},{"key":"enableRetroCalculator","value":false},{"key":"enlargeCategoriesDropdown","value":true},{"key":"exportTransactions","value":false},{"key":"goalIndicator","value":false},{"key":"goalIndicatorWarningColor","value":false},{"key":"googleFontsSelector","value":"0"},{"key":"hideAOM","value":false},{"key":"hideAccountBalancesType","value":"0"},{"key":"hideHelp","value":true},{"key":"highlightNegativesNegative","value":true},{"key":"importNotification","value":"0"},{"key":"incomeFromLastMonth","value":"0"},{"key":"l10n","value":"0"},{"key":"largerClickableIcons","value":false},{"key":"monthlyNotesPopupWidth","value":"0"},{"key":"navDisplayDensity","value":"0"},{"key":"options.dark-mode","value":true},{"key":"pacing","value":"0"},{"key":"popupCalculator","value":true},{"key":"printingImprovements","value":true},{"key":"privacyMode","value":"0"},{"key":"reconciledTextColor","value":"0"},{"key":"removePositiveHighlight","value":true},{"key":"removeZeroCategories","value":false},{"key":"reports","value":true},{"key":"resizeInspector","value":true},{"key":"rightClickToEdit","value":true},{"key":"runningBalance","value":false},{"key":"seamlessBudgetHeader","value":true},{"key":"showIntercom","value":true},{"key":"spareChange","value":false},{"key":"splitKeyboardShortcut","value":true},{"key":"splitTransactionAutoAdjust","value":true},{"key":"squareNegativeMode","value":false},{"key":"stealingFromNextMonth","value":true},{"key":"swapClearedFlagged","value":false},{"key":"toBeBudgetedWarning","value":true},{"key":"toggleSplits","value":false},{"key":"toggleTransactionFilters","value":"1"},{"key":"warnOnQuickBudget","value":false}]

System Settings
ToolKit Version:
Operating System (Mac/Windows/Etc): Mac
Browser (Chrome/Firefox/Safari): Chrome
Browser Version: Version 59.0.3071.115 (Official Build) (64-bit)
Other Extensions:
Adblock Plus 1.13.2
Used on over 100 million devices, Adblock Plus is the world's most popular ad blocker.
Permissions  Options Details
Allow in incognito
Enabled
Application Launcher for Drive (by Google) 3.2
Open Drive files directly from your browser in compatible applications installed on your computer.
Permissions  Details
Allow in incognito
Enabled
Bitly | Unleash the power of the link 2.2.10
Shorten, measure, and optimize your links.
Permissions  Details
Allow in incognito
Enabled
Bookmark Manager 2.2016.128.11729
Bookmark Manager
Permissions  Details
Allow in incognito
Enabled
Evernote Web Clipper 6.12.1
Use the Evernote extension to save things you see on the web into your Evernote account.
Permissions  Options Details
Allow in incognito
Allow access to file URLs
Enabled
Google Docs 0.9
Create and edit documents
Permissions  Details
Allow in incognito
Enabled
Google Docs Offline 1.4
Get things done offline with the Google Docs family of products.
Permissions  Details
Allow in incognito
Enabled
Google Hangouts 2017.420.419.1
Hangouts brings conversations to life with photos, emoji, and even group video calls for free.
Permissions  Details
Allow in incognito
Enabled
GoToMeeting Pro Screensharing <IP_ADDRESS>
GoToMeeting Pro Screensharing
Permissions  Details
Allow in incognito
Enabled
LastPass: Free Password Manager 4.1.56
LastPass, an award-winning password manager, saves your passwords and gives you secure access from every computer and mobile device.
Permissions  Options Details
Allow in incognito
Allow access to file URLs
Enabled
Markdown Here 2.12.0
Write your email in Markdown, then make it pretty.
Permissions  Options Developer website
Allow in incognito
Enabled
Palettab 1.0.6
Bringing awesome colors and fonts to the new tab page! A little bit of something fresh every time you hit that new tab button.
Permissions  Details
Allow in incognito
Enabled
Pinterest Save Button 2.0.8
Save the things you find on the Web.
Permissions  Details
Enable
Save to Pocket 2.1.40
Pocket Extension for Chrome - The best way to save articles, videos and more
Permissions  Options Details
Allow in incognito
Enabled
Toolkit for YNAB 1.0.2
UI customisations and tweaks for the web version of YNAB.
Permissions  Options Developer website
Allow in incognito
Enabled
Trelabels for Trello 1.0.12
Change the labels style on Trello boards.
Permissions  Details
Allow in incognito
Enabled
Trellists: Trello Lists Master 2.6
Allow to hide and show lists at Trello's boards.
Permissions  Details
Allow in incognito
Enabled
Trello 0.0.48
Quickly create Trello cards and access your Trello boards from the Omnibox.
Permissions  Details
Allow in incognito
Enabled
UberConference Screen Sharing 1.1.6
Enables free screen sharing with UberConference
Permissions  Details
Allow in incognito
Enabled
Virtual Hosts 1.2
Access virtual hosts of a server without the need of host redirection or DNS.
Permissions  Details
Allow in incognito
Allow access to file URLs
Enabled
What Facebook Thinks You Like 1.3.2
This extension allows you to navigate how FB collects your data
Permissions  Details
Allow in incognito
Enabled

I am getting this as well.

Same here

Read issue #821 and try the work arounds listed there. If they fix you please close this issue as a duplicate but if they don't fix you, please report back in this issue.

Thanks for the report! Look for the fix in our next release!

Turning off Check Number field stopped the crashing for me.

Hey @rickymcg the fix for this should be in our current release. If you notice the issue still exists and you're definitely running the newest version of the toolkit, please reopen! Thanks!


A6 aftermath: sftp problems: Need a way to test "last mile" problems from within Azure

Need a way to confirm that our sftp connectivity works in production.
We discussed having a separate HealthCheck Azure Function that would know how to ping sftp sites, etc.
Dunno if this is useful, but Rick says ApplicationInsights has a way to trigger a healthcheckevent in an Azure function.
This should be expandable to other hard-to-reach tests in the future, eg, is Redox working?

The first pass of this feature was implemented as follows:
A New Azure function with endpoint called api/healthcheck with a single parameter eg api/healthcheck?sftpcheck=fl-phd.elr  that is, the parameter value is the fullName of a valid Receiver.   So you can check manually, but you can only check one at a time.    Seems to meet the immediate need - we can make this more fancy later.
api/healthcheck will confirm its a valid Receiver fullName from the Settings data, then call code in SftpTransport to connect and disconnect.   To make this test “real”, we want to call as much code in SftpTransport as reasonably possible, but without breaking existing sftp workflow.  I’m hoping this might be just making a function public instead of private.
healthcheck will be protected with a new/different azure Function key, so it’s no more or less secure than our existing api/reports endpoint.
It connects, then attempts to do an ls.   Some sites may block ls, so it’s not clear if this is the ideal test.  For security, the data found in ls will not be returned to the healthcheck caller - simply a pass/fail.


Initial patch for enabling GUIDED mode and mission planning

Checklist

[x] I have performed a thorough review of my code
[x] I have sufficiently commented my code
[x] The implementation follows the project style conventions
[x] All project unit tests are passing
[x] If relevant, documentation has been provided or updated to discuss the changes made
[x] System integration tests were performed successfully

Changes Made
The ArduSub parameters loaded were modified due to their failure to enable the use of GUIDED mode and mission planning via QGroundControl. Furthermore, the setpoint_position and setpoint_velocity MAVROS plugins were added to enable sending commands to the vehicle while in GUIDED mode. From this, users can now switch into GUIDED mode to send commands via MAVROS and can also create missions within QGC for the ROV to execute.
There are a few caveats in this initial patch, however:

The vehicle can fly? If you send a really large positive Z-position (above surface), the vehicle will somehow fly there. For those that try this out, ROS/MAVROS uses the conventional ENU frame, so when you send commands using MAVROS, make sure to send commands in the ENU frame.
I am still unable to select a location in QGC using the Go to location interface. When I try to use that functionality, QGC still indicates that the vehicle does not support GUIDED mode. Nonetheless, I can still set GUIDED mode and arm the vehicle.

Associated Issues

Fixes #63

Testing
Preliminary testing was done in SITL.

@sscari, I tried this out and was able to get some basic mission planning and GUIDED mode commands to work. The ArduSub version integrated in the project should include @rakeshv24's latest PR into ArduSub which now enables velocity setpoints. I haven't tested that out for confirmation though.

@ssicari, I tried this out and was able to get some basic mission planning and GUIDED mode commands to work. The ArduSub version integrated in the project should include @rakeshv24's latest PR into ArduSub too which now enables velocity setpoints. I haven't tested that out for confirmation though.

I pulled the changes and double checked the files have updated, but I still can not get it to work. I run the ros2 launch command with the sim and then I run qgroundcontrol and wait for it to connect. After that I tried to set waypoints but it still failed to change to guided mode, and then I tried to use the drop down menu to change to guided mode but that still didn't work. Is this how you tested it? When you say the preliminary testing was with SITL are you just talking about launching ardusub with the sim? When you talk about the go to interface in qgroundcontrol is that just the interface to set waypoints/have you just been using ROS CLI commands to change it to guided mode? Thank you

Here are the steps that I took to run the updated version (make sure to run colcon build && source install/setup.bash from the colcon workspace beforehand--otherwise the configuration files won't be updated):

Launched Blue: ros2 launch blue_bringup bluerov2_heavy.launch.py use_sim:=true (any of the models should work)
Launch QGC--this can also be open before Blue is launched
Wait for QGC to establish a connection with the vehicle. When the connection is established, you should now see a yellow circle on the Oregon coast where the vehicle is initialized
To switch to GUIDED mode then arm: you could probably do the reverse order, but this is what I ran
You should now be able to send commands to the vehicle using MAVROS and the ROS 2 CLI
If you want to use the mission planning interface, I started by creating a simple mission with a takeoff setpoint and 3 waypoints each with an altitude of -5.0m, uploaded the plan, then, when prompted to start the mission, started the mission using the slider.

With regards to the preliminary testing, yes, the testing was all done with SITL and Gazebo. I'm not at my desktop at the moment, but I will re-check the integration this evening if these steps don't work for you.

@ssicari, I tried this out and was able to get some basic mission planning and GUIDED mode commands to work. The ArduSub version integrated in the project should include @rakeshv24's latest PR into ArduSub too which now enables velocity setpoints. I haven't tested that out for confirmation though.

I pulled the changes and double checked the files have updated, but I still can not get it to work. I run the ros2 launch command with the sim and then I run qgroundcontrol and wait for it to connect. After that I tried to set waypoints but it still failed to change to guided mode, and then I tried to use the drop down menu to change to guided mode but that still didn't work. Is this how you tested it? When you say the preliminary testing was with SITL are you just talking about launching ardusub with the sim? When you talk about the go to interface in qgroundcontrol is that just the interface to set waypoints/have you just been using ROS CLI commands to change it to guided mode? Thank you

Here are the steps that I took to run the updated version (make sure to run colcon build && source install/setup.bash from the colcon workspace beforehand--otherwise the configuration files won't be updated):
1. Launched Blue: `ros2 launch blue_bringup bluerov2_heavy.launch.py use_sim:=true` (any of the models should work)

2. Launch QGC--this can also be open before Blue is launched

3. Wait for QGC to establish a connection with the vehicle. When the connection is established, you should now see a yellow circle on the Oregon coast where the vehicle is initialized

4. To switch to GUIDED mode then arm: you could probably do the reverse order, but this is what I ran

5. You should now be able to send commands to the vehicle using MAVROS and the ROS 2 CLI

6. If you want to use the mission planning interface, I started by creating a simple mission with a takeoff setpoint and 3 waypoints each with an altitude of -5.0m, uploaded the plan, then, when prompted to start the mission, started the mission using the slider.

With regards to the preliminary testing, yes, the testing was all done with SITL and Gazebo. I'm not at my desktop at the moment, but I will re-check the integration this evening if these steps don't work for you.

So after confirming I was on the correct branch and I have the updated files I rebuilt and sourced it. I ran the sim command. After that I launch Qgroundcontrol and wait for it to connect, I will attach a screen shot of what it looks like for me. I have tried using qground control to make a starting take off point followed by two way points of -5.0m and then run it. It says failed to enter guided mode. The ROS CLI and mavproxy commands also says it fails to enter guided mode as well still. As for the SITL what exactly is that in this sense. I know in previous repos we start the sim vehicle of the SITL with the Tools... command. I will keep playing around with it for now and check my qgroundcontrol logs, I have noticed qgroundcontrol loses communication every once in a while maybe there is more to that on my end that is causing these problems. I appreciate the response, no rush! Thank you!

As for the SITL what exactly is that in this sense. I know in previous repos we start the sim vehicle of the SITL with the Tools... command

SITL in this case is the ArduSub + Gazebo interface. When you launch with the simulation ArduSub runs SITL instead of trying to establish a connection with a real vehicle. I'll do some more testing with the patch tonight. The screenshot that you provided is what I would expect things to look like too

As for the SITL what exactly is that in this sense. I know in previous repos we start the sim vehicle of the SITL with the Tools... command

SITL in this case is the ArduSub + Gazebo interface. When you launch with the simulation ArduSub runs SITL instead of trying to establish a connection with a real vehicle. I'll do some more testing with the patch tonight. The screenshot that you provided is what I would expect things to look like too

Ah I see. I am attaching some screenshots here to archive them, while I look into them. These are the messages I receive when Qgroundcontrol loses communication. Thanks again for the information and response!

As for the SITL what exactly is that in this sense. I know in previous repos we start the sim vehicle of the SITL with the Tools... command

SITL in this case is the ArduSub + Gazebo interface. When you launch with the simulation ArduSub runs SITL instead of trying to establish a connection with a real vehicle. I'll do some more testing with the patch tonight. The screenshot that you provided is what I would expect things to look like too

I have been playing around with it some more and still can not seem to figure out what is wrong on my end or what the differences are between our set ups. The images I sent are all related to losing connection but I think that is unrelated to not being able to be changed into guided mode.

I have been playing around with it some more and still can not seem to figure out what is wrong on my end or what the differences are between our set ups. The images I sent are all related to losing connection but I think that is unrelated to not being able to be changed into guided mode.

I apologize for the late response; I have been/will be away for the next few weeks finishing up some field experiments, so I probably won't be able to get this merged and debugged until those are finished. Here are some comments and debugging steps that you could try in the meantime:

I haven't seen the QGC disconnect error in SITL before; although, I have been seeing that on hardware. I was under the impression that it was because of a potential issue with running BlueOS on arm64 (unstable), but it could also be an issue with the latest version of ArduPilot.
The main place that I would look is the localization information being sent to the ArduPilot EKF. Each of the interfaces is being used correctly which indicates to me that the position information that is being sent is getting rejected by ArduPilot for some reason. You could try adjusting the weighting of the EKF to favor the position estimation, try playing around with the EK3 parameters, or look into the pose localization information sent to the EKF (from the Gazebo Localizer). You could also try slowing down/speeding up the Gazebo localizer.
If you haven't already, it may be worth trying a fresh clone
I am using QGC v.4.2.8, but I don't think that is causing the problem

That's fine, I will look into that and possible do a fresh clone. I do not know if you have access to see what version of ardusub you are running? I noticed I am running 4.2 -dev and wondering if the dev branch is unstable and introducing conflicts? Good luck with the field experiments!

You are right; it's certainly possible that there is a conflict with ArduSub. I believe that *-dev releases are actually just the ArduPilot master branch. I develop in the devcontainer, so I pull the latest version of that each time that I build the image (once every other day or so).
Would you be willing to copy all of the log messages in the terminal to a file and share that (I mostly need to look at the Gazebo + ArduSub outputs)? I will look through that to see if there are any differences there.

That's fine, I will look into that and possible do a fresh clone. I do not know if you have access to see what version of ardusub you are running? I noticed I am running 4.2 -dev and wondering if the dev branch is unstable and introducing conflicts? Good luck with the field experiments!

You are right; it's certainly possible that there is a conflict with ArduSub. I believe that *-dev releases are actually just the ArduPilot master branch. I develop in the devcontainer, so I pull the latest version of that each time that I build the image (once every other day or so).
Would you be willing to copy all of the log messages in the terminal to a file and share that (I mostly need to look at the Gazebo + ArduSub outputs)? I will look through that to see if there are any differences there.

Hello, if the *-dev branch works for you I don't think that is the problem then but I still believe it is ardusub related. I copied over the terminal for the sim which I believe should include information on gazebo and ardusub. I am attaching a file too that has the qgroundcontrol terminal if you are curious. If you need any other logs just let me know, thank you!

That's fine, I will look into that and possible do a fresh clone. I do not know if you have access to see what version of ardusub you are running? I noticed I am running 4.2 -dev and wondering if the dev branch is unstable and introducing conflicts? Good luck with the field experiments!

You are right; it's certainly possible that there is a conflict with ArduSub. I believe that *-dev releases are actually just the ArduPilot master branch. I develop in the devcontainer, so I pull the latest version of that each time that I build the image (once every other day or so).
Would you be willing to copy all of the log messages in the terminal to a file and share that (I mostly need to look at the Gazebo + ArduSub outputs)? I will look through that to see if there are any differences there.

Hello, if the *-dev branch works for you I don't think that is the problem then but I still believe it is ardusub related. I copied over the terminal for the sim which I believe should include information on gazebo and ardusub. I am attaching a file too that has the qgroundcontrol terminal if you are curious. If you need any other logs just let me know, thank you!
[Gazebo_ArduSub.txt](https://github.com/eva
Qgroundcontrol.txt
n-palmer/blue/files/12305484/Gazebo_ArduSub.txt)

That's fine, I will look into that and possible do a fresh clone. I do not know if you have access to see what version of ardusub you are running? I noticed I am running 4.2 -dev and wondering if the dev branch is unstable and introducing conflicts? Good luck with the field experiments!

You are right; it's certainly possible that there is a conflict with ArduSub. I believe that *-dev releases are actually just the ArduPilot master branch. I develop in the devcontainer, so I pull the latest version of that each time that I build the image (once every other day or so).
Would you be willing to copy all of the log messages in the terminal to a file and share that (I mostly need to look at the Gazebo + ArduSub outputs)? I will look through that to see if there are any differences there.

Hello, if the *-dev branch works for you I don't think that is the problem then but I still believe it is ardusub related. I have noticed that there are alot of plugins being ignored with mavros and I am not sure if they are supposed to be ignored or not. I copied over the terminal for the sim which I believe should include information on gazebo and ardusub. I am attaching a file too that has the qgroundcontrol terminal if you are curious. I tried to to set a flight plan so the bottom of the log files show the error messages when it fails to switch to guided mode. If you need any other logs just let me know, thank you! Qgroundcontrol.txt Gazebo_ArduSub.txt

I found this screenshot on an article about ardupilot:

and the problem was he was trying to change modes before the IMU was using GPS.
However when looking at my terminal the IMU sets origin but not to the GPS:

That's fine, I will look into that and possible do a fresh clone. I do not know if you have access to see what version of ardusub you are running? I noticed I am running 4.2 -dev and wondering if the dev branch is unstable and introducing conflicts? Good luck with the field experiments!

You are right; it's certainly possible that there is a conflict with ArduSub. I believe that *-dev releases are actually just the ArduPilot master branch. I develop in the devcontainer, so I pull the latest version of that each time that I build the image (once every other day or so).
Would you be willing to copy all of the log messages in the terminal to a file and share that (I mostly need to look at the Gazebo + ArduSub outputs)? I will look through that to see if there are any differences there.

Hello, if the *-dev branch works for you I don't think that is the problem then but I still believe it is ardusub related. I have noticed that there are alot of plugins being ignored with mavros and I am not sure if they are supposed to be ignored or not. I copied over the terminal for the sim which I believe should include information on gazebo and ardusub. I am attaching a file too that has the qgroundcontrol terminal if you are curious. I tried to to set a flight plan so the bottom of the log files show the error messages when it fails to switch to guided mode. If you need any other logs just let me know, thank you! Qgroundcontrol.txt Gazebo_ArduSub.txt

Quick question I am going to add here. What is the gazebo localizer and where is it located? I am assuming it localizes the model in the gazebo sim and sends that data back to ardusub but I am having trouble finding it

That's fine, I will look into that and possible do a fresh clone. I do not know if you have access to see what version of ardusub you are running? I noticed I am running 4.2 -dev and wondering if the dev branch is unstable and introducing conflicts? Good luck with the field experiments!

You are right; it's certainly possible that there is a conflict with ArduSub. I believe that *-dev releases are actually just the ArduPilot master branch. I develop in the devcontainer, so I pull the latest version of that each time that I build the image (once every other day or so).
Would you be willing to copy all of the log messages in the terminal to a file and share that (I mostly need to look at the Gazebo + ArduSub outputs)? I will look through that to see if there are any differences there.

Hello, if the *-dev branch works for you I don't think that is the problem then but I still believe it is ardusub related. I have noticed that there are alot of plugins being ignored with mavros and I am not sure if they are supposed to be ignored or not. I copied over the terminal for the sim which I believe should include information on gazebo and ardusub. I am attaching a file too that has the qgroundcontrol terminal if you are curious. I tried to to set a flight plan so the bottom of the log files show the error messages when it fails to switch to guided mode. If you need any other logs just let me know, thank you! Qgroundcontrol.txt Gazebo_ArduSub.txt

from the Gazebo Localizer). You could also try slowing down/speeding up the Gazebo localizer.
I see the ROS2 node gazebo localizer and where you create it in the localization.launch.py file, but I have a few questions. 1.) I am struggling to find where the code is that could speed up or slow down the localizer, I am only able to find where we create the node and nothing else. Also the ROS2 node gazebo_localizer appears when I leave the localization source as default which is stated to be "mocap". My understanding is that if I leave it to default it will use mocap and should create a node called qualisys localizer instead of gazebo, I am assuming perhaps that gazebo is actually the default source, unless I am misunderstanding something. Thank you!

Hello, if the *-dev branch works for you I don't think that is the problem then but I still believe it is ardusub related. I have noticed that there are alot of plugins being ignored with mavros and I am not sure if they are supposed to be ignored or not. I copied over the terminal for the sim which I believe should include information on gazebo and ardusub. I am attaching a file too that has the qgroundcontrol terminal if you are curious. I tried to to set a flight plan so the bottom of the log files show the error messages when it fails to switch to guided mode. If you need any other logs just let me know, thank you! Qgroundcontrol.txt Gazebo_ArduSub.txt

from the Gazebo Localizer). You could also try slowing down/speeding up the Gazebo localizer.
I see the ROS2 node gazebo localizer and where you create it in the localization.launch.py file, but I have a question. I am struggling to find where the code is that could speed up or slow down the localizer, I found the localization.yaml file as well but it doesn't seem like that is exactly what I am looking for. Thank you!

@ssicari I apologize for my inactivity! I have been finishing up experiments and paper submissions. I transferred ownership of the repo over to my lab's organization, so I recommend recloning. I saw your previous comment regarding unintalling blue and reinstalling it, and when you reclone, you will have to do that anyway

Thank you for the heads up on QGC. Regarding the transfer, are you done with the project, and going forward should I contact your lab? Thank you!

I will continue to be the primary maintainer of the project. I just transferred ownership to give the project a more permanent home for my paper

Thank you for the heads up on QGC. Regarding the transfer, are you done with the project, and going forward should I contact your lab? Thank you!

I will continue to be the primary maintainer of the project. I just transferred ownership to give the project a more permanent home for my paper

Ah I see. I will be traveling for the next few weeks so I will have to try a reclone and see if that helps when I get home. Thank you!

This has grown stale. I'm going to close this


chore: remove unused wireguard-manager-config

Fixes: #169

@uhthomas can you fix the test please?


Emergency transition to hub depends on the spoke environment

When performing emergency transition to hub, the workloads are fetched from the spoke. But if the spoke environment is broken this fetch may fail or be corrupted. A broken spoke might be the reason for performing this action in the first place. The transition should depend only on the hub, and not on the spoke.

Whether a workload is running on the spoke or not can be determined from the state of the workload instance on the hub.


Offline map and geocoding

When it comes to offline maps ,we can make use of MOBAC to get tiles. But when the portion is too big like a whole country, we will have big files of jpg's
Is there any way to get data from extracts here ?
http://download.openstreetmap.fr/extracts
For example ,50 mb of pbf file will result into 1GB of xml.
Also is there a way to get offline reverse geocoding ? I tried Nominatim which i find nice and simple but still requires internet

Mapsforge
On Apr 9, 2016 12:27 PM, "wildfiregt"<EMAIL_ADDRESS>wrote:

When it comes to offline maps ,we can make us of MOBAC to get tiles. But
when the portion is too big like a whole country, we will have big files of
jpg's
Is there any way to get data from extracts here ?
http://download.openstreetmap.fr/extracts
For example ,50 mb of pbf file will result into 1GB of xml.
Also is there a way to get offline reverse geocoding ? I tried Nominatim
which i find nice and simple but still requires internet
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/osmdroid/osmdroid/issues/297

To add some more context, mapsforge is the only tool i know of that comes close. It is GPL licensed though. Some other info, I did do some initial work to write a java utility to read the source data from osm. The next step is to insert the data into a sqlite database of some sort. This would give you the raw osm data which are points and ways.
What might be easier is to rip though the data looking for explicit city/town/state/place POIs and store them to a database, then distribute that with your application. It's probably in the million so size may be a factor. I'd be interested in collaborating with you on this

Mapsforge is licensed under LGPL3. :smile:

@wildfiregt quick update, i reworked my code to use xml pull parser right from the compressed extracts which are bz2 files. Long story short, we can process on device, but it's slow....... very slow. It took hours to process in the emulator for the smallest extract i could find, Delaware, USA.
After it's processed though, queries are pretty quick for reverse geocoding.  This gives you both city, state, and street name to lat/lon

1460601726044 commit! inserts, total record count 5960732 stack 0
1460601770285 commit! inserts, total record count 6119683 stack 0
time 44.241s
record 158951

Dunno what i can help you with. But if you provide how I can make queries. I will be glad to offer search nodes for the app like restaurants,hospitals,hotels ... I'm currently working on this on my project using online Nominaatim

I posted the library here, mostly because i don't have permissions to make new repo's under the osmdroid organization. Enjoy
https://github.com/spyhunter99/osmreader


Unable to build on Ubuntu 20

Issue Description
cmake -B build -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug doest work
Steps to Reproduce
Just run it on Ubuntu 20
fatal: not a git repository (or any of the parent directories): .git
-- Using 5 cores for ExternalProject builds.
-- rippled version: 1.10.1
-- using [] as build container tag...
CMake Error at CMakeLists.txt:76 (find_package):
By not providing "Findlz4.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "lz4", but
CMake did not find one.
Could not find a package configuration file provided by "lz4" with any of
the following names:
lz4Config.cmake
lz4-config.cmake

Add the installation prefix of "lz4" to CMAKE_PREFIX_PATH or set "lz4_DIR"
to a directory containing one of the above files.  If "lz4" provides a
separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
See also "/2/rippled-1.10.1/build/CMakeFiles/CMakeOutput.log".
See also "/2/rippled-1.10.1/build/CMakeFiles/CMakeError.log".

You'll need to read the new build instructions, please.

I use new docs but when i try to compile I have
-- Conan: Including build module from '/root/.conan/data/grpc/1.50.1///package/569263efe1e5a12012e35d8c0568a8b22bb0cebd/lib/cmake/conan_trick/grpc_python_plugin.cmake'
-- Conan: Including build module from '/root/.conan/data/grpc/1.50.1///package/569263efe1e5a12012e35d8c0568a8b22bb0cebd/lib/cmake/conan_trick/grpc_ruby_plugin.cmake'
CMake Error at CMakeLists.txt:114 (find_package):
By not providing "Findcassandra-cpp-driver.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"cassandra-cpp-driver", but CMake did not find one.
Could not find a package configuration file provided by
"cassandra-cpp-driver" with any of the following names:
cassandra-cpp-driverConfig.cmake
cassandra-cpp-driver-config.cmake

Add the installation prefix of "cassandra-cpp-driver" to CMAKE_PREFIX_PATH
or set "cassandra-cpp-driver_DIR" to a directory containing one of the
above files.  If "cassandra-cpp-driver" provides a separate development
package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
See also "/2/rippled-1.10.1/.build/CMakeFiles/CMakeOutput.log".
See also "/2/rippled-1.10.1/.build/CMakeFiles/CMakeError.log".
I have installed casandra by apt install

You'll need to pass -o reporting=true to conan install. I'll add that to the instructions.

Doesn't work how? We might want to edit the title of this issue, or open a different issue, now that the original problem is resolved.

@safetylab if the problem in your initial description has been resolved, feel free to close this issue and open a new one.


Potentially high CPU use from Yabai/WindowServer from latest HEAD

Hi,
I'm wondering if there's anything I can do to investigate or improve the CPU load from WindowServer that might be coming from Yabai recently. I'm running the latest from HEAD on 10.15.5. It's a 15" mid-2018 MacBook Pro w/32 GB RAM.
 ```

Forgot the figure - WindowServer is about 30 %.

Are you certain that comes from yabai running? The WindowServer spikes in cpu usage quite a lot for me, even when yabai is not running, depending on the other applications that I am running.

That's a totally fair question. I see Skylight in the Spindump & window switching/tiling has become much more slow than in previous builds. Would it be helpful to post any other process information to help with a diagnosis one way or the other?

Well one quick test I'd do is to simply have yabai running, open acitivty monitor or some other monitoring tool, and just watch the cpu usage while doing nothing. When you are not actively opening/moving windows, moving the cursor etc, yabai is doing nothing and all threads are sleeping. So in this state, if the WindowServer still has a high cpu usage, that would be caused by something other than yabai.

Hi - I disabled Yabai and had the same CPU usage from WindowServer. It's not Yabai. :-(

This one is most probably related with Übersicht.


Contextmenu is not triggered on iOS13

After iOS was updated to 13 version long press doesn't work and contextmenu event is not triggered.

double-tap to fire doubleClickZoom won't work either in iOS 13. A fix for contextmenu is much more important to solve.

I do confirm the same issue. After initial examination is seems that iOS 13 Safari does not fire touch events properly.
Long tap in iOS Safari does not send any event to Leaflet library and is handled by iOS itself.
Double click emits following events: mouseover, mousemove, mousedown, mouseup, click, which results in leaflet's event click.
It seems to me like serious issue in mobile Safari iOS 13 and I guess it has something to do to make mobile Safari very similar to desktop Safari. Unless touch events are sent properly to Leaflet I am afraid there is not much to be fixed.
Is here anyone that will report this to Apple?

Last week  I send a report to Apple support. There is still no answer.

I have a little bit more information. If add click handler on map div and zoom control is enabled, then the long press started work as copy/paste context menu.
like that
Maybe it'd be usefull for someone.

As a temporary solution for long-press:
add this library
https://www.cssscript.com/handle-long-press-tap-event-in-javascript-long-press-js/
than add listener for long-press event. And here in event handler convert coordinates to leaflet coordinates.

Does the library works? So far I have checked source code and the library listens to touch events that are not sent down to Safari anyway. Just curious.

Yes, it works. For long-press at least.
I have checked it on iOS13 and iPadOS13

great tip thx

This is final solution as we use it. It detects long tap and emulate 'contextmenu' MenuEvent. Just place it in your JS codes and you should be good.
Note: It is good idea to limit execution just for iOS 13 users, not to have too much listeners
// Copied and modified from https://github.com/john-doherty/long-press-event/

import rs from 'rootScope'
import $ from '$'

if( rs.platform === 'ios' && / OS 13_/.test( navigator.userAgent ) ) {

	// This is our main map el
	const mapEl = $('#map-container')

	// This class adds 	-webkit-user-select: none; -webkit-touch-callout: none;
	// to the BODY el
	document.body.classList.add('ios13')

	let timer = null;

    const fireLongPressEvent = originalEvent => {

        clearLongPressTimer();

		const el = originalEvent.target
		, x = originalEvent.touches[0].clientX
		, y = originalEvent.touches[0].clientY

		// This will emulate contextmenu mouse event
		const event = new MouseEvent('contextmenu', {
									bubbles: true,
									cancelable: true,
									clientX: x,
									clientY: y
								})

        // fire the long-press event
        const suppressClickEvent = el.dispatchEvent.call(el,event);

        if (suppressClickEvent) {

            // temporarily intercept and clear the next click
            mapEl.addEventListener('touchend', function clearMouseUp(e) {
                mapEl.removeEventListener('touchend', clearMouseUp, true);
                cancelEvent(e);
            }, true);
        }
    }

    const startLongPressTimer = e => {
		clearLongPressTimer(e);
        timer = setTimeout( fireLongPressEvent.bind(null,e), 1000 );
    }

    const clearLongPressTimer = () => {
		if(timer) {
			clearTimeout(timer);
			timer = null;
		}
    }

    const cancelEvent = e => {
        e.stopImmediatePropagation();
        e.preventDefault();
        e.stopPropagation();
	}

    // hook events that clear a pending long press event
    mapEl.addEventListener('touchcancel', clearLongPressTimer, true);
    mapEl.addEventListener('touchend', clearLongPressTimer, true);
    mapEl.addEventListener('touchmove', clearLongPressTimer, true);

    // hook events that can trigger a long press event
	mapEl.addEventListener('touchstart', startLongPressTimer, true); // <- start

}

came across this thread while looking into a similar issue. I found that calling preventDefault on touchstart will allow you to receive touch events as usual and thus check for double tap as before.
I believe this comes down to the fact that mobile Safari changed the way it is simulating hover events (to make websites work that solely rely on hover events to open menus and such)

came across this thread while looking into a similar issue. I found that calling preventDefault on touchstart will allow you to receive touch events as usual and thus check for double tap as before.
I believe this comes down to the fact that mobile Safari changed the way it is simulating hover events (to make websites work that solely rely on hover events to open menus and such)

So far works opposite for me, just suppress all the clicks except for long tap. Can you share piece of code that works for you?

sorry I was assuming you were using raw touch events to detect double taps. If you are relying on click/mouse events then preventDefault on touchstart will prevent those.
Either way, it appears to have been a bug in iOS which was fixed in 13.1.

@felixhageloh I just tested on iOS 13.1 running this demo:
http://aratcliffe.github.io/Leaflet.contextmenu/examples/index.html
But it doesn't seem like the issue has been fixed! Is there something I'm missing out?
Really critical issue for us since we heavily rely on the long press event to work, any help will be appreciated.

This is issue is referenced from WebKit bug #202143. The WebKit team (in this case, me) is investigating.

This is issue is referenced from WebKit bug #202143. The WebKit team (in this case, me) is investigating.

We are very happy you are diving into this issue. As a web developers we would be happy the Safari on iOS 13.x would behave the same way as on iOS 12.x or Chrome on Android in case of touch events.
Happy you are here.

@majid701 sorry if I caused some confusion. The issue I was seeing in 13.0 was:
double tap (quickly) -> a single touchstart and touchend was fired.
Since 13.1 I am correctly receiving two touchstart and touchend events again. The app I am maintaining uses raw touch events to detect double taps, so this fixed double tap zoom for us. I was incorrectly assuming this would be the case for you as well.

if( rs.platform === 'ios' && / OS 13_/.test( navigator.userAgent ) )

Note @ilblog that this isn't going to work on iPadOS where the user-agent string is the same as Safari on desktop and won't advertise iOS.

(reposting from the WebKit bug so people Cc'd to this bug alone can see this.)
The contextmenu Leaflet event is not triggered because the Leaflet code uses pointerdown and touchstart events interchangeably and the availability of the former excludes the other. In Map.Tap.js the _onDown method has this check if (!e.touches) { return; } which will always lead to an early return since a PointerEvent event is not the same as a TouchEvent and does not have a touches property.
So the lack of a Leaflet contextmenu event being triggered is a Leaflet issue specifically.

Actually, this code isn't even run with Pointer Events because of this code:
if (Browser.touch && !Browser.pointer) {
	Map.addInitHook('addHandler', 'tap', Tap);
}

On iOS 13 bothBrowser.touch and Browser.pointer are true so the whole package isn't initialized.

Last week I send a report to Apple support. There is still no answer.

@ginger-777 Do you have a bug number / feedback ID? Generally though the best way to get the attention of WebKit developers is to file a bug directly at bugs.webkit.org.

@graouts Yes i noticed that as well after reading your last comment. But I tested out disabling Pointer Events from Settings -> General -> Experimental Features and it looked like that it works on this demo website:
http://aratcliffe.github.io/Leaflet.contextmenu/examples/index.html
But it doesn't work inside my app. I am loading leaflet inside a Webview.

As for double-tap-to-zoom, that is also an issue with Leaflet. Consider this code in DomEvent.DoubleTap:
function onTouchStart(e) {
	var count;

	if (Browser.pointer) {
		if ((!Browser.edge) || e.pointerType === 'mouse') { return; }
		count = _pointersCount;
	} else {
		count = e.touches.length;
	}

	if (count > 1) { return; }

	var now = Date.now(),
	    delta = now - (last || now);

	touch = e.touches ? e.touches[0] : e;
	doubleTap = (delta > 0 && delta <= delay);
	last = now;
}

If a browser supports Pointer Events and it is not Edge then the function exits early. This is the case of Safari or any WebKit-based browser on iOS 13.
As far as I can tell, both issues reported here are Leaflet simply not being ready for a browser that supports both Touch Events and Pointer Events (long press and the contextmenu event) or supports Pointer Events but is not Microsoft Edge (double tap and the dblclick event).
I closed the WebKit bug as there is nothing for us to fix at this stage.

@graouts Yes i noticed that as well after reading your last comment. But I tested out disabling Pointer Events from Settings -> General -> Experimental Features and it looked like that it works on this demo website:
http://aratcliffe.github.io/Leaflet.contextmenu/examples/index.html
But it doesn't work inside my app. I am loading leaflet inside a Webview.

Yes @majid701, I think this setting only applies to Safari, not WKWebView or any other way to embed WebKit on iOS. I'm not sure how you can disable Pointer Events outside of the Safari app.

I think the solution will be to fix Leaflet library which detects iOS 13 Safari as edge and handles PointerEvents not correctly.
Thanks a lot @graouts for your effort and a lot of help in this matter.

There is PR just in motion https://github.com/Leaflet/Leaflet/pull/6815 concerning double tap on mobile devices, patching same lines of code, so I have asked them to cover this issue also.

if( rs.platform === 'ios' && / OS 13_/.test( navigator.userAgent ) )

Note @ilblog that this isn't going to work on iPadOS where the user-agent string is the same as Safari on desktop and won't advertise iOS.

Well this is is interesting, since it can trigger another series of issues, when developers are unable to distinguish macOS vs iPad. This is not related of this Leaflet bug but I think it should be addressed also by Apple.
https://forums.developer.apple.com/thread/119186

SOLVED
Thanks to valuable input from Apple I have managed to fix iOS 13 issue at least on iPhone. Since iPad on iOS13 has the same user agent string as macOS, I was unable to fix the issue on iPad.
Just modify src/core/Browser.js like this:
// 'false' for all iOS devices, that (as of version iOS13 support both, touch and pointer events)
// Unfortunately as of iOS13 it is not possible to distinguish iPad from OS X by user agent string
export var pointer = !!(window.PointerEvent || msPointer) && !userAgentContains('iphone');

Pull request with the fix is here
https://github.com/Leaflet/Leaflet/pull/6827

if( rs.platform === 'ios' && / OS 13_/.test( navigator.userAgent ) )

Note @ilblog that this isn't going to work on iPadOS where the user-agent string is the same as Safari on desktop and won't advertise iOS.

Well this is is interesting, since it can trigger another series of issues, when developers are unable to distinguish macOS vs iPad. This is not related of this Leaflet bug but I think it should be addressed also by Apple.

Generally, making decisions based on the user-agent string is not the optimal approach. Feature detection on a case-by-case basis suits the vast majority of use cases. Additionally, Safari on iPadOS may use a different user-agent string depending on the device class (iPad mini vs. other larger-screen iPad models) or depending on the size of the window in multi-tasking where Safari may use a third of the screen, or even depending on the user preference (request mobile/desktop website).
If there are cases where feature detection is not suitable, please raise a bug on bugs.webkit.org and the WebKit team will be able to determine the best solution.

In iPadOS 13 you can deactivate Pointer Event in iPad Settings > Safari > Advanced > Experimental Featrues > (deactivate) Pointer Events
Leaflet in Safari will now detect events.

Any updates on how to solve this issue for iPadOS 13?
I'm using mousedown/mouseup events.

Hi all,
I tried a better solution than just sniffing the UA and fudging it, as it should be more stable.
https://github.com/Leaflet/Leaflet/pull/6855
It's still sniffing the UA, but just so I don't change code for platforms I can't test. The edge condition seems to be there for bailing out due to possible dblclick events being triggered, or something? It looks to me (I'm not well-versed in JS, though) that the Browser.pointer feature test for Pointer Events should be the only test we need in there, and other tests should be narrow and very specific, instead of "if not Edge, bail out" (missing a "why?"), it looks like it should be "if Edge, do something different" (with a reason in comments).
I'm still having an issue with iOS13 on an iPad, though.
@graouts: Re: https://github.com/Leaflet/Leaflet/issues/6817#issuecomment-536581361 and https://github.com/Leaflet/Leaflet/issues/6817#issuecomment-536587962 :
I'm trying to make this work on iPad (fixed it on iPhone with the PR above), but there is no triggering of a second pointerdown if I do a double-tap. I've sent breakpoints, added log() calls, and I can't see any being triggered. It looks like the iPad is omitting the second tap in some situations.
I can make it zoom with a "triple/quadruple click", but not with a double-click. logs on the global handlers (which are a compatibility layer for things requesting touchstart/touchend) don't trigger on double-taps.
Any idea on what the iPad (with iOS13) could be doing to omit those second taps? Threshold is 250ms, but I can't get the second tap to register if it's faster than ~320ms.
I do have <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> in my header, as mentioned in the "Leaflet for mobile" page.

@graouts (sorry, not picking on you, just asking you because you mentioned being from the WebKit team):
If you try the following event listener test page:
https://patrickhlauke.github.io/touch/tests/event-listener.html
You can see the difference between iOS13 on iPhone and iPad. on the iPhone, I can double-tap the button and see two sequences of pointerdown+pointerup. On the iPad, I can't trigger this sequence with a double tap. It hold events for a while.
Thank you,
Filipe

@filcab Please file a bug on bugs.webkit.org and I will take a look! That said, I believe this issue has been fixed in iOS 13.2 for which developer seed builds are already available on developer.apple.com. But always file a webkit.org bug for the team to take a look.

@filcab Please file a bug on bugs.webkit.org and I will take a look! That said, I believe this issue has been fixed in iOS 13.2 for which developer seed builds are already available on developer.apple.com. But always file a webkit.org bug for the team to take a look.

I've filed https://bugs.webkit.org/show_bug.cgi?id=203031

Hey everyone, thanks a lot for all the value input — we're looking into this ASAP. I'm on vacation so won't be able to code, but pinged some other maintainers to prioritize.
Quickly skimming through the discussion, it looks like the source of the issue is iOS13 supports the pointer events spec, so Leaflet partially takes code paths that we optimized specifically for legacy IE mobile browsers where the usual touch events weren't available.
Agent string sniffing like in #6827 isn't very reliable (can break at any moment); fixing pointer events like in #6855 might be better but still very risky considering we never intended for pointer code paths to work in modern browsers when we wrote that code; maybe we should try disabling pointer events completely if we detected earlier that regular touch events work properly (so, something like export var pointer = !webkit && !!(window.PointerEvent || msPointer))?

Hey everyone, thanks a lot for all the valuable input — we're looking into this ASAP. I'm on vacation so won't be able to code, but pinged some other maintainers to prioritize.
Quickly skimming through the discussion, it looks like the source of the issue is iOS13 supports the pointer events spec, so Leaflet partially takes code paths that we optimized specifically for legacy IE mobile browsers where the usual touch events weren't available.
Agent string sniffing like in #6827 isn't very reliable (can break at any moment); fixing pointer events like in #6855 might be better but still very risky considering we never intended for pointer code paths to work in modern browsers when we wrote that code; maybe we should try disabling pointer events completely if we detected earlier that regular touch events work properly (so, something like export var pointer = !webkit && !!(window.PointerEvent || msPointer))?

That sounds good, especially if the pointer events' code isn't as recent as I expected. I'll update my PR with your proposed patch (just tested on iPad and iPhone with iOS 13 and it works on both).
Thank you,
Filipe

From a standards point of view, using Pointer Events (where available) rather than touch events is preferable as it is a W3C standard and not a vendor-specific technology.
From a technical point of view, at least for the iOS implementation, there are performance implications. Touch events are always dispatched synchronously, so any JS work performed as a result of handling them will be blocking and may yield inferior responsiveness. Pointer Events were designed in such a way that they can be implemented asynchronously, and on iOS they are.
Two things worth considering, maybe not for this particular issue, but worth keeping in mind for the future.

could it be that fix #6855 does not work on markers? I'm getting reports that a long tap on a marker does not trigger contextmenu  but the share/copy OS menu appears... I can't text myself

Finally I found the solution:
We need to update to leaflet 1.5 and enable de Tap on the:
 new L.map("mapid",{ attributionControl: false, zoomControl: false, tap: true });
and works fine.
Best Regards

@bitxenio,
I'm afraid it doesn't work for me using 1.5.1
I'm back to writing my own handler for now as IOS 13.2 also doesn't seem to work either :(

@rwillett, @Bitxenio : What code are you using? Both of you mention specific versions of leaflet.
The fix for PR#6855, committed in October, isn't in the latest release, which was back in May.
Are you using master?
Thank you,
Filipe

Ah! We used the official release. We didn't realise that PR#6855 wasn't included.  Our fault.
Is master available as an easy to use download or do we have to build a release from it? It looks like we have to build a release but we're not GIT experts.
Thanks
Rob

We downloaded 1.6-dev and it works fine.
Thanks for the help,
Rob

Released in 1.6.0


Improve TypeHints

Solves #498. Adding extensions in the proper order as mentioned in dev guide.
Note that I have maintained the order of all other extensions, adding two before and after sphinx.ext.napoleon.
If this is correct I will proceed to do the same in pydpf-post (see pyansys/pydpf-post#160).

Hi @GuillemBarroso, just to let you know that despite the check being green for the doc generation job, if you take a look at the artifacts you will see that the doc only is 22kB, which means it has not been generated.
This is a current problem with the doc generation job, adressed in #491 , yet for now you should take a look at the doc job to see what went wrong.

Thank you for the heads up @PProfizi.
I have just checked the artifacts in pyansys/pdf-post#164 and it looks like the documentation was properly generated. It should have something to do with the order of the extensions. I'll try to fix it now.


Add Lonboard map to Afghanistan 2022 vector notebook

What I did
I added another map and prose to have both the shake map and population on the same map. The population hex bins, using the threshold values already defined, now have a color ramp applied to them.
I did this to "tie the pieces together" and show what a final map with all of the relevant information could look like

How to review

[ ] Do you agree with the changes?
[ ] Does it work locally?
[ ] Does it work in the JupyterHub environment?

I spoke too soon. Right when I pushed a commit, the ReviewNB comment was added. Is @wrynearson not part of some list that enables the previews?

@zacharyDez you have to approve ReviewNB on new repos for it to work.

@wildintellect, it was already approved.


TransactionalBucket#set(V, Duration), PSETEX is called before MULTI

More information:
https://github.com/redisson/redisson/issues/5561

Thanks for contribution!