Impeller severe performance regression(iOS and macOS tested)

Details
Hi there! Running into a severe performance regression with Impeller when running a Rive animation.
This was first reported by a customer who did not experience any issues using the Rive Editor (built with Skia) but then ran into issues when building to device (Impeller).
I've created a reproducible example at this repository.
This is the complete animation, and I'm not sure what exactly is causing the issues. Could be something with paths/painting.
Video demonstrating the performance on macOS Impeller (profile build) on Master Flutter channel:
https://github.com/flutter/flutter/assets/13705472/90e295d2-7f11-4fad-b22b-8ef71db812c5
Video demonstrating the performance on iOS Impeller (debug build, simulator) on Master Flutter channel:
https://github.com/flutter/flutter/assets/13705472/4396353a-a8a3-4e29-bb9d-248a3e5cbc18
A Skia build runs at about 9ms (macOS, profile) and 16ms (iOS debug on simulator) per frame on the raster thread. In the above videos Impeller is pushing 60ms.
This appears to have been introduced recently - Impeller for macOS with version 3.10.6, for example, did not have this issue. However, v3.10.6 for iOS (simulator and physical device) does have the performance issue.
I've only ran tests for iOS and macOS.
Flutter doctor:
[✓] Flutter (Channel master, 3.14.0-14.0.pre.215, on macOS 13.5.1 22G90
    darwin-arm64, locale en-NL)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.82.0)
[✓] Connected device (3 available)
[✓] Network resources

Thanks for the detailed report.
I do see the reported performance rendering issue using latest master and stable upon running on iOS simulator with and without impeller.
To confirm whether this is a regression or not, I'll let the engine team take a look.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.13.2, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.13.2 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff5b5b5fa6 (7 days ago), 2023-08-24 08:12:28 -0500
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.14.0-14.0.pre.212, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.14.0-14.0.pre.212 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffe1ebd207 (67 minutes ago), 2023-09-11 03:46:15 -0400
    • Engine revision 1aa11b6448
    • Dart version 3.2.0 (build 3.2.0-134.0.dev)
    • DevTools version 2.27.0
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

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

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

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

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

I ran this through the profiler and it seems to be cpu bound on impeller::FillPathGeometry::GetPositionBuffer (70% of the raster thread)

The "Metal resource events" seems to be reporting a lot of time in AllocatorMTL::OnCreateBuffer too.  I'm less certain with this problem to know if that is in fact what it is saying.  But if the problem is in the tessellation I would expect the results are potentially being uploaded in a buffer.

@dnfield and @jonahwilliams will have a better idea about what changed with respect to the tessellation.  In the meantime, I'll poke around.
ios_profile.trace.zip

Nothing has actually changed about this code as far as I know, in general tessellation is really expensive and we don't handle that well currently. I'm not sure if we actually supported impeller on macos on 3.10, so I'm unsure if this is actually a regression

I ran the sample code in 3.10.6 and it exhibits the same performance.  I'm inclined to believe too that this is not a regression.

🤷 I attached a video showing what it does my side. With --enable-impeller and without and as you can see the perf is the same. So granted it could be that impeller was not available on macOS for that version (but @gaaclarke reports seeing the performance issue on that version, so maybe it's something else).
https://github.com/flutter/flutter/assets/13705472/675f1bf9-aaa2-4eab-b196-2942e733ee22
For clarity we us this (redacted) script to pin the version of Flutter we use across team members, where TAG is set to the version:
for i in $(seq 1 $iterations)
do
    # update the local repository with new info from github
    if git fetch --depth 1 origin tag "$TAG"; then
        # set the correct tag
        git checkout tags/"$TAG"
    elif git checkout "$TAG"; then
        # see if it's a commit sha
        echo checked out "$TAG"
    else
        # tag doesn't exist, it's probably a channel
        flutter channel "$TAG"
    fi
    result=$?
    if [[ $result -eq 0 ]]
    then
        # trigger Flutter to sort itself out
        "$FLUTTER_ROOT"/bin/flutter doctor
        echo "Flutter set to $(git describe --tags)"
        break
    else
        echo "Local repo could not be updated"
        sleep 1
    fi
done

Triage: This is due to known slow tessellation performance in Impeller. We've revived the stencil-then-cover discussion with new ideas for improving our slow tessellation cases: https://github.com/flutter/flutter/issues/123671

As a tiny performance experiment I moved our libTess2 calls from using malloc to using a linear memory pool.  It increased the tessellation performance 7% (109µs vs 117µs) but doesn't handle the overflow case (not a problem with a 1MB buffer) or realloc (which isn't ever used by libtess2 in my benchmarks).  It's not huge but might be a nice stop gap while we investigate larger fixes.
benchmark:

TEST(TessellatorTest, Benchmark) {
  PathBuilder builder;
  for (int i = 0; i < 1000; i++) {
    auto coord = i * 1.0f;
    builder.AddLine({coord, coord}, {coord + 1, coord + 1});
  }
  auto polyline = builder.TakePath().CreatePolyline(1.0f);
  auto start = std::chrono::high_resolution_clock::now();
  int count = 100;
  for (int i = 0; i < count; ++i) {
    Tessellator t;
    Tessellator::Result result = t.Tessellate(
        FillType::kPositive, polyline,
        [](const float* vertices, size_t vertices_size, const uint16_t* indices,
          size_t indices_size) { return true; });
    ASSERT_EQ(result, Tessellator::Result::kSuccess);
  }
  auto end = std::chrono::high_resolution_clock::now();
  auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
  printf("time: %f us\n", elapsed.count() / static_cast<double>(count));
}

I'm lowering the priority of this to P2 because its behind our immediate fidelity/correctness concerns, and requires some long term investment into alternative rendering techniques.

Another tessellation issue: https://github.com/flutter/flutter/issues/135458
There is also example code in that bug, but I'm merging into this one since it will be easier to track.

Checking in after the StC/depth buffer clipping patch on an iPhone
Before: ~70ms raster times
After: ~40ms raster times.
Hey that is progress. Much of the remaining overhead is in polyline generation, which we've sort of known is inefficent but wasn't important as long as we had to deal with tessellation.

Interestingly if I run with instruments attached we get ~8ms raster times. I suspect that for some reason (potentially thermal throttling?) we're getting kicked onto the slow core. So despite tessellation being most of the CPU time, we haven't actually improved it as much as we could have. Need to double check if we have the correct affinity settings.

Actually if i launch it in release mode then raster times are ~8ms 😵💫

StC reduced raster time for this scene by 76%, which brings us down to ~2x Skia's raster time (down from ~8.5x).
iPhone 12 mini (PROFILE)
Skia (with raster cache)
5.1 ms/frame
https://github.com/flutter/flutter/assets/919017/e9be30bf-d86d-49b8-8cc2-56b1a49d2fb9
Impeller (before StC)
43.7 ms/frame
https://github.com/flutter/flutter/assets/919017/10a01a5e-c456-4ca0-b951-2b38187ae815
Impeller (after StC)
10.6 ms/frame
https://github.com/flutter/flutter/assets/919017/68e417ed-f12e-40a7-ba05-2ef6c6f9dd21

This is in 3.22 along with many other minor speedups since this bug was filed. Going to call this resolved, although we have more ideas for speeding up paths and reducing per-draw call overhead in the future.

Thanks @bdero 😍💪


Run JDBC test framework in multi-db by default and add separate workflow for single-db mode

Description
This commit makes the following changes:

Modifies the JDBC test workflow to run in multi-db migration mode by default
Adds a new workflow to run the JDBC tests in single-db migration mode
Introduces a new flag single_db_mode_expected to indicate different expected output for single-db migration mode
Fixes test files having different output in multi-db and single-db migration mode by either adding separate expected output files with the single_db_mode_expected flag or making changes in test files itself to have same output.

Issues Resolved
Task: BABEL-5081
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
42 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.07%) to 73.42%

Files with Coverage Reduction
New Missed Lines
%

contrib/babelfishpg_tsql/src/dbcmds.c
3
73.32%

contrib/babelfishpg_tsql/src/multidb.c
18
80.58%

contrib/babelfishpg_tsql/src/catalog.c
21
85.22%

Totals

Change from base Build<PHONE_NUMBER>7:
-0.07%

Covered Lines:
42514

Relevant Lines:
57905

💛  - Coveralls


Will the sequence of SCNN_D, SCNN_U, SCNN_R, SCNN_L effect the performance？

As the lanes in the datasets usually appear in a vertical-like mode, I am not sure whether the sequence of SCNN_D, SCNN_U, SCNN_R, SCNN_L effects the performance? Do you have any idea about it?

@chixma I haven't tried a different sequence. But I guess it won't make much difference.


Namespace conflict: logstash_config

The most popular Logstash cookbook lusis/chef-logstash uses the name logstash_config for one of its core resources. Given the likelihood that people who want to use your config generator are also going to be using that cookbook, I think it might be a good idea to pick a new, more generic name for this method (e.g. logstash_config_hash).
Thoughts?
cc @EdHurtig (my co-worker who first noticed this issue)

Thanks for the head's up. I've just released v1.2 of the Magic cookbook, which renames the logstash_config generator to logstash_typed_config. Hope that helps!

Thanks!
On Thursday, October 1, 2015, Sean Clemmer<EMAIL_ADDRESS>wrote:

Closed #5 https://github.com/sczizzo/magic-cookbook/issues/5.
—
Reply to this email directly or view it on GitHub
https://github.com/sczizzo/magic-cookbook/issues/5#event-423845471.

:guitar: :+1:


Make XMLHttpRequest and XMLHttpRequest.upload proper EventTargets

