[google_maps_flutter_web] [web] onMapCreated not called with AnimatedOpacity

Steps to Reproduce
Here is the basic gist of showing google maps after its being created.
bool isMapVisible = false;

AnimatedOpacity(
  opacity: isMapVisible ? 1.0 : 0,
  duration: Duration(milliseconds: 600),
  child: GoogleMap(
    initialCameraPosition: CameraPosition(
      target: LatLng(
        37.4503622703105,<PHONE_NUMBER>6313339),
        zoom: 16,
    ),
    onMapCreated: (GoogleMapController controller) {
      _controller.complete(controller);
      Future.delayed(
          const Duration(milliseconds: 550),
          () => setState(() {isMapVisible = true;}));
    },
))

While the above code works for iOS and Android, it fails to run on flutter web.
The onMapCreated callback is never called when opacity is set to 0.0 initially.
Expected results:
Actual results:

flutter doc -v
ahetawal@thatch thatch (main)*$ flutter doctor -v
[✓] Flutter (Channel stable, 2.5.1, on macOS 11.6 20G165 darwin-x64, locale en-US)
    • Flutter version 2.5.1 at /Users/ahetawal/sdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffb2ecea52 (2 weeks ago), 2021-09-17 15:26:33 -0400
    • Engine revision b3af521a05
    • Dart version 2.14.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/ahetawal/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1)
    • IntelliJ at /Users/ahetawal/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1)
    • IntelliJ at /Users/ahetawal/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.5080.55/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.59.0)
    • VS Code at /Users/ahetawal/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.26.0

[✓] Connected device (2 available)
    • iPhone 11 Pro (mobile) • EEC598B2-5A92-43AA-8C44-76033FDE5268 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 94.0.4606.61

• No issues found!
</details>

Hi @ahetawal-p, Thanks for filing the issue. I can reproduce the issue on the latest stable 2.5.2. and the master channel. The Map fails to load and throws an assertion failure when the initial opacity is 0. With this error, the other widgets also do not load this can be understood from the below code sample.
dependencies used:

google_maps_flutter: ^2.0.11
google_maps_flutter_web: ^0.3.2

minimal code sample
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Google Maps Demo',
      home: MapSample(),
    );
  }
}

class MapSample extends StatefulWidget {
  @override
  State<MapSample> createState() => MapSampleState();
}

class MapSampleState extends State<MapSample> {
  final Completer<GoogleMapController> _controller = Completer();

  static const CameraPosition _kGooglePlex = CameraPosition(
    target: LatLng(37.42796133580664, -122.085749655962),
    zoom: 14.4746,
  );

  static const CameraPosition _kLake = CameraPosition(
      bearing:<PHONE_NUMBER>395799,
      target: LatLng(37.43296265331129, -122.08832357078792),
      tilt: 59.440717697143555,
      zoom: 19.151926040649414);
  bool isMapVisible = false;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: [
          SizedBox(
            height: 500,
            child: AnimatedOpacity(
              opacity: isMapVisible ? 1.0 : 0,  /// with 0 initial opacity map fails to load
              duration: const Duration(milliseconds: 5000),
              child: GoogleMap(
                mapType: MapType.hybrid,
                initialCameraPosition: _kGooglePlex,
                onMapCreated: (GoogleMapController controller) {
                  _controller.complete(controller);
                  setState(() {
                    isMapVisible = true;
                  });
                },
              ),
            ),
          ),
          Center(
            child: AnimatedOpacity(
              opacity: isMapVisible ? 1.0 : 0,
              duration: const Duration(milliseconds: 5000),
              child: Container(
                height: 200,
                width: 200,
                margin: EdgeInsets.all(50),
                color: Colors.red,
              ),
            ),
          )
        ],
      ),
      floatingActionButton: FloatingActionButton.extended(
        onPressed: _goToTheLake,
        label: const Text('To the lake!'),
        icon: Icon(Icons.directions_boat),
      ),
    );
  }

  Future<void> _goToTheLake() async {
    final GoogleMapController controller = await _controller.future;
    controller.animateCamera(CameraUpdate.newCameraPosition(_kLake));
  }
}

logs
Restarted application in 2,824ms.
Error: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/surface_factory.dart:111:12
_cache.contains(surface)
is not true
    at Object.throw_ [as throw] (http://localhost:50320/dart_sdk.js:5061:11)
    at Object.assertFailed (http://localhost:50320/dart_sdk.js:4986:15)
    at _engine.SurfaceFactory.new.isLive (http://localhost:50320/dart_sdk.js:139913:51)
    at _engine.Surface.new.[_contextLostListener] (http://localhost:50320/dart_sdk.js:139641:19)

flutter doctor -v
[✓] Flutter (Channel stable, 2.5.2, on macOS 11.6 20G165 darwin-arm, locale en-GB)
    • Flutter version 2.5.2 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 3595343e20 (3 days ago), 2021-09-30 12:58:18 -0700
    • Engine revision 6ac856380f
    • Dart version 2.14.3

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 60.1.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.59.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.26.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 94.0.4606.71

• No issues found!

[✓] Flutter (Channel master, 2.6.0-12.0.pre.165, on macOS 11.6 20G165 darwin-arm, locale en-GB)
    • Flutter version 2.6.0-12.0.pre.165 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a20743ddfe (3 days ago), 2021-09-30 23:43:02 -0400
    • Engine revision 8ec71b64f6
    • Dart version 2.15.0 (build 2.15.0-167.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 60.1.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.59.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.26.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 94.0.4606.71

• No issues found!

@ahetawal-p I think in some code paths opacity: 0 is interpreted as: "do not render this widget initially, it won't show up!".
As a workaround, can you try something like:
  opacity: isMapVisible ? 1.0 : 0.00001,

That way opacity will not be "0" for the framework (but it will be for the human eye).

(I have a hunch that this is not a GoogleMap issue, it's probably a general issue with PlatformViews. A VideoPlayer widget would probably have the same issue if rendered with 0% opacity)

(I have a hunch that this is not a GoogleMaps-only issue, it's probably a general issue with PlatformViews. A VideoPlayer widget would probably have the same issue if rendered with 0% opacity)

I just verified with video_player: ^2.2.5 works fine on mobile platforms with 0% opacity on stable 2.5.2, I could not verify it on the web the video fails to load with or without the AnimatedOpacity, will update the comment if I see any difference.

code sample
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(),
    );
  }
}

class VideoPlayerWidget extends StatefulWidget {
  const VideoPlayerWidget({Key? key}) : super(key: key);

  @override
  _VideoPlayerWidgetState createState() => _VideoPlayerWidgetState();
}

class _VideoPlayerWidgetState extends State<VideoPlayerWidget> {
  @override
  void dispose() {
    super.dispose();
    _controller.dispose();
  }

  late VideoPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = VideoPlayerController.network(
        // 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4'
        'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4')
      ..initialize().then((_) {
        setState(() {});
        _controller.play();
      });
  }

  @override
  Widget build(BuildContext context) {
    return _controller.value.isInitialized
        ? AspectRatio(
            aspectRatio: _controller.value.aspectRatio,
            child: VideoPlayer(_controller),
          )
        : Container(
            height: 200,
            width: 200,
            color: Colors.red,
          );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late FocusNode focusNode;

  @override
  void initState() {
    super.initState();
    focusNode = FocusNode();
    WidgetsBinding.instance!.addPostFrameCallback((timeStamp) {
      setState(() {
        isMapVisible = true;
      });
    });
  }

  @override
  void dispose() {
    super.dispose();
    focusNode.dispose();
  }

  bool isMapVisible = false;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            SizedBox(
                height: 300,
                child: AnimatedOpacity(
                    opacity: isMapVisible ? 1.0 : 0,
                    duration: const Duration(milliseconds: 5000),
                    child: const VideoPlayerWidget()))
          ],
        ),
      ),
    );
  }
}

I'm running into this same bug, or at least one very like it, but unlike the OP I don't have any animated widgets between me and the map, for me the root cause seems to be the map widget getting rebuilt before onMapCreated gets called causes it to never be created. It's most reliably happening in iOS Safari, but I have seen it in macOS Chrome as well.

@artificerchris what version of flutter are you using? what's the output of flutter doctor -v?

Just saw a the same assertion on mapbox flutter - seems to be quite random tho and happens even without animations.
Error: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/surface_factory.dart:111:12

I remember a while ago attempting to render a map with 0% opacity (or was it in a 0x0 div?) would cause the map to not render anything. If that's the same case, google maps flutter web is waiting for a "tiles loaded" event to return the controller to the program; maybe that's never happening when the map is rendered invisible :/

@ditman I'd have to dig in again to be 100% sure, but it seemed like that's what was happening to me too, cause that's the same event (I think from what I remember) that ultimately triggers the onMapCreated event on the Flutter side. For me, the issue was very easy to repro in macOS desktop Safari, but as to why it isn't firing tiles loaded, I couldn't say. I'm not animating it in or anything, it's just on a page when I nav to it.

