Asynchronous Dropdown Cell

This PR implements an AsyncDropdown Cell, which is a Dropdown that can dynamically load the displayed contents when the dropdown is opened (as opposed to generating those contents ahead of time).
Motivation and Context

Not only is it useful to be able to put arbitrary elements inside of a Dropdown, but because some Cells require computation on the back end that could take a bit of time (relative to other UI components), it's helpful to load those inner Cells dynamically when the user opens the dropdown.
Approach
How it Works
We introduce two new Cell types, AsyncDropdown and AsyncDropdownContent. The latter should not be used directly, but is instead created and bound to the former at instantiation.
An AsyncDropdown cell takes a function as it's constructor argument. We expect this function to do some kind of computation, after which it returns a Cell or Cell structure that can be displayed (that's the asynchronous part). We make use of a special Slot that tracks whether or not the dropdown is in the open position. When this changes to open, AsyncDropdown will pass that information to its child AsyncDropdownContent component and tell it to call the passed display function (which is bound to a Subscribed Cell). If that passed function is working correctly, voila, the new content is displayed.
Note that this implementation is a bit hacky, due to event binding difficulties outlined in the sections below.
Caveat: Front End and Event Binding Issues
The biggest difficulty in implementing this component was adding event binding to "know" when the dropdown, which is a Bootstrap Dropdown, had opened or closed. The problem extends from the lifecycle structure of Cell objects themselves, the current protocol on the websocket, and how elements are handled on the front end. As it stands, there is no uniform way to bind events to a Cell when it gets inserted to the DOM besides inlining callbacks into event handlers directly in the HTML (ie <div onclick="<some-js-here>">
.  This is not flexible enough for building complex UIs.
For now, we've implemented a hacky way of doing this, by adding a special method to the global cellHandler object on the JS side. It is defined here. Because we need to add listeners for the Bootstrap show and hide events but have no way of doing that naturally with Cells, we instead bind this dropdownInitialBindFor method to the onclick inline click handler for the dropdown's button element. It checks to see if it is the first time that its click event has fired. If so, it binds handlers for the Bootstrap events. If not, it does nothing. This ensures that we can receive reverse messages from the UI to the Cell whenever the dropdown opens or closes.
Another related issue dealt with knowing when to re-render specific parts of the dropdown. Unlike the existing Dropdown cell, we cannot just re-send HTML for the cell over the wire each time, because we care about when it opens or closes and we update child cells based upon those events. To recalculate each time means inserting a whole new dropdown and those always render with their menus closed initially. A mix of slot use and separating the dropdown into two constituent Cells seemed to do the trick here, once we got event binding working well.
This implementation is fairly complicated. A refactored Cells lifecycle, WS protocol, and DOM handling pattern could greatly improve the implementation of this component and others. We have some working notes on this possibility available here. Otherwise we run the risk of adding incredibly specific methods to CellHandler for each unique type of Cell we create, which can get out of control quickly.
Try it Yourself
We have created a DropdownTestService and added it to the basic service testing application at frontends/object_database_webtest.py.
In the example, opening the menu will show a loading display, trigger a callback that waits for 1 second and then displays the completed result.
Incomplete
This PR is not quite complete. We need to add flexibility to allow the Dropdown to take a custom loading display cell, as well as a text label for the dropdown. For now, we wanted to start a review/discussion of the implementation before finalizing anything.

How Has This Been Tested?
In addition to the live DropdownTestService mentioned above, we have added a couple of tests that ensure behavior is correct from the Cells side of things.

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

@braxtonmckee for whatever reason, I cannot get the "Pull Request" travis build to restart. The failure was one of the intermittent (ie irrelevant) ones, I think

Ok. I’ll try to get some of these flakey tests fixed. I’ll try to review as soon as I am able. Thanks.
Sent from my iPhone

On Apr 24, 2019, at 1:41 PM, Eric Gade<EMAIL_ADDRESS>wrote:
@braxtonmckee for whatever reason, I cannot get the "Pull Request" travis build to restart. The failure was one of the intermittent (ie irrelevant) ones, I think
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


CT101

Do you by chance have a firmware update for CT101? I find the range awful on mine, thinking it might be a bug since there is 2 repeaters right by it. Also do you know if the radio turns into a repeater or it is stronger if the C wire ie used? Also is there a way to change your driver to C instead of F, just switched over to this from the CT101 that comes with Habitat.
For whatever reason, in my dashboard, the top part is set in C(current temp), but my temp adjustment is set to F.
After a while on this code, I find the battery hasn't been lasting as long. Any setting I should change to make it last longer?

Following up. Just an update on the battery I've gone through a set in about 2 weeks now as compared to about 6 months.


bug(batch): cyclic reference in QueryRunner causes dangling tokio tasks

Describe the bug
When a QueryRunner is created, a msg_receiver is passed in to notify QueryRunner that all stages have been scheduled when it runs. However, the msg_senders owned by StageExecutions (which are owned by QueryRunner) are never dropped, causing a cyclic reference.
QueryRunner::run (poll the receiver) -> StageExecution (contains the senders)
                            ⬆                                      ⬇
                            -----------------------------------------

We were not able to identify the bug until now, because the join handle of the task spawned to call QueryRunner::run is ignored. So even if the query finishes, there will be a tokio task dangling around.
https://github.com/risingwavelabs/risingwave/blob/6364145c5aae2b73d9277055ab06026906c23a4f/src/frontend/src/scheduler/distributed/query.rs#L172-L184
Possible Solution

In StageExecution, drop the msg_sender when needed so that the cycle can be broken.
Also, we need to join all the tasks that have been spawned.

To Reproduce
Run the snippet in #5724
Expected behavior
All the tasks related to a query should be joined when it finishes.
Additional context
This is one of the causes of #5724

IIUC, even if every stage finishes, we still hold a copy of msg_sender in each StageExecution.
So we may align the lifetime of the sender to the stage execution itself by putting it into StageState::Pending { <here> } or use a Option<Mutex<Sender>> here?
https://github.com/risingwavelabs/risingwave/blob/c010fe662a0370218eacca535b747d9fece9a136/src/frontend/src/scheduler/distributed/stage.rs#L183-L193

IIUC, even if every stage finishes, we still hold a copy of msg_sender in each StageExecution.

Yes. But StageExecution does not use the sender directly. Instead, it is passed to the StageRunner, where the actual sending happens.

So we may align the lifetime of the sender to the stage execution itself

StageExecutions are owned by QueryRunner, so the sender's lifetime should be shorter than  StageExecution to break the loop. I think the stage runner should close the sender when it no longer needs it.

putting it into StageState::Pending { <here> }

There are actually StageExecution cloned elsewhere (e.g. StageExecution.children), so putting the sender into StageState::Pending here won't fix the problem.

use a Option<Mutex<Sender>>

IIUC, some extra work will be required to mem::take the sender out of the Option. This requires &self to be changed to &mut self, which might be a bit complicated to implement (since we have to change a lot of code and struct fields to enable &mut self).
I (seem to) fix the problem by sending a new type of message to inform QueryRunner that all the stages have been scheduled, so that it could break the loop and thus drop StageExecution. I will submit a PR to verify it.

BTW, will any message arrive after root stage is scheduled? If not, we can use root stage as this message.

Seems not. Maybe we could ask Bowen to confirm this. Besides, we can not use root stage as this message, because the sender will be taken after the root message is sent to QueryRunner, so we must wait until it's taken and then break the loop.

But it is under Arc so there will be just one state for each stage?

Let me correct myself. This is indeed true, but we have to:

either make the receiver jump out of the loop
or drop all the senders beforehand so that the receiver could jump out of the loop by itself

Maybe

putting it into StageState::Pending { <here> }

is a solution. I just haven't found out a way to put the sender into StageRunner and meantime satisfy at least one of the two conditions 🥺

I just haven't found out a way to put the sender into StageRunner and meantime satisfy at least one of the two conditions 🥺

https://github.com/risingwavelabs/risingwave/blob/b5f84f32e0f20b59f161bef803bbb1a4dfd51b8a/src/frontend/src/scheduler/distributed/stage.rs#L272-L285
Maybe just close the sender at the end of run?

This is also a solution. BTW, will any message arrive after root stage is scheduled? If not, we can use root stage as this message. cc @BowenXiao1999

No.

This is also a solution. BTW, will any message arrive after root stage is scheduled? If not, we can use root stage as this message. cc @BowenXiao1999

IIUC, There is already a ScheduledRoot (All fragment except root are scheduled, so no we can start root fragment task (in FE locally)) in QueryRunner. Even after we schedule all stages, the QueryRunner is not dropped: cuz there may be execution failure happen and QueryRunner needs to react to this and inform all StageExecution.

We need to join all the tasks that have been spawned.

This seems difficult to implement, cuz rust currently does not support async Drop, so we cannot join the tasks in drop. Besides, pgwire shouldn't be aware of the joining as well. Maybe we have to find somewhere else to join the tasks (or wait until rust supporting async Drop).


Added github action that tests functionality for PRs

Changes;
Trigger on PR: The action will now trigger on pull requests (on: pull_request).
Validation: It checks if the required outputs (accountId, privateKey, publicKey) are valid, and fails if they're missing.
cc.
@hendrikebbers

@hendrikebbers please review this and let me know if I have to make any changes

otherwise looks good. Thanks @Lemeri123


Scopes proposal

Using implicit bindings (new)
Preview
Protoversion of this change is available on my scopes-implicit
Resolved issues

Obligation to modify constructor is now completely relaxed
HydratedProvider does not depend on hydrated_bloc now, so can be merged with BlocProvider

Issues

Interference with package:hive? (Hive.init in multiple places)
Provisioning of directory should be done only once/or redone after all boxes are closed
Create scopes dynamically, i.e. encrypted scope after user logged in

Naive (deprecated)
Preview
Protoversion of this change is available on my scopes branch
Usage
Inside main() we configure Hydrated to init some storage boxes with tokens 'secure' and 'number':
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  BlocSupervisor.delegate = await HydratedBlocDelegate.build();

  final byteskey = sha256.convert(utf8.encode('password')).bytes;
  await Hydrated.config({
    'secure': ScopeConfig(encryptionCipher: HydratedAesCipher(byteskey)),
    'number': ScopeConfig(),
  });

  runApp(App());
}

