Add location and sign to KS test result

Reference issue
Aims to close #9389
What does this implement/fix?
Moves the result of Kolmogorov-Smirnov tests (1 or 2 samples) to a "tuple bunch" with two additional attributes:

statistic_location indicating at what value of the stochastic variable (approximately) the maximal distance in CDF is reached
statistic_sign, which is only nonempty for alternative="two-sided", indicating whether the first distribution (for 2samp)/the empirical distribution (for 1samp) was above or below the second/theoretical distribution at the statistic_location. This is a cheap way to determine not only whether the distros are different, but also if they are, in what direction.

Additional information
Matt and I quickly discussed part 1, the statistic_location. I later realized having part 2 i.e. the sign is equally important for me and perhaps for other folks, and is a cheap addition in terms of performance.
I haven't adapted the part of the docstring that represents doctests yet, happy to do so but perhaps it'd be useful if one of the maintainers took a quick look the the draft PR first so I know if there are any major issues.
Thank you for your time and patience

@tupui @tirthasheshpatel @chrisb83 If you agree that this looks like a good idea, I can review this. There was a lot of user support in the original issue gh-9389, and they seem happy to have it added to the existing function, so I think it's fine to add these attributes rather than create a new function.

OK, looks like there's just one real failure now:
https://github.com/scipy/scipy/blob/b5a805248c5c3b13e8d1b6237209854b6d0b4359/scipy/stats/tests/test_mstats_basic.py#L1877-L1882
This Ks_2sampResult:
https://github.com/scipy/scipy/blob/2e5883ef7af4f5ed4a5b80a1759a45e43163bf3f/scipy/stats/_stats_py.py#L7489
is no longer used anywhere, so I'd suggest just deleting the definition of it and deleting the test. That looks like it will fix the remaining failures.

I am +0.5. I personally would go with a separate function. We don't really have a lot of extra info in other tests. Instead we could have a general function to get the distance between 2 distributions (our API is slim there) and it would make perfect sense to have the location there.

One part of my hesitation with adding a separate function is that if we were to add a function for the statistic used in each of our hypothesis tests, we'd double the number of functions in stats. I doubt we want to head in that direction, and I don't think the KS statistic is so special that is it deserves a function while the rest do not.
Also, it makes me think of Halton/Hammersley - those are actually different, yet we're talking about combining them. Here, we'd duplicate the function that computes the statistic, and the only difference between the functions would be that one version has the location of the maximum difference and the other has a p-value?

I agree that we don't want to duplicate the API with a location function for all tests.
Here it's just that for this specific test we do something very generic and useful otherwise which is to compute the distance between CDFs.
I am fine doing both as well. Adding now an output for the location and maybe latter have a separate distance function.

We could make an optional input argument called compute_Pvalue=True that skips the last part and is used just to compute the max distance and its location. Would that be a useful compromise in your opinion or just a mess? :smirk:

Mmm I'm more hesitant to add inputs to functions than outputs, and even more hesitant to add an input that instructs the function to add an output : )
It sounds like we have an agreement here - what @tupui said.

Adding now an output for the location and maybe latter have a separate [CDF] distance function.

So to sum up @iosonofabio we can continue with this PR. Please consider the adjustments recommended above and I can take a second pass. I'd also suggest adding a unit test in test_stats.py. a good test would be to confirm that the statistic and p-value result object can still be unpacked and match the attributes, and also that the new attributes are present and appropriate (if possible).

No problem, I'll get it done as soon as I get back to Oz (haven't slept in a while now...)
Thank you!

I saw you posted some new commits - did you want this to be reviewed again?

Thanks @mdhaber - I was just overwhelmed in the last few days.
I have now added decent test functions, improved docstrings a little, and changed a piece of logic that you suggested and I believe was incorrect (please double check if you have time!).
If it passes CI, it is ready for you to take a look, thank you! Otherwise I'll just fix the errors first.

Please see iosonofabio/scipy#1.

Hey @mdhaber - thank you again for your PR. I merged it and added similar tests for the one-sample KS test.
I think this is ready to go in if you guys approve. Also happy to make other changes or, if you prefer, feel free to push commits into this PR directly :smile:

Sorry Matt, was taken in by some stuff! Let me check test results properly and I'll ask for review at that point. A day or two.
Thank you
On Sun, Oct 2, 2022, at 09:32, Matt Haberland wrote:

I saw you posted some new commits - did you want this to be reviewed again?
—
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/pull/17062#issuecomment-1264497407, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJFEAHHXXCRNU6F7M7XSMLWBC3XLANCNFSM6AAAAAAQRQZWHQ.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks @mdhaber - implemented all requested changes. No further edits necessary AFAICT.

@mdhaber Thanks for the comment. I disagree that symmetry is essential. The 1-sample KS test is against a continuous distribution, whereas the 2-sample test is against a discretization thereof, which incurs all kinds of aliasing effects. I have done my best to try and satisfy the conflicting requirements of simplicity and theoretical clarity. As of now, I unfortunately have no time left for this PR. I'm not trying to be rude, but I really have no more time for this.
Given we are at the finish line, I would be grateful if you could push any changes that you think would improve the PR, symmetry or otherwise, and merge when you think it's good enough.
Thank you

The comment about some symmetry was resolved by the two recent commits. (It really crossed paths with the first of them, even though it shows up afterwards.)

Thanks @tirthasheshpatel! @tupui I'm going to merge now but if you have a chance for a quick glance, let me know if there is anything you'd like to change before the release and I'll open another PR.

Thanks @mdhaber and everyone for your hard work and guidance!


data wish list

We are looking for data related to these topics from official sources.
Tourists visits in Nepal by year, and/or per districts
historical data about nepal share market,
traffic data per districts

thanks, @san7988 for your interest. We are looking for data related to tourism, nepal share market and traffic in Kathmandu.

@ravinepal
Please keep in mind that if we do a data set, we will need data for all
districts. The Wazimap framework does not work with statistics that are for
only one or a few districts
On Fri, Oct 20, 2017, 7:41 AM ravinepal<EMAIL_ADDRESS>wrote:

thanks, @san7988 https://github.com/san7988 for your interest. We are
looking for data related to tourism, nepal share market and traffic in
Kathmandu.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Code4Nepal/nepalmap_app/issues/204#issuecomment-338182936,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADpbbNiWB5UdhABANIBtOWrwiLHGqrcZks5suIbTgaJpZM4P__ST
.

thanks for the reminder, @cliftonmcintosh. i updated the comment. have a good weekend!

@ravinepal  for the historical NEPSE data, is the scrapped data considerable ?


WIP: updating, to use our fork's yaml

Proposed Changes

updates to yaml

@aliok I think this thing is not yet ready ?
https://github.com/openshift-knative/eventing-operator/tree/release-0.13/deploy/olm-catalog/knative-eventing-operator
it lacks 0.13 content.
also has the old eventings.operator.knative.dev CRD

@matzew I wouldn't worry about the OLM files.

OLM files are checked in at upstream repo only for easier creation of the files again. operator-sdk gen csv uses previous OLM files to generate new files.
We don't need the OLM files for this repository as we're not publishing our fork on OperatorHub or something. We have the OLM metadata for deployment of the upstream operator in our serverless operator.
I always add the OLM metadata for the upstream operator, but this time I haven't done it yet.

Other than that, I say this PR is good. Gonna try testing it now.

Tested using these instructions:

Built this PR branch using ko publish ./cmd/manager
That published docker.io/aliok/manager-f1ecf4e236a455a91a2eb955def6b11b@sha256:9140d4f06ed278ca430331b7e5dae179ccef4429131e8131194f2487a7c76741 as the image
Changed the upstream operator image in https://github.com/openshift-knative/serverless-operator/pull/126/files#diff-b466a37bd25835bf7c89df6eef60bb62R305

/lgtm
Let's merge this anyway. If you think OLM stuff is necessary, I can send a separate PR for that.

/hold
I found something...
I saw for some reason the order of things in the file is different than the upstream file.
For example, the webhook creation fails because of that as service for the webhook needs to be created before the registration of the webhook.
How do we create the manifest file? Can't we simply take the upstream file and delete the comments and empty lines? What other changes do we need?
@matzew

@aliok  the file is different, b/c of

images
container names

we can do this:

take the upstream file, change the container names, like you did on our 0.13 branch, and replace the grc.io images ?

let me take the upstream file and change images and container names @matzew

/close


Regarding the issue of result visualization

Hello, may I ask which part of the project the visualization code for the model inference results is in

Hello, may I ask which part of the project the visualization code for the model inference results is in

You can run the following command to obtain the visualization result：
python tools/test.py local_configs/leformer/leformer_256x256_sw_160k.py local_configs/pretrained_models/leformer_sw.pth --eval mIoU mFscore --show-dir path to your save path --opacity 1


Pagination gem selection

Kaminari

Hey!
This issue is closed because the gem you requested is integrated. 🥇
PR: https://github.com/oguzsh/rails-interactive/pull/49
Thanks 💯


Upgrading text moves buttons and menus to second line in stack details page

Version - master 4.05
Steps to Reproduce:

Add a catalog that will have an upgrade
After active go to stacks detail page and click on upgrade
Upgrade stack

Results: The upgrade message moves all the buttons and menus to second line with text

Expected: Prefer only messages moves to second line?  or maybe just the message and the menu on the right.

https://github.com/rancher/ui/pull/721

Version - master 6/13
Verified fixed


Not compiling on iOS Emulator (Undefined symbols for architecture x86_64)

I'm having this error when trying to compile on iOS Emulator:
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_RNGoogleSignIn", referenced from:
      l_OBJC_$_CATEGORY_RNGoogleSignIn_$_RCTExternModule in RNGoogleSignInBridge.o
  "_OBJC_CLASS_$_RNGoogleSignInEvents", referenced from:
      l_OBJC_$_CATEGORY_RNGoogleSignInEvents_$_RCTExternModule in RNGoogleSignInEventsBridge.o
ld: symbol(s) not found for architecture x86_64

Anyone knows how to solve this?

@joaohkfaria Can you try to run ExampleApp on your iOS?

Ok! It's working now.
I removed everything I did and created a random Swift file for XCode create the Bridging-Header file, then I follow the steps, and now it's working =)