So far, XHR only supports a few onfoo event handlers, not the entier EventTarget interface (addEventListener, removeEventListener). It also doesn't support the upload object on Android -- for no good reason. Even if we don't send any events there yet, there's no reason we have to break consuming code that wants to register an event handler there. This PR rectifies all that.
Fortunately, adding proper EventTarget support is very easy thanks to event-target-shim. We already use it in our WebSocket implementation. It transparently handles the addEventListener('foo', ...) as well as onfoo APIs, so when you dispatch an event on the event target, the right handlers will be invoked. The event object is wrapped so that event.target is set properly. Basically, it's a super easy way to make us conform to the spec.
Also added a bit of polish here and there, using ES2015 class property goodness to consolidate a lot of Flow property definitions with the corresponding property initializers.
Test Plan: Ran through the XHR Example in UIExplorer on both platforms. Made sure upload progress events still work on iOS and timeouts work.

Is this one good to go? Should I merge it?

Code looks good to me. Hope Flow is not complaining about the XHRBase static attributes.

Flow didn't complain. Should be good to go.

looks good to me, good to merge

@facebook-github-bot shipit

@philikon This breaks fetching QEs in one of our internal apps. Maybe @andreicoman11 knows what's wrong?

Looks like this breaks fetching QEs in one of our internal apps.

Weird. In an end-to-end test or in a unit test? If it's a unit test, I could imagine that the unit test uses some internal knowledge of XMLHttpRequestBase to stub out some stuff.
Anyway, I'd love to help in whatever way I can to fix that. You guys know where to find me :)

Philipp I've just sent you a message :)

I've just looked over the diff again. There's very little behavioral change to XHR, so I'm surprised there's a new failure.
The biggest change is obviously concerning the EventTarget API. So one possible failure scenario could be something this:

existing code does something like xhr.addEventListener && xhr.addEventListener('timeout', timeoutHandler) and sets a timeout (or is on a platform with a default timeout)
in the test, the request actually times out
the consumer would never have found out before this patch, but now it does, causing the test to fail

The other change is that event handlers now get an event object rather than null. Not that they should care, but who knows...
Wish I could be more helpful. If it's too difficult to track down the problem on your end, @mkonicek, we can also try to take this diff in steps and see which change creates the failure. Would be tedious, but perhaps in the end quicker? Your call.

@philikon I have a question after reading RN Android code. RN Android networking code did not handle upload progress event, so your change can not make uploading progress works. Am I right?

@philikon I have a question after reading RN Android code. RN Android networking code did not handle upload progress event, so your change can not make uploading progress works. Am I right?

Correct, this doesn't change the supported functionality on either platform.

@philikon I'll try installing fb4a in my emulator and running the running the test locally to repro the timeout.

@philikon updated the pull request.

@philikon updated the pull request.

@philikon updated the pull request.

(circleci failure unrelated)

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review.

@philikon updated the pull request.

Rebased on top of D3229435 / d363b1f2e2a50a023284ee3c370cba3b7f068978

#finallylanded 👍

Thanks for the help Kevin!


Readme Usage Section

I am new to using this plugin for Rust development and I was particularly interested in using the shortcuts to run specific tests under the cursor. However, I am unsure about how to achieve it.
The animated Gifs in the Readme Usage section are illustrative of the results that can be achieved with the tool, but the video is much too fast to learn from. It would be very beneficial to have a short description of what the video illustrates and a listing of the shortcuts used in the video itself.
I'd be happy to update the Readme myself, but I do not know where to find the documentation for the keymappings.

You're right, the usage docs aren't great right now. I will definitely update the docs soon hopefully with better usage instructions


Theme Watch not notifying --notify=/tmp/somefile

What I expected to happen
On watch the /tmp/somefile should be created & updated
What actually happened
Themekit doesn't update the file
Steps to reproduce

theme download
theme watch --notify/tmp/somefile
Make changes

My Environment
OS (including version): 10.12.6
Themekit version: 0.7.5
Ignore Files(if any): none

Hey @webberwang I cannot reproduce this.
Here is what I am doing and maybe we can clarify where the problem is

theme watch --notify=/tmp/somefile
change assets/app.js
wait for themekit to say Successfully performed Update on file assets/app.js
check that /tmp/somefile was created
change assets/app.js again
check that /tmp/somefile timestamp has changed

Do you have the correct permissions to write to /tmp?

Shouldn't /tmp directory should be created by theme watch? Or do we need to manually create the directory?

The /tmp file is standard in a lot of systems but not all. No theme kit will not make the directory. You need to provide themekit with a valid path.
Sent from my iPhone

On Oct 6, 2017, at 5:08 PM, Webber Wang<EMAIL_ADDRESS>wrote:
Shouldn't /tmp directory should be created by theme watch? Or do we need to manually create the directory?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


Migrating out of Bintray

Bintray is scheduled to shut down at may 1st and currently not available at 12 april (service brown-outs to remind users about the services that are going away on May 1st.)
https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
artifacts would not be available leading to CI/CD and fresh project failures
consider publishing artifacts somewhere else

I think based on the discussion / plan here: https://github.com/sbt/sbt/issues/6294
We might be covered for already published versions since this is listed in the sbt-community plugin's @gilandose can possible confirm.
Future releases will need to be published somewhere else, and it seems like the guidance is to move to publishing to OSS Sonatype (Maven Central) instead