Inside build() then, we use Hydrated.scope() to obtain ScopeBuilder and then build HydratedScope with child widget, for example HydratedProvider:
Widget build(BuildContext context) {
  return Hydrated.scope('number')(HydratedProvider<CounterBloc>(
    create: (context, scope) => CounterBloc(scope),
    child: Builder(builder: (context) {
      return Hydrated.scope('secure')(HydratedProvider<CounterBloc>(
        create: (context, scope) => CounterBloc(scope),
        child: MaterialApp(
          title: 'Flutter Demo',
          home: CounterPage(context.bloc<CounterBloc>()),
        ),
      ));
    }),
  ));
}

As you can see,
create: (context, scope) => CounterBloc(scope)

now has second parameter - scope (or scopeToken/scopeName) i.e 'secure',
which is extracted from context in HydratedProvider's build() method.
It has to be passed down to CounterBloc via it's constructor:
class CounterBloc extends HydratedBloc<CounterEvent, CounterState> {
  CounterBloc(String scope) : super(scope);
...

So now user is responsible for providing scopeToken to super, as we can't pull data from InheritedWidget inside core lib.
And also custom HydratedProvider is not the most pleasant thing to have

closing this in favor of conversation in https://github.com/felangel/cubit/issues/67


Add functions to load l1b and l2a NetCDF files

Is your feature request related to a problem? Please describe.
load_l1b_nc_file() and load_l2a_nc_file() have not been implemented yet. These functions should allow l1b and l2a netcdf files loaded into a hypso object so that georeferencing, calibration, and atmospheric correction do not have to be re-run.
Describe the solution you'd like
Implement load_l1b_nc_file() and load_l2a_nc_file()
Describe alternatives you've considered
N/A
Additional context
For the v2 branch.

Done.


Add support for blocking pools

Right now, a RunetimeError is raised is no connections are available in a pool. It would be helpful if there were an option to block the thread instead. Redis and pylibmc have examples of this.

@jogo I'd like to try and work on this issue but I have a few questions about the function:

Should I be creating a new function or just adding the option to block in the get() function in pool.py?
I see that the time module is imported which would make using sleep() function a relatively easy solution before trying to reconnect again.

I could submit a PR sometime this week with my potential solution based on the feedback to my questions above.
Thanks

sorry for the slow response, I think a new option in get would be preferable.


[Alert Publishers] Adds some community pagerduty publishers

to: @ryandeivert
cc: @airbnb/streamalert-maintainers
Changes

Added several nice-to-have publishers, enumerate_fields and ShortenTitle
Refactors much of the PagerDuty output code to make it easier to maintain

In this I separated the api client functionality out of the OutputDispatcher. There are now 3 new api client classes each corresponding to one of the 3 versions of PagerDuty API, Events v1, Events v2, and REST API v2
I separated all of the "work" out of the OutputDispatcher. The Work class now encapsulates all of the work and variable sharing between API calls. This allows us to prevent us to having side effects in the OutputDispatcher class.

Testing
I have not yet figured out how to test this on stage. I think we'll need a staging environment at some point for PagerDuty.

Coverage decreased (-0.2%) to 96.849% when pulling 084b2dd979e85c17a6e7a648f26bc0ebcfb33eb4 on dw--pagerduty-publishers into 1bc575d98dc52726e54c8c83729bcc5e53dc8df5 on release-2-2-0.


"'Uncaught TypeError: Cannot read property 'removeChild' of null'" being thrown by sails.io.js on line 200

I keep getting this error every so often on the browser.  I cannot seem to track down any particular pattern.   Can anybody point me in the right direction as to when this function is likely to be called.  It doesn't seem to coincide with any user interaction.

Hi @kpturner.  This is a PhantomJS issue that should be solved in PhantomJS version 2.

Sorry, posted in wrong issue!

@kpturner Can please you post this in the sails.io.js issues forum ) (along with your versions of Sails and sails.io.js), link back here and then close this issue?  Also please clarify "every so often on the browser": does it happen more than once per page load?  Does it happen when the page is sitting idle?  Does it happen right after the socket connects?  Any additional info will be helpful.

It seems to happen when the page is idle - but I will repost


(FACT-1415) Use RtlGetVersion to get the Windows OS version

Previously, we would use the version for kernel32.dll as the OS
version. However, there were some uncertainties around whether
this was the best path forward.
Facter 2.x gets the OS version using the kernel call RtlGetVersion
from ntoskrnl.exe, which will return the correct versions of the
kernel. This commit modifies the Windows kernel resolver to also
use RtlGetVersion.

Tested this out on Win-10 pro x86_64. The result (10.0.16299) matches what we previously got when using the kernel32.dll method. Also, note that Facter 2.x gets the version fact the same way -- https://github.com/puppetlabs/facter/blob/2.x/lib/facter/util/windows/process.rb#L137. I will run PR tests once the basic CI passes on all of our Windows platforms to be safe though.

CLA signed by all contributors.

jenkins please test this on windows10ent-64a,windows10ent-32a,windows2008r2-64a,windows2012r2-64a,windows2012r2_ja-64a%7Blocale=ja%7D,windows2016-64a

PR tests passed, this should be good to go.


Sanitize parameters in Model.predict()

Models' predict methods should give the user the ability to set different parameters as kwargs for preprocess, forward and post_process.

Expectedly, I had to do a lot of changes to the library to make this happen.
First step: Accepting parameters explicitly
Formerly, all three methods received only two parameters: inputs (A dict of all required inputs) and **kwargs (Just to prevent invalid argument error when giving kwargs in predict). This was safe but really vague for the users since they had to look into the code for each step to see which parameters are required in the inputs.
Having this task done, now all three methods in all models accept their required parameters explicitly. (I changed all models codes to make this happen 😭)
Right now the issue is kinda fixed, but there is still a silent issue; If a user writes their own model with preprocess(), forward() and post_process() defined and forgets to include **kwargs in function parameters, kwargs from the predict() method will be passed to all three functions which will cause invalid argument error. So we need to pass the right parameters in kwargs to the right methods.
Second step: Unpacking kwargs in predict()
Defined a function in Model called _unpack_prediction_kwargs as below:
def _unpack_prediction_kwargs(self, **kwargs):
    preprocess_kwargs_keys = list(dict(inspect.signature(type(self).preprocess).parameters).keys())[2:-1]
    post_process_kwargs_keys = list(dict(inspect.signature(type(self).post_process).parameters).keys())[2:-1]
    if hasattr(self, "generate"):
        # Get `generate` kwargs instead of `forward` if the model is generative
        forward_kwargs_keys = list(dict(inspect.signature(type(self).generate).parameters).keys())[2:-1]
    else:
        forward_kwargs_keys = list(dict(inspect.signature(type(self).forward).parameters).keys())[2:-1]
    preprocess_kwargs = {k: kwargs.get(k) for k in preprocess_kwargs_keys if k in kwargs}
    forward_kwargs = {k: kwargs.get(k) for k in forward_kwargs_keys if k in kwargs}
    post_process_kwargs = {k: kwargs.get(k) for k in post_process_kwargs_keys if k in kwargs}
    return preprocess_kwargs, forward_kwargs, post_process_kwargs

This method will inspect the needed parameters for each step and extracts all keyword arguments as a tuple of
(preprocess_kwargs, forward_kwargs, post_process_kwargs)

So now we can make sure that the right kwargs are passed to each of the functions! 🎉🎉🎉


Add a restart command to the swupdater

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 0% with 81 lines in your changes missing coverage. Please review.

Project coverage is 24.93%. Comparing base (b5ee90a) to head (01e1b65).

Files
Patch %
Lines

pkg/swupdater/swupdater.go
0.00%
50 Missing :warning:

cmd/ovp8xx/cmd/swupdate.go
0.00%
31 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##               v2      #16      +/-   ##
==========================================
- Coverage   26.45%   24.93%   -1.53%
==========================================
  Files          22       22
  Lines        1096     1163      +67
==========================================
  Hits          290      290
- Misses        805      872      +67
  Partials        1        1

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


[Game Crash] random crash after jukebox?

Describe the crash
Just threw jukebox on for a chart for fun, it went through an entire song, i ESC'ed out before it completely finished, then went to exit the app. Hit "EXIT", Outfox closed, i got crash notification immediately after close
How can you reproduce the error?
not sure, and i'm in a rush so don't have time to experiment rn
Screenshots/Videos
No response
Game Mode
smx
Additional Information
crashinfo.txt

The reason mentioning aborted means that the program/user has aborted an operation. So what could've happened is that the game requested something that brings up this window with three options: Ignore, Retry and Abort. Doesn't help much that ESC defaults to abort.
I'll still attempt to recreate this error.

Try this with 4.18, there have been some works done in this area.


Replace the requirement of inheriting from PeekLockMessage with a dynamic proxy class approach

Right now if someone wants to use peek-look message control they must inherit from the PeekLockMessage as their base class. This is terrible for all the known reasons in the software universe that I won't rehash here.
Instead of requiring inheritance, we can instead move towards a dynamic proxy class approach where the only requirement is that the user's custom message types cannot be marked as sealed. Then we will dynamically generate a proxy class per message type that provides the proper peek lock functionality.

I had done a spike on this project a while back in the MessageControlDynamicSubclassCreation branch. Unfortunately, due to the architecture of Obvs's IMessageSerializer, there's no way to get in the middle of deserialization and suggest a "surrogate" type for the message type that was serialized in the first place.
Instead, what we can do, is use .NET 4's ConditionalWeakTable class to store the necessary data "on the side" of the deserialized message. I have detailed this work in #14.


Support creating Local or Remote Volunteers

Volunteers can now create local or remote volunteer commitments.

migrated manually with additional changes to add migrations and fix issues


Android Tensorflow ObjectDetection lib_task_api default number of threads?

Hello,
We are working on implementing Tensorflow object detection based on the example provided here:
https://github.com/tensorflow/examples/tree/eb925e460f761f5ed643d17f0c449e040ac2ac45/lite/examples/object_detection/android
It seems that there are 2 implementations for that one:
(1) lib_task_api that leverages the out-of-box API from the TensorFlow Lite Task Library;
(2) lib_interpreter that creates the custom inference pipleline using the TensorFlow Lite Interpreter Java API.

We are using lib_task_api and we don't see the way how we can set the number of threads with it?
For the lib_interpreter - there is a variable that is being set up for that.
https://github.com/tensorflow/examples/blob/a228a3460f3fdd8edee9e8b061a08ffc92629907/lite/examples/object_detection/android/lib_interpreter/src/main/java/org/tensorflow/lite/examples/detection/tflite/TFLiteObjectDetectionAPIModel.java#L138
On the other hand - for lib_task_api i see that this method is deprecated and it is not set up
https://github.com/tensorflow/examples/blob/eb925e460f761f5ed643d17f0c449e040ac2ac45/lite/examples/object_detection/android/lib_task_api/src/main/java/org/tensorflow/lite/examples/detection/tflite/TFLiteObjectDetectionAPIModel.java#L87
My question being - what is the default number of threads for lib_task_api?
I am asking this one because i would like to tune it up for different set of devices.
Best Regards

@AleksandarTokarev ,
This issue is more suitable for TensorFlow Models repo. Please post it on Tensorflow Models repo from here. Thanks!