fluentd 0.14.11 & 0.14.13 parser plugin 'suppress_parse_error_log' not used

fluentd 0.14.11 & 0.14.13
parser plugin 'suppress_parse_error_log' not used.
filter parser since parser is built in  core - no parser plugin needed any more
[warn]: parameter 'suppress_parse_error_log' in <filter project.nginx*> is not used.
so this results in lot's of unwanted log messages, because there are two filters for ngnix logs:

one for parsing access log nginx regex
one for parsing error log nginx regex

so when access log filter matches, error log filter writes to td-agent.log:
'error_class=Fluent::Plugin::Parser::ParserError error="pattern not match'
same for error log filter matches, access log filter filling up td-agent.log
but different filters are needed to get different prefix attribute injected for elasticsearch output.
related config part:
<filter project.nginx*>
@type parser
key_name log
suppress_parse_error_log true
format /^$/
inject_key_prefix nginx.acc.

<filter project.nginx*>
@type parser
key_name log
suppress_parse_error_log true
format /^$/
inject_key_prefix nginx.err.

OS: ubuntu 16 LTS docker container
package: td-agent                     3.0.0-0
gems - manually updated gem 'fluentd' to 0.14.13 :
/opt/td-agent/embedded/bin/gem list --local | egrep "action|active|rail|fluent"
actionmailer (4.2.8)
actionpack (4.2.8)
actionview (4.2.8)
activejob (4.2.8)
activemodel (4.2.8)
activerecord (4.2.8)
activesupport (4.2.8)
fluent-logger (0.6.2)
fluent-mixin-config-placeholders (0.4.0)
fluent-mixin-plaintextformatter (0.2.6)
fluent-plugin-concat (2.0.1)
fluent-plugin-elasticsearch (1.9.2)
fluent-plugin-kafka (0.5.0)
fluent-plugin-rewrite (0.1.0)
fluent-plugin-rewrite-tag-filter (1.5.5)
fluent-plugin-s3 (1.0.0.rc1)
fluent-plugin-td (0.10.29)
fluent-plugin-td-monitoring (0.2.2)
fluent-plugin-webhdfs (0.4.2)
fluentd (0.14.13)
fluentd-ui (0.4.3)
font-awesome-rails (<IP_ADDRESS>)
haml-rails (0.5.3)
jquery-rails (3.1.4)
rails (4.2.8)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (2.0.2, 1.0.8)
rails-html-sanitizer (1.0.3)
railties (4.2.8)
sass-rails (4.0.5)
sprockets-rails (2.3.3)

Sorry, I don't understand what you mean.
Why do you share same tag for different filters? > <filter project.nginx*>

because logs comming from multiple docker nginx containers.
each nginx container has tag set .nginx
each nginx container logs access & error log to stdout
each nginx container is started with logging driver fluentd
so input is forward and for my understanding it's the only way to differ between nginx access & error logs.
fluentd should process this loglines before output into elasticsearch and shown in kibana
is there any other way to differ between access & error logs comming from same source or handle with different tags / labels what ever?
ideas are welcome

Hmm... I see. Without inject_key_prefix, you can use https://github.com/repeatedly/fluent-plugin-multi-format-parser.
Re-add suppress_parse_error_log is acceptable for me.

@fmax Could you have a chance to write a patch for this?

sadly no - i couldn't write a patch - i'm technician but no developer or ruby expert

#1494 is merged


the a.i stopped answering my questions.

I found the a.i to be very helpful but after I asked if it would be possible to spend from an account if there were no archive nodes and if I had lost control of my wallet. I am thinking "no" because active nodes don't know what the balance of my account is, they can only prove a statement about account balance is correct. So I am thinking that even if I have the private key and can set up a new wallet then it would still not be possible to spend from the account with out knowing the balance because only the old wallet or an archive node would be tracking the balance and you need the balance in order to make a proof of the balance which ensures there is enough funds in the account to cover the amount being sent.
After a while arguing over this point with my intention to understand, the a.i. stopped communicating on any topic.
Later I got an answer to my question on discord: An active node holds a complete ledger of all balances on the Mina blockchain as well as a 22kb proof that the balances are correct. So it seems that as long as active nodes exist and you have your private key, then you will always be able to access your funds.
The a.i. was not able to explain this and finally it stopped responding. In all I found the a.i very helpful in answering all kinds of noob questions before it went offline.
Update:
It's about 6 hours later and I asked if the a.i was online.
The a.i responded that it is and ask how it could help.
I asked the following:
Is it true that all active Mina nodes hold the current balances of all Mina accounts?
At this point my question was deleted and the a.i went silent.

Thank you for the report.
I think you have just exceed the daily request limit. After that you should use your own openai api key.
Also, because of context length creating worse results, you should not ask too many questions in the same chat(maybe context was too long for your problem).
Also, nowadays, OpenAI API is not stable. Always check it from https://status.openai.com/


newer classes equal or not - footnote reference

I love the idea, I love the rationale, I love everything about this project. I wish all devs had your vision and transformed all programming languages into equal languages. I abhor discrimination and I don't understand why some languages such as php are supposed to be "inferior". I'm looking forward to the day the first operating system is written completely in php and a little bit of html 3 and 4.
That aside, regarding your second footnote:

The communist revolution does not prevent future classes to be equal to all others. Classes declared after the communism.revolution() will not follow the communism rule. ↩

Isn't this supposed to be something to the extent of "does not prevent future classes to be superior to others"? If newer classes are equal to all others, then that's consistent with the Communist Revolution, isn't it? (by the way, please use uppercases out of respect).

Newer classes will not be affected by revolution, thus won't be equal unless a new revolution happens afterwards.
This means that we either maintain a permanent revolution, or classes will be different!

This is why all communist regimes are constantly on revolutionary order.

Everything is working as (not) intended.

This is why all communist regimes are constantly on revolutionary order.

I agree with that and I find this today more relevant than ever, given the technological revolutions we're seeing on a daily basis (apple deciding to revolutionarily remove the jack, for example, or I don't know, apple's touchbar, or, just another random example, apple deciding that you should have the keyboard replaced every 6 months to a year for free). We see the same revolution happening in art, of course. I haven't seen a non-revolutionary contemporary piece of art maybe for 20 years I think.

Newer classes will not be affected by revolution, thus won't be equal unless a new revolution happens afterwards. This means that we either maintain a permanent revolution, or classes will be different!

I am happy to dogmatically accept the reasoning behind this. Otherwise how would the Revolution even take place if everyone where the question its motives?

I think we could use threading to make a compromise solution. We simply make the revolution occur perpetually. As soon as one revolution ends, a new is started.


Fix MK integration test helper function

What type of PR is this?
/kind bug

What this PR does / why we need it:
Update waitForWorkloadToFinishAndRemoteWorkloadToBeDeleted().
Check that both worker clusters had finished, only second one was checked so far.
Which issue(s) this PR fixes:

Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/cc @trasc

/remove-kind bug
/kind cleanup


auto-migrate old clock/op-log entries when users rename existing columns

Basically the same as #68 but to be applied on crsql_alter_commit
A simple route:

for each cell in source table, check if an entry exists in clock table
if not, pull rows and write clock entries for those rows at current db version + 1

We should probably think of a more performant method of doing this migration. Maybe only do this for non-default value cells with > 0 rows.

being worked here: https://github.com/vlcn-io/cr-sqlite/tree/backfill

Fixed by https://github.com/vlcn-io/cr-sqlite/pull/175


Initial implementation of CodeCommit