An update for anyone following this: the sbt migration to the new jfrog repo finished last night and this plugin shows up there. (https://scala.jfrog.io/artifactory/sbt-plugin-releases/).
If you want to verify your projects can still resolve this plugin after the migration you can test it out like this:
https://github.com/sbt/sbt/issues/6294#issuecomment-822506120
@gilandose will still need to find a new way to publish artifacts for future releases but any existing versions should now be safe for the next brownout and eventual end of service for bintray/jcenter


fix #32 by updating unpack in source function for new rel nu

Thanks to @jmsull for adding a relativistic neutrino component. This broke the Newtonian source function. Probably should have something more robust for unpacking.

Sorry! I ignored the source function at the time since I wasn't looking at it but should've checked it.

Oh it's no problem -- I am a believer in the "merge to master, then fix" workflow. Otherwise PRs never get merged!


Sia coin

Hi Guys,
Does anyone have example config for siacoin? Is it possible to setup this coin on the Miningcore? Thanks!

Siacoin is not yet support and whether if and when it will be supported is currently unknown.

duplicate of #4


Remove dependency from k8s.io/kubernetes and k8s.io/klog (v1)

Description
This PR removes the dependency from the k8s.io/kubernetes repository, since it is currently problematic (it requires many rewrites), making it also problematic to import liqo from external projects. Yet, it was only used for a very few utility functions, which have either been reimplemented or copied verbatim (the same approach was adopted in the virtual-kubelet repo for those functions). Finally, it converts all klog dependencies to v2.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[x] Unit tests
[x] E2E tests

Maybe I would add a file (maybe a doc.go) in /internal/kubernetes/ to explain the purpose of this package.

/rebase

/test

/test

/test

/test

/merge


The deprecated_member_use_from_same_package triggers on documentation.

If you deprecate, say, an optional parameter of a method, then you get
deprecated_member_use_from_same_library warnings about the documentation of that parameter on the same function.
Example:
/// when [timeout] is provided.
SendPort singleCallbackPort<P>(void Function(P response) callback,
    {@Deprecated("Use singleCallbackPortWithTimeout instead") Duration? timeout,
    @Deprecated("Use singleCallbackPortWithTimeout instead") P? timeoutValue}) {

Here I get a warning on the [timeout] link.
I consider documentation on the declaring method to be aspects of the same member, not a separate usage.
Until you remove the parameter, you still need to document it.
Maybe allow documentation uses, at least on anything containing the deprecated declaration (method, class, library). It's self-documentation at that point, not an external reference to the deprecate member.

Until you remove the parameter, you still need to document it.

The idea of separating deprecated_member_use_from_same_package from deprecated_member_use is that until you remove a deprecated parameter (etc), you still want to test (and document) it. So you can ignore this code inline or across a file, or across a package.
The idea to keep reporting on this comment reference is to remind the developer to change it when the parameter is removed. However, I think we're doing a much better job recently on tracking and reporting unknown comment references (in CI, in the SDK, ...), so I think it makes sense to make the intended exception.


Feature: Add extra auth params for the authorization endpoint

Amazon Cognito allows for two custom parameters at the time of sending the request to the authorization endpoint to specify the identity provider that will be used. These parameters are identity_provider and idp_identifier as described in their documentation https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html.
As of now the package allows for extraAuthParams at the time of getting the tokens but not at the time of getting the login url when using the /authorize endpoint.
Is there any reason this is not supported or is it possible to enable extraAuthorizationParams that can be passed to the /authorize endpoint?

Hi, thank you for you'r suggestion!
I was not aware of any auth providers that had extra params for the auth request.
A goal for the library is to support as many providers as possible, and the solution you propose fits in well with the already existing extraAuthParams options pattern as you point out.
I will get to implementing this feature as soon as I can :)

This was easy enough to add.
The feature has been merged in this PR if you are interested: https://github.com/soofstad/react-oauth2-pkce/pull/26
Note that some of the config params changed name as they were misleading. Old ones still work for backwards compatibility.
Available now in version 1.7.0

That was quick! Thank you very much!


Fix Image Loading in AllEvents Component

It takes a lot of time to load images so you can add a low-resolution image to show until the actual image loads.

Could you assign this to me under SWOC 24 @abhideepkumar

could you assign this to me under SWOC24 @abhideepkumar

Can you please assign to me i would like to work on this

I assigned you, and before working tell me what u are going to do to fix this.

i would like to add shimmer ui like in youtube if you have any thoughts please comment

Ya sure, go for it.

i am not able to fetch data from API can you help me

Have you setup the env variables? Read the readme file again and make sure that every steps you followed well.

okay

example.env file doesnt exist can you help me

I added the file recently so I think you must be using the last pulled code. So, run git pull to pull the last code and then you will see example.env.local

okay

its showing upto data

it is updated in repo but am not getting that file in my system can i add .env file in my system

.env works in React js and this is a Next js project so, you need to create .env.local file name and yes create it and add all env variables because without that you can't work.

okay

are you working on this.

hey i updated with my values still am getting same error

this is my client id and secret right

ya these are the client id and secret.
And delete this. You must prevent your api to expose on an open platform.
Try asking these in private chats like linkedin.

Actually, no u can put dummy data where it is mapping from database and u can comment the fetch part to stop this error. And once you change the UI then change the mapping and fetch part to what it should be.

okay @abhideepkumar

hey i have sent you message on lkdn can you please tell me when you will free

Hi, this issue is already fixed in #18 issue.


Upgraded PlayFrontendHmrcVersion to 7.23.0-play-28

Type of change

[ ] Breaking change
[X] Non-breaking change
[ ] Cosmetic change

Description
Jira link: Jira title
Updated PlayFrontendHmrc to major version 7
Only thing I had to change was that nonce is no longer a parameter in hmrcLayout
I think it gets it from the request now. That's what the changelog seems to imply
https://github.com/hmrc/play-frontend-hmrc/blob/4a55049a878ada8c47ac378cae79a0006eb16a11/CHANGELOG.md?plain=1#L297

The nonce field was removed as part of thisPR https://github.com/hmrc/play-frontend-hmrc/pull/226/files
It should also be noted that HMRCLayout itself is deprecated now


fix: Missing collection link

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR Type

[x] Bugfix
[ ] Feature
[ ] Refactoring

Context

[x] Closes #4781
[ ] Requires deployment <>

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[x] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </bsx/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Had issue bounty label?

[x] Fill up your KSM address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot 📸

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

For now, I would use the id of item as its name if the data is empty.

The missing name should be solved on the indexer side.  related to #4775

means indexer failed to fetch?

The missing name should be solved on the indexer side.  related to #4775

means indexer failed to fetch?

Yes, I think so.

pay 30 usd

😍 Perfect, I’ve sent the payout
💵 $30 @ 34.25 USD/KSM ~ 0.876 $KSM
🧗 Caiv9TbPz68q5dC8EcHu5xKYPRnremimGzqmEejDFNpWWLG
🔗 0x0920a835c00b7546e7b3bab371a5c4295df5cec9a558b5029a509370b43353e3
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues

fallback meta title also?

There is already a placeholder image for the meta fallback.


Update for upstream aws operator to use shared CRDs per object bucket…

… library impl to fix OLM issue
With the use of the object bucket shared library, many operators (noobaa, rook-ceph, etc...) are sharing a single CRD - this causes breakage with OLM so the plan is to update existing operators that use this (i.e. aws s3 operator) and change the CRD from owned to required
This also means that a dummy object bucket operator will need to be created that will own the CRDs.
As a result, this operator is being updated to only have a single CSV (since this change is most likely not backwards compatible) and a package.yaml file - the existing CRDs were deleted.

@J0zi Can this be reopened and retested?

/reopen

@screeley44 This is the build error:
ERROR: spec.customresourcedefinitions.owned not defined for csv [awss3operator/awss3operator.v2.0.0.clusterserviceversion.yaml]

I think we need to at least define owned: []

@guymguym your PR includes changes to more than one operator subdirectory: [awss3-operator-registry, awss3operator]. PRs for this repo should only include changes to a single operator.
Also consider deleting first 2 lines from CSV - begining with '#!'.

@screeley44 @J0zi The multiple directories is because of the rename.
Perhaps we separate to 1st PR that removes the old dir, and 2nd PR that adds the new one?

/test all

@guymguym locally got following, UID in object meta looks empty for me.
Operation cannot be fulfilled on catalogsources.operators.coreos.com "operatorhubio-catalog": StorageError: invalid object, Code: 4, Key: /registry/operators.coreos.com/catalogsources/olm/operatorhubio-catalog, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: ba186ea2-d925-11e9-801d-74d1ec5af142, UID in object meta:

@screeley44: Important announcement: Flat operator directory structure is obsolete from 23-rd of October 2019, only nested directory structure will be accepted. You can use nested structure before this date also.

replacing with #895 - this is stale


Permission already exists - Cannot approve new API permission requests

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
When you try to approve API permissions, they get approved.
Observed Behavior
Error: Permission already exists
Steps to Reproduce
Same steps as in #3823. This is not fixed on our tenant.

@5erban Can you email me at<EMAIL_ADDRESS>We can set up some time to look into your issue.
Sorry about preemptively closing your previous bug. I'll make sure this one stays open until things are resolved.

@lahuey , no problem. Actually I found a way to fix it. We had two SharePoint Online Client Extensibility apps in AAD, one was from Microsoft and one was only listed when search for All Enterprise Apps.
The SharePoint Online Client Extensibility App from Microsoft had a number of permissions already approved. However, spfx3rdPartyServicePrincipalId was referencing the  SharePoint Online Client Extensibility App listed under All apps.
I'm guessing that, at some point, the reference from Microsoft's SPOCE changed to All's SpOnCliExt. I'm not sure how this can happen.
Bottom line: you couldn't approve some permissions because they were already approved in the other SPOCE app.
The fix that worked for us:

Delete both the app as well as the app registration for SharePoint Online Client Extensibility listed under All category in Enterprise Apps.
Redeploy a SPFx package - this automatically creates a new App Registration for SPOCE.

Removing all permissions from Microsoft's SPOCE did not work.
Please let me know if you need further info on this.

Awesome! Deleting the app was actually the first thing I was going to recommend. We changed the design recently to put things in a good state if the application is deleted. Glad to know you're unblocked.
Thanks!


Application killed on "Compute activity fingerprints"

Application is killed when all memory is consumed, possibly due to a high value of variable "dim".
In my case: [ 24556.44921875<PHONE_NUMBER>36  ]
https://github.com/martin-ueding/geo-activity-playground/blob/11fb381161dee7e9d04af018f2966c262a40ff09/geo_activity_playground/core/similarity.py#L77
Maybe due to corrupted gps data? Activity looks fine on Strava, but time_series shows distance of more than 30000 km

That sounds like some bogus point of (0.0, 0.0) in your activity data. I'll just skip the fingerprint computation for these now. Perhaps once the activity loads, you will see that it has a point at the north pole or something.

Version 0.20.0 is released you can update and try it out. If the issue persists, please reopen this ticket.


Demodulate pre-recorded samples or share AVAudioRecorder instances

How can I pass QuiteModemKit a buffer of pre-recorded samples for demodulation, or samples from a sound file that may have been recorded at an earlier time?
I'm already recording audio to listen for voice commands (or other signals), and at times I want to pass it through quiet to look for modulated metadata, but QuietModemKit costs battery to listen at all times. I see some LoopbackAudio references in the original impl., so I'm hoping it's straightforward to expose the demodulation step as an explicit function.

I see that quiet_decoder_consume is called from consumeAudioFromSamples, which in turn is called from https://github.com/quiet/QuietModemKit/blob/21be7501add4f118b575b37ebfc4cb700f930302/QuietModemKit/DeviceAudioInput.m#L30
Could you show an example of how I would manually pass in the samples from my installTap call so that I don't have two processes consuming audio resources?
These implementations seem to be private. Will I need to recompile from source?

As I look at this again, I think you really just want a QuietReceiver. You're right that these things are private so you'll need to fork slightly, but it looks like the changes should be minimal. I'm not sure what you mean specifically by recompiling from source but you would need to run a slightly different version of the library.
I think the process is

Expose QuietReceiver and whatever else until compiler stops complaining.
Instantiate a QuietReceiver using the same config as the QMFrameReceiver and whatever sample rate you're capturing at (44100, 48000, etc). This number has to be the sample rate that your capturer runs at.
Feed your instance samples using consumeAudioFromSamples. It just wants an array of floats and the length of the array.
Call receive on the instance. This is nonblocking - if there's no decoded frame then you just get a nil back. You can feed a block of samples, then just keep receiving until nothing else comes out.

Feeding the decoder requires a bit of care. It wants floating-point, mono PCM. It has to match this exactly to work.
It looks like the tap block gives you something that will just spit out floating point samples (floatChannelData) so you should be set there. The length parameter you give to QuietReceiver should be the number of samples, not the length in bytes of the buffer e.g. it should be length of buffer/4.
The one thing you have to be careful of is that if you're capturing in stereo, then the buffer you give to quiet needs to be mono (you'll probably have to copy to a new buffer to make this work). Just throw away one of the channels, don't mix/add them together since that will cause destructive interference.
Let me know if you have more questions, but I think that's the high level idea.

On second reading, it looks like floatChannelData only returns non-nil if you're capturing in float. If you're capturing in something else, you'll need to convert to float, but it's pretty easy. For 16-bit fixed just divide all the samples by SHRT_MAX. For 32-bit fixed, divide by INT_MAX.

Hi @brian-armstrong !
Is there any news on your new Swift-friendly library?
Thanks a lot.


[Bug]: PointAnotation under others markers - can't setup zIndex'es

Mapbox Implementation
Mapbox
Mapbox Version
10.0.7-rc.0
Platform
iOS, Android
@rnmapbox/maps version
10.0.7-rc.0
Standalone component to reproduce
How can i setup PointAnotation & MarkerView zIndex?

Observed behavior and steps to reproduce
No response
Expected behavior
No response
Notes / preliminary analysis
No response
Additional links and references
No response

See https://github.com/rnmapbox/maps/blob/main/docs/Annotations.md


MultiModifier

FYI I upgraded to rust 1.0 and found this:
macros/src/lib.rs:21:9: 21:17 error: use of deprecated item: replaced by MultiModifier, #[deny(deprecated)] on by default
/git/checkouts/criterion.rs-b221423a0cb2a2ed/master/macros/src/lib.rs:21         Modifier(Box::new(expand_meta_criterion)));
Using #[allow(deprecated)] makes it compile atm.