statusCode can`t be greater than 599

hi!
My company is currently distributing apps to the Google Store.
It has been confirmed that the deployed app uses the mobile version v.3.5.5.
However, Regarding the response from Google Console, it has been reported that issue occurs in SDK 33,34.
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 4005 >>> com.kr.exmaple <<<

backtrace:
  #00  pc 0x00000000009ef388  /vendor/lib64/egl/libGLES_mali.so
  #01  pc 0x00000000009f1bc0  /vendor/lib64/egl/libGLES_mali.so
  #02  pc 0x0000000000a044fc  /vendor/lib64/egl/libGLES_mali.so
  #03  pc 0x0000000000a037c0  /vendor/lib64/egl/libGLES_mali.so
  #04  pc 0x000000000002de94  /system/lib64/libEGL.so (android::eglSwapBuffersWithDamageKHRImpl(void*, void*, int*, int)+748)
  #05  pc 0x000000000002a498  /system/lib64/libEGL.so (eglSwapBuffers+80)
  #06  pc 0x0000000000019b60  /data/app/ com.kr.exmaple-yXtIhotSgRrgQuTAkInUjA==/split_config.arm64_v8a.apk

To solve this problem, the library version was too old, so I looked to see if there had been any updates. After seeing that the life cycle issue had been resolved starting from 5.0.0, I ran it again and the problem was resolved.
After recognizing that the problem was resolved, I redistributed it to the Google Store and monitored the status, and now I received a report that the same error is occurring in sdk29. Is this part related to the mobile scanner library?
My local Flutter version is below:
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.1 23B2073 darwin-arm64, locale ko-KR)
    • Flutter version 3.22.2 on channel stable at /Users/kimjeonghun/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (3주 전), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/kimjeonghun/Library/Android/sdk
    • Platform android-34-ext11, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

This is the pubspec.yaml content of the project where the error occurs.
ersion: 1.5.0+5

environment:
  sdk: '>=3.0.0 <4.0.0'

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

  cupertino_icons: ^1.0.2
  flutter_inappwebview: ^6.0.0
  permission_handler: ^11.0.1
  url_launcher: ^6.1.11
  local_auth: ^2.1.6
  local_auth_darwin: ^1.3.1
  provider: ^6.1.1
  uni_links: ^0.5.1
  image_picker: ^1.0.4
  qr_code_dart_scan: ^0.7.3
  flutter_secure_storage: ^9.0.0
  flutter_downloader: ^1.10.5
  path_provider: ^2.1.1
  gal: ^2.2.0
  flutter_svg: ^2.0.9
  flutter_native_splash: ^2.3.8
  share_plus: ^7.2.1
  mobile_scanner: ^5.1.1
  lifecycle: ^0.8.0
  device_info_plus: ^10.1.0
  # intl: ^0.18.0
dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^2.0.0

How can I resolve the error issue that occurs in sdk 29...?
It is difficult to determine that this is a mobile scanner issue, but I am leaving an issue because it was resolved by updating the version.

The line   #04  pc 0x000000000002de94  /system/lib64/libEGL.so (android::eglSwapBuffersWithDamageKHRImpl(void*, void*, int*, int)+748) seems interesting.
Are you running with Impeller on Android?


Use close() of Pipeline/Transaction

This is an extension of https://github.com/xetorthio/jedis/commit/3ff1c6c70f0f7fdc46776a4ec32ae95dcf2525ec

Merged into master.


Add Azure AD authentication to frontend

Description
Adds configuration to establish oAuth2 flows to authenticate users
against registered Azure AD App registrations. Uses a well-known token
for communicating with a local dev API using a pattern established for a
similar purpose with dev API-keys.
API Management policy is updated to validate JWT against the terraform-configured
tenant issuer and backend app registration audience claim. App Registrations creation
can't be automated and are somewhat complex. A templated/manual workflow is documented.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How has this been tested?
New tests added to ensure valid auth/unauth behavior for both subscription and token mechanisms.

@lossyrob for review. Note that currently this PR targets feature/frontend which should be reviewed first.


travis: add ruby 2.2 and ruby-head

The ruby-head version is allowed to fail

This is from a discussion on IRC, in which we discussed which versions of ruby are supported.

LGTM


Mapped type modifier inference

This PR improves our handling of readonly and optional modifiers in mapped type inference. When inferring to a homomorphic (structure preserving) mapped type { readonly [P in keyof T]: X }, no readonly modifiers will be present in the type inferred for T (because it is known that the mapping will add it). Likewise, when inferring to a mapped type { [P in keyof T]?: X }, no ? modifers will be present in the type inferred for T. In effect, readonly and optional modifiers in the target are used to indicate that those modifiers should be stripped in the inferred type.
declare function validate<T>(obj: { [P in keyof T]?: T[P] }): T;
declare function clone<T>(obj: { readonly [P in keyof T]: T[P] }): T;
declare function validateAndClone<T>(obj: { readonly [P in keyof T]?: T[P] }): T;

type Foo = {
    a?: number;
    readonly b: string;
}

function test(foo: Foo) {
    let x = validate(foo);  // { a: number, readonly b: string }
    let y = clone(foo);  // { a?: number, b: string }
    let z = validateAndClone(foo);  // { a: number, b: string }
}

@mhegazy @DanielRosenwasser This is effectively the inference side of #12563.

nice. just ran into this while replying to https://github.com/Microsoft/TypeScript/issues/12578#issuecomment-263948325.


Configure Blubraket to ignore non-inclusive language in vendor dirs

LFX is scanning CFF repos for non-inclusive language, however a lot of the findings are for vendored dependencies which we don't control. Scans are performed using Blubraket which support igore files:
https://docs.blubracket.com/how-to/cli/using-cli-with-git/#blubracket-ignore
This PR sets up such a file to try and reduce the noice generated by the LFX scans.
The resuling dashboard can be found here:
https://security.lfx.linuxfoundation.org/#/a092M00001IbM3gQAF/non-inclusive-language

As an aside, something seems wrong with that Dashboard:
I created a new account by logging in via my vmware.com Google account.

No matter how long I let the page sit, those spinners never go away.
Should I be able to access that dashboard? For reference, the username I selected is klakinpivotal.

@klakin-pivotal with regards to access. This is being worked on by the Linux Foundation. I just wanted us to get ahead of the curve and adress some of these false positives before these dashboards are being used more broadly.

@cunnie given that you wholeheartedly support ignoring non-inclusive language in vendor dirs, could you maybe approve this PR so we can go ahead and merge this?


ArrayOutOfBoundsException when running from baronite rocks to the anvil

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Can't reproduce, happened only once. Ran from the barronite rocks to the west of the anvil towards the anvil and crashed on the tile of the image.
Expected behavior
Hard-crashed the game while you expect it to not do that.
Screenshots

Environment (please complete the following information):

OS: Windows 10
RuneLite version: 1.8.2
OpenOSRS version: 2.20.2
OpenOSRS Launcher version: 2.2.0

Additional context
2022-03-03 15:46:15 [Client] ERROR injected-client - Game crash: null
java.lang.ArrayIndexOutOfBoundsException: Index 291 out of bounds for length 288
	at rs117.hd.ModelData.getColorForFace(ModelPusher.java:24)
	at rs117.hd.ModelPusher.getVertexDataForFace(ModelPusher.java:126)
	at rs117.hd.ModelPusher.pushModel(ModelPusher.java:97)
	at rs117.hd.HdPlugin.draw(HdPlugin.java:2475)
	at net.runelite.client.callback.Hooks.renderDraw(Hooks.java:577)
	at gn.au(Scene.java:990)
	at gn.draw(Scene.java)
	at gn.ad(Scene.java:393)
	at jt.gn(class282.java:4471)
	at ka.ii(Skills.java:9860)
	at ka.ii(Skills.java:9891)
	at ds.ij(UserComparator5.java:9749)
	at client.ga(Client.java:4198)
	at client.copy$draw(Client.java:1036)
	at client.ap(Client.java:1803)
	at al.j(GameEngine.java:370)
	at al.run(GameEngine.java:324)
	at java.base/java.lang.Thread.run(Unknown Source)

Crashed again with same index:
2022-03-03 15:51:53 [Client] ERROR injected-client - Game crash: null
java.lang.ArrayIndexOutOfBoundsException: Index 291 out of bounds for length 288
	at rs117.hd.ModelData.getColorForFace(ModelPusher.java:24)
	at rs117.hd.ModelPusher.getVertexDataForFace(ModelPusher.java:126)
	at rs117.hd.ModelPusher.pushModel(ModelPusher.java:97)
	at rs117.hd.HdPlugin.draw(HdPlugin.java:2475)
	at net.runelite.client.callback.Hooks.renderDraw(Hooks.java:577)
	at gn.au(Scene.java:990)
	at gn.draw(Scene.java)
	at gn.ad(Scene.java:393)
	at jt.gn(class282.java:4471)
	at ka.ii(Skills.java:9860)
	at ka.ii(Skills.java:9891)
	at ds.ij(UserComparator5.java:9749)
	at client.ga(Client.java:4198)
	at client.copy$draw(Client.java:1036)
	at client.ap(Client.java:1803)
	at al.j(GameEngine.java:370)
	at al.run(GameEngine.java:324)
	at java.base/java.lang.Thread.run(Unknown Source)

OpenOSRS is a cheat client which is not allowed by Jagex or supported by the Runelite/117 teams.
https://twitter.com/jagextyran/status/1358801848166137856?lang=en-GB

Yes, please use Runelite instead of OpenOSRS. Also, this is already fixed it just hasn't been released yet.


Index type difference, cannot be detected using the command 'liquibase diff'

Search first

[X] I searched and no similar issues were found

Description
I found that the official documentation introduces the 'diff' command, and the open source version supports the index type. After practicing and testing, I found that there are problems

Steps To Reproduce
I created two databases locally, one simulating a development environment and the other simulating an integration environment. I performed the following operations:
1.I applied the new index operation in the dev database.
2.I configured the SIT database URL and username password in the liquibase.properties, and then used the 'liquibase diff' command to view the differences between the dev database and the SIT database,I found no difference
Expected/Desired Behavior
I don't understand why, I hope the official can help me investigate the reason
Liquibase Version
4.29.2
Database Vendor & Version
MSYQL 5.7 version installed with Docker
Liquibase Integration
CLI
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
Centos7
Additional Context
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

My 'liquibase. properties' file is as follows

Hi @ZHangTong-CHINA, thank you for reporting this issue.
Unfortunately I haven't been able to replicate it - the missing / unexpected indices show up for me.
One thing I noticed is that, when I run liquibase diff between my dev schema and an empty schema, the output contains the databasechangelog table differences. Have you executed Liquibase commands in your SIT schema before?
Apart from that, could you run liquibase snapshot for either schema, and see if the index shows up in only one of them? Here is some information on the snapshot command.
Let me know what you find.
Thank you,
Tatiana

Hi @ZHangTong-CHINA, thank you for reporting this issue. Unfortunately I haven't been able to replicate it - the missing / unexpected indices show up for me.
One thing I noticed is that, when I run liquibase diff between my dev schema and an empty schema, the output contains the databasechangelog table differences. Have you executed Liquibase commands in your SIT schema before?
Apart from that, could you run liquibase snapshot for either schema, and see if the index shows up in only one of them? Here is some information on the snapshot command. Let me know what you find.
Thank you, Tatiana

I checked my dev and sit environments using the command 'liquibase snapshot' and did not find any differences. But I may have found the cause of the problem. I have defined different types of indexes for the same field in the same table. Is this the problem?

@ZHangTong-CHINA You're right, it seems like Liquibase is expecting only one index for any specific column.
I tried having two indexes on the same column and running liquibase snapshot, and here is the relevant part of the output:
indexes:
    idxName2
        columns:
            firstname
        unique: false

Another index called idxName1 should have been found.
Would you be willing to submit a PR with a fix for this bug? Our development team would be available to provide guidance and answer any questions you may have.
If not, we'll be leaving this issue open for the community to propose a fix.
Thank you,
Tatiana

@tati-qalified Thank you, I discovered this issue during my learning process, but whether this approach is standardized and reasonable requires professional evaluation to determine if it needs to be fixed. I am not a developer and cannot submit PR.


Apple Maps doesn't show directional indicator

Summary
When using Expo and Apple Maps on iOS, the directional indicator for the current location dot is not displayed in the MapView. This is inconsistent from the Google Maps MapView variant and regular Apple Maps app, which does show the directional indicator.
Apple Maps in React Native Maps MapView (does not indicate direction to user):

Apple Maps regularly (i.e. just opening the Apple Maps app on my phone, indicates direction to user as shown via red circle)

Reproducible sample code
import { StyleSheet, Text, View, Dimensions } from "react-native";
import { useEffect, useState } from "react";
import MapView from "react-native-maps";
import * as Location from "expo-location";
import { Magnetometer } from "expo-sensors";

import ActivityIndicator from "../components/common/ActivityIndicator";
import AnimatedLottieView from "lottie-react-native";

export default function HomeScreen(props) {
  const [markers, setMarkers] = useState([]);
  const [location, setLocation] = useState(null);
  const [showLocation, setShowLocation] = useState(false);

  useEffect(() => {
    requestPermissions();
  }, []);

  const requestPermissions = async () => {
    let { status } = await Location.requestForegroundPermissionsAsync();

    if (status !== "granted") {
      setErrorMsg("Permission to access location was denied");
      return;
    }

    let location = await Location.getCurrentPositionAsync();
    if (!location) {
      return;
    }
    setLocation(location);
    setShowLocation(true);
  };
  return (
    <View style={styles.container}>
      <MapView
      provider
        region={{
          latitude: location ? location.coords.latitude : 0,
          longitude: location ? location.coords.longitude : 0,
          latitudeDelta: location ? 0.1 : 5,
          longitudeDelta: location ? 0.1 : 5,
        }}
        showsCompass={true}
        showsUserLocation={showLocation}
        followsUserLocation={false}
        style={styles.map}
      />
      {!location && (
        <ActivityIndicator
          source={require("../assets/animations/location-animation.json")}
          message={"Finding location..."}
        />
      )}
    </View>
  );
}

const styles = StyleSheet.create({
  container: {height: "100%",backgroundColor: "#fff",alignItems: "center",justifyContent: "center",},
  map: {width: "100%",height: "100%",
  },
});

Steps to reproduce
Start the expo app with the provided MapView configuration
Expected result
I expected the project to behave with the standard Apple Maps behavior and look- including displaying a directional cone/indicator to show the user which direction their phone is facing/they are moving (circled in red).

Actual result
The current location point only shows an accuracy ring and no indicator of which direction the user is facing.

React Native Maps Version
0.30.2
What platforms are you seeing the problem on?
iOS (Apple Maps)
React Native Version
0.68.2
What version of Expo are you using?
SDK 45
Device(s)
iPhone 12 Pro Max
Additional information
A directional indicator is shown when using Google Maps instead of Apple Maps, shown here:

The state of this is unfortunately unchanged since #3905.

If you need this, use it.


Switch from qiskit-terra to qiskit

Summary
Similar to qiskit-community/qiskit-machine-learning#680
Switches over to qiskit from qiskit-terra

requirements.txt was already done in #99
CI updated for install main dependencies
CONTRIBUTING.MD links etc updated. Plus I removed/simplified some bits which are no longer correct and may have led to confusion down the line. Somehow it had a lot of blank lines separating lines in places too - I removed these.
Some other small changes

Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.57%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6464

Relevant Lines:
7137

💛  - Coveralls


copr: vectorize HexStrArg

Signed-off-by: mak<EMAIL_ADDRESS>
PCP #5751
What have you changed?
Add vectorized HexStrArg
What is the type of the changes?
Improvement (a change which is an improvement to an existing feature)
How is the PR tested?
Please select the tests that you ran to verify your changes:

Unit test

Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No. It should not change the behavior.
Does this PR affect tidb-ansible?
No

@sre-bot /run-integration-copr-test copr-test=pr/48

Please fix conflicts, thanks!

@sre-bot /run-integration-copr-test copr-test=pr/48

/merge

/test


Added Roman Poetry

Added a link to Latin poetry by the Roman poet Horace. He wrote the original "Carpe Diem" - the Roman Epicurean equivalent of YOLO.

Please add this link to the art file instead of creating a new one. Please also make a new PR using the naming convention described in the contributing doc.


Fix GitHub TextCase.

The correct notation of GitHub is "GitHub".
But, since it was "Github" on the document, I fixed it.
(s/Github/Github/g , exclude <GithubIcon />)

@maxzitron Can you merge?


Roll engine a52724fcf859..af42b6dc95bd (7 commits)

https://github.com/flutter/engine/compare/a52724fcf859...af42b6dc95bd
git log a52724fcf859..af42b6dc95bd --no-merges --oneline
af42b6dc9 Roll src/third_party/skia b5729c94f9a7..420696961c8c (1 commits) (flutter/engine#6092)
04c07b212 Roll src/third_party/skia 471a946cf126..b5729c94f9a7 (1 commits) (flutter/engine#6091)
2d2f6e632 Roll src/third_party/skia<PHONE_NUMBER>54..471a946cf126 (1 commits) (flutter/engine#6090)
cbd3b7aee Roll src/third_party/skia 95be425f5b30..305498942654 (1 commits) (flutter/engine#6089)
cc3dec100 Roll src/third_party/skia 1e5937821868..95be425f5b30 (1 commits) (flutter/engine#6088)
1238c1d76 Roll src/third_party/skia 92bc476c8c49..1e5937821868 (1 commits) (flutter/engine#6087)
308709014 Allow embedders to invalidate FBO bindings after present. (flutter/engine#6084)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll


Fixes issue #36

Removes datastore credentials from stdout, and removes echo of wsk system keys to stdout.
Also in this commit: added a test to list assets in default namespace regardless of test overrides in basic CLI tests.

@rabbah rebase the branch?

Yes - sorry I thought I did already. Ignore my merge above will correct. Note to self, dont click the shiny green button.


variable parameter is not properly captured by default arg for function parameter

The second assertion should not fail:
shared void run() {
    C c = C(1);
    c.i = 10;
    assert (c.i == 10); // ok
    assert (c.f() == 10); // throws
}

class C(shared variable Integer i, shared Integer f() => i) {
    shared void inc() { i = i + 1; }
}

And for function parameters:
shared void run(variable Integer i = 1, Integer f() => i) {
    i = 10;
    assert (f() == 10); // throws
}

This is related https://github.com/ceylon/ceylon/issues/7074 to and https://github.com/jvasileff/ceylon-dart/issues/57

Done.

Now, in principle, this current implementation is a bit too heavy-handed. It disallows this:
void f(variable Float x, Float y = x) {}

I suppose that this restriction is only truly necessary from within an anonymous function, comprehension, stream enumeration, or a default argument for a functional parameter.

OK, I've made it less heavy-handed.


Decomission the upnp container and bring it into hm-config

Background
We currently have a container running on the miners with the sole purpose of enabling uPNP. We can quickly just sunset this in favor of a single command in this repo.
It is however worth noting that this will be unnecessary once we move to light miners, but the timeline for this keeps slipping.
Acceptance Criteria

Remove the hm-upnp container from docker-compose.yml
Add the upnp package to the Dockerfile
Create a new task that runs every 12 hours that invokes the command

Moved it now @MuratUrsavas

Also, @vpetersson I'm running this task only once at the container startup like @shawaj said. Is that cool?

Yeah that's fine. I confused the uPNP container with the IP logic that resides in the miner.

Right now I'm testing the changes and can see that hm-config container is listening port 44158 for uPnP. But HOST OS does not report the same (Checking from Balena Dashboard terminals). Is this the expected behavior?

uPNP shouldn't require any open/listening ports. All it does is to send a packet to the router where it asks to do a port forwarding to port 44158 on the device sending it (/usr/bin/upnpc -e Nebra Helium -r 44158 TCP).
Port 44158 is the port of the miner and not hm-config.

This is interesting. The command you've mentioned is there right now and I'm seeing 44158 is listened in hm-config. Since gateway-config container is in Host network mode, it could be showing hm-miner's listening port? Could it be the case?

Yes, because of host networking, so you're picking up the one from hm-miner. hm-config doesn't have any ports exposed explicitly.

Got it! Looks like this PR could make it into current sprint.

@vpetersson I have a question about FIRMWARE_VERSION parameter. I've changed it in docker-compose.yml from hm-config repo. Normally this parameter is broadcasted by helium-miner-software repo. Why do we need this also in here? Wouldn't that create a confusion, if the environment variable wouldn't get overridden?
If we should keep it, then what's the rule?

It's just for building and testing locally I think

@MuratUrsavas yeah so this is a bit confusing and I think we should overhaul this. At this point, we only care about exposing the Helium Miner Software git has to hm-diag (i.e. FIRMWARE_VERSION). This will allow us to manually traverse back and find what exact hash of each corresponding sub-component (since the docker tag is the same as the git hash).
In the future, we will be introducing the semantic versioning for Helium Miner Software (https://github.com/NebraLtd/helium-miner-software/issues/351), which will make this a bit more human readable.

@MuratUrsavas it needs to be FIRMWARE_VERSION because the codebase looks for that specific environment variable.
The actual content of that variable is irrelevant. It could just be TEST.0.1 or whatever
We don't ever use the local repo docker compose for anything other than testing.

@MuratUrsavas yeah so this is a bit confusing and I think we should overhaul this. At this point, we only care about exposing the Helium Miner Software git has to hm-diag (i.e. FIRMWARE_VERSION). This will allow us to manually traverse back and find what exact hash of each corresponding sub-component (since the docker tag is the same as the git hash).
In the future, we will be introducing the semantic versioning for Helium Miner Software (NebraLtd/helium-miner-software#351), which will make this a bit more human readable.

@vpetersson this is not correct. Firmware version is the miner version. That is needed in both config and diag and possibly some of the other containers. But we put the firmware version into every container so that the containers have an environment variable update every time we push an update so the containers are all restarted.

@vpetersson this is not correct. Firmware version is the miner version. That is needed in both config and diag and possibly some of the other containers. But we put the firmware version into every container so that the containers have an environment variable update every time we push an update so the containers are all restarted.

But the same environment variable also comes from helium-miner-software and the current one is overridden (AFAIK) by it. So we'll always have a FIRMWARE_VERSION parameter coming from main repo, unless the sub container is solely working just by itself.

@shawaj good point about pushing this to all containers. That's true.
That said, we want to move away from using the Helium Miner Version as our version tracker in favor of a Nebra flavored Semantic Version. This is the first step towards this.
(This Issue is the wrong issue to discuss this in fwiw.)

The docker-compose.yml in this repo is never used when building for the actual fleet (testnet or mainnet). It's only ever used for local building and/or just as a reference on how the container needs to be run.
Maybe good to rename it to docker-compose-example.yml or something

The docker-compose.yml in this repo is never used when building for the actual fleet (testnet or mainnet). It's only ever used for local building and/or just as a reference on how the container needs to be run.
Maybe good to rename it to docker-compose-example.yml or something

Ah I see what you mean. Yeah this docker-compose.yml file should be renamed to something like docker-compose_dev.yml or similar.

Done and merged to master.

Merged into production, closing the issue.


getFirstLast function is borked

Error in data.frame(TagID = x$TagID[1], FirstStation = FirstRow$Station,  :    arguments imply differing number of rows: 1, 0 In addition: Warning message: In min(FirstRow$Rkm) : no non-missing arguments to min; returning Inf
just about every time

it's been re-written but is now borked in a different way - fails for fish that are only detected a single station


Ignore generated nnvm.cc template. This file is created whenever make is run

Ignore generated nnvm.cc template in amalgamation dir.

Reopening the pull request does not help.


Can't connect after encrypting server file

Hi,
Sysnapse ask me to encrypt server file to increase security, so I did it, but now, got an error, failed to authenticate. Credentials are ok, so, what can I do ?
Thanks

the error, Is that via the authenticated?

Hi.
The credentials, Is that realy OK?
by the way, please retry authenticate via the synapse after following steps.
[Debug] -> [Open Preferences Files] -> open the 2 files on the brackets split view.(defaultPreferences.json, brackets.json)
then find the rows, they has prefix "brackets-synapse.xxxx".
(xxxx: version, server-settings, use-crypt)
copy thats to suitable location.
then remove the found 3 rows from brackets.json.
now, synapse has been initialized.

Hi
impossible to edit defaultPreferences.json, but, removing encryption and encryption key and reload brackets generate an error, so, i reactivate encyption, paste the encryption key saved the file and ... it works ... Brackets is a bit strange sometimes.
Thanks for your help.

ic, however I feel little wierd.
cuz plz see the comment on top of defaultPreferences.json source.

This is a read-only file with the preferences supported
by Brackets.
Use this file as a reference to modify your preferences
file "brackets.json" opened in the other pane.
For more information on how to use preferences inside
Brackets, refer to the web page at https://github.com/adobe/brackets/wiki/How-to-Use-Brackets#preferences

that is read only file for the brackets.
but,,, I dont have any idea..


Fix hex-fiend with chmod go=u

Hex Fiend does not correctly set 'group' and 'other' permissions and will crash if a non-owner runs it. The buggy files are fixed by updating their 'group' and 'other' permissions to reflect the 'user' permissions: chmod go=u.

Before this fix:

$ '/opt/homebrew-cask/Caskroom/hex-fiend/2.3.0/Hex Fiend.app/Contents/MacOS/Hex Fiend'
dyld: Library not loaded: @loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle
  Referenced from: /opt/homebrew-cask/Caskroom/hex-fiend/2.3.0/Hex Fiend.app/Contents/MacOS/Hex Fiend
  Reason: no suitable image found.  Did find:
	/opt/homebrew-cask/Caskroom/hex-fiend/2.3.0/Hex Fiend.app/Contents/MacOS/../Frameworks/Sparkle.framework/Versions/A/Sparkle: stat() failed with errno=13
	/opt/homebrew-cask/Caskroom/hex-fiend/2.3.0/Hex Fiend.app/Contents/MacOS/../Frameworks/Sparkle.framework/Versions/A/Sparkle: stat() failed with errno=13

$ ll '/opt/homebrew-cask/Caskroom/hex-fiend/2.3.0/Hex Fiend.app/Contents/Frameworks/'
total 0
drwxr-xr-x  6 Administrator   204B Mar  5 03:16 HexFiend.framework/
drwx------  6 Administrator   204B Mar  5 03:16 Sparkle.framework/

Thank you for the fix — it works great — and for specially for contacting the developer. Fixing this upstream would be preferable, naturally.


IOS app killed after receiving PKPushTypeVoIP notification

Hey!
I am trying to wake my application through a APNs VoIP notification to display an incoming WebRTC call however I just keep getting this error after receiving a voip notification:
Runner [42337:3797235] didReceiveIncomingPushWithPayloadpayload=PKPushTypeVoIP
Runner [42337:3707235] Do not use the 'alert' format for push type PKPushTypeVOIP.
Runner [42337:3707235] Apps receving VoIP pushes must post an incoming call via Callkit in the same run loop as pushRegistry:didReceiveIncomingPushWithPayload:forType:[withCompletionHandler:]withoutdelay.
Runner [42337:3707235] *** Assertion failure in -[PKPushRegistry _terminateAppIfThereAreUnhandledVoIPPushes], PKPushRegistry.m: 349
Runner [42337:37872351 *** Terminating app due to uncaught exception "NSInternalInconsistencyException', reason: 'Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push.'
Current flow of the application:

Get Pushkit token through Callkeep's CallKeepPushKitToken() event
Register this token with a 3rd party WebRTC framework
Receive a voip push notification generated via the framework
Upon receiving the notification im getting the error mentioned above^.

For callkeep setup im using the following code:
callKeep.setup(
_navigationService.router.navigatorKey.currentContext,
<String, dynamic>{
'ios': {
'appName': 'AppName',
},
'android': {
'alertTitle': 'Permissions required',
'alertDescription':
'This application needs to access your phone accounts',
'cancelButton': 'Cancel',
'okButton': 'ok',
'foregroundService': {
'channelId': 'com.company.my',
'channelName': 'Foreground service for my app',
'notificationTitle': 'My app is running on background',
'notificationIcon': 'Path to the resource icon of the notification',
},
},
},
backgroundMode: true,
);
Are there any additional steps required for acheiving background/terminated callkit call display using Callkeep package, any help would be much appreciated. Thanks!

P.S Callkeep works perfectly when the app is in foreground, this issue occurs when the app is in background/terminated state

Hi, I remember I had the same issue. The problem in my case was (if i remember correctly), that the initialisation of callkeep was not called. It has to be called relatively early in the startup phase of the app. I believe the process was shut down before the callkeep.setup was called, as iOS is requiring to react quickly (that is leading to the 'Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push.' log entry which basically just says the OS is shutting down the app now. ). Maybe that helps.

Hey @janhelwich, thanks for helping out!
Whilst trying to find a solution, I found this issue in this repo which seemed to be a similar issue and infact it was the cause of this issue:
https://github.com/flutter-webrtc/callkeep/issues/129#issue-1067100839
I followed the temporary solution mentioned here by directing the Callkeep package to use the code from the forked repo and this fixed the issue, now the notification is received and the call is displayed as expected!
Solution link:
https://github.com/flutter-webrtc/callkeep/issues/129#issuecomment-1087324712
However, this solution or a better fix for this issue has yet to be added into the package repo so for anyone facing this issue just use the mentioned solution for now


add csrf error message page

Adds an error message page for CSRF errors:

Let me know what you think!

Thanks for picking this up! The majority of the time I would say that CSRF errors come from submitting a very stale form. So that users don't lose data they may have entered, we might want to recommend they hit the back button first and then reload. Most browsers will remember their changes, but the form will now have a fresh token.
Oh and please add a HTML title to the error template: {% block header_title %}

So that users don't lose data they may have entered, we might want to recommend they hit the back button first and then reload.
Most browsers will remember their changes, but the form will now have a fresh token.

Behaviour amongst browsers is somewhat inconsistent with hidden field values when you do that, it's even inconsistent within the same browser. (Depending on cache). Thus, you might not even get a new CSRF token that way, resulting in getting this error again. A fresh page is the only way to resolve this reliably.
However, we could probably change out the instructions with a link instead. AFAIK you're still on the right url, so we could just create a hyperlink to the current page, and do a fresh request that way. (Which might be more user friendly); Yes, a user will lose changes, but considering this error only happens very rarely (not even yearly), I don't think it matters.

Ok feedback has been processed and I think this PR is ready to be merged! Let me know if you notice anything else!


Clear SearchBox when unclick SearchButton

Now the search field is cleared when it is switched off.
Fix #25160

Thanks!


JPEG Lossless: Error parsing encapsulated pixel data - "unsupported JPEG feature: unknown marker"

Hi Suyash,
First off, thank you for your efforts supporting/maintaining this library. I really appreciate your desire to guide future development based on user feedback.
I'm running into an issue while trying to parse encapsulated pixel data. Unfortunately, the following error is being returned:
unsupported JPEG feature: unknown marker

Here's a snippet of code I'm trying:
// NumCols returns number of pixel columns in slice image
// Tag (0028,0011) specifies this value, but is invalid for encapsulated images
func (slice *Slice) NumCols() (int, error) {
	var nCols int

        // slice.pixelData is instance of *element.PixelDataInfo
	if slice.pixelData.IsEncapsulated {
		img, err := slice.pixelData.Frames[0].GetImage() // <- this returns error
		if err != nil {
			return 0, err
		}

		imgRect := img.Bounds()
		nCols = imgRect.Dx()
	} else {
		nCols = slice.pixelData.Frames[0].NativeData.Cols
	}

	slice.imageInfo.nCols = &nCols

	return nCols, nil
}

Here's an example of failing DICOM images:
dicom.zip
I don't believe this is an issue with the dicoms themselves because I am able to view them with another dicom viewer (OsiriX). Total guess but I'm thinking it might have something to do with how the PixelData element is being parsed by go-dicom... here's a screenshot of the PixelData element value from a dicom linked above, as displayed by OsiriX:

You'll notice that the PixelData element contains two values, with the first value empty and the second value containing the actual byte data. Conversely, other (albeit, non-compressed) dicoms I've successfully parsed contain only one value within the PixelData element.
Alternatively, I could just be using go-dicom incorrectly to parse encapsulated data.
Thanks in advance for your help.

Hi there @bbeckrest! I can take a deeper look later this weekend if needed, but one thing that may be worth trying is index 1 for the frame, which should index into the second pixeldata value.
What happens if you try:
slice.pixelData.Frames[1].GetImage() in your code instead of slice.pixelData.Frames[0].GetImage() ?

@suyashkumar Thanks for the reply.
Trying the suggestion above causes a panic due to Frames only having a length of 1. Not sure why it's not parsing the second pixeldata value.
runtime error: index out of range [1] with length 1

@bbeckrest apologies for the delay! Looks like this issue is coming from the jpeg.Decode call (from here). One option is to take the encapsulated pixel byte data and write out the byte data to disk to see if you can open it in a jpeg tool of your choice. Taking a look, there does seem to be data in the EncapsulatedFrame.
You'd want to try something like
fr, err := slice.pixelData.Frames[0].GetEncapsulatedFrame()
fmt.Println(fr.Data)
f, _ := os.Create("test.jpg")
f.Write(fr.Data)
f.Close()

to get the underlying data, which appears to indeed be parsed into the construct. That could be a good place to start the debug--is the data encoded in an odd way, perhaps using some of the newer JPEG codecs that maybe aren't supported by the Go stdlib?
At the very least, you should have access to the byte data to then try to render or process downstream. I think if this is an issue with the JPEG codecs, it might be good to pull in a third part library to help decode some of this jpeg data.

@suyashkumar You are correct. I'm able to get the byte data from the encapsulated frame using the code above. The issue is the JPEG encoding.
The encoding of the images is JPEG Lossless:Non-hierarchical, 1stOrderPrediction (1.2.840.10<IP_ADDRESS>.70)
After looking into this a bit, there doesn't seem to be an easy way to parse these. Apparently, very few image readers support this codec, which coincidentally you noted back in 2018 😜 . The std lib image/jpeg still does not support it either.
Have you come across any way to parse these since? I've read that cgo might be able to run a C dicom library that can handle the codec, but that's obviously not ideal.

Ah, I was wondering if that was it! Great find, btw--I do remember thinking a little about this in the past as you found, but luckily never directly ran into this situation yet 😅 .
I haven't looked into how complicated the implementation of LosslessJEPG might be, but for what it's worth it might be a pretty decent contribution to the Go stdlib, but unclear how common it is in the wild (particularly outside of DICOM). I too haven't found a lot of support or implementations of it yet.
A quick search found this JS library that appears to implement lossless jpeg. Might be worth trying to port this over into Go.
In the short term to unblock your usecase, it may not be terrible to have a secondary stage of processing where you can run the JPEG-LS bytes through another parser (like this Javascript one, or a C++ one, even if it's not directly part of the same go program). If you're doing batch processing, you can probably spin up a docker container with a shell script that runs your go program (which can write the JEPG bytes to a file) and then invokes a JS or C++ program to decode the JPEG and save it out into some other lossless format for the rest of your pipeline.
Is it important that your code be encapsulated into a single go program, or are you working with a non-batch use case (e.g. a server)?

@suyashkumar It's not necessarily required to be encapsulated into a single go program but having it external would add enough complexity to where it's probably not worth handling right now. For the time being, we've decided to hold off on any development to solve this issue. We're hoping to gather more scans from customers and find out that this encoding is extremely rare - rare enough that we can simply specify in our CT specifications that we don't accept this encoding.
However, if we are alienating a significant number of scans, we will probably have to solve this. I think porting over the JPEGLosslessDecoderJS library you linked to would be the way to go in that case.
Regardless, thanks for your help! If we do end up having to solve this, I'll be sure to post here with follow-up.

@bbeckrest thank you for the update, I too would love to get a better sense of how often these JPEG LS encoded DICOMs show up in the wild, and if you end up having to go down the route of solving this.
Ultimately, I would like to have this feature be fully supported here, which may require writing a JPEG LS decoder/encoder and submitting it to the Go stdlib (or one of the standard image packages). There's a lot of work in flight for this project (which I maintain on the side), so of course help and contributions are always appreciated!
Let me know how I can help moving forward, and best of luck!

I will keep this issue open to track updates on this!

Some relevant updates:

#293 an example of pulling in other libraries using cgo as a fallback for parsing JPEG-LS and JPEG2000
https://github.com/golang/go/issues/22535#issuecomment-1537073646 a potential Go native library for reading this data.


reflect.Selectable does not mangle operator names

scala>     type T = {val a: Int; def a_=(x: Int): Unit}
// defined alias type T = Object{a: Int; a_=(x: Int): Unit}

scala> import scala.reflect.Selectable.reflectiveSelectable

scala> (new {var a = 10}: T).a = 11
java.lang.NoSuchMethodException: rs$line$3$$anon$1.a_=(int)
	at java.lang.Class.getMethod(Class.java:1786)
	at scala.reflect.Selectable$.selectDynamicMethod$extension(Selectable.scala:20)
	at scala.reflect.Selectable.selectDynamicMethod(Selectable.scala:17)
	at rs$line$3$.<init>(rs$line$3:1)
	at rs$line$3$.<clinit>(rs$line$3)
	at rs$line$3.res0(rs$line$3)

Haven't tried other characters.
Decompiling a bigger example reminds us that the generated method is called a_$eq and not a_=, while the generated code indeed tries to call a_= (per jad decompilation):
        ((Function1)Selectable$.MODULE$.reflectiveSelectable(v).selectDynamicMethod("a_=", Predef$.MODULE$.wrapRefArray(new ClassTag[] {
            ClassTag$.MODULE$.apply(Integer.TYPE)
        }))).apply(BoxesRunTime.boxToInteger(11));

Since structural types are intended to be mapped also to other backends (see applications to databases in #1886), it's not clear the encoding should be done by the compiler; we might want to mangle the name inside reflectiveSelectable.
EDIT: Discovered while testing fix to #4496 and checking all variants.

@sjrd How does Scala.js name mangling interact with scala.Dynamic ?

Badly.
In scalac, even calls to scala.Dynamic members are mangled before they are turned to strings. So in the back-end we decode it, but it can lead to false positives, where the user wrote obj.$plus$minus but the compiler will emit `obj['+-']. For example: https://scalafiddle.io/sf/zt1UmSh/0