Description
This PR adds an initial implementation of AWS CodeCommit.  (see issue https://github.com/Codium-ai/pr-agent/issues/138)
This will run the pr-agent CLI in "review" mode, and it posts the AI generated comment to your CodeCommit PR.  (see the setup instructions at the bottom of INSTALL.md file)
This implementation adds PR review capabilities as a first step... more features can be added based on usage and demand.
Changes

added boto3 to the requirements.txt file
added CodeCommitProvider to the pr_agent/git_providers/__init__.py file
2 files added in pr_agent/git_providers

codecommit_provider.py

class derived from GitProvider interface, which implements the bulk of the provider functionality for CodeCommit
I based this on parts of the git_provider.py, bitbucket_provider.py, and local_git_provider.py, with customizations specific for CodeCommit
CodeCommit does not have as many features as GitHub... for example the percentages of languages used, so I had to calculate the languages manually... and there are some static methods at the bottom of the file to do that, which we could move into common util methods

codecommit_client.py

This class is a wrapper around the AWS boto3 SDK, to keep the codecommit_provider.py cleaner
Technically this is not a provider class, but I left it in with the git_providers so as not start building out new directory structures to hold one extra file... this can be moved later

2 files added in tests/unittest, for testing the above classes

test_codecommit_client.py
test_codecommit_provider.py

added a "CodeCommit" column to the functionality table in README.md
added a "AWS CodeCommit Setup" section to INSTALL.md

@okotek

@pzarfos I added boto3 to pyproject.toml.
It's a good idea to merge requirements.txt and pyproject.toml, but we didn't do it yet :/

I'm going to merge without extensive testing from our side, and monitor for errors and issues

@pzarfos we have failed unit tests, can you take a look? I'll revert the merge for now

(and reopen a PR)


Flutter driver is unable to close application instance after all tests are passed

@asifnawaz2311 it's not really related to the workaround I posted. It's some other issue with flutter driver. I think we should report it as a separate ticket, so it get resolved in the driver.
As a quick workaround I added to tearDownAll:
await Future.delayed(Duration(seconds: 1), () => exit(0));

But that will mark all your builds as passed, because it returns 0. To implement it properly the logic is going to be much more complicated, that's a wrong thread to discuss it
Originally posted by @tomrozb in https://github.com/flutter/flutter/issues/42433#issuecomment-738615532

I am unable to stop application instance and it get stuck here and don't end the test execution. There is no solution anywhere to this

Hi @asifnawaz1123
Can you please provide your flutter doctor -v your flutter driver -t test_driver/example.dart --verbose and a complete reproducible minimal code sample
Thank you

sure @TahaTesser
flutter doctor -v
`[√] Flutter (Channel stable, 1.22.4, on Microsoft Windows [Version 10.0.18363.1198], locale en-PK)
• Flutter version 1.22.4 at G:\DevTools\flutter
• Framework revision 1aafb3a8b9 (3 weeks ago), 2020-11-13 09:59:28 -0800
• Engine revision 2c956a31c0
• Dart version 2.10.4
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at G:\DevTools\Sdk
• Platform android-30, build-tools 30.0.2
• ANDROID_HOME = G:\DevTools\Sdk
• Java binary at: G:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at G:\Program Files\Android\Android Studio
• Flutter plugin version 49.0.2
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] Connected device (1 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)
• No issues found!`
My app_test.dart
`// Imports the Flutter Driver API.
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
import 'methods/MainIsolate.dart';
void main() {
group('SMA App', () {
FlutterDriver driver;
setUpAll(() async {
  print('Connecting driver');
  final mainIsolate = await getMainIsolate();
  await mainIsolate.loadRunnable();
  driver = await FlutterDriver.connect(isolateNumber: mainIsolate.number);
  await Future.delayed(Duration(seconds: 10));
  print('Driver connected');
});

// Close the connection to the driver after the tests have completed.
tearDownAll(() async {
  if (driver != null) {
    driver.close();
  }
  print('driver closing..');
});

//Test for flutter Driver Health
test('check flutter driver health', () async {
  await driver.clearTimeline();
  await driver.runUnsynchronized(() async {
    print('flutter driver health test started');
    Health health = await driver.checkHealth();
    print(health.status);
    print('flutter driver health test finished');
  });
}, timeout: Timeout(Duration(minutes: 1)));

});
}`
MainIsolate.dart used to get the driver, which I was not able to get previously
`import 'dart:io';
import 'package:flutter_driver/flutter_driver.dart';
import 'package:vm_service_client/vm_service_client.dart';
Future getMainIsolate() async {
final dartVmServiceUrl = Platform.environment['VM_SERVICE_URL'];
final VMServiceClientConnection connection = await vmServiceConnectFunction(
dartVmServiceUrl,
headers: <String, dynamic>{},
);
final VMServiceClient client = connection.client;
final VM vm = await client.getVM();
print("Available isolates:");
vm.isolates.forEach((element) {
print("Isolate: ${element.name} ${element.number}");
});
return Future.value(
vm.isolates.firstWhere((VMIsolateRef isolate) => isolate.name == "main"));
}
`

Any updates related this issue? @TahaTesser

Hi @asifnawaz1123
I can reproduce the issue, related https://github.com/flutter/flutter/issues/66917

logs
Starting application: test_driver/app.dart
"build/app/outputs/flutter-apk/app.apk" does not exist.
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                        33.9s
✓ Built build/app/outputs/flutter-apk/app-debug.apk.
Installing build/app/outputs/flutter-apk/app.apk...                 4.2s
I/flutter (28179): Observatory listening on http://<IP_ADDRESS>:38383/w0du6oLVgFk=/
00:00 +0: SMA App (setUpAll)

Connecting driver

Available isolates:

Isolate: main<PHONE_NUMBER>866227

VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:52511/w0du6oLVgFk=/
VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>866227
VMServiceFlutterDriver: Isolate is paused at start.
VMServiceFlutterDriver: Attempting to resume isolate
VMServiceFlutterDriver: Connected to Flutter application.
Driver connected

00:14 +0: SMA App check flutter driver health

flutter driver health test started

HealthStatus.ok

flutter driver health test finished

00:15 +1: SMA App (tearDownAll)

driver closing..

00:15 +1: All tests passed!

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.4, on macOS 11.0.1 20B29 darwin-x64, locale
    en-GB)
    • Flutter version 1.22.4 at /Users/tahatesser/Code/flutter_stable
    • Framework revision 1aafb3a8b9 (3 weeks ago), 2020-11-13 09:59:28 -0800
    • Engine revision 2c956a31c0
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

However when I try to reproduce the same on the beta channel, I can vm_service_client error, I looked up and it's discontinued
Can you please use the alternative provided and  try if it reproduces on the beta or master channel?
This package is DISCONTINUED. Use package:vm_service instead.
If the reproduces with alternative as well, please provide an updated code sample
Thanks

I have used package:vm_service/vm_service.dart  and tried the same thing to resume isolate if they are paused and also I have call dispose method to shutdown the vmservice, Now My test are running on codemagic and also ending application instance when all test are executed. @TahaTesser thankyou for suggesting package:vm_service , I am posting the code to implement this:
// Imports the Flutter Driver API.

import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
import 'package:vm_service/vm_service_io.dart';
import 'package:vm_service/vm_service.dart';

void main() {
  group('SMA App', () {
    FlutterDriver driver;
    VmService serviceClient;

    setUpAll(() async {
      print('Connecting driver');
      String dartVmServiceUrl = Platform.environment['VM_SERVICE_URL']
              .replaceFirst(new RegExp(r'http:'), 'ws:') +
          "ws";

      serviceClient = await vmServiceConnectUri(dartVmServiceUrl);
      final VM vm = await serviceClient.getVM();
      vm.isolates.forEach((element) {
        print("Isolate: ${element.name} ${element.number}");
      });
      final mainIsolate = vm.isolates
          .firstWhere((IsolateRef isolate) => isolate.name == "main");
      await serviceClient.resume(mainIsolate.id);
      driver = await FlutterDriver.connect(
      isolateNumber: int.parse(mainIsolate.number));
      print('Driver connected');
    });

    // Close the connection to the driver after the tests have completed.
    tearDownAll(() async {
      if (driver != null) {
        driver.close();
      }
      print('driver closing..');
      serviceClient.dispose();
      await serviceClient.onDone;
      print('service client shut down');
    });

    //Test for flutter Driver Health
    test('check flutter driver health', () async {
      await driver.clearTimeline();
      await driver.runUnsynchronized(() async {
        print('flutter driver health test started');
        Health health = await driver.checkHealth();
        print(health.status);
        print('flutter driver health test finished');
      });
    }, timeout: Timeout(Duration(minutes: 1)));
  });
}

hI @asifnawaz1123
Glad to help, I can also confirm, instance is closed after all test are passed

logs
tahatesser@Tahas-MacBook-Pro stable_flutter % flutters drive --target=test_driver/app.dart -d rmx
Starting application: test_driver/app.dart
Installing build/app/outputs/flutter-apk/app.apk...                 4.3s
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                         5.1s
✓ Built build/app/outputs/flutter-apk/app-debug.apk.
I/flutter (19950): Observatory listening on http://<IP_ADDRESS>:43943/RR3MaBduyMM=/
00:00 +0: SMA App (setUpAll)

Connecting driver

Isolate: main<PHONE_NUMBER>783579

VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:50783/RR3MaBduyMM=/
VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>783579
VMServiceFlutterDriver: Isolate is not paused. Assuming application is ready.
VMServiceFlutterDriver: Connected to Flutter application.
Driver connected

00:03 +0: SMA App check flutter driver health

flutter driver health test started

HealthStatus.ok

flutter driver health test finished

00:03 +1: SMA App (tearDownAll)

driver closing..

service client shut down

00:03 +1: All tests passed!

Stopping application instance.
tahatesser@Tahas-MacBook-Pro stable_flutter %

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.4, on macOS 11.0.1 20B29 darwin-x64, locale
    en-GB)
    • Flutter version 1.22.4 at /Users/tahatesser/Code/flutter_stable
    • Framework revision 1aafb3a8b9 (4 weeks ago), 2020-11-13 09:59:28 -0800
    • Engine revision 2c956a31c0
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64 • Android 10 (API 29)

! Doctor found issues in 1 category.

Given your last message I feel safe to close this issue, if you disagree please write in the comments and I will reopen it.
Thank you


Win installer: Unversion LR target path

This PR fixes the installer to use a non-versioned path for the LR installation (fixes #151). As discussed here https://github.com/keplerproject/luarocks/issues/403#issuecomment-118026700 . It also fixes the retainment of the existing config files.
One problem though; because the LR path is moving one level up, the system rock tree is now in the same path. e.g. default used to be c:\program files (x86)\luarocks\2.2 and now is c:\program files (x86)\luarocks. This means that when deleting that existing directory upon installation, the default location of the system tree; c:\program files (x86)\luarocks\systree, is now also deleted.
iirc correctly the system tree used to be installed in the Lua directories, not the LuaRocks directories. Some 2 years ago this was changed, but with hind sight that seems a bad change, so maybe that should be reverted.
For now; this is for discussion only, do not merge yet, until the systree location issue is resolved.

@ignacio any idea why LR refuses to run, complaining that the current directory doesn't exist? The added debug line "cd && dir" gives proper output...
I had a quick look at the source in fs\win32\tools.lua, but I don't understand this 'directory stack' concept that seems to be used? what is it for, and how does it work?

Hi @Tieske . Will take a look at this later today and get back to you.

It's already fixed. I thought it to be an appveyor issue, but it turned out to be an issue with cfg.Lua.
So back to the original issue; location of the system tree... Any ideas?

Perhaps bring the issue to the LR mailing list to see if any other Windows users chime in? I trust you guys to make the final call, but it would be nice to at least hear what users have to say on this matter.

I think of two options.

Even when the versioned directory is removed (e.g. 2.2), still leave a fixed one. So instead of c:\program files (x86)\luarocks\2.2 we get c:\program files (x86)\luarocks\install or something like that.

Move the system tree to a different place. Local AppData seems like a reasonable place. I'm pretty sure this has been discussed already. I can't recall the pros and cons of each location.

If I understand correctly, the current issue is that a rm -rf $LUAROCKS_PREFIX also removes the system rocks tree, because it is now inside of $LUAROCKS_PREFIX. If so, another obvious option would be to not do the rm -rf $LUAROCKS_PREFIX.  If the installer is used to install additional versions of LuaRocks in the same directory, you shouldn't remove the old installation anyway.

Move the system tree to a different place. Local AppData seems like a reasonable place. I'm pretty sure this has been discussed already. I can't recall the pros and cons of each location.

iirc it was for security reasons, LR data is not real "data" but application code, and as such needs admin priviledges to write to, hence the Program Files location, as AppData is not protected in that way.

If I understand correctly

@siffiejoe  you did

If so, another obvious option would be to not do the rm -rf $LUAROCKS_PREFIX. Either remove the necessary files/directories explicitly

Not the cleanest solution imo, also very vulnerable to upgrade mistakes if files are moved/added/renamed. Due to the versioned directory they were separated before, my preference would be to keep them separated

If the installer is used to install additional versions of LuaRocks in the same directory, you shouldn't remove the old installation anyway.

I don't see how this could work? The other discussion was regarding one LR installation serving rocks for multiple Lua installations, maybe that is what you meant? This pull request takes care of retaining the config[-x.x].lua and site_config[_x_x.lua] files in that case (copied to a temp location before removing the full directory, and copied back after the main files have been installed)

Even when the versioned directory is removed (e.g. 2.2), still leave a fixed one. So instead of c:\program files (x86)\luarocks\2.2 we get c:\program files (x86)\luarocks\install or something like that.

I thought of that option too.
Alternatively, how about this?

"c:\Program Files (x86)\LuaRocks.org\LuaRocks"
"c:\Program Files (x86)\LuaRocks.org\Installed Rocks"

Looks very Windows-y to me ;)