criterion is now working with a recent nightly.

Great!


Revise function need additional data from Simon

This PR revise the test case need additional data

Thanks @vumichien! Would you mind updating the corresponding samples in data/raw and remove those test data folders? BTW, could you please also remove some examples from each sample and keep 1-2 at most? Just don't want to make models rely on the docstring examples too mcuh, as they are greatly aligned with some test cases.


removed unnecessary "heh"

I removed the "heh", because it is disturbing for non native english speakers (like me), and is not quite reminiscent of the first version of the handbook

Nah, I'm happy with this one, maybe it could go into italics though to indicate it's meta

Ah, it already had it, so I'm just going to close 👍🏻


Navbar show and enable

This PR extends the support of the chaise config property navbarMenu by allowing another attribute to be defined for each node or leaf that gives further control over showing the option and enabling the click event for the option.
As outlined in the issue, if the option's acls.show list includes a globus group or globus user that matches one of the attributes for the current session, it won't be visible in the DOM. When the option can be shown, but the acls.enable list doesn't have a match, the option will be shown but greyed out and not clickable.
In the same case, shown but disabled, if the node spawned a sub menu with more options, the caret will be hidden and the menu will not open.
I wasn't sure about testing this in travis. The tests for this are only being run for local environments currently because I think the globus group hash value used in the travis tests changes each time we recreate that environment.

For testing, we currently don't have any automatic test cases in chaise based on user session, so we could also skip adding test cases for this as well.
Although if you want to add these types of test cases, you can start doing the same thing that Chirag did in ermrestjs. In ermrestjs, to resolve the issue that you mentioned, during the test setup he's getting the user id associated with the cookie.
If we're not adding automatic test cases for this, we need to make sure to have at least one manual test for this (or steps to recreate this manual test scenario).

Changes based on suggestions have been made. @RFSH this may be reviewed again.


Final task

For the final task, are we expected to make the dataframe for each year into a smaller dataframe only consisting of the  observations for maximal temperature? If so - should we sort by higest temperature? And should the dataframe consist of only data from the 'ITE00100550' station or from all of the stations?

Hi Mie,
I'm assuming that you are asking about exercise 0.4.6. Here, you should simply use 'df_select' from before.
Best,
Joachim

Hi! No, I'm talking about Ex. 0.5.1.

Aha! Here you should use data from all stations, and you should not restrict your data to observations for maximal temperature.
/Joachim

Hi Joachim,
The assignment-hint says: "Don't forget to process the loaded DataFrame by using .iloc[] and changing the column names for each year as we previously did for the year 1863."
What are we exactly meant to do (i.e. what does it mean to "process the loaded DataFrame by using .iloc[])? I understand that we should modify the column-names as in Ex. 0.4.2... But should we also do any other modifications?
Also: is it necessary to use .iloc[] when changing column-names? I simply use .columns=[] which seems to work as well - am I missing something?
/Johan

Hi Johan,
What you are meant to do is the following:

Load data for each year
Keep only the first four columns for each year
Rename the columns appropriately
Store each data frame as an element in a joint list
Create a new joint data frame from this list
Reset the index

Does this make sense?
Regarding .iloc[]: It is not necessary to use .iloc[] when changing column-names. In fact, I don't think we are ever asking you to do so? Actually, using .columns=[] sounds perfectly appropriate :)
Best,
Joachim

Hi Joachim,
Thanks a lot.
Am I right in assuming that concatenating several dataframes also resets the index?
I.e.: if i have a list (list_of_dfs) containing the four dataframes for each year, then the following code will create a joint dataframe and reset the index?
df_weather_period = pd.concat(list_of_dfs)
And you do ask us to use .iloc[] in the hint to the exercise.
/Johan

Thanks a lot, Joachim.
You do actually ask us to use .iloc[] in the exercise hint.
/Johan

That's for the selection of columns (preprocessing) - not the renaming of columns:)
Best,
Joachim


default package not available for 2.12

scalaVersion := "2.12.8"

  "com.lihaoyi" %% "ujson" % "0.7.1"

 object default is not a member of package upickle
[error]   import upickle.default._
[error]                  ^
[error] one error found

You have the wrong dependency listing

@lihaoyi  thank you.  was just following the docs here
http://www.lihaoyi.com/upickle/


Response and model markers

This is just to merge into main
only need to fix any conflicts, if any exist

 Creating responses to challenges.

 User registration and flash messages.


PR: Fix env status widget that prevent Spyder to launch

Description of Changes

[ ] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)

[ ] Included a screenshot or animation (if affecting the UI, see Licecap)

After PR #14332, Spyder fails to launch with the following tracebacks:
  File "/home/Public/spyder/spyder/widgets/status.py", line 336, in update_envs
    self.update_interpreter()
  File "/home/Public/spyder/spyder/widgets/status.py", line 392, in update_interpreter
    self.value = self._get_env_info(self._interpreter)
  File "/home/Public/spyder/spyder/widgets/status.py", line 381, in _get_env_info
    __, version = self.envs[name]
KeyError: 'custom'

  File "bootstrap.py", line 239, in <module>
    start.main()
  File "/home/Public/spyder/spyder/app/start.py", line 227, in main
    mainwindow.main(options, args)
  File "/home/Public/spyder/spyder/app/mainwindow.py", line 4084, in main
    mainwindow = create_window(app, splash, options, args)
  File "/home/Public/spyder/spyder/app/mainwindow.py", line 3941, in create_window
    main.setup()
  File "/home/Public/spyder/spyder/app/mainwindow.py", line 1535, in setup
    self.apply_statusbar_settings()
  File "/home/Public/spyder/spyder/app/mainwindow.py", line 3498, in apply_statusbar_settings
    self.interpreter_status.update_interpreter(interpreter)
  File "/home/Public/spyder/spyder/widgets/status.py", line 392, in update_interpreter
    self.value = self._get_env_info(self._interpreter)
  File "/home/Public/spyder/spyder/widgets/status.py", line 381, in _get_env_info
    __, version = self.envs[name]
KeyError: 'custom'

As you probably notice from tracebacks, I have a custom environment.
While I debug _get_env_info and the envs dict, I see that envs was cleared (probably by this).
Issue(s) Resolved

None
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: trollodel

Hey @trollodel, thanks for the quick fix!

As you probably notice from tracebacks, I have a custom environment.

Could you describe your setup to see if I can reproduce it?

While I debug _get_env_info and the envs dict, I see that envs was cleared (probably by this).

I don't understand how this could have happened. Could you describe how do you think the env was removed?

Could you describe your setup to see if I can reproduce it?

I actually have no virtual environment, Spyder uses the system interpreter and dependencies are pip installed or provided by the OS package manager (apt in my case).

I actually have no virtual environment, Spyder uses the system interpreter and dependencies are pip installed or provided by the OS package manager (apt in my case).

Ok, your problem should be fixed in the latest 4.x. It is on my testing with a virtualenv on Linux.
Could you test and let us know?

Tested it and the issue is now resolved for me. Thanks @ccordoba12


Ability to format variables within interfaces

When outputting a variable, you should be able to use a standard set of formatters to do things such as:

date & time formatting
number formatting

Added in commit 6bcc3308036038f4a206e7e4b8b2ecc2b2939d9e


module: Re-implement using library constructors/destructors

By using constructors/destructors we unify the case of static linking with
that of dynamic linking, and we reuse the build flag FEATURE_INIT_FINI. Using
constructors/destructors also allows us to cover the case where library
constructor/destructor functionality is unavailable, because we can expose the
module registration/unregistration functions as global symbols, to be called
explicitly from within the application.

This is an alternative to #2014.

@zherczeg I have addressed your review comments.

Fixed the signed-off-by message.

@LaszloLango I have addressed your review comments.

@LaszloLango now I have addressed your review comments :)

@zherczeg Whoops! Fixed now.


Bug report: connection refused error while encryption is turned off (HTTP mode)

Describe the bug
all the below observations were made with the Encryption setting turned off. the app versions are also the same b/w devices.
error message when trying to share files b/w an android phone and a linux pc:
DioError [DioErrorType.other]: HandshakeException: Connection terminated during handshake
Source stack:
#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:488)
#1      DioMixin.request (package:dio/src/dio_mixin.dart:483)
#2      DioMixin.post (package:dio/src/dio_mixin.dart:97)
#3      SendNotifier.startSession (package:localsend_app/provider/network/send_provider.dart:97)
<asynchronous suspension>

getting the same error when trying to share files b/w android devices.
To reproduce

Go to settings and turn off Encryption.
Restart the server or restart the app.
do the same on the other device.
try to send some file over to the other device

Expected behavior
should prompt the recipient about new incoming files.
Screenshots
No response
Desktop (please complete the following information)

OS: Arch Linux
Version: 1.7.0

Smartphone (please complete the following information)

Device: tested on multiple android devices, namely: Poco M2 Pro and Moto G52.
OS: Android
Version: 1.7.0

Additional context
here are my findings while debugging this issue:
even with Encryption turned off, the sender is sending TLSv1 Client Hello packets to the recipient, to which the recipient "panics". TLS packets should not be sent in HTTP connections as far as i know, but i may be wrong here.
below is a screenshot of the wireshark dump(take a look at number 531 through 538):

Does the error still exist after you restarted the app on both devices? And encryption is turned off on both I guess?

yes, i did restart the app on both devices

Fixed in v1.8.0


[Bug]: icon_color ignored for conditional entity chips

Current Behavior
This card does not generate a colored chip:
  - type: conditional
    conditions:
      - entity: binary_sensor.dog_water
        state_not: 'on'
    chip:
      type: entity
      icon: mdi:water
      entity: binary_sensor.dog_water
      content_info: name
      icon_color: red
      name: Dog Water Low!