Ouch! So it'd make sense to follow @Blaisorblade suggestion and move the mangling to library code, since Scala.js can overwrite the library code if needed?

I think so, yes.

OK, that means  something like https://github.com/lampepfl/dotty/blob/master/compiler/src/dotty/tools/dotc/util/NameTransformer.scala (but that operates on String instead of SimpleName) needs to be moved to dotty-library.

@sjrd BTW, does it make sense to keep writes to a as calls to a_=, or should we have a separate method for writes? I can imagine a scenario where writes and calls to a_= are distinct things and you run into similar problems. Tho it's harder to imagine a scenario where v.a = 5 becomes a "proper write" and v.a_=(5) a method call; that depends on how early writes become setter calls.

this will be further complicated by @targetName

I have the impression it's too late to change anything here now.

I have the impression it's too late to change anything here now.

May I ask why? By the time you reach tasty a call is just passing a string to selectDynamic

I thought the issue would apply to all selectables, where changing the encoding might break existing user-defined implementations. But I see this is just reflect.Selectable, so OK. But I should not be the one assigned to this, I think.

FWIW, on Scala 3.5.0 the generated code does call a_$eq
//> using scala 3.5.0

type T = {val a: Int; def a_=(x: Int): Unit}
import scala.reflect.Selectable.reflectiveSelectable