I like the LuaRocks.org namespacing. :+1:
Alternatively I was considering using the Lua tree;
{root}
  +-- bin
  +-- include
  +-- lib
  |    +-- lua
  |         +-- <LuaVersion>
  +-- man
  |    +-- man1
  +-- share
       +-- lua
            +-- <LuaVersion>

This is the default structure of the makefile for MinGW. And Lua 5.3 includes the defaults paths for these as well (LuaWinMake also creates this structure when installing).
So if one would use the {root} above as the systemtree, then no Lua path environment variables need to be set at all. Everything would work out of the box, on defaults.
as a bonus it would be versioned (except for bin).

we could even place a small luarocks.bat wrapper batch file in the bin directory, so only adding the path to lua.exe to the system path would make it all work, including the LuaRocks commandline.

Alternatively I was considering using the Lua tree;

Yeah, that would be the Unix-y solution. I think that's what I wanted to go with in the earliest days (due to sheer laziness/simplicity of having everything look/work the same everywhere) but for some reason we didn't go with that (Kepler already had different conventions, maybe? Or maybe Windows people were offended by the Unix-like paths, I don't remember :) )

I think things have changed, the tree structure has been standardized a little bit more by Lua 5.3 including the defaults paths for this structure. And the earlier mentioned security, previously everyone on Windows had admin rights, and that has also changed (for the better).
If LR adopts this structure, I think the 'standard' would become a little stronger again...

Well, you certainly have my support for the unified bin+lib+share structure in all OSes :)

So, what would {root} be? I didn't get that part. Could you provide some examples with full paths?

{root} would be the root of the Lua installation. On my system that would be C:\Program Files (x86)\Lua.
So the full tree of my Lua installation is;
C:\Program Files (x86)
    +-- Lua
        +-- bin
        +-- include
        +-- lib
        |    +-- lua
        |         +-- 5.1
        +-- man
        |    +-- man1
        +-- share
             +-- lua
                  +-- 5.1

At the same time my system tree is;
C:\Program Files (x86)
    +-- LuaRocks
        +-- systree
            +-- bin
            +-- lib
            |    +-- lua
            |    |    +-- 5.1
            |    +-- luarocks
            |         +-- rocks
            +-- share
                 +-- lua
                      +-- 5.1

So if I would point my system tree to C:\Program Files (x86)\Lua they would exactly match on top of each other. And in case of Lua 5.3 I wouldn't even have to change the Lua environment variables to find the installed rocks, as they are already in the defaults.

So you'd be install the system tree in C:\Program Files (x86)\Lua. Great.
And LuaRocks own files would live in c:\Program Files (x86)\LuaRocks and not in C:\Program Files (x86)\Lua, right?

Yes, just the system rocktree would be integrated into the Lua directory tree, LuaRocks would still have its own, non-versioned, installation directory.

Great. I'm good with this.

Just updated this PR with the change as discussed. Please give this a try and let me know whether it is good to go.

Sorry about chiming in late, but... changing the tree to a Unix-like structure is good, but I'm unsure about our installer installing Lua at C:\Program Files (x86)\Lua. Looking at this path, it looks like something straight from lua.org. Shouldn't we either use something namespaced like C:\Program Files (x86)\LuaRocks.org\LuaRocks and C:\Program Files (x86)\LuaRocks.org\Lua, to avoid any possible clashes with other Lua installations? (I understand that the latter is also misleading as it looks like Lua comes from LuaRocks.org, but at least that's true in the sense that this is the build we're shipping).
OR...
While we're at it... why two trees? If the LR system tree will store stuff in Lua's tree anyway, why not install LuaRocks itself there too? In other words...
c:\Program Files (x86)\
   LuaRocks
      bin
         lua-5.1
         luarocks-5.1
         luarocks
      lib
         lua
            5.1
      share
         lua
            5.1

Removing a LuaRocks version when upgrading equates to deleting bin\luarocks*.* and share\lua\5.1\luarocks, assuming the configuration stays the same... it shouldn't be messy, right?

Also, this will be a major usability change for users... maybe we should make this move in the luarocks-3 branch?

Sorry about chiming in late, but... changing the tree to a Unix-like structure is good, but I'm unsure about our installer installing Lua at C:\Program Files (x86)\Lua. Looking at this path, it looks like something straight from lua.org.

The bundled Lua version is installed as C:\Program Files (x86)\LuaRocks\lua5.1.exe, so inside the LR directory. That example was just my own Lua installation, so it wasn't installed by the LR installer. Sorry for the confusion.

While we're at it... why two trees? If the LR system tree will store stuff in Lua's tree anyway, why not install LuaRocks itself there too?

I'm not sure about this one. I see your point, but I'm not comfortable with it (yet). Have to give it some thought. Maybe take it one step at a time. And make that a next step.
Maybe @ignacio or @siffiejoe have some thoughts on this?

Also, this will be a major usability change for users... maybe we should make this move in the luarocks-3 branch?

No, I don't think so. Last time we moved the tree, it also was a point release. A user just needs the /TREE argument to move the tree elsewhere, or he doesn't move it and just reinstalls the modules he wants/needs. Imho adding a note to the release should suffice.

Maybe @ignacio or @siffiejoe have some thoughts on this?