Expected Behavior
Should generate a colored chip.  This chip works:
  - type: conditional
    conditions:
      - entity: binary_sensor.dog_water
        state_not: "on"
    chip:
      type: template
      entity: binary_sensor.dog_water
      icon: mdi:water
      icon_color: red
      content: Dog Water Low!

As does this one (no conditional):
  - type: entity
    icon: mdi:water
    entity: binary_sensor.dog_water
    content_info: name
    icon_color: red
    name: Dog Water Low!

Steps To Reproduce

Create a Mushroom Chips card
Create a conditional chip
Fill in condition
Add an entity
Configure entity to have a colored icon

Environment
- Home Assistant 2022.10.0
- Supervisor 2022.09.1
- Operating System 9.0
- Frontend 20220907.2 - latest
- Mushroom Cards Version: 2.1.3

Anything else?
Pictured here, two conditional chips, one using template, the other with an entity.

For entity card and entity chip, the color is only applied when the entity is active ("on" for binary sensor)

You are sooooo right!
When I used the correct kind of entity it is green and beautiful again.
Thank you for your understanding and patience with an confused programmer :-)

No problem, the doc are not complete for chips 😅


What about proxying request?

I'm starting to use dashy and when I wanted to use the widget NASA APOD but it didn't work because it's "Unable to fetch data". I think it's a problem with docker so I went to the docs and finded this:
https://dashy.to/docs/troubleshooting/#option-3---proxying-request
The problem is that within that doc, at the first line you read this:

Instructions and more details can be found here. (https://dashy.to/docs/widgetsproxying-requests)

See, the "https://dashy.to/docs/widgetsproxying-requests" link is not working...
Thx for your time ;)

Note: I just found this similar issue
https://github.com/Lissy93/dashy/issues/1172


Cache location area encounters

This caches location area encounters, per issue #10
There's some logic in here to make sure that https://github.com/PokeAPI/pokeapi/pull/335 doesn't have any impact here.

Hmmm, apparently I removed some cachedir-creating code. Looking into it.

Thank you for your contribution @jrubinator, and your patients (sorry for the delay here). I'm currently making several big improvements under the hood of pokebase. Unfortunately this means the changes you suggested no longer make sense with the current code state, so I have to close this PR. However, in the coming commits I intend to add support for subresources from the API, so keep your eye out for those (I had no idea subresources were even a thing, thanks for calling that to my attention).

@GregHilmes  - no problem! I look forward to seeing the enhancements :)


Package request: VLC v4

Project description
VLC is a cross-platform media player and streaming server.
Version 4 add new features, such as new redesigned UI, fixed Wayland support (current version blinks even with export QT_QPA_PLATFORM="wayland"), QT6, etc. You can read here more.
Metadata

homepage URL: https://nightlies.videolan.org/
source URL: https://code.videolan.org/videolan/vlc
license: GPLv2 or later
platforms: Linux, as Darwin seems to be unsupported in NixOS VLC v3.

Add a :+1: reaction to issues you find important.

I tried to do an overlay by myself, but didn't really finish it
https://gist.github.com/PerchunPak/a9eda19fcc3531cbc1dc77268611c715


Fixes #RHIROS-1357 - Upgrade to Python 3.11

Why do we need this change? :thought_balloon:
The support for Python 3.8 ends on October 2024. Considering this we are upgrading to support Python 3.11
Documentation update? :memo:

[ ] Yes
[ ] No

Security Checklist :lock:
Upon raising this PR please go through RedHatInsights/secure-coding-checklist
:guardsman: Checklist :dart:

[ ] Bugfix
[ ] New Feature
[ ] Refactor
[ ] Unittests Added
[ ] DRY code
[ ] Dependency Added
[ ] DB Migration Added

Additional :mega:
Feel free to add any other relevant details such as links, notes, screenshots, here.

its failing for librdkafka, I tried to include it however the package is not available in default repository, I would check this further,
21:17:25 #14 34.61   In file included from /tmp/tmpnzjmw3jb/confluent-kafka-1.5.0/confluent_kafka/src/Admin.c:17:
21:17:25 #14 34.61   /tmp/tmpnzjmw3jb/confluent-kafka-1.5.0/confluent_kafka/src/confluent_kafka.h:22:10: fatal error: librdkafka/rdkafka.h: No such file or directory
21:17:25 #14 34.61    #include <librdkafka/rdkafka.h>
21:17:25 #14 34.61             ^~~~~~~~~~~~~~~~~~~~~~
21:17:25 #14 34.61   compilation terminated.
21:17:25 #14 34.61   error: command '/usr/bin/gcc' failed with exit code 1
21:17:25 #14 34.61

This package is not available for EL8 https://access.redhat.com/downloads/content/librdkafka-devel/1.6.1-102.el9/x86_64/fd431d51/package

We need to get confluent-kafka 2.2.0 : https://github.com/confluentinc/confluent-kafka-python/issues/1452

@yash2189 Could you take a look for testing? Thanks!

/retest

Attached the observations from the EE testing on ros-backend on the jira card. We are positive w.r.t our tests :+1:


Change value of column in the table view

What I did:
I have two models: "Item" and "Category", they has a relation one to many.
In table view where category column, i want change category value from "id" to "name".

I've tried deleting column $this->crud->removeColumn('category_id') .
Then add
$this->crud->addColumn([             'label' => "Category",             'type' => "select",             'name' => 'category_id',             'entity' => 'categories',             'attribute' => 'title',             'model' => "App\Models\Category"         ]);
What I'm doing wrong?
Backpack, Laravel, PHP, DB version:
Backpack crud 3.3, laravel 5.5, php 7.2, mysql 5.7

@egadirov We'll have to close this as this is not a bug, but a question about how to do something, as ^^ says for questions use gitter or stack overflow.
However its best to post your whole setup method so people can see what's happening - e.g if you have things like the "auto from database" turned on - this automatically puts in columns, regardless of what their types are, so you could check thats not enabled which would be adding the column


feat: add json tags to models

Closes #382
📑 Description
Add JSON tags to models

✅ Checks

[x] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[x] All the tests have passed

@hwbrzzl


JSON file as opposed to HTTPRequest?

Is it possible to use this project to parse a json file into a struct as opposed to reading from http requests?

Just use the std lib encoding/json package - for that's precisely what it was designed for.


Sample Code Update

Thanks @tecoholic for this! Must be immensily helpful for a lot!
There were typos that are fixed and and also I've added this extra condition that was showing a weird error due to empty item in the list. Feel free to use it if you think it's better!
import json
import spacy

# load the training data
with open('your-annotations.json') as fp:
  training_data = json.load(fp)

# prepare an empty model to train
nlp = spacy.blank('en')
nlp.vocab.vectors.name = 'demo'
ner = nlp.create_pipe('ner')
nlp.add_pipe(ner, last=True)

# Add the custome NER Tags as entities into the model
for label in training_data["classes"]:
  nlp.entity.add_label(label)

# Train the model
optimizer = nlp.begin_training()

for text, annotations in training_data["annotations"]:
    if len(text) > 0: # in case an empty sentence was saved while annotating
        nlp.update([text], [annotations], sgd=optimizer)

Cool Thanks a lot. I will use it  :+1:


chore(docs): Add release guide

Hi 👋 A quick follow up to the readme. It would be great to tag v1.0.0 after this is merged

cc @Blaumaus

Thanks for the quick merge @Blaumaus 🚀

@erezrokah done


License change ?