@main def run() =
  (new {var a = 10}.asInstanceOf[T]).a = 11

Generates:
      10: invokevirtual #38                 // Method scala/reflect/Selectable$.reflectiveSelectable:(Ljava/lang/Object;)Lscala/reflect/Selectable;
      13: ldc           #40                 // String a_$eq
      15: getstatic     #45                 // Field scala/runtime/ScalaRunTime$.MODULE$:Lscala/runtime/ScalaRunTime$;

Full output:
Compiled from "Main.scala"
public final class Main$package$ implements java.io.Serializable {
  public static final Main$package$ MODULE$;

  public static {};
    Code:
       0: new           #2                  // class Main$package$
       3: dup
       4: invokespecial #18                 // Method "<init>":()V
       7: putstatic     #20                 // Field MODULE$:LMain$package$;
      10: return

  public void run();
    Code:
       0: getstatic     #33                 // Field scala/reflect/Selectable$.MODULE$:Lscala/reflect/Selectable$;
       3: new           #9                  // class Main$package$$anon$1
       6: dup
       7: invokespecial #34                 // Method Main$package$$anon$1."<init>":()V
      10: invokevirtual #38                 // Method scala/reflect/Selectable$.reflectiveSelectable:(Ljava/lang/Object;)Lscala/reflect/Selectable;
      13: ldc           #40                 // String a_$eq
      15: getstatic     #45                 // Field scala/runtime/ScalaRunTime$.MODULE$:Lscala/runtime/ScalaRunTime$;
      18: iconst_1
      19: anewarray     #47                 // class java/lang/Class
      22: dup
      23: iconst_0
      24: getstatic     #53                 // Field java/lang/Integer.TYPE:Ljava/lang/Class;
      27: aastore
      28: invokevirtual #57                 // Method scala/runtime/ScalaRunTime$.wrapRefArray:([Ljava/lang/Object;)Lscala/collection/immutable/ArraySeq;
      31: getstatic     #45                 // Field scala/runtime/ScalaRunTime$.MODULE$:Lscala/runtime/ScalaRunTime$;
      34: iconst_1
      35: anewarray     #4                  // class java/lang/Object
      38: dup
      39: iconst_0
      40: bipush        11
      42: invokestatic  #63                 // Method scala/runtime/BoxesRunTime.boxToInteger:(I)Ljava/lang/Integer;
      45: aastore
      46: invokevirtual #67                 // Method scala/runtime/ScalaRunTime$.genericWrapArray:(Ljava/lang/Object;)Lscala/collection/immutable/ArraySeq;
      49: invokeinterface #73,  4           // InterfaceMethod scala/reflect/Selectable.applyDynamic:(Ljava/lang/String;Lscala/collection/immutable/Seq;Lscala/collection/immutable/Seq;)Ljava/lang/Object;
      54: pop
      55: return
}