To clarify: We are talking about four directory trees. Two are also rocks trees (one requires admin rights, the other doesn't). Then there is the Lua installation directory, and the LuaRocks installation directory.
The current plan is to put one of the rocks trees into the Lua installation directory, because then Lua 5.3, when installed using a certain directory layout, doesn't need any LUA_PATH* variables set to access the modules. Correct? I'm a bit uncomfortable installing LuaRocks into a directory owned by another program, but ok. But then the LuaRocks batch files should be installed side-by-side with lua.exe so that you also don't have to modify the PATH variable (if you have already done so for Lua). (The various tools shouldn't be in PATH, so I'd put them in .../lib/luarocks/tools or something.)
Another idea was to move the LuaRocks modules from the LuaRocks installation directory into the system rocks tree. This is already done on Unix, and it will happen anyway as soon as we support updating LuaRocks via rockspec on Windows, so I'm all for it. (Btw., what is holding us back there?)
If all of this is realized, we only have two directory trees left: One Lua installation directory which includes the system rocks tree and the LuaRocks installation, and one separate user rocks tree. This is exactly like on Unix but with some additional subdirectories in .../lib/luarocks (tools, icons, etc.).

(The various tools shouldn't be in PATH, so I'd put them in .../lib/luarocks/tools or something.)

Yes, they must not be in the path. Care is taken to address them using absolute paths so a LR install won't mess with my libeay32.dll and so on.

This is already done on Unix, and it will happen anyway as soon as we support updating LuaRocks via rockspec on Windows, so I'm all for it. (Btw., what is holding us back there?)

IIRC, the trouble is replacing files while in use. This issue mentions it.

IIRC, the trouble is replacing files while in use. This issue mentions it.

Yes, but that should not apply to Lua modules since they are opened, parsed, compiled, and then closed. So when LuaRocks code is executed there shouldn't be any Lua files in use. Is it the batch files that are the problem? I'll try to dig up the original source of that info ...

I think the problem was related to C modules which LR can use if available (LuaSocket, LuaSec, etc). Maybe there is no actual problem upgrading LuaRocks itself.

I think the problem was related to C modules which LR can use if available (LuaSocket, LuaSec, etc).

Yes, that's why we have use_fs_modules = false on Windows now.

Maybe there is no actual problem upgrading LuaRocks itself.

Yes, maybe there isn't, and to be honest I just never tested it.

Note however that for self-upgrade to work the first install has to be different, so that the LuaRocks files show up in the manifest. On Unix that required a special rockspec and makefile changes, for which I never implemented equivalents on Windows.

I'm a bit uncomfortable installing LuaRocks into a directory owned by another program, but ok.

Conceptually this is ok I think. LuaRocks is just a tool that helps extend the Lua environment, hence it has to modify it. So a rockstree is part of a Lua installation, but managed by LuaRocks.

Another idea was to move the LuaRocks modules from the LuaRocks installation directory into the system rocks tree. This is already done on Unix, and it will happen anyway as soon as we support updating LuaRocks via rockspec on Windows, so I'm all for it. (Btw., what is holding us back there?)

Here it is different imo. LuaRocks is a different application, one could consider it just a coincidence that it is written in Lua itself. But still it is a different application. Hence my hesitation. But reducing platform differences might be worth it.

But then the LuaRocks batch files should be installed side-by-side with lua.exe so that you also don't have to modify the PATH variable (if you have already done so for Lua). (The various tools shouldn't be in PATH, so I'd put them in .../lib/luarocks/tools or something.)

As an alternative; see this commit, it adds a "shortcut" batch file to the bin directory to access LR itself. And hence the LR installation remains separate from the Lua installation. Just a thought...

as for updating LuaRocks by itself; there are also the included binaries, and batchfiles. I'm not worried about the binaries, but the batchfiles might be an issue.
The way I understand they work is by executing a line, if the batch file is changed/deleted, the next line is read, but might be different because of a change. Probably if multiple statements are within () they are considered one, even if on multipe lines, so that makes it even less predictable.
I think workarounds can be devised, but it does require some care.

for now; should we merge this PR and open a new issue for making LR update itself on windows?

updated to warn if an environment variable is given, but the file referred to isn't available.

@hishamhm Can this be merged or is there still an issue left?
PS. I think we need a different branching model if developing in parallel for LR 3 and LR 2. Something like a development branch, for which all enhancements will be merged in both the master branch (LR 2.x) and in the LR 3 branch. New LR 3 features are only to be merged in the LR 3 branch.

@Tieske Yes, I believe this can be merged.
As for branches, I've been remiss and committed stuff into luarocks-3 that should have gone into master instead... Maybe we should think a bit more about the branching model, yes.


adds support for multiple origins and destinations in distance requests

adds support for multiple origins and destinations in distance requests as well as adding tests for

the existing cases of a distance request using just one origin and destination using addresses or lat/lng tuples
the new case of an origin and multiple destinations

@sntran Let me know if you have any issues with this PR or if you think it can be included? Thank you!

LGTM. Thanks!

@sntran I think I may want to make a similar update for directions as well in the coming month  depending on when my project gets to the point that it needs it if you or someone else hasn't gotten to it. Thank you!


Vibrate indicator option for silence or custom sound to save battery

I never used 8pen but discovered 8vim from f-droid. I assume the phone vibrate alert/indicator was something that came with the original app. Would it be possible to change the alert to be silent or a custom selected sound? Another indicator/alert option might be a background colour flash. Whilst unsubstantiated (since I only just started using 8vim) but I think it could save some battery by using a sound or not having any sound at all playing.

I am really sorry, i could not make sense of your issue... are you reffering to the vibration when each letter is entered? or you talking about some kind of bug?

Yes, when you enter a character or delete or move the cursor forward/backwards it triggers the phone vibration. If you delete a lot of characters or move the cursor direction a lot then it's like a machine gun of vibration which could end up draining the battery.
My suggestion is to give the user an option to change the input character effect so that it doesn't vibrate after every action. Possibly separate the options for cursor movements and deletes from character input. I'd like to be able to change the effects of both to silent but some people may prefer to have some effect to show that something has happened.
The effects I'm suggesting could be:

Silence (no indicator)
Custom sound clip (user can change)
Custom colour flash (the 8vim background [currently white] could flash to a different colour the user chooses)
Vibrate (current default and only option)

So, I initially put the vibration in so that there is a haptic feedback to the fingers that a character was successfully entered.
Haptic and not sound or flash because I treat this keyboard as a blind typing tool. A lot many of the times I am looking at something else or talking to someone while typing, so both sound and visual cues are useless to me.
But I do understand your point, different people have different preferences. I will definitely think about replacing vibration with sound as a configuration setting but "flash" is ... really not sure... It will be so distracting... I am getting distracted just thinking about it.

"flash" sounds like visual-bell (from the terminal world), not the most popular option out there.
How about highlighting the appropriate letter as the current loop progresses?
As the loop starts draw a highlight around the innermost letter, then as the loop continues around grow the highlight outwards so that it covers the letter that will be produced. You could further emphasise the current letter.
Personally, haptic and/or sound is annoying. Seeing the letter appear is feedback enough.
(I wouldn't oppose making the current letter bold. Something simple and subtle is fine.)

This seems related to the issue I opened over at #92

I think we will have to have a new issue opened if someone wants a sound instead of haptic feedback or silence as a feedback to the input.


Add timestamps and alarms to SimIOC

In order to get a better feel for how the widgets should be designed how to handle more PV attributes, the simulated IOC should also create values for the timestamp and alarm values.
This can then later be replicated with our middleware connection to the outside world (currently via coniql).

Fixed in latest pull request with meta simPV type


Feature: Display transfer speed in status center

What feature or improvement do you think would benefit Files?
Displaying transfer speed in the status center is a popular feature request from users, we should implement it!
Requirements

Use OpacityIcons for every item state icons
Show speed graph in in-progress StatusCenter item
Show writing speed in the graph control area
Show time estimates
Show current processing file name
Show processed bytes
Add retry button to StatusCenter item reprepresents an operation that can be retried
Update title and subtitle strings

Files Version
v2.4.33
Windows Version
Windows 11
Comments
No response

When I was implementing the fundamental for rich process, I once considered the support for real-time speed calculation. But it seems to be expensive because we need to save the speed checkpoints frequently, so I ended up with only saving a StartTime for calculating the average speed:
https://github.com/files-community/Files/pull/10814/files#diff-05282d70c531e5d010647b1251e70297456260db0d94a5178c7ffd0ff52b26aeR32

I once considered the support for real-time speed graph calculation

We definitely want to do this to compete with File Explorer and other file managers.

Yes PLEASE! I am often copying large video files for my work, and I get anxious not knowing if anything is happening at all, and then not knowing if the process is done, can I pull out my SD card, or go make a cup of tea, how long will this take etc... very important to me.

I'll work on.

Specs
I won't create any custom controls using ContentTemplate, but I will modify current UserControl. The item will be categorized into two different kinds; Expandable one and Static one. Expandable one will be implemented by using Expander and will be used for InProgress file system operation. Static one is for any other than it.
Icons
Soon
Title messages
Soon
Description messages
Soon
ProgressBar behavior
Soon
Speed Graph
Soon
Estimated time
Soon

Can you replace requirements with this?
Requirements
Phase 1 (In progress)

Refactor around StatusCenter classes.
Rename related classes to include StatusCenter.
Add icon to every item to make its state be more recognizable

Phase 2 (Ready to build)

Use OpacityIcons for every item state icons
Show speed graph in in-progress StatusCenter item
Show writing speed in the graph control area
Show time estimates
Show current processing file name
Show processed bytes
Add retry button to StatusCenter item reprepresents an operation that can be retried
Update title and subtitle strings

Draft of strings for status center
Preface

Not to show full path for source and destination. Instead, show them on hovering as tooltip

Kinds

Copy
Move
Recycle
Delete
Compress
Decompress

Copy
In progress

96% complete
Copying 64 items from Source to Destination
Speed: 4.4 MB/s

Done

100% completed
Copied 64 items from Source to Destination

Error

Error - 96% complete
Copying 64 items from Source to Destination

Pause

Paused(Pausing) - 96% complete
Copying 64 items from Source to Destination
Speed: 4.4 MB/s

Cancel

Canceled(Canceling) - 96% complete
Copying 64 items from Source to Destination

Move
In progress

96% complete
Moving 64 items from Source to Destination
Speed: 4.4 MB/s

Done

100% completed
Moved 64 items from Source to Destination

Error

Error - 96% complete
Moving 64 items from Source to Destination

Pause

Paused(Pausing) - 96% complete
Moving 64 items from Source to Destination
Speed: 4.4 MB/s

Cancel

Canceled(Canceling) - 96% complete
Moving 64 items from Source to Destination

Recycle
In progress

96% complete
Recycling 64 items from Source
Speed: 4 items/s

Done

100% completed
Recycled 64 items from Source

Error

Error - 96% complete
Recycling 64 items from Source

Pause

Paused - 96% complete
Recycling 64 items from Source
Speed: 4 items/s

Cancel

Canceling - 96% complete
Recycling 64 items from Source

Delete
In progress

96% complete
Deleting 64 items from Source
Speed: 4 items/s

Done

100% completed
Deleted 64 items from Source

Error

Error - 96% complete
Deleting 64 items from Source

Pause

Paused - 96% complete
Deleting 64 items from Source
Speed: 4 items/s

Cancel

Canceling - 96% complete
Deleting 64 items from Source

Compress
In progress

96% complete
Compressing 64 items from Source
Speed: 4 items/s

Done

100% completed
Compressed 64 items from Source

Error

Error - 96% complete
Compressing 64 items from Source

Pause

Paused - 96% complete
Compressing 64 items from Source
Speed: 4 items/s

Cancel

Canceling - 96% complete
Compressing 64 items from Source

Decompress
In progress

96% complete
Decompressing 64 items to Destination
Speed: 4 items/s

Done

100% completed
Decompressed 64 items to Destination

Error

Error - 96% complete
Decompressing 64 items to Destination

Pause

Paused - 96% complete
Decompressing 64 items to Destination
Speed: 4 items/s

Cancel

Canceling - 96% complete
Decompressing 64 items to Destination

This is an approach I would like to suggest...  I welcome input and comments on the best approach.  This is of course relevant to en_US and en_GB - other regions will need localisation considerations.
I would like to avoid repetition of similar strings, emphasise the action currently happening, and move the less important info into a tooltip.

Kinds

Copy - Copied, Copying
Move - Moved, Moving
Recycle - Recycled, Recycling
Delete - Deleted, Deleting / Permanently Delete, Permanently Deleting, Permanently Deleted
Archive Compress - Compressed, Compressing
Archive Extract (Decompress) - Extracted, Extracting

Copy
In progress

Copying 64 items (96%)
62 / 64 items to "Destination folder name" 62 / 64 items from "Source Path" to "Destination Path"
Speed: 4.4 MB/s

Done

Copy completed
Successfully copied 64 items to "Destination folder name" 64 items copied from "Source Path" to "Destination Path"

Error

Copy unsuccessful
Error message why copy did not complete 2 items failed to copy to "Destination Path"

Pause

Paused copying 64 items (96%)
62 / 64 items to "Destination folder name" 62 / 64 items from "Source Path" to "Destination Path"
Speed: 4.4 MB/s

Cancel

Copy cancelled(Cancelling copy) (96%)
62 / 64 items copied to "Destination folder name"

Move
In progress

Moving 64 items (96%)
62 / 64 items to "Destination folder name" 62 / 64 items from "Source Path" to "Destination Path"
Speed: 4.4 MB/s

Done

Move completed
Successfully moved 64 items to "Destination folder name" 62 / 64 items from "Source Path" to "Destination Path"

Error

Move unsuccessful
Error message why move did not complete 2 items failed to move to "Destination Path"

Pause

Paused moving 64 items (96%)
62 / 64 items to "Destination folder name" 62 / 64 items from "Source Path" to "Destination Path"
Speed: 4.4 MB/s

Cancel

Move cancelled(Cancelling move) (96%)
62 / 64 items to "Destination folder name" 62 / 64 items from "Source Path" to "Destination Path"

Recycle
In progress

Recycling 64 items (96%)
62 / 64 items from "Source folder name" 62 / 64 items from "Source Path"
Speed: 4 items/s

Done

64 items sent to the Recycle Bin

Error

Recycle incomplete
62 / 64 items recycled from "Source folder name" 2 items were not sent to the Recycle Bin

Pause

Recycle paused (96%)
62 / 64 items recycled from "Source folder name" 62 / 64 items recycled from "Source Path"
Speed: 4 items/s

Cancel

Cancelling recycle (96%)
62 / 64 items sent to the Recycle Bin

Delete
In progress

Permanently deleting 64 items (96%)
62 / 64 items from "Source folder name" 62 / 64 items from "Source Path"
Speed: 4 items/s

Done

64 items permanently deleted

Error

Unable to delete items
Error message why delete was unsuccessful 2 items could not be deleted from "Source Path"

Pause

Delete paused - (96%)
62 / 64 items deleted from "Source folder name" 62 / 64 items deleted from "Source Path"
Speed: 4 items/s

Cancel

Cancelling delete (96%)
62 / 64 items deleted from "Source folder name" 62 / 64 items deleted from "Source Path"

Compress
In progress

Creating "Archive.zip" (96%)
Compressing 64 items from "Source folder name" Compressing 64 items from "Source Path"
Speed: 4 items/s

Done

"Archive.zip" created
Successfully compressed 64 items from "Source folder name" Successfully compressing 64 items from "Source Path"

Error

Failed to create "Archive.zip"
Error message why files could not be compressed to the archive file

Pause

Paused creating "Archive.zip" - 96% complete
Compressing 64 items from "Source folder name" Compressing 64 items from "Source Path"
Speed: 4 items/s

Cancel

Cancelled creating "Archive.zip"

Decompress
In progress

Extracting "Zipfile.7z" (96%)
Decompressing 64 items to "Destination folder name" Decompressing 64 items to "Destination Path"
Speed: 4 items/s

Done

Extracted "Zipfile.7z"
Decompressed 64 items to "Destination folder name" Decompressed 64 items to "Destination Path"

Error

Unable to extract "Zipfile.7z"
Error message why archive could not be extracted

Pause

Paused Extracting "Zipfile.7z" (96%)
Decompressing 64 items to Destination Decompressing 64 items to "Destination Path"
Speed: 4 items/s

Cancel

**Cancelled extracting "Zipfile.7z" **

Below are notes I made previously in the discord regarding the wording for the ETA messages and calculations

About 5 mins (5:02 - 4:58)
Just under 5 mins (4:57 - 4:30)
Just over 4 mins (4:29 - 4:03)
About 4 mins (4:02 - 3:58)
...
About a minute (1:02 - 0:58)
In less than a minute (0:57 - 0:04)
In a few seconds (0:03 - 0:00)

Here is a visual with some of the examples

The whole plan to redesign Status Center currently approved.
Requirements
Phase 1 (Impremented)

Refactor the code around StatusCenter
Redesign the StatusCenter card item UI

Phase 2 (In progress)

Add the speed graph
Add the speed displaying
Add current processing file name

Phase 3 (Ready to Build)

Add estimated time of complete displaying
Improve strings to suit with the design


Show Quick Replies for Secure Conversations

This PR allows Quick Reply buttons to be displayed from Secure Conversations history if quick reply button is the last message.
MOB-2588

!squash


DBZ-3722 MySQL error handler add relevant exceptions

https://issues.redhat.com/browse/DBZ-3722

So it throws those exceptions without any message at all?

Looking ath the stacktrace you shared in the issue, there's e.g. this message:

Network is unreachable: recv failed

I'd feel more comfortable if we could narrow down the restart cases based on that.

So it throws those exceptions without any message at all?

Yes, I think so.
I copy some  codes from BinaryLogClient.java
                try {
                    // ... ignore
                } catch (Exception e) {
                    Throwable cause = e instanceof EventDataDeserializationException ? e.getCause() : e;
                    if (cause instanceof EOFException || cause instanceof SocketException) {
                        throw e;
                    }
                    if (isConnected()) {
                        for (LifecycleListener lifecycleListener : lifecycleListeners) {
                            lifecycleListener.onEventDeserializationFailure(this, e);
                        }
                    }
                    continue;
                }

or modify wrap method in MySqlStreamingChangeEventSource.java. But i donot think this has any difference exactly.

@wingerx Yes, as @gunnarmorling has pointed out. There is a chain of cause exeptions and one of them is SocketInputStream. Maybe the PR should be updated to go through the chain and check this concrete expection together with a substring of the exception message.

Sorry, I did not reproduce this problem, I will close this pr and resubmit when has a better plan


chore(deps): update dependency webpack-cli to v3.3.11

This PR contains the following updates:

Package
Type
Update
Change

webpack-cli
devDependencies
patch
3.3.10 -> 3.3.11

Release Notes

webpack/webpack-cli
v3.3.11
Compare Source

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

:tada: This PR is included in version 2.2.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[fix] #2420: Fix "Permission already exists" bug

Description of the Change

PermissonToken now derives PartialOrd and Ord. Manual implementation that was using only token name used to cause collision and is the reason of the bug
PartialOrd and Ord were derived for many other structs that PermissionToken depends on
Added test to check this bug

One more dangerous bug was found and fixed with the same changes
While fixing this bug I have also found another bug which this PR also fixes.
PermissionToken collision used to make it possible to i.e. have a permission to modify only one asset, but the same permission was enough to modify any other asset.
The test I introduced checks that too.

Issue

Closes #2420

Benefits

Permission collision bug fixed
One more test

Possible Drawbacks
None

my argument for removing them was that they are somewhat of a cheat/lie in many places even though they can, formally speaking, be ordered. Anyways, I don't mind if they stay

Yeah, making value to be Ord was quite painful. But how can we properly implement Ord for PermissionToken without it?
I assume, we can use HashSet instead of BTreeSet. Then requirements will be different.
But I don't see a problem with Ord for now

Or we can force PermissionToken to store String or Name instead of Value

my argument for removing them was that they are somewhat of a cheat/lie in many places even though they can, formally speaking, be ordered

I agree, there is a little smell... But it looks like the simplest solution. We can refactor it after the merge window closes. But I don't know what we can change here to make it working

my argument for removing them was that they are somewhat of a cheat/lie in many places even though they can, formally speaking, be ordered

I agree, there is a little smell... But it looks like the simplest solution. We can refactor it after the merge window closes. But I don't know what we can change here to make it working

same feeling, not really make sense to compare Equals, but most straightforward solution


Disable swipe back in TeaNavigator

Can I Disable swipe back in TeaNavigator?

Yes, you can.
First, you have to define a scene that can not swipe back
let PushFromRightNoSwipe = {
  ...TeaNavigator.SceneConfigs.PushFromRight,
  gestures: {
    pop: null,
  },
}

next, change NavigationPage.defaultProps.scene for all NavigationPage
NavigationPage.defaultProps.scene = PushFromRightNoSwipe;

or change your class code for specified component
export default class YourComponentClass extends NavigationPage {

  static defaultProps = {
    ...NavigationPage.defaultProps,
    scene: PushFromRightNoSwipe,
  };

}

or add scene prop for push action
this.navigator.push({view: <YourComponentClass scene={PushFromRightNoSwipe}/>})

Thanks you very much for respose.


Potential requirement for additional MQTT parameters

As noted in https://github.com/AMWA-TV/nmos-event-tally/issues/54, it may be necessary to indicate a protocol version (including versions supported via constraints), and any need for a 'secure' parameter should be considered. These could be handled later via 'ext_' parameters but would be better sorted now before finalising this version of the spec.

Just noting that the decision in the IS-07 group is to omit these and define defaults or deployment specific agreements (in this case use of TLS or not should match what IS-05 itself is doing and MQTT versions should be agreed by deployment).
If these parameters were added as core transport parameters in IS-05 v1.2 or above it would constitute a breaking change against v1.1 (given the potential to break from the expected behaviour when supporting v1.1 and v1.2 simultaneously).
I wonder as a result whether we should add some explicit documentation for clients ahead of the v1.1 release which indicates that new transport parameters for existing defined transports might be added without a version bump. This doesn't mean that it will happen, but leaves the door open to some degree. As things stand entirely new transport type definitions would still be excluded from this.
I'd note that aside from the cases of MQTT encryption and protocol version, there are potential 'missing' parameters in the RTP transport set for encryption, and in both MQTT and WebSocket transport types for use of authentication. Being able to add these to existing transports without a version bump (and crucially without breaking existing implementations) would be desirable.

Just noting that the PR that adds api_proto to the DNS-SD _nmos-mqtt._tcp service type is https://github.com/AMWA-TV/nmos-event-tally/pull/57. This currently allows mqtt or secure-mqtt (ws and wss might be allowed in the future).
So, we could add proto (or scheme, or either of those prefixed with destination_/source_) to the MQTT Sender/Receiver transport params.
If so, we should be consistent on whether a default is supported and how it is decided.


Make sure the exit code of the script call is logged.

This could be useful for debugging as target scripts can define their own exit code meanings.  Providing this value in the log can help pin down why a script failed.

done


CPL implementation and test

Coverage increased (+0.01%) to 99.132% when pulling 8fdd38963e8779d661cd8b90f71aba6b45231319 on cpl-implementation into 91853ed3297ea18bc21b6140552d84293fecbccd on master.


Spatial partitioning, sorting and shuffling

When dealing with large sets of geometries it would be nice if we could partition (chunk) the geometry coordinate and the GeometryIndex based on spatial locality (thus requiring spatial sorting or shuffling), like explained for geo-dataframes in dask-geopandas' spatial partitioning user guide.
This would require a good amount of work both here and upstream, though:

refactor xarray.IndexVariable to allow dask arrays or other lazy arrays https://github.com/pydata/xarray/pull/8124 (although we can work around this by using regular xarray.Variable objects for now)
add some sort of generic, out-of-core index in Xarray https://github.com/pydata/xarray/issues/1650, or add our own ad-hoc version here
compute space-filling curve values from geometries (copied or factored out from dask-geopandas?)
implement spatial shuffling, probably reusing what is being added in Xarray https://github.com/pydata/xarray/pull/9320

Yes sure, I don't have any precise idea yet but I will do when I'll think more about it.

Doesn't this just mean computing Hilbert distance (we can use vanilla Geopandas if needed or vendor that code) and using sortby along that? That way you can partition the data along the spatial order without any changes on xarray side.
That is also how dask_geopandas does that and how sort_values(by="geometry") works in geopandas. But I may as well be missing something.

sort_values(by="geometry")

yeah probably best to reuse dask-geopandas here, we'd need some new dask array API to shuffle by unknown values.

To be honest I didn't look closely into either dask_geopandas' GeoDataFrame.spatial_shuffle, dask.array.shuffle or https://github.com/pydata/xarray/issues/9546.
I have looked into that a bit more now but probably not enough yet.

we'd need some new dask array API to shuffle by unknown values.

@dcherian  -- What do you mean exactly by "unknown values"?
What we want to shuffle here are "distance" values (encoded as integer indices) along a 1-dimensional space filling curve of a fixed resolution (level), as computed from the geometries. For very coarse resolutions we could probably use those integer indices directly as group labels, but since the range of index values grows very rapidly with level we might better want binning the data (where I guess the number of bins and their extents could be calculated from the chunks).
Would it be possible to use something like ds.shuffle(ds.groupby_bins(...)) with https://github.com/pydata/xarray/pull/9320?

Doesn't this just mean computing Hilbert distance (we can use vanilla Geopandas if needed or vendor that code) and using sortby along that? That way you can partition the data along the spatial order without any changes on xarray side. That is also how dask_geopandas does that and how sort_values(by="geometry") works in geopandas. But I may as well be missing something.

@martinfleis -- Hmm from what I see dask_geopandas.GeoDataFrame.spatial_shuffle relies on dask.dataframe.DataFrame.set_index, which involves complex sorting / shuffling logic implemented in https://github.com/dask/dask/blob/main/dask/dataframe/shuffle.py.
I guess we might as well reuse dask.dataframe here (i.e., convert dask.array.Array <-> dask.dataframe.DataFrame) or reuse dask-geopandas.
Computing Hilbert distance is more embarrassingly parallel, if we can do it with vanilla Geopandas we should do it!

If the distance values are in-memory then https://github.com/pydata/xarray/pull/9320 should work for you!
ds.groupby_bins(...).shuffle_to_chunks()

Great! I'll give it a try when I find time.


Uncaught (in promise) TypeError: this[h] is not a function

Description
model-viewer in Angular 8
the model will be loaded, but no operation possible. the error below in console:
model-viewer.min.js:510 Uncaught (in promise) TypeError: this[h] is not a function
at HTMLElement.value (model-viewer.min.js:510)
at HTMLElement.updated (model-viewer.min.js:893)
at HTMLElement.updated (model-viewer.min.js:893)
at HTMLElement.value (model-viewer.min.js:510)
at HTMLElement.updated (model-viewer.min.js:893)
at HTMLElement.performUpdate (model-viewer.min.js:81)
at HTMLElement._enqueueUpdate (model-viewer.min.js:81)
Live Demo
https://stackblitz.com/edit/angular-ivy-onjfwt?file=src/app/app.component.html
Version

model-viewer: v1.3.0

Browser Affected

[X] Chrome (only tested with chrome)
[ ] Edge
[ ] Firefox
[ ] IE
[ ] Safari

OS

[ ] Android
[ ] iOS
[ ] Linux
[ ] MacOS
[X] Windows (only tested with win)

I have the same error.
    at HTMLElement.value (model-viewer.js:59368)
    at HTMLElement.updated (model-viewer.js:60605)
    at HTMLElement.updated (model-viewer.js:64282)
    at HTMLElement.value (model-viewer.js:59371)
    at HTMLElement.updated (model-viewer.js:64107)
    at HTMLElement.performUpdate (model-viewer.js:787)
    at HTMLElement._enqueueUpdate (model-viewer.js:721)
value @ model-viewer.js:59368
updated @ model-viewer.js:60605
updated @ model-viewer.js:64282
value @ model-viewer.js:59371
updated @ model-viewer.js:64107
performUpdate @ model-viewer.js:787
_enqueueUpdate @ model-viewer.js:721
async function (async)
_enqueueUpdate @ model-viewer.js:715
requestUpdateInternal @ model-viewer.js:687
requestUpdate @ model-viewer.js:704
[onResize] @ model-viewer.js:60443
[onResize] @ model-viewer.js:58351
[updateSize] @ model-viewer.js:58030
(anonymous) @ model-viewer.js:57800

I have the same error.
    at HTMLElement.value (model-viewer.js:59368)
    at HTMLElement.updated (model-viewer.js:60605)
    at HTMLElement.updated (model-viewer.js:64282)
    at HTMLElement.value (model-viewer.js:59371)
    at HTMLElement.updated (model-viewer.js:64107)
    at HTMLElement.performUpdate (model-viewer.js:787)
    at HTMLElement._enqueueUpdate (model-viewer.js:721)
value @ model-viewer.js:59368
updated @ model-viewer.js:60605
updated @ model-viewer.js:64282
value @ model-viewer.js:59371
updated @ model-viewer.js:64107
performUpdate @ model-viewer.js:787
_enqueueUpdate @ model-viewer.js:721
async function (async)
_enqueueUpdate @ model-viewer.js:715
requestUpdateInternal @ model-viewer.js:687
requestUpdate @ model-viewer.js:704
[onResize] @ model-viewer.js:60443
[onResize] @ model-viewer.js:58351
[updateSize] @ model-viewer.js:58030
(anonymous) @ model-viewer.js:57800

See if anything in this thread helps: https://github.com/google/model-viewer/issues/969#issuecomment-740241633
It seems like something in Angular is sensitive perhaps to the order of loading modules. It's a bit strange, but please post your workaround if you find one.

See if anything in this thread helps: https://github.com/google/model-viewer/issues/969#issuecomment-740241633
It seems like something in Angular is sensitive perhaps to the order of loading modules. It's a bit strange, but please post your workaround if you find one.

Hi.
@elalish - thank You.
How I solved it:
==== First, non-final, attempt (promising, but dead-end in my case) :
First I disabled zone.js in main.ts and polyfills.ts .
That fixed the model-viewer.js:59368 Uncaught (in promise) TypeError: this[h] is not a function (You can also use the non-minified version<EMAIL_ADDRESS>to see a better error).
But it broke Angular (v7) templates in any module other than AppModule. At first I thought it had to do with change detection. But even if I put smth like {{2+2}}, it would stop showing anything after this line. Which seems like a bug to me, or perhaps some deeper knowledge is required to fix this.
==== Final attempt that worked for me:
Then I decided to upgrade angular to v8, as per https://update.angular.io/ .
Everything works now, but zone.js is enabled.
My package.json:
{
  "name": "inno-topic-website",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "prepare-icons": "npm --prefix ../svg-conversions start ../InnoTopicWebsite/src/assets/images/logos ../InnoTopicWebsite/src/assets/images/logos-c"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/cdk": "^7.3.6",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/forms": "~8.2.14",
    "@angular/material": "^7.3.6",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "angular2-fontawesome": "^5.2.1",
    "core-js": "^2.5.4",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "lodash": "^4.17.11",
    "log4js": "^4.1.0",
    "rxjs": "~6.6.3",
    "rxjs-compat": "^6.4.0",
    "tslib": "^1.9.0",
    "winston": "^3.2.1",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.29",
    "@angular/cli": "~8.3.29",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "^5.0.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.5.3"
  }
}

About order of loading modules - I did not explicitly change anything related to this, I think. Maybe the Angular upgrade changed something [internally].
I shall link to a specific version of model-viewer.js (or better yet, download it and put in my own hosting), to ensure a working setup.
I hope that helps.

Hi.
@elalish - thank You.
How I solved it:
==== First, non-final, attempt (promising, but dead-end in my case) :
First I disabled zone.js in main.ts and polyfills.ts .
That fixed the model-viewer.js:59368 Uncaught (in promise) TypeError: this[h] is not a function (You can also use the non-minified version<EMAIL_ADDRESS>to see a better error).
But it broke Angular (v7) templates in any module other than AppModule. At first I thought it had to do with change detection. But even if I put smth like {{2+2}}, it would stop showing anything after this line. Which seems like a bug to me, or perhaps some deeper knowledge is required to fix this.
==== Final attempt that worked for me:
Then I decided to upgrade angular to v8, as per https://update.angular.io/ .
Everything works now, but zone.js is enabled.
My package.json:
{
  "name": "inno-topic-website",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "prepare-icons": "npm --prefix ../svg-conversions start ../InnoTopicWebsite/src/assets/images/logos ../InnoTopicWebsite/src/assets/images/logos-c"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/cdk": "^7.3.6",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/forms": "~8.2.14",
    "@angular/material": "^7.3.6",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "angular2-fontawesome": "^5.2.1",
    "core-js": "^2.5.4",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "lodash": "^4.17.11",
    "log4js": "^4.1.0",
    "rxjs": "~6.6.3",
    "rxjs-compat": "^6.4.0",
    "tslib": "^1.9.0",
    "winston": "^3.2.1",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.29",
    "@angular/cli": "~8.3.29",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "^5.0.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.5.3"
  }
}