I see this great project is under the Gnu Affero License, which basically implies that any software built using this server will need to be under the same license (see https://www.gnu.org/licenses/gpl-faq.html#LinkingOverControlledInterface).
Swift.org has been released under the Apache License. Any chance this project would consider doing the same ?

I think it would be great.

Our situation is somewhat different from Swift's. Swift.org happens to have a benefactor with very deep pockets - Apple - who are able to generate the odd dollar from various streams of related products. We are a team put together exclusively for the purposes of driving Swift on the Server-side with no Mothership Benefactor (yet).
It is not our intent to let this become Yet Another Dead GitHub Project. We will be driving this project with our blood, sweat and tears - for many years to come. We are currently building a long-term infrastructure to support and drive this project, and want to maximize its potential genius in every way possible, with whatever means we have access to.
We believe Swift/Perfect has a glorious future.
From our site: "Our goal in selecting the AGPL v3.0 as our open source license is to require that enhancements to Perfect be released to the community. Traditional GPL often does not achieve this anymore as a huge amount of software runs in the cloud - and we want to make sure Perfect has a chance to exponentially grow. We also want to make sure we have revenue to continue improving the product - so we request donations and additionally offer enterprise licences." - http://perfect.org/licensing.html
AGPL isn't as forgiving as the Apache licence - but it's strategically correct at this time given our aspirations. Please consider sharing your genius back with us!
*And if you need an alternate licence at this time, please contact us. We will happily consider alternative licenses on a case by case basis. The glory of Open Source!
Hopefully that helps!

So does this mean that you can't build an application with Perfect and have it be closed-source? This could act as a huge turn-off to a lot of people.

Yes you can, just pay up. Totally legitimate IMO.

Thanks for this @SeanStephens, it's a very pragmatic approach. I hope you make perfect an amazing server

It is definitely our hope that people build applications for Perfect and make them closed-source. Our plan is to strategize on appropriate licensing arrangements (once the Linux version goes live) which are accessible and effectively promote the use of Perfect everywhere and anywhere possible. This arrangement will be how we fund constant ongoing improvement of the product and surrounding ecosystem.
If you need something more immediately, please drop us a line at<EMAIL_ADDRESS>We are busy, but would love to engage in a discussion around lisencing at any time that might meet a developers needs.

Seems reasonable to me but I believe that there will probably be other open source offerings that may have more liberal licenses that you will then have to compete against. By choosing a more liberal license you could have undercut that market and possibly find another way of monetizing your effort (with advanced editions for example) while driving adoption very quickly

Sorry, it may just be me, but I'm still not quite sure what the intentions are here.
The AGPLv3 is clear; anything linked must be released under the terms of the AGPLv3. There's no way to use Perfect without linking it; therefore, all apps using Perfect must comply with the AGPLv3.
If the intent is for all Perfect apps to be AGPLv3 or paid, ok, got it.
If not, I'd suggest a statement like http://www.scylladb.com/opensource/ that makes it clear which rights you're trying to reserve - ScyllaDB doesn't care about the applications built on top of it but enforces release of any modifications to the DB engine, etc.

We spent considerable time considering the effects of licensing in balance with our aspirations. Thank you for your feedback, it is genuinely very helpful - we will certainly need to explain our rationale further. Let me throw in an off-the-cuff response - something more formal will follow.
Other open source products are bound to appear (and should! Competition is healthy...), and quite likely with more liberal lisences. The manifestation of such products with highly permissive licensing usually ensures they attract early support from helper developers which helps them get off the ground.
Although Perfect was only released a few weeks ago, it is not a "new" project. It is, in fact, based on the genius of a product which was once part of the Apple product line (Lasso - https://en.wikipedia.org/wiki/Lasso_(programming_language)), and represents approximately 20 years of server-side language development knowledge and codebase, and six additional months of hard Swift work by a team roughly the same size as Swift's. It is our hope that the raw excellence of this project quickly sets it aside as the most robust of the eventually-competitive marketplace of products for Server-Side Swift development (and perhaps server-side development in general). We would like people to choose Perfect primarily for its excellence, not a bewitchingly permissive licensing model. (And as the fastest-growing-in-popularity Swift GitHub project in history in two weeks, we may just achieve this aspiration quicker than we had even hoped).
AGPLv3 has very few limitations. If anything, it ensures that Perfect, as a relatively mature product, won't collect dust on a shelf, by requiring that people who tweak it and use it in large-scale production either help fund improvements or give back their improvements to the community. Few projects are likely to need to tweak Perfect - they will be busy working on their own application and Perfect will just be there for them, looking after them.
There are many current superb examples of this same metaphor which have adopted the same model: including (as @abl noted) ScyllaDB, MongoDB, Bacula, SugarCRM, etc. Although the linking terms of the AGPLv3 can be read very aggressively, that is not our intent - we do not ever intend to cripple anyone else's work, or attack people for "linking to Perfect". When read with complete paranoia, merely linking an AGPLv3 product to the Internet might be a threat. However, that is certainly not our intent - our attitude is very similar to that of ScyllaDB's - just don't use our communal craftsmanship selfishly. That is all.
It is also certainly not our intent to prevent aspirational developers, start-ups or others from using Perfect. On the contrary, we merely want to make sure that the total net effort of the work has a chance to grow in the sun while not being scavenged by large companies for their own profit (a common occurrence). We intend to offer additional lisences in order to support different needs (one of the goals of the initial licence being AGPLv3 - the opportunity for dual-lisencing). From each according to his ability to pay, to each according to his needs. We are open-minded, and will be likewise transparent.
However, as long as lawyers exist to re-interpret licences (and thus sue others and each other), there is always a risk in lack of formal clarity. We don't want reasonable paranoia to prevent anyone from using Perfect. So we'll definitely add more clarification around this subject - here and on our site. Great suggestion, thank you.
The Scylladb example is the best I've seen to date. I'll re-open this issue until we can articulate our intent better and more formally in our licensing terms. Thanks for the feedback from you all, it is very helpful.

*There should also be clarification around "building an application with Perfect and having it be closed source". 99% of Perfect usage will be - install it on a server, build a website in Swift (compiled) or mobile app in Swift (compiled) which connects to a server upon which Perfect has been installed, and let it do its thing. There is no licensing requirement here, as Perfect has not been touched. It's free to use as the back end. The code for these projects communicates and relies on Perfect, but does not include or change Perfect, per se. Ergo, the project is not affected in the slightest by the licence requirements, and can be closed-source to its heart's content. (All iOS apps are closed-source, theoretically, as they are compiled).
However, should a major cloud provider improve the speed of Perfect for their own purposes by doing X, they will be required to either a) pay for a licence or b) show the world how they improved it accordingly. Or, if they wish to bundle it with their product, or leverage a component of Perfect for an alternate project, they would need to refer to the licensing limitations.
If we find that this is not how developers use the product, we will rethink the licensing terms accordingly. But as most server-side languages are used precisely on this way (think Perl, Python, RoR, Lasso, PHP, etc.), we believe this is how the AGPLv3 will be rationally applied in this instance.