[FEAT] - Compare similar tests

Similar to how users can compare similar models (cars, computers) to compare specs, a feature to provide a side by side comparison of user selected test cases can help highlight changes in data.

One of the tasks post winter break


⚠ Adacta-fintech.com has degraded performance

In c2b4c55, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 877 ms

Resolved: Adacta-fintech.com performance has improved in fb86c5d.


update map/set constructor to match TypeScript's... mostly

There are two potential sources of type definitions:

https://github.com/microsoft/TypeScript/blob/main/src/lib/es2015.iterable.d.ts
https://github.com/microsoft/TypeScript/blob/main/src/lib/es2015.collection.d.ts

I'm going with iterable because it's more general.

Thank you :)


src: modify to use nodeshift instead of oc

related to #24

Closing this PR.
It looks like I started doing other things at that time. :+1:


Develop v3

This looks like a mistake to me in that there should be no merging of commits from develop-v3 into master?
Should we not close this merge request?

I'll close this pull request - we should not be merging from develop-v3 into master.  develop-v3 is effectively the master for the old version 3.x code base and there if someone is stuck on version 3.x and needs a patch.
I'm sure this is just a mistake of some kind.
Cheers, Rob.


Add deployment test and job test placeholder to e2e workflow

Fix #12

/retest

/hold