About order of loading modules - I did not explicitly change anything related to this, I think. Maybe the Angular upgrade changed something [internally].
I shall link to a specific version of model-viewer.js (or better yet, download it and put in my own hosting), to ensure a working setup.
I hope that helps.

In index.html:
(code is a bit dirty, after a lot of experiments)
(note model-viewer is not minified, for better debugging)
  <script type="module"
<EMAIL_ADDRESS>  </script>

</head>
<body>

  <model-viewer
    src="assets/3d/Scene5.glb"
    ios-src="https://cdn.glitch.com/36cb8393-65c6-408d-a538-055ada20431b/Astronaut.usdz?v=1569545377878"

    alt="A 3D model of an astronaut"
    style="height: 1000px; outline: none; opacity: 20%"
    camera-orbit="calc(-1.5rad + env(window-scroll-y) * 4rad) calc(0deg + env(window-scroll-y) * 180deg) calc(3m - env(window-scroll-y) * 1.5m)"
    camera-target="0m 0m 0m"
    disable-zoom
    disable-orbit
    data-js-focus-visible=""
  >
    <!-- https://github.com/google/model-viewer/issues/969 -->
  </model-viewer>

If anyone needs more details, feel free to contact me.

In index.html:
(code is a bit dirty, after a lot of experiments)
(note model-viewer is not minified, for better debugging)
  <script type="module"