I would be happy to see you use some licensing terms that are explicit about the applications that are written on top of Perfect and state that they are NOT included in the GPL clauses.  I think that this was done with LGPL 2.0.  I did a quick read of AGPL v3 and I don't see the language that says that apps running on top of Perfect are not subject to GPL.
This will stop me (and all of my colleagues from using Perfect for anything more than experimentation until this topic is better addressed in your licensing terms.
Please add some clause (or some discussion that points out the existing clauses) that say our proprietary apps on top of Perfect are not subject to AGPLv3!
Thanks,
Charlie

In Section 13 of the AGPLv3, the statement is made;
"...if you modify the Program, your modified version must prominently offer all users
interacting with it remotely through a computer network..."
As interacting with Perfect is unlikely to require modification (it's a stand-alone server and set of libraries), this should effectively and clearly distinguish it from any applications "built on top" of it. Configuration aside, it otherwise remains highly neutral to the applications which might use it. When was the last time you changed Java in order to use Java?
Let me know if this satisfies your request, and thank you for applying pressure to the clarification process. We'd like to see people adopt Perfect, and don't want our aspirations for the product to be clouded by administrative confusion.

Thank you for getting back to me in such a timely manner.
Perhaps it is an education thing.  I believe that you are saying that code that implements the required APIs and are included in PerfectLibrary are NOT covered by AGPLv3.  That sounds about right.  I want to suggest an intro diagram in the licensing section of Perfect that shows the distinction.
I am still reading up on the design of Perfect and the notion that you load the ‘application’ as a shared library helps demonstrate the isolation and how the license applies.  If I understand the design, a picture would be worth a thousand words to quell this concern and get every one back on track to enjoy the enormous effort you have put into creating and sharing Perfect with all of us.

On Dec 6, 2015, at 8:48 PM, Sean Stephens<EMAIL_ADDRESS>wrote:
In Section 13 of the AGPLv3, the statement is made;
"...if you modify the Program, your modified version must prominently offer all users
interacting with it remotely through a computer network..."
As interacting with Perfect is unlikely to require modification (it's a stand-alone server and set of libraries), this should effectively and clearly distinguish it from any applications "built on top" of it. Configuration aside, it otherwise remains highly neutral to the applications which might use it. When was the last time you changed Java in order to use Java?
Let me know if this satisfies your request, and thank you for applying pressure to the clarification process. We'd like to see people adopt Perfect, and don't want our aspirations for the product to be clouded by administrative confusion.
—
Reply to this email directly or view it on GitHub https://github.com/PerfectlySoft/Perfect/issues/26#issuecomment-162387224.

Great feedback, thank you. A diagram would certainly be a great addition to help clarify our intent. Perhaps we can add more meaningful and useful detail to the marketing diagram as shown on http://perfect.org/about.html.
Please, keep the suggestions coming. This is very helpful.

I think that is a great idea.
Sent from my iPhone

On Dec 6, 2015, at 9:02 PM, Sean Stephens<EMAIL_ADDRESS>wrote:
Great feedback, thank you. A diagram would certainly be a great addition to help clarify our intent. Perhaps we can add more meaningful and useful detail to the marketing diagram as shown on http://perfect.org/about.html.
Please, keep the suggestions coming. This is very helpful.
—
Reply to this email directly or view it on GitHub.

One more note:  you propose that the PerfectLibrary be used on both the client and server side.  That puts the linkage of the library into the app on iOS.  Does the AGPL license have a clause that allows that without making the resulting application also AGPLv3?
I'd love to use the same PerfectLibrary on both sides, but not if it requires me to open-source my application.  I fully appreciate the idea of making developers contribute their changes back to the community.    Just want to make sure that the proprietary code above that library remains free of GPL licensing.
Would it be reasonable to put the PerfectLibrary under LGPLv2 which I think does what is needed there or does AGPL address this issue?

Sadly I cannot use this. Need something under MIT or BSD style licensing. While you mention Swift.org has deep pockets, it sounds like you're hoping to make money on their work, so why do it this way?

Although the linking terms of the AGPLv3 can be read very aggressively, that is not our intent - we do not ever intend to cripple anyone else's work, or attack people for "linking to Perfect".

This needs to be formally incorporated into the Perfect license before someone small like myself could use this project in a closed source application.
To my reading, Section 5 (c) is clear that an application that links to Perfect  must also be licensed as AGPL. (That is, my app is clearly  "a work based on the Program" because it wouldn't work without Perfect.) The fact that you have commented on this issue stating that this is not your intent doesn't change the text of the license supplied with the source code, that I am bound to.
Section 7 of the license allows for providing additional terms to the license for exceptions. The GPL FAQ provides text that could be used for an exception to allowing linking in How can I allow linking of proprietary modules with my GPL-covered library under a controlled interface only?. Personally, I would like to see the Perfect LICENSE file updated to include this explicit exception if that is your intent. This would make it clear that it was allowed to build closed source apps that use Perfect without modifying Perfect's source code.
For what it's worth, both ScyllaDB & MongoDB's drivers (the bit I have to link to) are Apache licensed (ScyllaDB, MongoDb C driver). Hence in their cases, I'm linking to Apache licensed code, not AGPL code, so this issue doesn't arise for those products.

I think your comment about an explicit exception would codify the comments made in this issue (and should align with the diagram changes I also suggested).    With that in place, I think we could all engage in advancing the state of Perfect to compete with likes of Node.js, etc.

I have to stick with @akrabat  here, there's a reason companies, including the one I work at will almost always disallow GPL, LGPL and AGPL among others. My company has a world-class legal dept and they pretty much disallow anything they didn't pay for. They also provide the clear rationale, that no matter what somebody says, the license is still there unless it's dual licensed and the optional license is ok.  I'd love to use this, but I cannot.

@uchuugaka - The perfect website makes it clear that commercial licenses may be negotiated:
"Commercial licenses are available through PerfectlySoft Inc. (Contact info@perfect.org)"

Thanks for all of this feedback, it was one of the core discussions which led to our changing the license to Apache. Your involvement is much appreciated.
https://github.com/PerfectlySoft/Perfect/issues/131

Hi Sean,
I just noticed that you changed the license to Apache 2, thank you so much for changing your mind, I think this is a great way to make your project more noticeable and business friendly. Glad I could be of some help :)
cheers,
Serge...


[AdvancedInvite] V3.0.9 Feature to show stats in footer

Stats: In how many guilds & how many members
Type

[ ] Bugfix
[ ] Enhancement
[x] New Feature
[ ] Other

Description of the changes
The new feature allows you to view stats (how many guilds & members) in footer.
If this set to True it will replace the footer with stats, else it will go back to the set footer.

At this point I'm not really interested in this feature. I will think about adding this though so as of right now I'm not going to close this. However, I also will not be merging it.

Added {guild_count} and {user_count}
Removed stats


Correct links in sql-database-in-memory-md

Links to the sample scripts for the OLTP and Analytic workloads as well as the sample queries were broken. Updated them with corrected links.

Hi @ckcampbell248, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@jodebrui

Thanks @ckcampbell248 for the fixes!
@tysonn I verified the fixes. They are ready for merge.


[Bug] Using deprecated input for docker/build-push-action@v1

Describe the bug
During testing of the course I noticed there was a warning annotation saying the workflow is using a deprecated input for docker/build-push-action@v1
To Reproduce
Steps to reproduce the behavior:

Get to step 4 in the course
Click on Actions in the top nav
Select the latest run of Publish to docker
Scroll down to Annotations
See warning

Expected behavior
A workflow run without warning/error annotations
Screenshots
If applicable, add screenshots to help explain your problem.

Device information

Type: MacBook Pro
OS: macOS Big Sur
Browser: Chrome
Version: Version 109.0.5414.87 (Official Build) (x86_64)

Additional context
Workflow should probably be updated to use docker/build-push-action@v2

I have bumped docker/build-push-action@v1 to v3 in my PR #7 (df35711).
Now v4 is available.
If you have any suggestion about the workflow template, please give me some advice.

@sinsukehlab I appreciate the effort! I think #7 should just be kept to your README changes though. We don't want to add too many different things to that one PR. Definitely feel free to open a separate PR with the changes necessary to resolve this issue though.
I'm going to try bumping some of my colleagues to see if we can get the README changes merged.

I have now opened a separate PR #19.


Add a bottom bar to home

I'll work on this.

@jaindiv26 I've made a similar design for the product page, where we keep the same color for contrast, we move the search button on the top left (where people usually expect it to be), thus reducing the number of icon from 5 to 4 (and prevent the fab ovelay on the history)

Got the idea, I'll work accordingly.

@jaindiv26 Any progress on this one ? This is one of the changes I'd really like to get into the next version.

I'll submit it in the morning.

@jaindiv26 should I reassign this one ? Do you have some code somewhere ?


Remove flag methods from ModelContext.FeatureFlags

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Replaced by #16720


Month and Year field invalid date validation not working as expected

Expected behaviour

Partially complete a month and year date field
Submit
"Enter a valid date" validation error only should be raised

Actual behaviour

"Enter a valid date" and "invalid literal for int() with base 10:" validation errors raised

Steps to reproduce the behaviour

Select the "test_date_validation_mm_yyyy_combined.json" schema
Enter either month or year in the first date field
Submit

Screenshot

Need to also cater for these:

duplicate #1749 ?


MNT: Update package version

cc maintainer(s): @johanneskoester, @bgruening
This is an automated PR generated by conda-forge-cran-maintainer.R
Notes:

The feedstock was rerendered with conda-smithy (if there is no conda-smithy commit, then the feedstock was already up-to-date)

The recipe was updated to the most recent version on CRAN

The following build requirements from the current recipe were not included in the latest recipe created by conda skeleton cran: r-rcolorbrewer, r-gplots, r-matrixstats, r-qdaptools, r-tidyverse

The following build requirements are not in the current recipe but were included in the recipe created by conda skeleton cran: r-rcpp, r-rcpparmadillo, r-ggplot2, r-tidyr, posix, gcc

The following run requirements from the current recipe were not included in the latest recipe created by conda skeleton cran: r-rcolorbrewer, r-gplots, r-matrixstats, r-qdaptools, r-tidyverse

The following run requirements are not in the current recipe but were included in the recipe created by conda skeleton cran: r-rcpp, r-rcpparmadillo, r-ggplot2

Closing this. It was a useful test of my script, but it made clear the need to manage dependencies (especially for an update like this one with so many dependency changes).


Added log-delivery-policy for s3-bucket component

what

Added log-delivery-policy for s3-bucket component

why

log-delivery-policy is common policy that is being added to S3 bucket. For example:

https://docs.aws.amazon.com/network-firewall/latest/developerguide/logging-s3.html
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-query-logs-choosing-target-resource.html

references

@Nuru please re-review


V2.5.0

Coverage decreased (-0.08%) to 88.766% when pulling d4cafcc0fc2e35fae06019b6dde6e51170689a1f on v2.5.0 into 1de71c00585043758608f096e256c03666513a16 on master.

@homu r+

:pushpin: Commit d4cafcc has been approved by kbknapp

:hourglass: Testing commit d4cafcc with merge d5d93e0...

:sunny: Test successful - status

:eyes: Test was successful, but fast-forwarding failed: 422 Required status check "coverage/coveralls" is pending


Laravel version compatible 5.5

Is this package compitible with laravel 5.5 evrsion?

I'm having the same issue. It stopped working after I upgraded to 5.5

It's working for me on 5.5.

@jitendra-atx your file config/auth.php is update with 'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Namespace\Of\Your\User\Model\User::class,
'table' => 'users',
],
],

i have the same question, but for sure not. i think some things changed between 5.2 and 5.5 on core.


[Feature Request] Support Command Key ⌘ to Replace Ctrl on macOS

Validations

[X] I have checked for similar feature requests and could not find any.
[X] I have made sure this is not an already-existing feature.

Description
Currently, the nijigenerate uses the Ctrl key for keyboard shortcuts, but on macOS, users typically use the ⌘ (Command) key. It would improve the user experience to support the Command key as an alternative to Ctrl for macOS users.
Suggested solution
This feature may need to be implement or modify in input.d. If feasible, consider leveraging the abstraction layer for configuration behavior planned in issue #8.
Alternative solution
No response
Additional Context
No response

We should consider several aspects.

There're hard coded modifiers in tools. So currently we have to modify those individually.
I don't prefer macOS key assignment, so it should be optional to switch macOS style shortcut and *nix style.

So more detailed behavior must be determined for this feature.
A) What is the scope of the customization? (including only shortcut? including modifier for tools?)
B) How to customize? (Allow "switching" between Compose and Ctrl? Or allow arbitrary key binding for shortcut?)
C) What operation should be called by shortcut? (Currently only several hard coded action can be called by shortcut. If we need more, we must abstract shortcut actions first.)

So more detailed behavior must be determined for this feature.

A) What is the scope of the customization? (including only shortcut? including modifier for tools?)
B) How to customize? (Allow "switching" between Compose and Ctrl? Or allow arbitrary key binding for shortcut?)

Arbitrary key binding for shortcuts may be best for users. Additionally, the exposure the key binding configuration to prevent users from encountering unexpected key binding behavior.
The switch between the Command and Ctrl modifier keys could be implemented at either a low level or high level. Alternatively, it might simply involve swapping the configuration strings, which could be beneficial.

C) What operation should be called by shortcut? (Currently only several hard coded action can be called by shortcut. If we need more, we must abstract shortcut actions first.)

Currently, there are two ways to process shortcuts. Menus are handled through igMenuItem(), while others use incShortcut().
Key processing is defined using incInputIsKey*() and igIsKey*() for ImGuiKey.* and io.Key*, io.Mouse* (returned by igGetIO()).
The display of key binding hints seems to be managed by incStatusTooltip().
For mouse operations, ImGuiMouseButton.* and igIsMouse* define mouse-related inputs.
The abstraction layer needs to be flexible enough to cover all these areas
Each Action abstraction should be able to handle the following information.

A flexible IO configuration that supports key or mouse inputs. If necessary, it should be extendable to handle states (pressed, held, released, etc.) and multiple key bindings (whether as a struct, class, or string).
Tooltips or description messages (as String) to reduce future documentation workload.
A method to check whether the action is activated (bool or int).

We should carefully consider which other aspects are important and decide if they are necessary.

@r888800009
First of all, as you said, incStatusTooltip is currently broken. There're some idea to restore that, but still not determined.

show tooltip text somewhere on viewport (e.g. right bottom corner.)
show tooltip text between zoom widget and tool buttons.
show popup window like general statusbar message shown currently.
make dedicated widget to show status tooltip (shown only when messages are active.)
show them in window titlebar.

For switching Ctrl/Compose, I don't know well in what case Compose is used as alternative to Ctrl.
I guess some graphics editor has modifier options to change behavior of tools along with mouse operation.
(Dragging with Ctrl etc.)
If Compose is also used in such case, switching Ctrl and Compose globally make sense.
If not, switch to Compose should be applied only for general shortcut things.