@artificerchris I added waiting for tiles loaded as an event in version 0.3.1 of the google_maps_flutter_web package (changelog), if you want, maybe you can try pinning the version of the package to exactly 0.3.0+4 (the one before the change) and see if it helps with the issue?
That way we can discard if it's that event, or maybe some underlying bug/feature in the Google Maps JS SDK.
(I remember the map not rendering in an invisible/0x0 div way back when we were developing the OG version of the plugin, so I don't expect an improvement, but maybe the tiles loaded is not a reliable event to wait for!)

I’ll give that a go over the weekend, and report back!
On Fri, Dec 10, 2021 at 15:52 David Iglesias @.***>
wrote:

@artificerchris https://github.com/artificerchris I added waiting for
tiles loaded as an event in version 0.3.1 of the google_maps_flutter_web
package (changelog
https://pub.dev/packages/google_maps_flutter_web/changelog), if you
want, maybe you can try pinning the version of the package to exactly
0.3.0+4 (the one before the change) and see if it helps with the issue?
That way we can discard if it's that event, or maybe some underlying
bug/feature in the Google Maps JS SDK.
(I remember the map not rendering in an invisible/0x0 div way back when we
were developing the OG version of the plugin, so I don't expect an
improvement, but maybe the tiles loaded is not a reliable event to wait
for!)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/91276#issuecomment-991285507,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQV5VLJKMYNU4GE3SMUSU7DUQJR7VANCNFSM5FKS2VIA
.

@ditman I did check over the weekend and re-confirmed with my PM this morning, we didn't start seeing this bug until we upgraded that package and if I roll back that does fix this issue, but that's not a real solution for me cause part of why I upgraded was the fix for the function to transform screen space coords to map coords.

@artificerchris yikes, I added the initialization change to be able to test those features of map in a non-crazy way. Maybe there's other events that we can use to detect when the map is ready to go (instead of "tilesloaded"), for example, according to this:

https://developers.google.com/maps/documentation/javascript/events

It seems the first "bounds_changed" or "projection_change" might suffice (especially because all we care about is for the map to have a proper projection, we don't really care that tiles are actually loaded).
(However, I'm not sure if all those events are thrown when initializing at the same time as "tilesloaded" or not.)
I can prepare a PR of google_maps_web that uses some other of the "init" events, and see if that works better for your use case? (You can include it via a Git override?)

Sounds like a plan to me, I'm fairly busy this week, but I should have time either this evening or tomorrow evening to check it, otherwise it'll have to wait till the weekend. Just @ me and let me know the branch the PR is in and I'll check it out as soon as I can!

@ditman Just to confirm - currently the assumed cause is that onPlatformViewCreated gets called to late?

@artificerchris I created a PR, here's the package git info for overrides/testing:
dependencies:
  google_maps_flutter_web:
    git:
      url: https://github.com/ditman/plugins.git
      ref: maps-web-earlier-init
      path: packages/google_maps_flutter/google_maps_flutter_web

@felix-ht the surface_factory errors you're seeing should have been fixed in master (find the latest commits by hterkelsen in the flutter/engine repo). The current theory is that if the map is not visibly loaded, the tiles won't be downloaded and the loadedtiles event that was used before to determine when the map was ready might not be firing.
After a bunch of testing, I wrote the changes above, listening to a bunch of other events that seem to get fired earlier in the lifecycle of the map, but I'm not super thrilled with the change; in my experience, there seems to be a race condition between the time the different parts of the map are initialized and the time when calculations can be made accurately. It seems that the map is firing certain change events while the map display is loading/being animated/moving around (internally)

@artificerchris any luck with the new events from the maps? Anybody else?

@ditman Hey, sorry I never got back to this, no it's still going on for us, we've noticed in chrome once or twice now too, but still always on iOS.

@artificerchris just to confirm: this didn't help?

@ditman correct


Forward-looking erase-state CRCs

Original issue here: https://github.com/littlefs-project/littlefs/issues/245#issuecomment-606050523
This is a proposal to fix the out-of-order writes found by @pjsg's fuzzing work.
The problem is that it is possible for (non-NOR) block devices to write pages in any order, or to even write random data in the case of a power-loss. This breaks littlefs's use of the first bit in a page to indicate the erase-state.
@pjsg notes this behavior is documented in the W25Q here:
https://community.cypress.com/docs/DOC-10507

The basic idea here is to CRC the next page, and use this "erase-state CRC" to check if the next page is erased and ready to accept programs.
.------------------. \   commit
|     metadata     | |
|                  | +---.
|                  | |   |
|------------------| |   |
| erase-state CRC -----. |
|------------------| | | |
|   commit CRC    ---|-|-'
|------------------| / |
|     padding      |   | padding (doesn't need CRC)
|                  |   |
|------------------| \ | next prog
|     erased?      | +-'
|        |         | |
|        v         | /
|                  |
|                  |
'------------------'

This is made a bit annoying since littlefs doesn't actually store the page (prog_size) in the superblock, since it doesn't need to know the size for any other operation. We can work around this by storing both the CRC and size of the next page when necessary.
Another interesting note is that we don't need to any bit tweaking information, since we read the next page every time we would need to know how to clobber the erase-state CRC. And since we only read prog_size, this works really well with our caching, since the caches must be a multiple of prog_size.
This also brings back the internal lfs_bd_crc function, in which we can use some optimizations added to lfs_bd_cmp in https://github.com/littlefs-project/littlefs/pull/395.
TODO:

[x] Fix failing tests cases
[x] Add tests for backwards compatibility
[x] Implement proper handling of on-disk minor version bump
[x] Documentation update for DESIGN/SPEC

Depends on https://github.com/littlefs-project/littlefs/pull/495
Related to https://github.com/littlefs-project/littlefs/issues/245

This looks exciting!

Just added documentation about this change to the SPEC.md:
https://github.com/littlefs-project/littlefs/pull/497/files?short_path=7426c9e#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
Things look like they are working so this should be ready to merge soon.
Sorry again about the delay, this is the first change that involves bumping the on-disk minor version. This sort of irreversible change can lead to unpleasant situations if a mistake is made, so I wanted to make sure forward/backward compatibility is decently tested first.
116332d3f7e33e2d4ada3b4896024b1d44567593 and 4c9360020ed8b6db5d943fd61155a09553e8f30f should hopefully provide decent confidence that the on-disk minor version is respected. This will also need a good explanation in the release notes...


Refactor, changing memory handling

Originally, all memory was being pushed off to the heap. This has been changed for allocating structures on the heap and having defined sizes for elements of structures.

Successful freeing of all allocated memory on the heap on Debian by using valgrind.


Unnecessary IIFEs pervasive in v4 implementation

I was just looking at the source out of curiosity, and found a lot of seemingly unnecessary IIFEs in the collapse (1, 2) and tab (1, 2, 3, 4, 5, 6) implementations. Is there a particular reason for these, or should they be removed?

The method is used because there is no cross-browser setImmediate method, and that fixes something reported over and over.

@thednp I'm not referring to the setTimeout calls, but the plain IIFEs themselves, things like this:
(function () {
    // code...
})();

As for that bug fix, all you really did beyond adding the unnecessary IIFEs was move code into setTimeout callbacks and increasing their delay.
As for backwards compatibility, just inlining their bodies should have zero impact, even as far back as Netscape. Any differences would be obvious browser breakers, leaving almost all common sites with scripting unusable.

@isiahmeadows as I said, I am open to any code suggestion, I really tried them all I know.

@thednp Check out #140. That should explain what I mean (it's also a nicely packaged PR).

Wowow, wait a sec and check this first before committing.
Have you tested multiple clicks and it works perfect? I've spent about 2 days working to fix that issue, you think that would simplify and solve the issue for good?

It's equivalent to what's already there, and I have tested it to verify it does not break.

I am now testing your code in all browsers. It seems to work, but I don't know...

In case you're curious (I can tell you're not super familiar with the difference), here's the Wikipedia article on the idiom.

OK. I remember now. FYI: I am not targeting G Chrome only, I am interested in IE8+ for BSN V3 and IE10+ for BSN V4. I also have a very old Safari for Windows....
So, you know why those IIFEs are used? It's because the API on event.transitionEnd is poorly implemented in many browsers and it always messes up... sometimes things that need to happen when the animation ends, never happen, or the event is not even triggered.
So FYI, please take the time to test differences with all functionalities in regards to components custom events, browsers, etc ;)

@chenull I hope you take a look at @isiahmeadows commit as well. Thank you.

@thednp IIFE's are just a lanugage idiom, unique to JS the language, without respect to the environment. They do literally nothing apart from creating a new scope for var variables.

@isiahmeadows I will certainly do a mega test with your suggestion as soon as I get some time. Thank you.


How Can I run my shopify CLI app from Live server (AWS or Digital Ocean)

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
App
Expected behavior
Hi,
I have created the App using shopify CLI in localhost. Its working fine from there. But when I upload this app in AWS server it does not work from there. I also changed the URL in partner as well as App. But still get not success.
So Kindly let me know in details step by step how can I run it from  Live server.
Thanks
Actual behavior
It didn't work
Stack trace
Hi,
I have created the App using Shopify CLI in localhost. Its working fine from there. But when I upload this app in AWS server it does not work from there. I also changed the URL in partner as well as App. But still get not success.
So Kindly let me know in details step by step how can I run it from  Live server.

Thanks

Reproduction steps

Changed NGROK URL in Shopify partner account
Create a new app using CLI in AWS server
Run command npm run dev and its ask me to open url in browser.
When I open it gives me error, I think its still getting the localhost path.

Operating System
Ubuntu
Shopify CLI version (check your project's package.json if you're not sure)
3.1
Shell
No response
Node version (run node -v if you're not sure)
v14.02
What language and version are you using in your application?
Ruby 3.0.3, Node 14.02, PHP 7.4

Could you please explain it more or send us a video. So I can get proper documentation. Because I am not clearly getting your point.

@avinashbrst If you are trying to run this from a live server with a URL that's not NGROK, it's probably better to use the serve command and deploy it like it's a live site.


Removing User Group Member does not cause removal of related User's Access Control records

This is actually a security vulnerability. After a quick Base Application code analysis I discovered that "App ID" was a NULL GUID in Access Control (& related) records in v.16.1, but in v.18.0 it is filled with System Application's ID almost everywhere... except Access Control table (it's still a NULL GUID there). As a consequence, the following execution path does not cause the records to be deleted as expected:
UserGroupMember(OnDelete)->UserGroupAccessControl.RemoveUserGroupMember->RemovePermissionSetFromUser
...
AccessControlExists := AccessControl.Get(UserSecurityID, RoleID, SelectedCompany, ItemScope, AppID);
if AccessControlExists then begin
// AccessControlExists is always FALSE with non-NULL GUID AppID and NULL GUID existing in AccessControl table, so execution not reaches this place.
Reset;
SetRange("User Security ID", UserSecurityID);
SetRange("Role ID", RoleID);
SetRange("Company Name", SelectedCompany);
SetRange(Scope, ItemScope);
SetRange("App ID", AppID);
ReferenceExists := FindLast;
if not ReferenceExists then
AccessControl.Delete(true);
if ReferenceExists and ("User Group Code" = '') then
Delete;
end;
Bug observed in: Version: NO Business Central 18.0 (Platform 18.0.22893.23773 + Application 18.0.23013.23795)
Worked Ok in: Version: NO Business Central 16.1 (Platform 16.0.12630.12758 + Application 16.1.12805.0)

User Group Memberships management via User Card seems also buggy when it comes to administration of per-Company User Permission Sets in the following scenario:
Having pre-defined 2 separate User Groups with the same "SUPER" Permission Set on both, assigning a new user to group 1. causes (as expected) creation of per-System Permission Set, but repeating the same operation on group 2. (not as expected) causes creation of per-Tenant Permission Set which also breaks automatic "cascading" mechanism for deletion of Permission Set per User Group.
After adjusting "Scope" from 1 to 0 via SQL, "Extension Name" appears on the list of user's Permission Sets (which was hidden before), but even after restarting BC instance (just in case) - deleting User Group Membership does not cause "cascading" deletion of user's Permission Set.
I have checked a bit more - the problem seems to be caused to User Group Permission Set that gets different App ID & Scope for the first and subsequent records creation (i.e. defining Permission Sets for next User Groups, per-Company), namely: App ID becomes a null GUID and Scope becomes "Tenant". Frankly - I haven't tried for even more per-Company User Group Memberships, but I guess it would be the same, i.e. only the first definition would get the right parameters.

I have experimented a bit more - looks like adjusting App ID and Scope on newly created User Group Permission Set via SQL trigger fixes the issue (also for subsequent User Group Permission Set definitions). So that, when I manage User Group's Permissions, assigning e.g. SUPER to a newly created User Group, it gets created with System Application's App ID and Scope==System. This is of course a dirty "fix" with SQL triggers, so looking forward to get BC/AL level fix for these issues.
Summarizing, I have created 2 SQL triggers that fix all the issues regarding this bug, but I'm not 100% sure about potential negative impact. As far as I can see - everything works, except that I get a warning after creating a User Group Permission Set via GUI about that some records are outside of filter - that's because data was modified via SQL trigger - but everything looks Ok after re-opening the "Permissions" page.
I'm attaching screen shots of the SQL triggers' code - hopefully it will help in resolving the issue.

After more research with various Permission Sets, I created a third trigger on table [dbo].[User Group Access Control$437dbf0e-84ff-417a-965d-ed2bb9650972] with the following code:
IF (SELECT [App ID] FROM INSERTED) = '00000000-0000-0000-0000-000000000000'
BEGIN
UPDATE [dbo].[User Group Access Control$437dbf0e-84ff-417a-965d-ed2bb9650972]
SET
[App ID] = '63CA2FA4-4F03-4F2B-A480-172FEF340D3F', -- MS BC System Application's ID,
[Scope] = 0 -- "System" scope
WHERE
[User Group Code] = (SELECT [User Group Code] FROM INSERTED)
AND [User Security ID] = (SELECT [User Security ID] FROM INSERTED)
AND [Role ID] = (SELECT [Role ID] FROM INSERTED)
AND [Company Name] = (SELECT [Company Name] FROM INSERTED)
AND [Scope] = (SELECT [Scope] FROM INSERTED)
AND [App ID] = (SELECT [App ID] FROM INSERTED)
END
This one fixes issues with permissions assigned to User Group based on "Tenant Permission Set". Here I obviously override "Tenant" with "System" scope, but this is (most likely) Ok from the perspective of our single-tenant, on premise solution.
Generally, it could be nice to have some sort of global configuration to use "simple" permissions model that would ignore Scope and App ID (or use some pre-defined default values everywhere). This would probably not work in complex & cloud environments, so alternative solution would be to fix the broken links around permission sets and access control lists, maybe also making administration GUIs more flexible (i.e. exposing Scope & App ID fields).

After more testing I found out that probably better "fix" is to use [App ID]='00000000-0000-0000-0000-000000000000' and [Scope] = 1 (i.e. almost "rollback to v. 16, but with Scope=1 instead of 0 which works better with permissions required during sign-in process).
Tested with the following SQL command (pseudocode):
UPDATE [User Group Permission Set | User Group Access Control]
SET
[App ID] = '00000000-0000-0000-0000-000000000000',
[Scope] = 1
WHERE
[App ID] <> '00000000-0000-0000-0000-000000000000'
OR [Scope] <> 1
I have deactivated trigger on  "Access Control" table - it seems to work Ok with triggers only on "User Group Permission Set" and "User Group Access Control" tables.
This way I also don't get warning about records outside of filter when defining User Group Permission Set(s).

After more testing I found out that probably better "fix" is to use [App ID]='00000000-0000-0000-0000-000000000000' and [Scope] = 1 (i.e. almost "rollback to v. 16, but with Scope=1 instead of 0 which works better with permissions required during sign-in process).
Tested with the following SQL query in my triggers (pseudocode):
UPDATE [User Group Permission Set | User Group Access Control]
SET
[App ID] = '00000000-0000-0000-0000-000000000000',
[Scope] = 1
WHERE
[App ID] <> '00000000-0000-0000-0000-000000000000'
OR [Scope] <> 1
(the actual query is limited to INSERTED dataset)
I have deactivated trigger on  "Access Control" table - it seems to work Ok with triggers only on "User Group Permission Set" and "User Group Access Control" tables.
This way I also don't get warning about records outside of filter when defining User Group Permission Set(s).

After more testing I found out that probably better "fix" is to use [App ID]='00000000-0000-0000-0000-000000000000' and [Scope] = 1 (i.e. almost "rollback to v. 16, but with Scope=1 instead of 0 which works better with permissions required during sign-in process). This way I also don't get warning about records outside of filter when defining User Group Permission Set(s).
Tested with the following SQL query in my triggers:
UPDATE [User Group Permission Set]
SET
[App ID] = '00000000-0000-0000-0000-000000000000',
[Scope] = 1
WHERE
[App ID] <> '00000000-0000-0000-0000-000000000000'
OR [Scope] <> 1
(the actual query is limited to INSERTED dataset).
I have deactivated trigger on  "Access Control" and "User Group Access Control" tables - it seems to work Ok with triggers only on "User Group Permission Set" table.

After more testing I found out that probably better "fix" is to use [App ID]='00000000-0000-0000-0000-000000000000' and [Scope] = 1 (i.e. almost "rollback to v. 16, but with Scope=1 instead of 0 which works better in all cases I have tested). This way I also don't get warning about records outside of filter when defining User Group Permission Set(s).
Tested with the following SQL query in my triggers:
UPDATE [User Group Permission Set]
SET
[App ID] = '00000000-0000-0000-0000-000000000000',
[Scope] = 1
WHERE
[App ID] <> '00000000-0000-0000-0000-000000000000'
OR [Scope] <> 1
(the actual query is limited to INSERTED dataset).
I have deactivated trigger on  "Access Control" and "User Group Access Control" tables - it seems to work Ok with triggers only on "User Group Permission Set" table.

After more testing I found out that probably better "fix" is to use [App ID]='00000000-0000-0000-0000-000000000000' and [Scope] can probably be left as it is sent in SQL Insert query (but not 100% sure if it's Ok in all cases).
I have adjusted my SQL triggers as follows:
UPDATE [dbo].[User Group Permission Set$437dbf0e-84ff-417a-965d-ed2bb9650972]
SET
[App ID] = '00000000-0000-0000-0000-000000000000' --,
-- Disabled change - testing if it would work in all cases: [Scope] = 1
WHERE
[App ID] <> '00000000-0000-0000-0000-000000000000'
-- Disabled check (see above): OR [Scope] <> 1
-- Same for "Access Control" and "User Group Access Control$437dbf0e-84ff-417a-965d-ed2bb9650972" tables
-- (the actual query is limited to INSERTED dataset).
I've been trying to eliminate any of these 3 triggers - but so far I haven't got satisfying results.
It looks like the issue is mainly with the System Application's permissions (e.g. SUPER), so, as I suspected before, the "fix" could be to use only own application's App ID (or maybe just custom permission sets defined in "Tenant Permission Set" table). What we need to achieve is entirely consistent and reliable User Group based permissions management - therefore we cannot accept that some permissions (potentially attached later by customer's users to User Groups) would not be removed automatically when we remove a User Group Member.

This is already fixed in platform for 19.0


Cannot close a ipynb file that does not exist

Version: 1.66.0 (user setup)
Commit: e18005f0f1b33c29e81d732535d8c0e47cafb0b5
Date: 2022-03-30T05:50:14.623Z
Electron: 17.2.0
Chromium: 98.0.4758.109
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042
I don't know if I am going to be able to give you affirmative steps to reproduce, so feel free to close.  Thought I would report it though.
I have had an open ipynb for some time in vscode.   Sometime ago there was some triming of my repo and the path to that open ipynb no longer exist. I don't use vscode as my primary IDE, so the file just sat open in my vscode workspace for some time.
I went to experiment with some dev in vscode, and I closed all on open files, but I can't get past this open ipynb.  vscode refuses to close it.
It starts like this:

open ipynb file has no contents but shows text "The editor could not be opened. Try Again"
Try Again clicked. Popup from vscode "Unable to resolve filesystem provide with relative file path .
Popup offers no solutions. close the popup.
Right click file tab close file.
Two popups.  One lower right in grey says "Unable to resolve filesystem provide with relative file path .
Second standard looking popup says "Do you want to save changes you made to ."
Click "Don't Save".
GOTO 1 nothing has changed.  Loop forever through 1 to 8.

Thats my state.  Think I have to get rid of the workspace to get rid of the open file?

Sounds like https://github.com/microsoft/vscode/issues/140667. I would need exact steps for how to reproduce, preferably with a fresh --user-data-dir and fresh --extensions-dir to start from zero. These steps should include which extension to install and which file to create and then possibly delete?


bh1750 i2c light sensor driver

Hi, this is a "preliminary" driver pull request - so that others know the driver already exist and they don't have to rewrite it (though it's trivial).
Since I did change extras/i2c lib a bit, and there's pull request #321 in the queue for similar functionality (but cleaner), I'll rebase this once #321 is merged - basically the commit 0b1197b can be dropped.

It would be great if you add simple example.
Thank you for your contribution!

Why isn't this pull-request not merged?

Waiting for #321 first (to rebase this...), then I'll also add an example..

Hi guys. I reworked the patches to match new i2c, added example, and added a small cleanup of PWM. I didn't do the enum thing, since the flags can now be combined (for which enums are a bit dangerous - although here only 1 byte stuff is moved around).


New Expensify icon is not centered in the about page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Log in to e.cash
Navigate to Settings>About page

Expected Result:
New Expensify icon should be centered
Actual Result:
New Expensify icon is left justified.
Workaround:
No need for workaround, visual issue.
Platform:
Where is this issue occurring?
Web ✔
iOS✔
Android✔
Desktop App✔
Mobile Web✔
Version Number: 1.0.79-0
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
View all open jobs on Upwork

From @Beamanator https://expensify.slack.com/archives/C01GTK53T8Q/p1626342434313600

The e.cash icon position & size changed recently on the About page (was centered, now left justified) - does it look ok to everyone? I think it looks a bit out of place now - maybe the version number should not be centered anymore or the icon should still be centered

Triggered auto assignment to @mallenexpensify (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

@mallenexpensify My bad, I mistakenly created the issue with the incorrect label, fixing it.

Triggered auto assignment to @AndrewGable (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @jboniface (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Looks like a great external issue 🤙

Triggered auto assignment to @Julesssss (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

This would be fixed by adding a align-items: center to settingsPageBody within src/styles/styles.js.

PROPOSAL
position can fix by adding alignItems: 'center', at this position.
https://github.com/Expensify/App/blob/2d673cc1cc77c57182439e48eed92d5fc9946e5b/src/styles/styles.js#L1406
and also a minor update <Logo /> from <Logo height={100} />
https://github.com/Expensify/App/blob/2d673cc1cc77c57182439e48eed92d5fc9946e5b/src/pages/settings/AboutPage.js#L92
and for size, we need big size logo svg because the current logo svg has size 52px width and height.
Thanks

Hi @helaoutar. As you submitted the first proposal would you like to take the issue?

@helaoutar I went ahead and hired you for this.

The PR to fix this caused a minor regression, reverting it here.

The regression was fixed about a week ago in this PR: https://github.com/Expensify/App/pull/4243

Yep, that's correct! @jboniface let's make sure @helaoutar is paid for the Upwork job.

ok paid and closing


Communication Skills Roadmap

I am adding a Communication Skills Roadmap. Please look into my PR and let me know if there is any improvement required.

Please review my PR #212 and let me know if there is any improvement required.


Backport "Avoid import suggestion thread hang if -Ximport-suggestion-timeout <= 1" to LTS

Backports #21434 to the 3.3.5.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to backport-lts-3.3-21857.
Reference


Chore: Old Film Filter Deprecations

Add deprecations for the Old Film filter.
Use GpuProgram.from and GlProgram.from for caching.

The prop name changes seems unnecessary. I'm not sure what problem it's solving or what the rationale is other than a stylistic choice.  Also, none of this is deprecated, so this is not backward compatible.

So the name changes here are just reverting back to the older version's for backward compatibility. (Name changes were merged in as part of the earlier update for v8)


Quieter backfill when predictive beam sync active

What was wrong?
#1947 depends on peasant peers for predictive nodes, which adds contention with backfill. Predictive nodes should clearly be the higher priority.
How was it fixed?
Pause backfill if there was any recent predictive node requests.
To-Do

[ ] Clean up commit history

[ ] Add entry to the release notes

Cute Animal Picture

Weird, the test finishes in 3.5s locally but is timing out after 20s on CI...

Hm, still don't know why backfill isn't working. A couple requests happen, and then it all kind of stalls out. The amount of backfill data per request just went up a lot. Not sure why that would affect it. But this looks suspicious:
   DEBUG  07-30 22:26:49        multiplexer.py  Timeout <Multiplexer[p2p:5,eth:65]>:
Traceback (most recent call last):
  File "/home/circleci/repo/p2p/multiplexer.py", line 333, in _do_multiplexing
    await self._handle_commands(msg_stream)
  File "/home/circleci/repo/p2p/multiplexer.py", line 345, in _handle_commands
    async for protocol, cmd in msg_stream:
  File "/home/circleci/repo/p2p/multiplexer.py", line 58, in stream_transport_messages
    msg = await transport.recv()
  File "/home/circleci/repo/p2p/tools/memory_transport.py", line 73, in recv
    encoded_sizes = await self.read(8)
  File "/home/circleci/repo/p2p/tools/memory_transport.py", line 65, in read
    return await asyncio.wait_for(self._reader.readexactly(n), timeout=CONN_IDLE_TIMEOUT)
  File "/usr/local/lib/python3.8/asyncio/tasks.py", line 490, in wait_for
    raise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

In a situation with only mocked peers, I can't imagine why we would get a timeout like this.

Maybe something blocking the event loop?

In a situation with only mocked peers, I can't imagine why we would get a timeout like this.

Maybe something blocking the event loop?

Hah, yeah, just came to the same conclusion. Trying something...

Okay, does look like I'm on the right track about the total size of the request mattering somehow. Reducing the size back down from MAX_STATE_FETCH to 16 seems to make tests pass again. So probably not a problem with SilenceObserver.

Okay, now I'm confused again. Did adding the await asyncio.sleep(0) make the difference? Because the commit that did that still failed the test in the same way. But now, reverting everything meaningful since then seems to pass. :angry:

Sorry to be spamming in here. I can't reproduce locally...

Unless... 4c05aad is covering up some bug in SilenceObserver...

I couldn't confirm for sure, but the SilenceObserver did have a bug if the call_later triggers too early, then the coro waiting on it might never wake up. Fixed that in 85ca9bdd0604b206e963877c63a4160aa82f87b5. Looks promising.


[Reporting - UI] Refresh reporting data when date range is changed

Problem
Right now the data does not update when the date range is changed on the reporting page.

NB: this is blocked by the backend task handling filtering by date range https://github.com/papercups-io/papercups/issues/254 -- please work on that first if it's not done yet!
The reporting page can be accessed at http://localhost:3000/reporting

The reporting page (with fake data:)

Solution
When the date range is changed, let's trigger a refresh of the reporting data in the UI.
Context
See https://github.com/papercups-io/papercups/issues/252
Questions, or need help getting started?
Feel free to ask below, or ping us on Slack :)
(You can also check out our CONTRIBUTING.md)

Hey, I did like to work on this one

sure @Aditya135 -- i'll assign you for now :)
when do you think you'll be able to work on it?

hey @Aditya135 -- it turned out that the fix for this was trivial (https://github.com/papercups-io/papercups/pull/280/files#diff-2160a0e22b7bdfee0ff3c1561656c30fR218) so it's done already 😓 sorry about that!
i'll be adding more frontend tickets tonight if you're still interested in contributing 🙏


Total balance

Show total fiat/bitcoin balance for all accounts on the homepage.

yes because it could look like negative numbers

+5

@zillionn can you provide me with permanent Ark address where you want +5 rewards and any other github rewards you might get for helping out ? Thanks.

Don't worry about it, I don't help for the rewards.

Thank you, but rules are rules :)

OK, I'd like to donate them :).

Haha ok I won't bug you with this 👍 I'll donate to Ark Community Fund once address is known sounds OK?

OK

Thanks for your work here - much appreciated.


Documentation search bar is broken

For some reason, the ReadTheDocs documentation does not have a working search index yet. That is sad, as it is a very important feature for finding functions in the docs when one doesn't know how the docs are organized.
P.S. This issue likely also affects other QuantStack projects using the same doc generation toolchain.

@slel found a possibly related issue in the new ReadTheDocs theme: https://github.com/rtfd/readthedocs.org/issues/4026 .

It's working now :) Just flush caches & reload the page.


EIP-4844: Shard Blob Transactions

There are three things related to evm.

BLOBHASH (with opcode 0x49) which reads index from the top of the stack as big-endian uint256, and replaces it on the stack with env.tx.blob_versioned_hashes[index]
And precompile that needs to be added at POINT_EVALUATION_PRECOMPILE_ADDRESS that verifies a KZG proof which claims that a blob (represented by a commitment) evaluates to a given value at a given point.
Data gas accounting.

More info here: https://eips.ethereum.org/EIPS/eip-4844

After familiarizing myself with this part of the stack in #528 I'd be interested to take a stab at this. Been reviewing the docs and feel like i have a decent intuition on how to approach this.

After familiarizing myself with this part of the stack in #528 I'd be interested to take a stab at this. Been reviewing the docs and feel like i have a decent intuition on how to approach this.

for MCOPY I already knew exactly how it need to look and it was very easy to add so I could guide you line by line as I did it, and you have seen how sensitive this is as even with it you made multiple consensus errors, with this, I am not that sure, so until this comes next in my work I would be blank. If you are okay with that, go for it!


Fix IREE test.

This revision fixes the IREE test.
Atm this still fails with 2 registration errors:
error: unregistered operation 'transform.iree.set_num_workgroups_to_one' found in dialect ('transform') that does not allow unknown operations
Traceback (most recent call last):
  File "/usr/local/google/home/ntv/github/iree-llvm-sandbox/python/examples/iree/simple_matmul.py", line 81, in <module>
    binary = iree.compiler.tools.compile_str(
  File "/usr/local/google/home/ntv/github/iree/build/compiler/bindings/python/iree/compiler/tools/core.py", line 293, in compile_str
    result = invoke_immediate(cl, immediate_input=input_bytes)
  File "/usr/local/google/home/ntv/github/iree/build/compiler/bindings/python/iree/compiler/tools/binaries.py", line 200, in invoke_immediate
    raise CompilerToolError(process)
iree.compiler.tools.binaries.CompilerToolError: Error invoking IREE compiler tool iree-compile
Diagnostics:
/tmp/linalg_transform_spec.mlir:18:14: error: unregistered operation 'transform.structured.tile' found in dialect ('transform') that does not allow unknown operations
      %1:4 = "transform.structured.tile"(%0) {interchange = [], sizes = [8, 32, 8]} : (!pdl.operation) -> (!pdl.operation, !pdl.operation, !pdl.operation, !pdl.operation)

I can't reproduce the issue, you may be running some version of IREE that I don't have. As far as I can see, the registration shouldn't be a problem since we do have the op here https://github.com/google/iree/blame/main/compiler/src/iree/compiler/Codegen/TransformDialectExtensions/TransformDialectExtensions.cpp#L189 and the overall setup is to run the iree-compiler binary that calls that function.


Added 11/2017 48 Hour Launch event

Added 48 Hour Launch event in Memphis, per #7

@geoffdavis92 Thanks for the PR


Gonum.org is blocked in Russia

This is actually not a bug, but it brings significant obstacles for russian gonum users. Unfortunately, it's not possible to go get the library:
go get -u -v github.com/gonum/gonum/...
Fetching https://gonum.org/v1/gonum?go-get=1
https fetch failed: Get https://gonum.org/v1/gonum?go-get=1: dial tcp <IP_ADDRESS>:443: connect: connection refused
go<EMAIL_ADDRESS>unrecognized import path "gonum.org/v1/gonum" (https fetch: Get https://gonum.org/v1/gonum?go-get=1: dial tcp <IP_ADDRESS>:443: connect: connection refused)
go: error loading module requirements

This happens due to these reasons:

There is a redirect from github.com/gonum/gonum to gonum.org/v1/gonum;
gonum.org (<IP_ADDRESS>) was blocked in 2018 because of Telegram ban (you may visit https://blocklist.rkn.gov.ru/ to check IP status). Perhaps this IP was previously used for Telegram infrastructure or proxy server hosting, but now it's yours, and the ban is still ongoing.

Surely it's not your fault, but I will very appreciate it if you could fix this problem on your side: either avoid redirect, or change the external IP of gonum.org to another one that is not banned in Russia.
Sincerely,
Vitaly

@btracey being the current owner of gonum.org (IIRC) will probably need to do something (I think.)
in the meantime, you can do:
$> cd $GOPATH/src
$> git clone https://github.com/gonum/gonum gonum.org/v1/gonum
$> git clone https://github.com/gonum/plot gonum.org/v1/plot

hth

Thanks for the report. I’m not really sure what to do about this. We are hosted at Netlify, I found this thread which seems to confirm we aren’t the only ones
https://www.reddit.com/r/Netlify/comments/9lvdvg/netlify_is_partly_blocked_by_censorship_in_russia/ https://www.reddit.com/r/Netlify/comments/9lvdvg/netlify_is_partly_blocked_by_censorship_in_russia/

On Mar 31, 2019, at 3:36 PM, Vitaly Isaev<EMAIL_ADDRESS>wrote:
This is actually not a bug, but it brings significant obstacles for gonum from Russia. Unfortunately, it's not possible to go get the library:
go get -u -v github.com/gonum/gonum/...
Fetching https://gonum.org/v1/gonum?go-get=1
https fetch failed: Get https://gonum.org/v1/gonum?go-get=1: dial tcp <IP_ADDRESS>:443: connect: connection refused
go<EMAIL_ADDRESS>unrecognized import path "gonum.org/v1/gonum" (https fetch: Get https://gonum.org/v1/gonum?go-get=1: dial tcp <IP_ADDRESS>:443: connect: connection refused)
go: error loading module requirements
This happens due to this reasons:
There is a redirect from github.com/gonum/gonum to gonum.org/v1/gonum;
gonum.org (<IP_ADDRESS>) was blocked in 2018 because of Telegram ban (you may visit https://blocklist.rkn.gov.ru/ https://blocklist.rkn.gov.ru/ to check IP status). Perhaps this IP was previously used for Telegram infrastructure or proxy server hosting, but now it's yours, and the ban is still ongoing.
Surely it's not your fault, but I will very appreciate it if you could fix this problem on your side: either avoid redirect, or change the external IP of gonum.org to another one that is not banned in Russia.
Sincerely,
Vitaly
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/gonum/gonum/issues/944, or mute the thread https://github.com/notifications/unsubscribe-auth/ADgqW6__sjEsn24QHHVe3ao2Rv2Iuz4bks5vcMfTgaJpZM4cUWBD.

@sbinet @btracey thanks for the prompt response. Yes, there are several possible workarounds, but none of them can fix go module issues. For example, if my project depends on gonum.org/v1/gonum, I can't track dependency changes:
go get changes
go<EMAIL_ADDRESS>unrecognized import path "gonum.org/v1/gonum" (https fetch: Get https://gonum.org/v1/gonum?go-get=1: dial tcp <IP_ADDRESS>:443: connect: connection refused)
go: error loading module requirements

My colleagues helped me to recognize that gonum.org is actually resolves in several IP addresses, some of them are not blocked. Putting this line in /etc/hosts should help:
<IP_ADDRESS> gonum.org www.gonum.org

Hosting via NumFOCUS might help here.

Yes. I realize I've dropped the ball, I'll move it up my list.

Sorry, that wasn't meant to be pointed.

Don't worry, it wasn't taken that way

Same issue but not from Russia. This is from Germany.
go get: upgrading<EMAIL_ADDRESS>unrecognized import path "gonum.org/v1/gonum" (https fetch: Get https://www.gonum.org/v1/gonum?go-get=1: dial tcp <IP_ADDRESS>:443: i/o timeout)

@vitalyisaev2, You should write a letter to RKN prompting them to remove IP from the blacklist, as it's another service.
The most correct solution, instead of changing hosting for maintainers.

I solved this by putting replace in go.mod:
gonum.org/v1/gonum => github.com/gonum/gonum v0.6.0

you may need goproxy
try GOPROXY=https://goproxy.cn go get
or GOPROXY=https://goproxy.baidu.com/      go get
This two proxy site hosted in china ...
hope they are fast and not blocked.


build_frameworks.sh not compiling armv versions

I keep getting the following errors...
I have my iPhone connected.
After the these errors.. it continues with the long compile process, finishes, and immediately starts running the script again, over and over in a loop.
If I check the lipo in the .framework it doesnt contain any ARM, just desktop.
◢◤ Frameworks  master ▣ PLATFORMS="iOS" ./build_frameworks.sh                      ~/Documents/GenerateProjects/GenerateToolkit/GenerateToolkitRepo/FilterChain-INTERNAL/lib/audiokit/Frameworks
Building frameworks for version 4.9.4 on platforms: iOS
2020-03-11 00:03:07.476 xcodebuild[35557:5697422]  DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.134 xcodebuild[35557:5697420]  DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.138 xcodebuild[35557:5697324] [MT] DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.142 xcodebuild[35557:5697324] [MT] DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.145 xcodebuild[35557:5697562]  DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
▸ Clean Succeeded
2020-03-11 00:03:08.251 xcodebuild[35557:5697324] [MT] DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.257 xcodebuild[35557:5697324] [MT] DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.321 xcodebuild[35557:5697559]  DTDeviceKit: deviceType from 00008006-001D52342206002E was NULL
2020-03-11 00:03:08.330 xcodebuild[35557:5697324] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fc3954b71d0), iPhoneXSMax Omar’s, iPhone, 13.3 (17C54), 00008020-0004558C016A002E> == Underlying device preparation errors ==
2020-03-11 00:03:08.330 xcodebuild[35557:5697324] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fc3954b71d0), iPhoneXSMax Omar’s, iPhone, 13.3 (17C54), 00008020-0004558C016A002E> -- Failed _shouldMakeReadyForDevelopment check even though device is not locked by passcode.
Domain: com.apple.platform.iphoneos
Code: 5
Failure Reason: allowsSecureServices: 1. isConnected: 0. Platform: <DVTPlatform:0x7fc390420130:'com.apple.platform.iphoneos':<DVTFilePath:0x7fc39041fe50:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform'>>. DTDKDeviceIdentifierIsIDID: 0
--
2020-03-11 00:03:08.330 xcodebuild[35557:5697324] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fc3954b71d0), iPhoneXSMax Omar’s, iPhone, 13.3 (17C54), 00008020-0004558C016A002E> == END: Underlying device preparation errors ==
2020-03-11 00:03:09.428 xcodebuild[35557:5697324] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fc3954bb200), Omar’s iPad Pro, iPad, 13.3.1 (17D50), 00008027-001D48D41107002E> == Underlying device preparation errors ==
2020-03-11 00:03:09.429 xcodebuild[35557:5697324] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fc3954bb200), Omar’s iPad Pro, iPad, 13.3.1 (17D50), 00008027-001D48D41107002E> -- Failed _shouldMakeReadyForDevelopment check even though device is not locked by passcode.
Domain: com.apple.platform.iphoneos
Code: 5
Failure Reason: allowsSecureServices: 1. isConnected: 0. Platform: <DVTPlatform:0x7fc390420130:'com.apple.platform.iphoneos':<DVTFilePath:0x7fc39041fe50:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform'>>. DTDKDeviceIdentifierIsIDID: 0
--
2020-03-11 00:03:09.429 xcodebuild[35557:5697324] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fc3954bb200), Omar’s iPad Pro, iPad, 13.3.1 (17D50), 00008027-001D48D41107002E> == END: Underlying device preparation errors ==

Do you get the same behavior without your phone connect? Not that it should make a difference, but obviously something is stopping the device slices from being built for you...

@megastep  Actually I thought it was failing because my phone wasnt connected. So I connected it.
but still the same.
I do get some Linting warnings.
▸ Copying AKFilterSynthAudioUnit.h
▸ Copying BufferedAudioUnit.h
▸ Copying AKBankAudioUnit.h
▸ Copying AudioEngineUnit.h
▸ Copying AKAudioUnit.h
▸ Copying AKGeneratorAudioUnitBase.h
▸ Copying AKAudioUnitBase.h
▸ Copying AudioKit.h
▸ Running script 'Run Script'

⚠  /Users/omarojo/Documents/GenerateProjects/GenerateToolkit/GenerateToolkitRepo/FilterChain-INTERNAL/lib/audiokit/AudioKit/iOS/AudioKit/User Interface/AKRotaryKnob.swift:413:1: File Line Length Violation: File should contain 400 lines or less: currently contains 413 (file_length)

Linting 'AKCoarseFineSlider.swift' (9/21)
                  ~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

⚠  /Users/omarojo/Documents/GenerateProjects/GenerateToolkit/GenerateToolkitRepo/FilterChain-INTERNAL/lib/audiokit/AudioKit/iOS/AudioKit/User Interface/MultitouchGestureRecognizer.swift:184:15: Empty Count Violation: Prefer checking `isEmpty` over comparing `count` to zero. (empty_count)

#import "Headers/AudioKitUI.h"
^

▸ Touching AudioKit.framework (in target 'AudioKit' from project 'AudioKit For iOS')
▸ Processing Info.plist
▸ Compiling EZPlot.m
▸ Compiling EZAudioPlot.m
▸ Compiling EZAudioDisplayLink.m
▸ Compiling EZPlot.m
▸ Compiling AudioKitUI_vers.c
▸ Compiling EZAudioPlot.m
▸ Compiling EZAudioDisplayLink.m
▸ Compiling AudioKitUI_vers.c
▸ Copying EZPlot.h
▸ Copying EZAudioPlot.h
▸ Copying AudioKitUI.h
▸ Copying EZAudioDisplayLink.h
▸ Touching AudioKitUI.framework (in target 'AudioKitUI' from project 'AudioKit For iOS')
▸ Build Succeeded

then after that.. it starts the script again.

What version of AudioKit are you trying to build? Is this happening with the current branch (v4-develop)?

Also to be clear: the script assembles the universal framework from the builds for the various platforms. The universal file is typically placed under Frameworks/AudioKit-iOS/AudioKit.framework - is this the framework you are looking at?

Got it.
I was in the master branch, switched to v4-develop, ran the script and went to take a shower.. when I came back, I ran a lipo -info and it had all the architectures.

That's still weird though, the master branch is not very far behind v4-develop, and the scripts had not really changed since the last version so I'm not sure why its behavior would be different?


Various suggestions

Hi,
This PR does the following:

[X] Adds a testset
[X] Adds a CI workflow
[X] Adds docstrings
[X] Adds a TaylorDiff.jl extension
[X] Adds a rule cache based on the precision of the nodes
[X] Tries to compute the rule if it is not tabulated
[X] Removes allocation of a quadrature for domains with different endpoints

The main issue is the accuracy of the monomial rules, which according to my test are not all accurate to within 3 digits of the working precision. A "fix" is to tabulate only the rules that pass the test or otherwise to find a way to make the optimization succeed.

Accuracy test results
Test Summary:            | Pass  Fail  Total  Time
accuracy                 |  700   950   1650  4.2s
  monomial rules (7, 1)  |   28           28  0.1s
  monomial rules (9, 3)  |         72     72  0.7s
  monomial rules (9, 4)  |         90     90  0.3s
  monomial rules (7, 2)  |   42           42  0.0s
  monomial rules (2, 1)  |    8            8  0.0s
  monomial rules (10, 1) |   40           40  0.0s
  monomial rules (2, 2)  |   12           12  0.0s
  monomial rules (10, 2) |         60     60  0.1s
  monomial rules (8, 0)  |   16           16  0.0s
  monomial rules (1, 0)  |    2            2  0.0s
  monomial rules (9, 1)  |   36           36  0.0s
  monomial rules (3, 0)  |    6            6  0.0s
  monomial rules (8, 3)  |         64     64  0.2s
  monomial rules (1, 3)  |    8            8  0.0s
  monomial rules (8, 4)  |         80     80  0.3s
  monomial rules (1, 4)  |   10           10  0.0s
  monomial rules (9, 2)  |         54     54  0.1s
  monomial rules (3, 3)  |   24           24  0.0s
  monomial rules (3, 4)  |   30           30  0.0s
  monomial rules (5, 0)  |   10           10  0.0s
  monomial rules (8, 1)  |   32           32  0.0s
  monomial rules (6, 0)  |   12           12  0.0s
  monomial rules (1, 1)  |    4            4  0.0s
  monomial rules (5, 3)  |   40           40  0.0s
  monomial rules (5, 4)  |         50     50  0.1s
  monomial rules (8, 2)  |         48     48  0.1s
  monomial rules (1, 2)  |    6            6  0.0s
  monomial rules (3, 1)  |   12           12  0.0s
  monomial rules (6, 3)  |         48     48  0.2s
  monomial rules (6, 4)  |         60     60  0.2s
  monomial rules (3, 2)  |   18           18  0.0s
  monomial rules (4, 0)  |    8            8  0.0s
  monomial rules (5, 1)  |   20           20  0.0s
  monomial rules (4, 3)  |   32           32  0.0s
  monomial rules (4, 4)  |   40           40  0.0s
  monomial rules (5, 2)  |   30           30  0.0s
  monomial rules (6, 1)  |   24           24  0.0s
  monomial rules (7, 0)  |   14           14  0.0s
  monomial rules (6, 2)  |   36           36  0.0s
  monomial rules (2, 0)  |    4            4  0.0s
  monomial rules (10, 0) |   11     9     20  0.0s
  monomial rules (4, 1)  |   16           16  0.0s
  monomial rules (7, 3)  |         56     56  0.2s
  monomial rules (7, 4)  |         70     70  0.2s
  monomial rules (4, 2)  |   24           24  0.0s
  monomial rules (2, 3)  |   16           16  0.0s
  monomial rules (10, 3) |         80     80  0.2s
  monomial rules (2, 4)  |   20           20  0.0s
  monomial rules (10, 4) |        100    100  0.3s
  monomial rules (9, 0)  |    9     9     18  0.0s

Regarding the accuracy of the tabulated rules: I hadn't looked into that yet, I just took a part of the parameter space that didn't take too long to compute, and the supplied optimization parameters are not very well informed. It would indeed be nice to only tabulate the rule if it passes an accuracy criterion (and maybe raise an error if the user tries to use such a rule which apparently is hard to derive).
I believe in general the higher precision floats are used the better the end result is, although in the article they claim:

Thus, in order to obtain results of high accuracy, the computations in software package Mathematica with 120 digits operations for generating the Gauss-Turán quadratures have been performed.

and their results aren't very good as you said. It's also unclear whether they mean 120 digits in binary or in decimal. The optimization algorithm can also be performed with BigFloat, but then it becomes very slow.

Thanks a lot for your answers to my questions, I learned a lot from it (:


📖 [Docs] API Reference Doc Generation

Adds API reference doc generation via github.com/elastic/crd-ref-docs, and adds make target + dependency to the Makefile so we can ensure the document is always up-to-date.
Closes #1126

Description

Reviewer Checklist

[ ] API Go Documentation
[ ] Tests: Unit Tests (and E2E Tests, if appropriate)
[ ] Comprehensive Commit Messages
[ ] Links to related GitHub Issue(s)

sanity workflow is currently failing because it's generating a different file than local. I'm investigating...

Other than the nits I made in Slack, my only other comments are refinements to try in the future.
LGTM.


Unable to display suggestions with method overloading and generictypes

TypeScript Version:  2.0.0
I am trying to implement a React Hyperscript-like helper in order to avoid using JSX and implement dependency injection. I think there is some trouble with the method overloading I have declared below, because vscode is'nt able to provide correct autosuggestion and typings, and sometimes also tsc itself fails to compile. So I think that either tsc is unable to understand what's going on, or there's something wrong with my code.
Thanks for any further help.
Mattia.
Code
import * as React from 'react'

// just some react type alias
export type ComponentClass<P> = React.StatelessComponent<P> | React.ComponentClass<P>
export type ChildComponent = React.ReactChild

// definition of my "hypescript-like" helper
export function h<P>(Component: string, props?: P & React.DOMAttributes, children?: ChildComponent | ChildComponent[])
export function h<P>(component: ComponentClass<P>, props?: P & React.Attributes, children?: ChildComponent | ChildComponent[])
export function h(component, props?, children?){
    const childrens = children ? children : []
    const componentChildrens = Array.isArray(childrens) ? childrens : [childrens]
    const componentProps = props ? props : {}

    return typeof component === 'string' ?
        React.createElement(component, componentProps, childrens) :
        React.createElement(component, componentProps, childrens)
}

// using this for an HTML tag seems to work
const Button = ({label}: {label: string}) => h('input', {type: 'text'})

// when I start typing label, VSCode and typescript should suggest to me "label" and ensure it's a string
// unfortunately, when I start to write it, I see the DOMAttributes instead and no suggestion for "label".
h(Button, {label: 'test'}

// if I user h<IButtonProps>(Button, {... seems to work nicely

Expected behavior:
After typing h(Button, { vscode should be able to suggest me all the available properties such as "label".
Actual behavior:
After typing h(Button, { DOMAttributes completions are shown.

It's not clear to me exactly why, but it looks like type inference and overload resolution are not playing well as you type out the object literal.

Exactly, however vscode is able to detect when I am using missing properties from IButton. So it's weird because there's checks but no auto completion :/

The issue here is we do not do partial overload resolution, so we do not know what the P really is. if we do not have the same number of parameters we expect we do not go through the process of overload resolution and that is what you see in the IDE. this is the same issue as https://github.com/Microsoft/TypeScript/issues/8005


Update daimon_news-layout to increase the displayed lines of title

ref: https://github.com/bm-sms/daimon_news-layout/pull/4

:shipit:


Refactor Player Model Classes into Separate Files

Follow the Contribution Guidelines:

Before contributing, make sure to check the Contributing section in the root README.md file for more information on how to contribute to this project.

Goal
Refactor the Player and related data classes currently located in io.imrekaszab.eaplayers.domain.model into individual Kotlin files. This will improve maintainability, readability, and allow each class to evolve independently.
Current Structure
Currently, the following classes are defined in a single file within the io.imrekaszab.eaplayers.domain.model package:

Player
Nationality
Team
Position
PlayerAbility
AbilityType

Steps

Create a Separate File for Each Data Class:

For each of the data classes listed above, create a new .kt file with the class name as the file name.
Ensure the files are placed in the io.imrekaszab.eaplayers.domain.model package.

Example structure:
io/imrekaszab/eaplayers/domain/model/Player.kt
io/imrekaszab/eaplayers/domain/model/Nationality.kt
io/imrekaszab/eaplayers/domain/model/Team.kt
io/imrekaszab/eaplayers/domain/model/Position.kt
io/imrekaszab/eaplayers/domain/model/PlayerAbility.kt
io/imrekaszab/eaplayers/domain/model/AbilityType.kt

Ensure Proper Imports:

Make sure that all files have the correct imports for other classes they depend on (e.g., Player depending on Team, Nationality, etc.).
Ensure no circular dependencies arise during the refactoring.

Update References:

Search the entire codebase for any references to the existing classes and update any references to point to the newly separated files (if necessary).

Validate the Refactor:

After refactoring the classes into separate files, run the project to ensure that everything compiles successfully.
Ensure all tests pass and no functionality is broken due to this refactor.

Outcome
Each data class will have its own file, improving organization and making future changes to each class easier. This will also help with code navigation and long-term maintenance of the project.

hey @kaszabimre , I am new to open source contributing , I would like to work on this issue.


Stop managing consul.sysconif with Ansible

consul.sysconfig is provided by consul-rpm and does not need to be managed by Ansible.

The RPM consul.sysconfig uses a different config path /var/lib/consul. I prefer having configuration files in /etc instead of /var.

Actually we can symlink /var/lib/consul to /etc.

How about I change the RPM. Then we can remove the file from ansible and not have to worry about symlinking directories.

Geez. Never mind. The CiscoCloud RPM has the proper sysconfig. I must've clicked on the repo that it was forked from. I need coffee....

:+1:

This has the broken logrotate commits in it as well. Any objections to me deleting the pull request and branch and resubmitting with just the consul changes?

Resubmitting branch with just consul fix

Thanks Chris!


Removing advocate profile

Removing Brian profile

Docs Build status updates of commit e85f384:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

advocates/brian-peek.yml
:white_check_mark:Succeeded

advocates/index.html.yml
:white_check_mark:Succeeded
View

advocates/map.yml
:white_check_mark:Succeeded
View

advocates/media/profiles/brian-peek.png
:white_check_mark:Succeeded

advocates/toc.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


aaLog not pulling records when SMC is not viewing logs?

Have you had an issue where you can't retrieve any logs until you go to SMC - Log Viewer - Default Group - Local?

I have not seen this issue but to be frank I have not explicitly tested for it either. Can you describe some steps to recreate?

Could not recreate issue.  If you can provide a more detailed description of the steps to reproduce please re-open this issue.
Close #11

Closing Issue


Unify used devices globally.

Use global static GPUSet to represent devices and fail explicitly for changing devices.
Address #3913 .

Closing for now due to the fact that we have multiple sources of input dmatrix.  A singleton GPUSet might not be practical.  Sorry for the noise.

I might have to find a Amazon instance to sort this out...

@RAMitchell I don't think I can complete this PR is recent future and rebasing is gonna be painful.  Will close it for now.


Using Mio for polling crossbeam channels?

Hello, thank you for the project.  I am working on a small program where I need to poll on file descriptors, sockets and crossbeam channels.  I am currently using Mio for polling on file descriptors and sockets using similar code as this example (https://docs.rs/mio/0.8.4/mio/struct.Poll.html).
However for crossbeam channels (https://docs.rs/crossbeam-channel/latest/crossbeam_channel/), I have to use their select API (https://docs.rs/crossbeam-channel/0.5.6/crossbeam_channel/struct.Select.html).  Having to use two different mechanisms for polling has made my code a bit messy.
I was just curious if there is any current ways to Mio's poll mechanism on crossbeam channels? Thanks!

Hello @JonForShort Mio used to have support for user space events, but it was removed from the crate to focus on providing a smaller API. So, to answer your question

I was just curious if there is any current ways to Mio's poll mechanism on crossbeam channels? Thanks!

I'm afraid not.
I've personally implemented this using a wrapper around the crossbeam channel using mio::Waker. Basically every time you send a message into the channel call mio::Waker::wake to wake up the other side in case it's polling. Then remove all messages from the channel before calling mio::Poll::poll. However if you send a lot of messages the overhead of a system call might be too much. For that I've created ThreadWaker in my own project, which only makes a system call when the other side is actually polling, see the usage here: https://github.com/Thomasdezeeuw/heph/blob/d44eba4650c928fecfbde2eb68814d640af9da4c/rt/src/worker.rs#L585-L634.
If you have any more questions let us know.

The flume crate supports both sync and async channels, if you'd like.

Thanks @Thomasdezeeuw and @notgull for the input  I'll give the suggestions a try.


Travis CI integration to build and deploy

I would like to incorporate this project into a continuous integration server like Travis CI.  Ideally, the product would be able to be built, tested and deployed, but I'm not sure how the current ant build.xml file would allow that to happen, especially in a headless environment.
For 1.0, I'd like just the build and deploy steps to be worked out.  I imagine TravisCI would be able to deploy to a "daily" folder or something, alongside the more formal release.

Was completed (except for daily build) as of 60ed2672c805cae9cf168a27b2eef15f5f568fbf
In the near future, I may add the daily build.


Fix hangs where a lock is held by a suspended thread.

The sequence this protects against:

thread A acquires a lock
thread B starts a collection, stops the world
thread A is suspended with the lock held
thread B runs mark phase, and during collect phase, runs a finalizer
finalizer attempts to acquire the lock held by thread A
deadlock

This fixes the problem by allowing the world to resume during the collect phase. In order to prevent changes to the GC state which is fully marked, but not yet collected, this introduces a "Probation" mode of the thread state. The probation mode is like the run mode, but if a thread in this mode attempts to enter a busy state, it is paused until the collection thread is finished.
Please closely review if the logic is sound that entering a busy state is the only way to cause problems.
To avoid using signals, which are very error prone, we use a mutex/condition instead.
A new mode must be introduced, because when I tried to do it by just leaving the thread in the "Resumed" mode, I found there was a signaling race condition.

You elected to make the collect phase concurrent. This is good, but please review the logic carefully isn't going to cut it. One needs to know the invariant we are working with.

Clearly there is more to this. There is the notion of world probation, new thread state, a mutex in there. We aren't going to play wack a mole with this. None of the invariant are either explained or documented, let alone the code structured in a way that enforces them. This means that even if they are correct in that PR, which I don't know how to check, really, it is only a mater of time before they are broken.
One easy first step is whether we can make the minimize part of the collection cycle concurrent first. This wouldn't directly solve the problem, but it's a step in the right direction as it reduces the time we stop the world, and reduce the surface of things that can go wrong.

By the way, if we do not stop the world during collection, then we might have many more possible states for the mark bits, and I don't see this being handled here. That would probably require factoring setting/checking these bits in the extent so that the modification take place everywhere at once.


Compiler directives in FsLexYacc generated files cause errors

let newline (lexbuf: LexBuffer<_>) =
  lexbuf.StartPos <- lexbuf.StartPos.NextLine

# 13 "Lexer.fs"
let trans : uint16[] array =

Has a squiggly above the # with the error:
Unexpected keyword 'let' or 'use' in binding. Expected incomplete structured construct at or before this point or other token.
                 : 'File));
# 107 "Parser.fs"
        (fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->

Possible incorrect indentation: this token is offside of context started at position (106:19). Try indenting this token further or using standard formatting conventions.
The FSAC log is full of of these errors:
[16:59:29 DEBUG] WebSocket message: '{"Kind":"errors","Data":{"File":"/Users/edwards/Projects/subtext/src/LexAndYaccMiniProject/obj/Debug/netcoreapp2.1/LexAndYaccMiniProject.AssemblyInfo.fs","Errors":[]}}'
Machine infos

Operating system: Darwin
Arch: x64
VSCode: 1.28.1
Runtime: netcore
Dotnet version: 2.1.403
Runtime: .Net
Mono version:

Mono JIT compiler version <IP_ADDRESS>9 (2018-02/39d89a335c8 Thu Sep 27 06:54:53 EDT 2018)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           normal
	SIGSEGV:       altstack
	Notification:  kqueue
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug
	Interpreter:   yes
	LLVM:          yes(3.6.0svn-mono-release_60/8b1520c8aae)
	GC:            sgen (concurrent by default)

MSBuild version:

Microsoft (R) Build Engine version <IP_ADDRESS>163 (xplat-master/d375bb6e Thu Sep 27 07:16:13 EDT 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

@dsyme, isn't it an issue in FCS? Is there anything special we should do support such files?

This seems no longer be happening:


Correction for raw affiliation Nanyang Technological University, National University of Singapore, UMI MajuLab

Correction needed for raw affiliation Nanyang Technological University, National University of Singapore, UMI MajuLab
raw_affiliation_name: Nanyang Technological University, National University of Singapore, UMI MajuLab
new_rors: 02e7b5302;01tgyzw49;027jrtw17
previous_rors: 02e7b5302;01tgyzw49
works_examples: W4281396400
contact: e8107ce0d5a60729df1ef1c71ad5e3ca:bffdd6ac7baf5c513aa18ef986 @ sorbonne-universite.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


As a purchasing manager, I can search for items by name

...  so that I can view a specific item and its associated details

Closed by #151 during refactoring of Person to Item. This is already a command available in AB3 (Find command).


aliases inside svelte components

Hello, thank you for the package.
I'm trying to setup go to definition for my aliases inside svelte components:
<style lang="scss">
@import<EMAIL_ADDRESS>..
</style>

I have the following in my jsconfig and tsconfig:
{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@css": ["src/css"],
            "@css/*": ["src/css/*"],
        }
    },
    "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte", "src/**/*.css", "src/**/*.scss"],
    "exclude": ["node_modules", "**/node_modules", "dist"]
}

but when I try to go to definition, sublime says nothing was found. Is there a setting I can use with the LSP config for this?

Hello! This now works for me in the script tag. My jsconfig:
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "src/*": ["./src/*"]
    }
  }
}

and inside the component
<script context="module">
    import { testData } from 'src/stores/test'
</script>

a hover with information is displayed. But it doesn't works when importing a component into a component (except auto-completing props names)
<script context="module">
    import SideMenu from 'src/components/organisms/SideMenu'
</script>

But! It not works in VS Code too (I think we can use this as a benchmark)

Hello,
There is nothing that can be implemented in this repo to achieve your feature request, so I will close this issue.
I would advice you to open a feature request at https://github.com/sveltejs/language-tools.

Just to be clear, path aliasing works for components.

But go to definition will not work for this css/scss files:
<style lang="scss">
@import<EMAIL_ADDRESS>..
</style>

Thank you for the clarification.


Add example of Sheet API v4

Added the example of Sheets API with google-auth latest library, check PR #471 .

Thank you for your feature request. This client library is currently in maintenance mode. We are fixing necessary bugs and adding essential features to ensure this library continues to meet your needs for accessing Google APIs. We have decided not to proceed with this enhancement. If you disagree, please feel free to re-open this issue and explain why you believe it is essential for users of this client library.


Spell checked features list

Fixed some capital letter errors, and added dots in endigs of features.
Also added a "the" in the installation block

Bullet points with sentence fragments shouldn't end in periods.
Also, I don't think you need that 'the' at the end.  It reads properly without it.


Support of ES6 class constructor property

TypeScript Version:
1.7.5
Code
class Foo extends React.Component<any, any> {
 // ... some class definitions
}
Foo.defaultProps = {
  bar: 'baz'
}

Expected behavior:
No error.
Actual behavior:
TS2339: Property 'defaultProps' does not exist on type 'typeof Foo'.
Description
Hi, I'd like to create react class using typescript with ES6 classes, and encountered above error.
It would be awesome if I can set class property like above instead of class body. seems typescript does not supports it?

The error is that by default there is no defaultProps static property on Foo. So you just have to tell the compiler that you want such a property.
class Foo extends React.Component<any, any> {
	static defaultProps: any;
}

Foo.defaultProps = {
  bar: 'baz'
}

In general, if the props was of some type P instead of any, then it would be class Foo extends React.Component<P, ... and static defaultProps: P;

You can also use module merging for slightly less code:
class Foo { ... }
namespace Foo {
  export const defaultProps = {
    ...
  }
}

Thank you very much for kind answers! :+1:


Implement publication-related methods in TxGraph

https://github.com/LNP-BP/rust-lnpbp/blob/95e66c5297fa0222b9a29c2e9b4fe82edeae2e49/src/seals/txout_seal.rs#L123

Closing since belongs to outdated API


Add ES6 module support

Hello, here is a proposal to add support of ES6 modules.
It uses detective-es6 to find dependencies.
In Madge itself, it also adds an extensions option to be able to deal with files with more exotic extensions than just .js
And also, it gives the onParseFile callback the possiblity to modify on the fly the file name or the source.
Cheers

:+1:
Ooh, I haven't tried this patch, but I'm looking forward to this functionality being added.  I'm currently using Babel to compile my es6 modules into AMD modules, then I run madge.  It'll be a lot cleaner to run madge on the source files instead!

Thanks for the PL! :) Merged and published to NPM now.


Windows instructions

🔧 Changes

📚 References

🔬 Testing

📝 Checklist

[ ] All new/changed/fixed functionality is covered by tests (or N/A)
[ ] I have added documentation for all new/changed functionality (or N/A)

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

Project coverage is 72.29%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1020   +/-   ##
=======================================
  Coverage   72.29%   72.29%
=======================================
  Files          94       94
  Lines       12758    12758
=======================================
  Hits         9224     9224
  Misses       2984     2984
  Partials      550      550

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


How to join 2 trained model data?

Hi! I was wondering, how can I join 2 trained model data together? e.g my friend wants me to help with training AI to recognize some objects. I know we could take and share photos but is there any other clever way? Maybe joining JSON data?

I @PixsaOJ you might be able to do this with the tensorflow sequential API that lets you link models together like this: https://github.com/googlecreativelab/teachablemachine-community/blob/master/libraries/image/src/teachable-mobilenet.ts#L361
But to be honest this is not something we have tried.

I @PixsaOJ you might be able to do this with the tensorflow sequential API that lets you link models together like this: https://github.com/googlecreativelab/teachablemachine-community/blob/master/libraries/image/src/teachable-mobilenet.ts#L361
But to be honest this is not something we have tried.

Thank you, I will try that when I get a time


PowerToys Awake - Fix right click menu actions on Awake tray icon

Summary of the Pull Request
What is this about:
Changing options through the menu on PowerToys Awake's tray icon isn't applying any changes after the icon name change from "Awake" to "PowerToys Awake".
This PR fixes this.
Quality Checklist

[x] Linked issue: #12145

Let me check this first - we're adding another parameter to the function, which I am not yet sure about.

I will close this for now, because we do not need to add another parameter to the function. Instead, we should rely on constants (given that this is all executed within Awake). I am tracking this in #12215. Thank you again for helping fixing this, @jaimecbernardo.


Citations in Captions messes with the ordering

Description
I think I discovered some unwanted behaviour...
I have citations in my file, which get correctly ordered by appearance in the bibliography. But I also sometimes need to use a reference in the caption of a figure (as I did not create it, but rather copy it and reference to it). By doing this, the "reference marker" ([x]) is also displayed in my list of figures, which is at the start of the document. Therefore the first appearance of the citation is before all the others, marking it as "[1]", even though the actual figure is way after all the other citations.
Use Case
I'd prefer, if there was an option to "sanitize" the caption text, that gets put into the outlines, so that the citation order is consistent to the actual appearance order in the main document body:
#outline(target: figure.where(kind: image), sanitize: true)

which results in:

This is a very nice caption, originally by @Einstein1900
This is a very nice caption, originally by Einstein

This could also be used to get rid of other formatting, such as strong, emphasis etc, that is rendered in the actual caption, but ommited in the outline.

Duplicate of https://github.com/typst/typst/issues/1880. See here for a way to have short captions right now.


Remove references to old CI systems

@scoder I would just merge this myself but I thought it was worth pointing out: appveyor seems to have run fairly recently (about 20 days ago) https://ci.appveyor.com/project/cython/cython - is it worth turning off properly?

I removed the triggers. Thanks for the reminder.


Can we use several formly-form tags to facilitate the positioning of the fields?

[ ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[X] support request

Current behavior
I would like to place fields as I want without creating customs type to do it.
You help me with my custom type card and it works perfectly :). But now I want to add buttons and grids like AgGrid between some fields in a tab and it becomes complicated with customs type.
So I would like to have several formly-form to inject the fields I want. When I used Formly 1.x this worked well but when I try this today on Formly 4.x the model isn't correctly managed.
My question is: can I use several formly-form tags?
If not, how I can easily place my fields without creating a bunch of customs type to have the desired behavior?
Example of my current project, something more concrete to understand. I have only one form but I need to add buttons which call other forms. And some data need to be displayed in a grid:
<form [formGroup]="etudeForm" (ngSubmit)="saveEtude(etudeModel)">

      <formly-form [form]="etudeForm" [model]="etudeModel" [fields]="etudeFields" [options]="etudeOptions"
                   (modelChange)="etudeModelChange()">
      </formly-form>

      <cometh-card-tabs [className]="'border-danger'" *ngIf="etudeFields && etudeFields.length > 0">
        <cometh-card-tab [tabTitle]="'Etude'">
          <formly-form [form]="etudeForm" [model]="etudeModel" [fields]="etudeFieldsEtude" [options]="etudeOptions"
                       (modelChange)="etudeModelChange()">
          </formly-form>
        </cometh-card-tab>
        <cometh-card-tab [tabTitle]="'Administratif'">
          <formly-form [form]="etudeForm" [model]="etudeModel" [fields]="etudeFieldsAdministratif" [options]="etudeOptions"
                       (modelChange)="etudeModelChange()">
          </formly-form>
        </cometh-card-tab>
        <cometh-card-tab [tabTitle]="'Assurance'">

            <button type="button" class="btn btn-success" (click)="addAttestationAssurance()">Ajouter une attestation d'assurance</button>
            <button *ngIf="showSecondButton" type="button" class="btn btn-success"
                    (click)="addAttestationProlongationAssurance()">Ajouter une attestation de prolongation d'assurance
            </button>
            <button *ngIf="showThirdButton" type="button" class="btn btn-light"
                    (click)="deleteAttestationAssurance()">Supprimer l'attestation d'assurance
            </button>
            <button *ngIf="showFourthButton" type="button" class="btn btn-light"
                    (click)="deleteAttestationProlongationAssurance()">Supprimer l'attestation de prolongation d'assurance
            </button>

          <ag-grid-angular *ngIf="rowData.length > 0"
                           #assuranceGrid
                           class="ag-theme-balham mt-3"
                           [domLayout]="domLayout"
                           [rowData]="rowData"
                           [columnDefs]="columnDefs"
                           [defaultColDef]="defaultColDef"
                           [rowClassRules]="rowClassRules"
                           [context]="context"
                           (gridReady)="onGridReady($event)"
                           (rowDataChanged)="onRowDataChanged($event)"
                           (rowSelected)="onRowSelected($event)">
          </ag-grid-angular>
        </cometh-card-tab>
      </cometh-card-tabs>

      <formly-form [form]="etudeForm" [model]="etudeModel" [fields]="etudeFieldsOther" [options]="etudeOptions"
                   (modelChange)="etudeModelChange()">
      </formly-form>

        <button type="submit" class="btn btn-primary">submit</button>

</form>

Expected behavior
Possibility to place fields where I want.
Possibility to add other components between fields like button, grid, todo list, etc...
Minimal reproduction of the problem with instructions
https://stackblitz.com/github/Jukien/Formly-Sandbox

Angular version: 7.2.4

Formly version: 4.8.2

Browser:
Chrome 71.0.3578.98

Language:
TypeScript 3.2.4

not sure I clearly understood, could you please confirm that the following issue https://github.com/ngx-formly/ngx-formly/issues/1405 is similar to what you're asking for?
Thanks!

Hi @aitboudad , that right. It's exactly what I'm looking for :)
Do you know if this feature will be developed?
Thank you!

Do you know if this feature will be developed?

I think so :)

duplicate of #1405
Note: don't expect that will be landed anytime soon, probably in V6 but not sure yet.

@aitboudad I tried with the 5.0.0-rc.0 version and it fixed the issue!
The model is now well injected.
I'm still testing but so far we can use multiple formly-form tags without problem.
Just great :)
P.S. : I updated the demo on Stackblitz


Fix type check & clean redundant code

Removes a few redundant code paths.
Second commit fixes an issue instead of just removing the redundant code path.  The backing type of returned number can now be int.  Would probably be better in a try / except, but I tried to keep to the original intent.

Removes a few redundant code paths.
Second commit fixes an issue instead of just removing the redundant code path.  The backing type of returned number can now be int.  Would probably be better in a try / except, but I tried to keep to the original intent.

Wouldn't that break multiline? It will replace all \n not just excessive new lines starting with it?

Thank you! Much appreciated!