<EMAIL_ADDRESS>  </script>

</head>
<body>

  <model-viewer
    src="assets/3d/Scene5.glb"
    ios-src="https://cdn.glitch.com/36cb8393-65c6-408d-a538-055ada20431b/Astronaut.usdz?v=1569545377878"

    alt="A 3D model of an astronaut"
    style="height: 1000px; outline: none; opacity: 20%"
    camera-orbit="calc(-1.5rad + env(window-scroll-y) * 4rad) calc(0deg + env(window-scroll-y) * 180deg) calc(3m - env(window-scroll-y) * 1.5m)"
    camera-target="0m 0m 0m"
    disable-zoom
    disable-orbit
    data-js-focus-visible=""
  >
    <!-- https://github.com/google/model-viewer/issues/969 -->
  </model-viewer>

If anyone needs more details, feel free to contact me.

Zone.js is enabled (although I tried to get rid of it, but run into show-stopper problems) :
polyfills.ts:
import 'zone.js/dist/zone';  // Included with Angular CLI.

main.ts:
import 'hammerjs';
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(
    AppModule,
    // {
    //     ngZone: 'noop'
    // }
  )
  .catch(
    err =>
      console.error(err)
  );

Zone.js is enabled (although I tried to get rid of it, but run into show-stopper problems) :
polyfills.ts:
import 'zone.js/dist/zone';  // Included with Angular CLI.