If almost all of the operation is used with Compose key, what is the purpose or typical usage for Ctrl key in macOS? I don't know the philosophy of macOS key binding yet.

I made mistake, not Compose key, but Command key.

@r888800009 First of all, as you said, incStatusTooltip is currently broken. There're some idea to restore that, but still not determined.

show tooltip text somewhere on viewport (e.g. right bottom corner.)
show tooltip text between zoom widget and tool buttons.
show popup window like general statusbar message shown currently.
make dedicated widget to show status tooltip (shown only when messages are active.)
show them in window titlebar.

I think options 1, 3, and 4 may be better choices. If it's a floating widget, consider whether it might block the user's clicks.
Option 2 may not be suitable for small-sized screens.

For the keybinds, first might implement a basic configuration system and preconfigure the commonly used hard-coded settings.
Consider how to implement the MacOS modifiers conversion later.
Consider serialize should into settings.json or a separate file.

Maybe the configuration screen will look like this, with the current keybind displayed on the right. But I need to understand ImGui API first.


Rename "val_feature_is_xlink" to "val_is_xlink" or "val_is_reference"

Is val_is_xlink more generic and can also be used for e.g. shared address? maybe val_is_reference  is better because the "xlink" looks still XML/GML encoding specific.

val_is_reference sounds good to me.


feat(flake.lock): Updated dependencies and fixed resulting errors

Fixes #116.
Now, I've only tested DMD so far. Let's see how DUB and LDC will react.

Same story as usual. Darwin-only failures. I'm feeling pretty lacking.


confd crashes with zookeeper

following shell interaction gives all details :
c@u:~$ find /tmp/confd/
/tmp/confd/
/tmp/confd/templates
/tmp/confd/templates/myconfig.conf.tmpl
/tmp/confd/conf.d
/tmp/confd/conf.d/myconfig.toml
c@u:~$ cat /tmp/confd/templates/myconfig.conf.tmpl
[myconfig]
database_url = {{getv "/myapp/database/url"}}
database_user = {{getv "/myapp/database/user"}}
c@u:~$ cat /tmp/confd/conf.d/myconfig.toml
[template]
src = "myconfig.conf.tmpl"
dest = "/tmp/myconfig.conf"
keys = [
    "/myapp/database/url",
    "/myapp/database/user",
]
c@u:~$ ~/Downloads/confd-0.9.0-linux-amd64 -onetime -backend zookeeper -confdir="/tmp/confd" -log-level=debug -interval=10
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: INFO Backend set to zookeeper
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: INFO Starting confd
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: INFO Backend nodes set to
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: DEBUG Loading template resources from confdir /tmp/confd
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: DEBUG Loading template resource from /tmp/confd/conf.d/myconfig.toml
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: DEBUG Retrieving keys from store
2015-05-29T15:12:26+02:00 u /home/c/Downloads/confd-0.9.0-linux-amd64[19065]: DEBUG Key prefix set to /
panic: runtime error: integer divide by zero
[signal 0x8 code=0x1 addr=0x59b007 pc=0x59b007]

goroutine 6 [running]:
github.com/samuel/go-zookeeper/zk.(*Conn).connect(0xc20803cb60)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/Godeps/_workspace/src/github.com/samuel/go-zookeeper/zk/conn.go:187 +0x47
github.com/samuel/go-zookeeper/zk.(*Conn).loop(0xc20803cb60)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/Godeps/_workspace/src/github.com/samuel/go-zookeeper/zk/conn.go:210 +0x56
github.com/samuel/go-zookeeper/zk.func·001()
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/Godeps/_workspace/src/github.com/samuel/go-zookeeper/zk/conn.go:156 +0x2c
created by github.com/samuel/go-zookeeper/zk.ConnectWithDialer
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/Godeps/_workspace/src/github.com/samuel/go-zookeeper/zk/conn.go:160 +0x4b5

goroutine 1 [chan receive]:
github.com/samuel/go-zookeeper/zk.(*Conn).request(0xc20803cb60, 0xc200000003, 0x69de20, 0xc20801cf80, 0x69de80, 0xc208049130, 0x0, 0x40a07e, 0x0, 0x0)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/Godeps/_workspace/src/github.com/samuel/go-zookeeper/zk/conn.go:614 +0xcc
github.com/samuel/go-zookeeper/zk.(*Conn).Exists(0xc20803cb60, 0xc20801cee0, 0x13, 0x2, 0x0, 0x0, 0x0)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/Godeps/_workspace/src/github.com/samuel/go-zookeeper/zk/conn.go:728 +0x111
github.com/kelseyhightower/confd/backends/zookeeper.(*Client).GetValues(0xc208046040, 0xc20801ce60, 0x2, 0x2, 0x2, 0x0, 0x0)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/backends/zookeeper/client.go:61 +0x14a
github.com/kelseyhightower/confd/resource/template.(*TemplateResource).setVars(0xc208072900, 0x0, 0x0)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/resource/template/resource.go:92 +0x171
github.com/kelseyhightower/confd/resource/template.(*TemplateResource).process(0xc208072900, 0x0, 0x0)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/resource/template/resource.go:242 +0x71
github.com/kelseyhightower/confd/resource/template.process(0xc208046100, 0x1, 0x1, 0x0, 0x0)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/resource/template/processor.go:26 +0x99
github.com/kelseyhightower/confd/resource/template.Process(0x7fffb4eb7b6d, 0xa, 0xc20801c580, 0x11, 0x0, 0x7bbc70, 0x1, 0x7f953f783218, 0xc208046040, 0xc20801c5c0, ...)
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/resource/template/processor.go:20 +0xc8
main.main()
	/Users/bacongobbler/go/src/github.com/kelseyhightower/confd/confd.go:31 +0x291

goroutine 5 [syscall]:
os/signal.loop()
	/usr/local/go/src/os/signal/signal_unix.go:21 +0x1f
created by os/signal.init·1
	/usr/local/go/src/os/signal/signal_unix.go:27 +0x35

Maybe I should have "filled the severity field": this is an issue that renders confd for zookeeper  useless. It (the tutorial example) just doesnt work at all for me .

ping @sheepkiller

Hi @nogece,
Which version of zookeeper are you running ?
thanks

There's no default node for zookeeper backend. Can you please re-test with "-node=localhost:2181" ?
thanks
clem

Looks like we merged the fix for this. Thanks @sheepkiller


chore: adapt code to new API

I adapted the code to the new API functionalities, there are still some TODOs but it works fine otherwise I think.
Do you know how to import typescript from gosling schema now?
import {Datum} from "gosling.js/dist/src/core/gosling.schema";
seems to be deprecated

Do you know how to import typescript from gosling schema now?

import type { Datum } from 'gosling.js/dist/src/gosling-schema';

import type { Datum } from 'gosling.js/dist/src/gosling-schema';

Thanks @thomcsmits!


Crash with nested map functions against object

Describe the bug
There're still some crash cases with nested map/filter functions.
To Reproduce
Detailed steps to reproduce the behavior:

Run vim --clean (or gvim --clean, etc.)
Execute :echo map({'x':{'y':1}}, 'map(v:val, "2")')
Vim dies with SIGABRT

Expected behavior
No SIGABRT happens, echoes {'x': {'y': 2}}.
Screenshots
If applicable, copy/paste the text or add screenshots to help explain your problem.
Environment (please complete the following information):

Vim version v8.1.1967 (current latest HEAD)
OS: macOS 10.14
Terminal:  iTerm2

Additional context
This resembles #4888 but different report (because this reproduces with v8.1.1967).
Replacing map with filter also reproduce the crash.

Solution:   Move v: variables to evalvars.c. (Yegappan Lakshmanan,
        closes #4872)

    src/eval.c             | 1041 +-----------------------------------------------
    src/evalvars.c         | 1028 ++++++++++++++++++++++++++++++++++++++++++++++-
    src/proto/eval.pro     |   34 +-
    src/proto/evalvars.pro |   34 ++
    src/version.c          |    2 +
5 files changed, 1077 insertions(+), 1062 deletions(-)

Hi,
On Mon, Sep 2, 2019 at 9:43 PM itchyny<EMAIL_ADDRESS>wrote:

Instructions: Replace the template text and remove irrelevant text (including this line)
Describe the bug
There're still some crash cases with nested map/filter functions.

I am attaching a patch that reverts the logic for setting the v:
variable type and value
back to the one before 8.1.1939. This fixes the crash reported here.

Yegappan

To Reproduce
Detailed steps to reproduce the behavior:
Run vim --clean (or gvim --clean, etc.)
Execute :echo map({'x':{'y':1}}, 'map(v:val, "2")')
Vim dies with SIGABRT
Expected behavior
No SIGABRT happens, echoes {'x': {'y': 2}}.
Screenshots
If applicable, copy/paste the text or add screenshots to help explain your problem.
Environment (please complete the following information):
Vim version v8.1.1967 (current latest HEAD)
OS: macOS 10.14
Terminal: iTerm2
Additional context
This resembles #4888 but different report (because this reproduces with v8.1.1967).
Replacing map with filter also reproduce the crash.

Solution:   Move v: variables to evalvars.c. (Yegappan Lakshmanan,
closes #4872)
src/eval.c             | 1041 +-----------------------------------------------
src/evalvars.c         | 1028 ++++++++++++++++++++++++++++++++++++++++++++++-
src/proto/eval.pro     |   34 +-
src/proto/evalvars.pro |   34 ++
src/version.c          |    2 +

5 files changed, 1077 insertions(+), 1062 deletions(-)


VIPR number/funding line for the environment

Moving under Pending for now, this may not be required as we may be able to plug into an existing funding line through DEPO and have our own AWS account.

Our assumption is we may not need this as as we will take funding from va.gov