/assign @ddutta

/hold cancel

/needs-to-test

/ok-to-test

I think this is ready for merge, @ddutta @gaocegege feel free to review & merge.

I think it works for me.

/lgtm

/approve
Let's keep going. If there are bugs we could fix it later.

/approve

/retest

Traceback (most recent call last): File "/mnt/test-data-volume/kubeflow-kubebench-presubmit-kubebench-e2e-44-0fc5cd2-75-d577/src/kubeflow/testing/py/kubeflow/testing/test_helper.py", line 96, in wrap_test test_case.test_func(test_case) File "/mnt/test-data-volume/kubeflow-kubebench-presubmit-kubebench-e2e-44-0fc5cd2-75-d577/src/kubeflow/kubebench/test/py/kubebench/test/deploy_kubeflow.py", line 50, in deploy_kubeflow test_dir, src_root_dir, namespace, args.github_token, api_client) File "/mnt/test-data-volume/kubeflow-kubebench-presubmit-kubebench-e2e-44-0fc5cd2-75-d577/src/kubeflow/kubebench/test/py/kubebench/test/deploy_utils.py", line 106, in setup_ks_app util.run(["ks", "pkg", "install", p], cwd=app_dir) File "/mnt/test-data-volume/kubeflow-kubebench-presubmit-kubebench-e2e-44-0fc5cd2-75-d577/src/kubeflow/testing/py/kubeflow/testing/util.py", line 74, in run " ".join(command), process.returncode), "\n".join(output)) CalledProcessError: Command 'cmd: ks pkg install kubeflow/tf-job exited with code 1' returned non-zero exit status 1

couldn't see the link... but can see the logs from argo ui. Seems it was caused by running "ks pkg install kubeflow/tf-job" because there is no longer tf-job in kubeflow packages. I will fix this in a bit.


Mixin preferences: Refactored shared preferences functions to be generic setters/getters used as a mixin

Refactored shared preferences functions to be generic setters/getters using key/values to allow for multiple preferences to be stored. Refactored the shared preferences functions as a mixin for ease of use. Directory change is now remembered across the app pages.

Thanks. I'll have a look at this.
There are a lot of changes that are cosmetics only - I suspect you use 80 columns, I use 160 because 80 is way too small.
I should make a note of this in the README.
I like the idea of having the settings as a mixin, so I'm interested in this PR.
If you have the time and are willing to do so, can you push a new version with the code formated with 160 columns ?
Also, I think you've left the pubscpec commit from your previous PR in this.
Again, thanks for your contribution !

Awesome, thanks ! I'll have a look at that tonight !

Hi Yannick, my Dart formatter was set to 80 columns which I've now changed to 160. I've had a few issues with git. If there are any problems, please let me know :)


recaptcha api validation

Need to validate the response from Recaptcha API.

I'll look into this over the next few days!

@kradical It might be that this is already implemented but I didn't ever used it and didn't have time to look into this. Check if some of the present methods could expose the Recaptcha API response 😄

@kradical Thanks for looking into the issue! I guess OP is asking about the Recaptcha response to be able to validate it on the server-side - but as I understand the docs properly - this is already implemented into reaptcha. You get the Recaptcha response in the onVerify callback argument.
I would not want to add anything else into reaptcha. You should do API calls by yourself and you have everything needed to do so.
CC: @shahzadcacf

Makes sense, I think we can close this issue if that is the case. We could make a corresponding serverside package for this? But that might be overkill. I know in our use case we aren't using a library on our server and it isn't very much extra code or very complicated.

@kradical Yes, I think this would be an overkill 😄 I'm closing it for now. Again, thanks for taking the time to look at this issue, even if it didn't end with any PR 😄
@shahzadcacf Please tell if this answers your problem.


Popover becomes sticky

https://github.com/Akryum/floating-vue/assets/53712362/db83e145-02b9-42c2-bcbf-4a26417fd7f3
"floating-vue": "^1.0.0-beta.19". I'm using Dropdown component. The bug appears when i'm using placement=right start or left start.

@Akryum Any progress on that?

You need to set prevent-overflow to false

@Akryum No! It isn't solution because now popover goes outside of boundary but is should reposition. It's bug because when i set placement as top or bottom it works but bug appears when placement right or left. When this library used popper.js there's no bug.

Then try setting shift to false
https://floating-vue.starpad.dev/api/#shift


python3Packages.jq: 0.1.8 -> 1.0.2

Motivation for this change
Noticed there was a previous attempt to update this lib, but it required a recreation of the patch which removes the attempt to downlaod and compile dependencies inside the setup.py. The source distrobution of this newer version seems to already have run cython so the included jq.c file only needs to be compiles so cython dependency was removed.
ZHF: #97479
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 97503 1

3 packages built:

python27Packages.jq
python37Packages.jq
python38Packages.jq


Bug: Rain ripples turn black for a second when catching loot while fishing

Mod Version:
0.3.3
Fabric Loader Version:
0.15.7
Description:
Bug: When you catch something while fishing when it's raining, the rain ripples in the water (which are beautiful btw) turn black for just a few frames. This also happens in multiplayer when someone else catches something. Here is a screenshot of the ripples as they are normally versus when you catch something:

What other mods are installed?

With only Fabric api and Mod Menu installed this still happens.

What Fabric API version?

What Fabric API version?
0.96.4

Minecraft version 1.20.4 btw.


Added missing partition create/update properties

For details, see the commit message.

coverage: 34.017%. first build when pulling 5884f8aa290392b8dda0122fd8efab5b56eb23c4 on andy/add-partition-options into 0a99218b59b7cf4093209a2216bbe06ac8f7fe57 on master.

Edwin: The zhmccli project has nearly no testcases. That is something to address separately.

Re-running the test "fixed" the test issue in https://github.com/zhmcclient/zhmccli/actions/runs/6416258751/job/17419652868 - since this no longer occurred and in addition cannot possible have to do anything with this PR, I am merging the PR.