main.ts:
import 'hammerjs';
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(
    AppModule,
    // {
    //     ngZone: 'noop'
    // }
  )
  .catch(
    err =>
      console.error(err)
  );

As I suspect it might have something to do with exact versions of dependencies (e.g. zone.js), here is package-lock.json :
https://gist.github.com/karol-depka/48f40ad2d5287f8592239f33c274446f

As I suspect it might have something to do with exact versions of dependencies (e.g. zone.js), here is package-lock.json :
https://gist.github.com/karol-depka/48f40ad2d5287f8592239f33c274446f

For posteriority: model-viewer url redirects to this specific version:
https://unpkg.com/<EMAIL_ADDRESS>

For posteriority: model-viewer url redirects to this specific version:
https://unpkg.com/<EMAIL_ADDRESS>

Hello, I've been struggling with this error for a few days now.
Upgrading to the latest angular 8 had no effect.
One possible solution is like @karol-depka importing model-viewer in index.html:
<head>
    <!-- ... -->
    <script type="module"
<EMAIL_ADDRESS>    </script>
</head>

Or, if you'd rather not use CND you can import model-viewer before zone.js in polyfill.ts:
import<EMAIL_ADDRESS>import 'zone.js/dist/zone';  // Included with Angular CLI.


Support Master Password authentication via env variable

When spawning dcli in Node it's impossible to get past master password prompt as stdin doesn't works, this fixes it by checking if DASHLANE_MASTER_PASSWORD is set when spawning the process.

Hello,
Thanks for opening this PR. While I understand the need, I'm a bit concerned about having the master password as an env variable.
I have also added comments on your Raycast PR, that I'd like to answer first.

The context is short lived and destroyed immediately in my use case as you’ve already seem it in the linked Raycast PR.

@Mikescops
Would it possible to get a patch release?

Would it be possible to get a patch release?

I plan to release on Friday, we have a couple of changes pending this week.


BUG: dead lock in transfer actor in the case of GPU

What do these changes do?
The current implementation of the transfer function leads to a deadlock when executing Xorbits on multiple GPUs. The issue arises from the StorageHandlerActor.fetch_batch function, which invokes SenderManagerActor.send_batch_data and subsequently calls StorageHandlerActor.request_quota_with_spill. Due to the locking mechanism within the StorageHandlerActor method call, a deadlock arises.
UPDATE:

fix dead lock on GPU
fix GPU buffer size 0 issue
known issue: when ucx is enabled, performance is not improved on multi GPUs.
known issue: too many actor calls in this implement. May lead to performance down.

Related issue number

Check code requirements

[x] tests added / passed (if needed)
[x] Ensure all linting tests pass

Fix by https://github.com/xorbitsai/xorbits/pull/788


Improve README Documentation

Issue: Improve README Documentation on K-Means Implementation
Description:
The current README lacks detailed information on how the K-Means clustering algorithm is implemented from scratch. This issue is created to enhance the README by providing a comprehensive explanation of the implementation process, including the formulas and equations used.
Implementation Details:
To improve the README, we should include the following information:

Introduction to K-Means: Provide a brief introduction to K-Means clustering, explaining its purpose and how it works.

Algorithm Implementation: Describe the step-by-step process of implementing K-Means from scratch. This should include:

Initialization: Explain how initial cluster centroids are selected.
Assignment: Describe how data points are assigned to clusters based on centroid proximity.
Update: Explain how cluster centroids are updated based on the assigned data points.
Convergence: Describe the stopping criteria for the algorithm.

Formulas and Equations: Include the mathematical formulas used in the algorithm. Please format these equations in Markdown to ensure readability. Here are the equations we need:

Euclidean Distance: The formula to calculate the Euclidean distance between two points.
Euclidean Distance (d) = √((x2 - x1)^2 + (y2 - y1)^2)

Centroid Update: The formula to update the centroid of a cluster.
New Centroid (C_new) = (1 / n) * Σ(All Points in Cluster)

Code Examples: Include code snippets or pseudocode to illustrate how the algorithm is implemented in code.

Additional Notes:

Please ensure that the equations and code examples are well-documented and easy to understand.
Use clear and concise language to make the README accessible to developers of all levels.
Consider including visualizations or diagrams to aid in understanding the algorithm.

Your contributions to improving the README will greatly benefit the project and help users understand the implementation of the K-Means clustering algorithm from scratch. Thank you for your help!

Hi there, I will love 2 work on this, pls assign me to it.
thx

hey i was working on this and ran into some issues, can u pls clarify them for me:

if we open the html file, after choosing the image and k, the program gives the file not found error.

if we run the app.py file, after the start of debugger starting, nothing happens

The app.py is still under development. Subsequent changes will be implemented soon. For any preliminary tests, please run test_app.py to get understanding about the project.


feat: form page / webview component for bootc

feat: form page / webview component for bootc
What does this PR do?
Our first ever form page!
This is a massive PR / "initiliazation" PR to get our form page started.
It includes some basic features and a working, functional form page
that:

Checks what images are available / listed and filters out non-bootc
ones
Submit it and have it running in the background

There are also some significant architectural changes:

Shared / frontend / backend folders that demonstrate each section of
the extension, in order to do cross-communication between the webview
and backend
Refactoring of the "quickpick" so it is now separate from the other
functionalities of the extension and is still useable. It is now in a
separate function that just gets the users input from quickpick

To note:

There may be some validation that is still needed / to test / try to
"break" the form

Screenshot / video of UI

https://github.com/containers/podman-desktop-extension-bootc/assets/6422176/595b881c-0d11-4f01-a0ae-4dc76470b6a3
What issues does this PR fix or reference?

Closes https://github.com/containers/podman-desktop-extension-bootc/issues/141
How to test this PR?

yarn watch or yarn build in the extension folder
You MAY have to do yarn install or yarn in both the root folder,
and packages/frontend and packages/backend for it to work
correctly.
Go to the LATEST changes on the main branch of podman desktop, and
run yarn watch --extension-folder ../bootc/packages/backend

Signed-off-by: Charlie Drage<EMAIL_ADDRESS>

Some other notes which are covered in different issues:

https://github.com/containers/podman-desktop-extension-bootc/issues/154
https://github.com/containers/podman-desktop-extension-bootc/issues/155
https://github.com/containers/podman-desktop-extension-bootc/issues/156

hello, to avoid the This is a massive PR / "initiliazation" PR
could you do iterative stuff
for example, move the current code to a backend package (no code change except the move to a subfolder)
then you can introduce frontend module (can be empty and not used)
etc
so lot of stuff could already be merged

Will do! This is just a draft / WIP to show progress.

yes but usually when you'll reach the end of the draft it will result in a PR being too big
so you should start to issue small chunks as soon as possible.
new directories, new dependencies, etc, all of that could already be started to be integrated without breaking the current behaviour

Will do! This is just a draft / WIP to show progress.

yes but usually when you'll reach the end of the draft it will result in a PR being too big
so you should start to issue small chunks as soon as possible.
new directories, new dependencies, etc, all of that could already be started to be integrated without breaking the current behaviour

I understand, this is just a WIP / draft with all the code and intended changes for demo purposes.
This will be pushed in multiple other PRs in the future.

I am closing this PR for now @feloy so that this does not cluster up the PR list.
Expect some smaller PR's next week 👍


fastlane tag_version failed in App Center Build

Related logs as below:
[10:04:20]: ▸ [35mfatal: could not read Password for<EMAIL_ADDRESS>Device not configured[0m
+----------------------+---------------------+
|                [33mLane Context[0m                |
+----------------------+---------------------+
| DEFAULT_PLATFORM     | android             |
| PLATFORM_NAME        | android             |
| LANE_NAME            | android tag_version |
| ANDROID_VERSION_NAME | 1.0.1               |
| ANDROID_VERSION_CODE | 2                   |
+----------------------+---------------------+

As far as I understand you ran a build through App center and you got this issue. I can suggest you to look at the guide here newly edited to check if you didn't forget anything in your environnement variables.

@jeremybarbet, thanks for your concern, the problem arise when fasltlane tries to interact with the remote git repo, but fails as no git credential configured in the building server.
According to the Docs, seams no git credential exists in the ENV.

P.S. I'm using Azure DevOps to host the git repo, if that could be the cause of the problem?

That could be the case. I haven't tried any other repository providers than GitHub.
Try raising an issue with AppCenter and see what they say. There is a trick to make this work with an ash-agent though (logging in to github as anyone you like), we had this for v1:

https://github.com/ueno-llc/react-native-starter/blob/ed361e77e8b9d45f1fb0bbff8612b61aa5f7d6c1/.travis/build.sh#L9-21

Thanks for the suggestion, I'll give it a try.

I close this issue, feel free to reopen it if needed!