Performance Regression with ColorFiltered on Flutter 3.24.0

Steps to reproduce

Create a new Flutter project.

Run the attached code on Flutter 3.24.0.

Tap on the red square within the app to trigger an animation:

This will rotate the square while applying a ColorFiltered widget.

Monitor performance using Flutter's DevTools:

Open the performance tab and observe the frame times and any jank indicators during the animation.

Compare with Flutter 3.22.3:

Switch to Flutter 3.22.3.
Run the same project and repeat the steps above.

Observe the differences in performance, particularly noting any jank or frame drops in the 3.24.0 version.

Expected results
The animation involving the ColorFiltered widget should run smoothly without any noticeable jank or performance degradation in Flutter 3.24.0, just as it does in Flutter 3.22.3. The performance tab in Flutter's DevTools should not show any red jank frames, indicating that the frames are being rendered efficiently, regardless of the Flutter version.
Actual results
In Flutter 3.24.0, the animation involving the ColorFiltered widget causes significant jank, which is reflected in the performance tab of Flutter's DevTools as red jank frames. This issue is not present in Flutter 3.22.3, where the same code runs smoothly without any performance problems. The regression appears to be specific to version 3.24.0, suggesting a potential issue with how ColorFiltered is being handled in this version.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatefulWidget {
  const MainApp({super.key});

  @override
  State<MainApp> createState() => _MainAppState();
}

class _MainAppState extends State<MainApp> {
  double turns = 0.0;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: GestureDetector(
        onTap: () {
          setState(() {
            turns = 1.0;
          });
        },
        child: AnimatedRotation(
          turns: turns,
          duration: const Duration(seconds: 4),
          child: ColorFiltered(
            colorFilter: const ColorFilter.mode(Colors.grey, BlendMode.modulate),
            child: Container(
              width: 400,
              height: 400,
              color: Colors.red,
            ),
          ),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Results of Running with Profile Mode on Android Emulator

Flutter Version
With ColorFiltered
Without ColorFiltered

3.22.3

3.24.0

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.0, on macOS 14.5 23F79 darwin-arm64, locale
    en-SA)
    • Flutter version 3.24.0 on channel stable at
      /Users/Hadi/fvm/versions/3.24.0
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 80c2e84975 (13 days ago), 2024-07-30 23:06:49 +0700
    • Engine revision b8800d88be
    • Dart version 3.5.0
    • DevTools version 2.37.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/Hadi/Library/Android/Sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/Hadi/Library/Android/Sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

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

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

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

[✓] VS Code (version 1.86.2)
    • VS Code at /Users/Hadi/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.94.0

[✓] Connected device (4 available)
    • Android SDK built for arm64 (mobile) • emulator-5554             •
      android-arm64  • Android 14 (API 34) (emulator)
    • macOS (desktop)                      • macos                     •
      darwin-arm64   • macOS 14.5 23F79 darwin-arm64
    • Mac Designed for iPad (desktop)      • mac-designed-for-ipad     • darwin
      • macOS 14.5 23F79 darwin-arm64
    • Chrome (web)                         • chrome                    •
      web-javascript • Google Chrome 127.0.6533.99

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

• No issues found!

Does this only reproduce on an Android emulator?

@hadysata Could you confirm this on an Android physical device to see if it's different? I checked this on my device Pixel 7, Android 14 (physical device), but I saw the opposite result:

3.24.0
3.22.3

On 3.24.0, I saw there are some rasters and no jank. On 3.22.3, some janks appear.


fix: allow null comparator in adhocfilter

SUMMARY
This pr fixes an issue where in the adhocfilter control null value is not allowed causing the user not able to save.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
after
https://user-images.githubusercontent.com/17326228/135650934-b404b80d-1a69-4375-8946-ab2071df9820.mov
TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[x ] Has associated issue: Fixes https://github.com/apache/superset/issues/16803
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up


Impl Send for Symbolizer?

In some contexts it would be great to have Symbolizer (and, perhaps slightly less importantly, Inspector and Normalizer) be Send. I prototyped that here https://github.com/d-e-s-o/blazesym/compare/main..topic/symbolizer-send but it requires usage of a bunch of more heavy weight synchronization primitives. It's an open question whether we want to pay that price.

I think one thing we could do to eliminate the need for some of those synchronization primitives would be to make the caching we do explicit in method signatures. That is, symbolize(&self, [...]) -> symbolize(&mut self, [...]). Not sure what negative  trickle down effects that would have on clients.


macro: pass positional arguments to script

fix #271

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 40.904%

Totals

Change from base Build<PHONE_NUMBER>:
0.07%

Covered Lines:
371

Relevant Lines:
907

💛  - Coveralls


Lung Cancer Detection Using Convolutional Neural Network:

Detection of Lung cancer utilizing Convolutional Neural Networks (CNN) with strategically designed convolutional layers, max pooling layers ,dense Layer and fully connected layers in Deep Learning.
I agree to follow this project's Code of Conduct
I'm a GSSoC'24 contributor
I want to work on this issue

Make sure you create seperate folder and add the same

Hello @sanjay-kv , please assign this issue to me as I have already worked on this kind of problem in the past.


jit(arm64): support for clz, ctz, popcnt, div, rem

totally in wip

ok done with div, the left is rem

ok done... completed it 10x faster than amd64 😄

Thanks for the look!


Example: video classification - broken link to the dataset

The link to the dataset doesn't work anymore: https://keras.io/examples/vision/video_classification/ (code: https://github.com/keras-team/keras-io/blob/master/examples/vision/video_classification.py).
I contacted the author, we will see what can be done about that.

Sayak Paul replied to my e-mail:

Sayak Paul
Apr 27, 2023, 4:37 AM (1 day ago)
to me
Does this one help?
https://huggingface.co/datasets/sayakpaul/ucf101-subset/resolve/main/UCF101_subset.tar.gz
Sayak Paul | sayak.dev
Mikołaj Buchwald
1:06 PM (0 minutes ago)
to Sayak
Thank you for the link! The CSVs with sample names / paths ("train.csv", "test.csv") are missing from the untarred directory, but I keep looking in various links from the dataset page: https://www.crcv.ucf.edu/data/UCF101.php
Best regards,
Mikolaj

As I wrote back, I keep looking for the correct link with the full dataset, or with the subset, that will match the example.

I can see now also the subsampling notebook (https://colab.research.google.com/github/sayakpaul/Action-Recognition-in-TensorFlow/blob/main/Data_Preparation_UCF101.ipynb). I should be able to run these examples

Ok, I was able to run the example.
In order to fix the notebook example in the docs:

Upload the new/proper dataset somewhere, to be able to download it with wget
Create a pull request with updated links, and some additional changes that will make the example more clear, and compatible with newer versions of the modules

Ok, I was able to run the example.
In order to fix the notebook example in the docs:

Upload the new/proper dataset somewhere, to be able to download it with wget
Create a pull request with updated links, and some additional changes that will make the example more clear, and compatible with newer versions of the modules

@sayakpaul ,
The link !wget -q https://git.io/JGc31  seems not working as per gist . Could you please check the broken link and update it or create a pull request for updating. Please let me know if any help required from my side.
Thanks!

@sayakpaul ,
The link !wget -q https://git.io/JGc31  seems not working as per gist . Could you please check the broken link and update it or create a pull request for updating. Please let me know if any help required from my side.
Thanks!

@SuryanarayanaY , we have a whole PR on that, please revise: https://github.com/keras-team/keras-io/pull/1348 :)


license issue

i think the license for ashlar needs to be more permissive. Perhaps
https://creativecommons.org/licenses/by/4.0/
?

Yes. I also think that's the license of choice. Already update the license page. See here
http://jhsiao999.github.io/ashlar/analysis/license.html.


cli veramo execute ... fails with Maximum call stack size exceeded

Bug severity
4
Describe the bug
veramo execute -m resolveDid ...

Results in:
Maximum call stack size exceeded

I'm fairly confident my usage is correct due to:
https://github.com/decentralized-identity/veramo/issues/681
and this code:
did
  .command('resolve <didUrl>')
  .description('Resolve DID Document')
  .action(async (didUrl: string, opts: {}, cmd: Command) => {
    const agent = await getAgent(cmd.optsWithGlobals().config)
    try {
      const ddo = await agent.resolveDid({ didUrl })  // <<----- Usage here.
      console.log(JSON.stringify(ddo, null, 2))
    } catch (e: any) {
      console.error(e.message)
    }
  })

To Reproduce
Steps to reproduce the behaviour:

Add ens did-method to agent.yml:

      ens:
        $ref: /universal-resolver

Calling:
veramo execute -m resolveDid -a '{"didUrl": "did:ens:vitalik.eth"}'

Fails.
Observed behaviour
Maximum call stack size exceeded
Expected behaviour
DID resolution. The same as the result of:
veramo did resolve did:ens:vitalik.eth

Which works fine.
Details

Versions:

Veramo: 5.4.1
Browser: N/A
Node Version: v18.12.1

Try directly with next branch and leveraging --stack-size:
node --stack-size=8000 ./packages/cli/bin/veramo.js execute -m packDIDCommMessage -a '{"packing":"anoncrypt","message":{"to":"did:key:z6MktEQbgrewCxg3bXkdKAqHJXSEMJVcxUhcEvkWVqyBpzYn", "body":{"hello":"world"}}}'

Still results in the same error. --stack-size=9000 results in a segfault on my machine.

This is a result of the following line in packages/cli/src/execute.ts
      const { openapi } = await OasResolver.resolve(agent.getSchema(), null, { resolveInternal: true })

The OasResolver.resolve does use a recursive method to traverse the schema, so the error makes sense. However, there is no mention of Maximum call stack size exceeded in the issues of the github repository for oas-resolver.
My working theory at this stage is that there is a cycle in the schema that the OpenApi Schema resolver (oas-resolver) cannot handle.

I have gotten veramo execute working, but it required modification of oas-resolver code.
The following works:
node ./packages/cli/bin/veramo.js execute -m resolveDid -a '{"didUrl": "did:ens:vitalik.eth"}'

If this change is made to oas-resolver:
diff --git a/packages/oas-resolver/index.js b/packages/oas-resolver/index.js
index ab2ce37..655d505 100644
--- a/packages/oas-resolver/index.js
+++ b/packages/oas-resolver/index.js
@@ -118,6 +118,7 @@ function resolveAllFragment(obj, context, src, parentPath, base, options) {
     recurse(obj,{},function(obj,key,state){
         if (isRef(obj, key)) {
             if (typeof obj.$fixed !== 'undefined') delete obj.$fixed;
+            if (!options.preserveMiro) delete obj['x-miro'];
         }
     });

@@ -466,11 +467,11 @@ function loopReferences(options, res, rej) {
                                 options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});
                                 if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);
                             }
-                            recurse(options.openapi,{},function(obj,key,state){
-                                if (isRef(obj, key)) {
-                                    if (!options.preserveMiro) delete obj['x-miro'];
-                                }
-                            });
                             res(options);
                         }
                     }

Which is undoing commit: aabd716b42ebac8b75135db8575725ee66867850 made on Mon Feb 18 16:59:59 2019 +0000.
I have no idea why, after many other calls to recurse on options.openapi work fine in the process of completing loopReference(...), that this one fails for the veramo schema, but it does.
I cloned oas-kit locally, modified oas-resolver, and then made it a local dependency in the main package.json and the cli/package.json.
    "oas-resolver": "file:../oas-kit/packages/oas-resolver",

The above commit is necessary to solve another issue. However, I found a simpler solution that just changes a single line, and have made a pull request against the oas-resolver repository.
diff --git a/packages/oas-resolver/index.js b/packages/oas-resolver/index.js
index ab2ce37..cb00516 100644
--- a/packages/oas-resolver/index.js
+++ b/packages/oas-resolver/index.js
@@ -466,7 +466,7 @@ function loopReferences(options, res, rej) {
                                 options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});
                                 if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);
                             }
-                            recurse(options.openapi,{},function(obj,key,state){
+                            recurse(options.openapi,{identityDetection:true},function(obj,key,state){
                                 if (isRef(obj, key)) {
                                     if (!options.preserveMiro) delete obj['x-miro'];
                                 }

The above commit is necessary to solve another issue. However, I found a simpler solution that just changes a single line, and have made a pull request against the oas-resolver repository.
diff --git a/packages/oas-resolver/index.js b/packages/oas-resolver/index.js
index ab2ce37..cb00516 100644
--- a/packages/oas-resolver/index.js
+++ b/packages/oas-resolver/index.js
@@ -466,7 +466,7 @@ function loopReferences(options, res, rej) {
                                 options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});
                                 if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);
                             }
-                            recurse(options.openapi,{},function(obj,key,state){
+                            recurse(options.openapi,{identityDetection:true},function(obj,key,state){
                                 if (isRef(obj, key)) {
                                     if (!options.preserveMiro) delete obj['x-miro'];
                                 }

I also checked it locally - works for me. Could we force somehow that fix?
And thanks for making such research and fix :)

As a temporary measure, you can:

git clone git@github.com:Mermade/oas-kit.git
navigate to the packages/oas-resolver directory
copy the above diff into a file called fix.patch
apply the patch with git apply fix.patch
navigate to veramo repository, then packages/cli directory
pnpm link <relative or absolute path to oas-resolver dir>

You're done.
You could also use (from packages/oas-resolver):
4. ...
5. pnpm link --global       # creates a global anchor for oas-resolver to this directory.
6. navigate to veramo repository, then packages/cli directory
7. pnpm link --global oas-resolver
But frankly, the first one is less work. You can verify that the node_modules in packages/cli is pointing to the right place with:
8. ls -al node_modules/oas*

[!Note]
should show a relative path with .../.local/share/pnpm/....

Wow, amazing investigation and kudos for finding a fix.
Too bad the fix is not in Veramo directly and we have to wait for an update to oas-resolver.
As you probably already figured, this is not related to the particular plugin method being executed but rather with the parsing of the schema generated by the plugins, and I suspect it might have something in common with #1235

@mirceanis Yes, unfortunately we are relying on the maintainers of oas-kit for the resolution of this issue, and there haven't been any PRs merged on that repo since mid 2021.
At present, I see three approaches:

Wait and hope.
decentralized-idenity to fork oas-kit, apply the fix, and use as a sub module.
Pull the relevant code from oas-resolver (small footprint), retaining license notices, and integrate it directly into Veramo.
Find a more active project that offers the same utility. I gave swagger-parser a brief try, but it wasn't a drop in replacement.

I just tried downgrading oas-resolver to 1.1.1 and it seems to fix the issue.
However, it doesn't work any more for the functionality it was added for in the first place: to help users discover and use the agent API interactively.
Thinking about it a bit more, the execute command of the CLI tool is meant as a shortcut to be able to call any available agent method even when it wasn't programmed as a CLI command.
This would be usable for scripting, or calling the local agent from another tech stack, in which case the interactive part doesn't make much sense any more.
I'm leaning toward removing the interactivity from the execute command, along with oas-resolver.
Any thoughts?

I guess the question is whether it's bloatware or not.

On the other hand, this is a plugin driven ecosystem and this feature allows plugin creators to manually investigate the operation of their plugin without the overhead of grokking and implementing the CLI themselves.
FWIW I would vote for retention, after working on the coordinate-mediation v3.


Event filtering for multiple db's and rows

How to set include-event-condition for multiple databases and tables ?

The value of include-event-condition is a string that contains valid Scala code. You can use ANDs (&&) and ORs (||), or you can even use regexes. Keep in mind that these checks will run for every incoming event.

thanks for ur reply,I tweaked ur code little bit so that I'm passing a list of db_table names in config file.In code,for every event i'm checking where the list contains that event or not.
Few more changes that i added to the fork of mypipe:
1)added avroGen:avro schema generator from metadata.
2)custom BinLogPosition through application.conf file.(by setting this to start binlog position ,I can consume all the binlogs available in a mysql db)
3)added KafkaJsonProducer,stdoutJsonProducer
4)added kafkaAvroproducer for confluent platform,so that in combination with avroGen,we can produce avro messages for kafka and register schemas in schemaRepository.
5)planning to add producers for aws S3 and Redshift.
I didn't push those changes yet,will push them once I'm done with writing tests.

The list of changes looks good (= Once you're done with tests please make sure the changes are well documented and split out into separate branches as much as possible. When it comes time to review your code I'd much rather be able to work with smaller chunks that can be modified (if needed) and merged in separately.
Thanks again for the effort! We all really appreciate your putting in time and energy into mypipe (=


use caasp_fqdn instead of unreliable fqdn (bsc#1045841)

trying to fix https://bugzilla.suse.com/show_bug.cgi?id=1045841 but i haven't tested it yet
it looks like it could be a missing bit and a follow up of https://github.com/kubic-project/salt/pull/93

Since this property is for making nodes easily recognizable I wouldn't go this way, because using fqdn looks to me more natural than our internal caasp_fqdn.
To avoid issues when a hostname/fqdn of a machine changes we should keep this attributes up to date with a cronjob or something similar that updates all nodes fqdn attribute on a timely basis.

Since this property is for making nodes easily recognizable I wouldn't go this way, because using fqdn looks to me more natural than our internal caasp_fqdn.

thanks for the input, closing


Fix broken localtests

We've had a number of ignored test failures for a while now. They're all
in the localtests, which we don't run in CI, so we've been ignoring
them. Plus, I thought that they were due to some test failure in the way
they were authored, so we just let them be.
Turns out, most of them worked just fine. Many were probably just
temporary test failures that got fixed with subsequent PRs.
The only one that's truly tricky here is the TryCreateTab test
removal. From what I can tell, that test would create a Tab, but not
attach the TabViewItem to the XAML tree at all. But then after the
test was cleaned up, the tab's _UpdateTitle coroutine would resume,
and it would try to get the Tab from the weak_this. That weak
pointer would now be pointing at random memory, and the get_strong
would crash. However, the test runner would already be in the middle
of some other test, so it would cause a failure in a random test, not
the TryCreateTab test.
So I'm just getting rid of it entirely. The TryInitializePage test is
more comprehensive and does work, so we'll just use that (and
derivatives) to test the creation of tabs.

[x] Closes #5169
[x] Closes #6949
[x] Closes #7281
[ ] Might conflict with #6992

@msftbot wait like 5 minutes before merging


Failing version<EMAIL_ADDRESS>for framework github_actions

Framework github_actions started to fail in version v12.1886.0 (version v12.1885.0 works fine).
Run<EMAIL_ADDRESS>  with:
    directory: .github/workflows
    quiet: true
    framework: github_actions
    skip_check: CKV_GHA_7
    output_format: sarif
    log_level: WARNING
    container_user: 0
  env:
    CHECKOV_RESULTS:
         _               _
     ___| |__   ___  ___| | _______   __
    / __| '_ \ / _ \/ __| |/ / _ \ \ / /
   | (__| | | |  __/ (__|   < (_) \ V /
    \___|_| |_|\___|\___|_|\_\___/ \_/

  By bridgecrew.io | version: 2.2.95
  dockerfile scan results:

  Passed checks: 47, Failed checks: 0, Skipped checks: 1

Fails with the falling call stack:
running checkov on directory: .github/workflows
checkov -d .github/workflows  --skip-check CKV_GHA_7  --quiet   --output sarif        --framework github_actions
Traceback (most recent call last):
  File "/usr/local/bin/checkov", line 9, in <module>
    sys.exit(run())
  File "/usr/local/lib/python3.8/site-packages/checkov/main.py", line 3[40](https://github.com/axteams-vms/cloud-storage/actions/runs/3549000828/jobs/5960853416#step:7:41), in run
    scan_reports = runner_registry.run(root_folder=root_folder, external_checks_dir=external_checks_dir,
  File "/usr/local/lib/python3.8/site-packages/checkov/common/runners/runner_registry.py", line 80, in run
    self.runners[0].run(root_folder, external_checks_dir=external_checks_dir, files=files,
  File "/usr/local/lib/python3.8/site-packages/checkov/github_actions/runner.py", line 109, in run
    report = super().run(root_folder=root_folder, external_checks_dir=external_checks_dir,
  File "/usr/local/lib/python3.8/site-packages/checkov/common/runners/object_runner.py", line 1[45](https://github.com/axteams-vms/cloud-storage/actions/runs/3549000828/jobs/5960853416#step:7:46), in run
    self.add_python_check_results(
  File "/usr/local/lib/python3.8/site-packages/checkov/common/runners/object_runner.py", line 190, in add_python_check_results
    resource=self.get_resource(file_path, key, check.supported_entities, start, end),  # type:ignore[arg-type]  # key is str not BaseCheck
  File "/usr/local/lib/python3.8/site-packages/checkov/github_actions/runner.py", line 96, in get_resource
    step_name = resolve_step_name(definition['jobs'][job_name], start_line, end_line)
KeyError: ''

hey @magnus-fors thanks for reaching out. Is it possible to share the workflow file, which results in this exception? I have a hard to time to reproduce it 😓


[json] Outline Failed to Display Complete Items of a Long/Big JSON File

Issue Type: Bug
As the json file size growing, the outline view does not behave normally.
VS Code version: Code 1.40.2 (f359dd69833dd8800b54d458f6d37ab7c78df520, 2019-11-25T14:54:45.096Z)
OS version: Windows_NT x64 10.0.17763
dump.zip
Extensions (12)

Extension
Author (truncated)
Version

al-code-outline
and
1.0.21

json-tree-view
Cha
2.6.0

vbscript
Dar
1.0.4

vscode-eslint
dba
1.9.1

vscode-highlight
fab
1.3.4

restructuredtext
lex
116.0.0

vscode-language-pack-zh-hans
MS-
1.40.2

python
ms-
2019.11.50794

vscode-table-formatter
shu
1.2.1

code-spell-checker
str
1.7.20

open-in-browser
tec
2.0.0

crs-al-language-extension
wal
1.1.21

There's a limit of 500 symbols we show. It seems the JSON language server hits the limit but doesn't send any results for that example.

Fixed by https://github.com/microsoft/vscode-json-languageservice/commit/7e006ef38993fb332f0916020cfc9c896e1f77bf
Also there's now a setting json.maxItemsComputed to configure the limit.


stream settings: Show stream activity on subscriptions page.

The analytics system keeps track of the number of messages sent to each stream each day. It would be great to pass this information up to the frontend, since it is useful information for a new user trying to make sense of an organization's streams.
In particular, lets pass up the number of messages sent in the last week, for each stream.
Notes:

The counts live in the StreamCount table in analytics/models.py. You'll want the 'messages_in_stream:is_bot:day' CountStat. See http://zulip.readthedocs.io/en/latest/analytics.html for info on how the Analytics backend works.
You'll want to pass this data up to the frontend via page_params, and then update it once a day. grepping for subscribers_count might provide some inspiration (though I haven't looked at that code too carefully).
If a stream is less than 1 week old, the count can just be "new".
Larger realms have 100s of streams, so you'll want to get information for all the streams simultaneously in one ORM query. https://docs.djangoproject.com/en/1.10/topics/db/aggregation/ might be helpful.

@PhoeniXkrypT -- you might want to claim this!

@zulipbot claim

@rishig What kind of visualisation would you prefer for the 'messges_in_stream' count - bar chart, pie graph ?

I have an initial(incomplete) patch here (https://gist.github.com/PhoeniXkrypT/bd9f21db96acec199d6dcde79d81ba0e) that implements gathering StreamCount info from the backend and showing it on the subscriptions page.
When looking at the StreamCount table, there does not seem to be any test data. Inside analytics/management/commands/populate_analytics_db.py, there is a comment "# TODO: messages_sent_to_stream:is_bot". Should I fill this in as well?
Also, when looking at FillState.objects.all() in django shell, there does not seem to be an entry for "messages_in_stream:is_bot:day".

TODO: messages_sent_to_stream:is_bot". Should I fill this in as well?

That would be great :). (And as you noted, this is now called messages_in_stream:is_bot:day)

Also, when looking at FillState.objects.all() in django shell, there does not seem to be an entry for "messages_in_stream:is_bot:day".

yeah, that is a symptom of it not being in populate_analytics_db.py.

@PhoeniXkrypT I don't know what happened here, but I reassigned you.

@lonerz Thanks!

cool! What do you think of showing only 2 significant figures, and also putting it in line with the person icon? So:
12000 [icon for messages]     1 [icon for person]
we'll have to find a good icon for "# messages sent last week". Any ideas from http://fontawesome.io/icons/?
Also might be a great thing to post in #design, to see what people think.
Thanks Archana for working on this!

Nice, yes when the number of messages is large, it might clutter the page if whole number is displayed. By 2 significant digits, do you mean like '12k' instead of '12000' or just display the 2 significant digits?
I was also thinking about an icon instead of 'msgs'. Thanks for the link!

yeah, 12K instead of 12000 definitely looks better. Though I suspect few streams have more than a few thousand messages per week, so may not be worth the extra complexity (both for us and for the user).
One thing that might be nice is actually doing something like 1.5 sig figs. i.e. showing a second digit only if the first digit is 1 or 2.

Which would be more useful -- the average traffic in last 4 weeks or the number of messages in last week?

Average traffic, I think. That way things like holidays have less of an effect.

Agreed, average traffic is best.

@zulipbot claim

I think most of this issue is resolved except for the last thing i.e. to get all the streams simultaneously in one ORM query. If so, then I would like to take it up. If that is also done, we can close this ticket. @rishig

Yeah, the current state of this is that the backend work is all done, but https://github.com/zulip/zulip/pull/7464 isn't merged yet, because we're not sure what it should look like visually.  It's possible we should just merge the current version of that, but if you have ideas for how to make it look visually cleaner, that'd be a great thing to work on.

I just merged f876fd14233c27561fd9f0f0493e37af9aaab7fd, which implements this; I'm going to open some high-priority follow-ups for it, though.  One is https://github.com/zulip/zulip/issues/8659 for adding sorting; another is https://github.com/zulip/zulip/issues/8660.
I think another possibly follow-up would be to have a way to query our analytics database to get a graph of the stream's activity over time (sorta similar to the ones on /activity), but that's a project I'm hesitant to encourage, because it would be a good amount of work that might not be super easy to review.


avatar minimum size

Location
resize avatar
Expected behavior
i cannot make the avatar smaller than the croppable area
Actual behavior
i can make the avatar smaller than the croppable area
Steps to reproduce the problem
upload avatar, resize
Operating system / hardware
all

chekc


const BindingFlags declaration cause System.Reflection.TargetInvocationException

when I use BindingFlags declaration as below
const BindingFlags BindingFlags = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static;
foreach (FieldInfo field in checkedType.GetFields(BindingFlags))
{
    #if DNX451
        // do something!
    #endif
    #if DNXCORE50
        // do something!
    #endif
}

getting runtime error:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileLoadException: Could not load file or assembly 'Sample.Common, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500) ---> System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: path\foo\Providers\SampleProvider.cs(71,30): DNXCore,Version=v5.0 warning CS0168: The variable 'ex' is declared but never used
error CS7038: Failed to emit module 'Sample.Common'.

when I change it like that:
foreach (FieldInfo field in checkedType.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static))
{
    #if DNX451
        // do something!
    #endif
    #if DNXCORE50
        // do something!
    #endif
}

its working!

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.


Reading Xfit dipole file

@Eric89GXL attaching xfit .fif in compressed file containing single ecd waveform and goodness of fit time series. You can also find [here] (https://www.dropbox.com/s/lurthfo1hy9tzvg/fam_115_LH.fif?dl=0) if attachment doesn't work.
fam_115_LH.zip
Like I said read_meas_info(fid, tree, clean_bads=True) seems to get at meas but not info b/c there is no isotrak, unable to make much sense out of the TAG structure. Although, 't = mne.io.tag.read_tag(fid, pos=3, shape=204)' implies some hope....

File "/home/ktavabi/Projects/mne-python/mne/io/tag.py", line 501, in read_tag
tag.data = _read_matrix(fid, tag, shape, rlims, matrix_coding)
File "/home/ktavabi/Projects/mne-python/mne/io/tag.py", line 237, in _read_matrix
raise ValueError('Row reading not implemented for matrices '
ValueError: Row reading not implemented for matrices yet

@kambysese okay with you if I add this to the mne-testing-data repo publically available?

@kambysese okay with you if I add this > to the mne-testing-data repo
publically > available?

Fine by me.

Great, thanks. PR made: #2935

Whoops I mean #2942


Improve logging configuration for integration tests

When an integration test fails we usually just get the last error, for example, consider this:
https://source.cloud.google.com/results/invocations/210ad400-3d02-47a9-9c6e-f108660c039a/targets/cloud-cpp%2Fspanner%2Fdocker%2Fmsan-presubmit/log
the only error message reads:
[ RUN      ] DatabaseAdminClient.DatabaseBasicCRUD
google/cloud/spanner/integration_tests/database_admin_integration_test.cc:134: Failure
Value of: metadata
Expected: is OK
Actual: Duplicate name in schema: Singers. [FAILED_PRECONDITION]
[  FAILED  ] DatabaseAdminClient.DatabaseBasicCRUD (67083 ms)

that is not enough to diagnose the problem, we have no idea if the test had to retry requests, what was the name of the project, instance, or database where this fails, or anything else.
I think we can do better, for example:

We could enable full tracing for all the integration tests, just set GOOGLE_CLOUD_CPP_ENABLE_TRACING=cpp and GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes in the environment.  This will produce a lot of output, but would be mostly hidden.
We could also implement a fancy logger that preserves the last N messages, and logs them only if one of them is an error or when a test assertion fails.

See also: googleapis/google-cloud-cpp-spanner#679

FWIW, it seems this just repeated:
Running spanner_create_storing_index sample
Duplicate name in schema: AlbumsByAlbumTitle2.
================================================================================

[snip ... snip ... snip ...]

//google/cloud/spanner/integration_tests:session_pool_integration_test   PASSED in 31.5s
//google/cloud/spanner/samples:samples                                   FAILED in 51.5s
  /h/.cache/bazel/_bazel_kbuilder/a7ecd8237744645c5d189c197108d6d2/execroot/com_github_googleapis_google_cloud_cpp/bazel-out/k8-fastbuild/testlogs/google/cloud/spanner/samples/samples/test.log

https://source.cloud.google.com/results/invocations/a27264ec-f166-42d7-8db2-e3cbab0815c2

note that was in a sample rather than an integration test.
I filed #4758 so we have a separate issue for the flake itself independent of "improve logging"

Option 1, "enable full tracing for all the integration tests", proved infeasible ... too much output.  See #5626, #5627, and #5636.
Option 2, "implement a fancy logger that preserves the last N messages" is already covered in #662, so I'll leave this issue closed.


Add "Favorite Starring"? Long press image to save? Share button?

Feedback from the review meeting, they wanted "something" for "saving", but it seemed like there were a few separate requirements thrown around in the suggestion.

Add "Share" button for individual mail piece from the Mail View?

Save to photos? Would only include image.
Email? Would include image and OCR text.
Text? Would include image and OCR text.

Add ability to "Favorite/Star" an individual mail piece from the Mail View?
Add search filter for starred mail pieces?
Add ability to long-press an image to get options?

Share?
Save to Photos?
Copy?

Recommendation from the team is that anything except for maybe saving (long press?) is probably more involved than recommended to only have a few days for development.

Too large of a change at this point, marking as won't implement


Add sbt support

Support for Intellij Scala plugin 2018 and 2019

I have tested it on a personal projects 😃
Scala Intellij Plugin has change  a lot since 2019 version so it possible won't work on next releases.

Thanks for the contribution!


t.same masks RangeError that is thrown when testing objects with circular references.

I'm not sure how far this goes outside of context, but this is what I experienced with my project...  When you create a constructor object in JavaScript and give it a circular property, AVA fails where it normally wouldn't...  Take this example for instance:
// Example of a object that has a circular property.
let Example = function(){
  this.test = this;
};

test('circular testing', ({same}) => {

  let foo = new Example();
  let bar = new Example();

  same(foo, bar);

});

  1. circular testing
  AssertionError: Example { test: [Circular] } === Example { test: [Circular] }

That assertion will fail with just about any assertion library.  Using assert.deepStrictEqual (on which same is based).
  1 test failed

  1. circular testing
  RangeError: Maximum call stack size exceeded

So, this is not a problem with our assertion per se, but that we are masking the true source of the error. I am pretty sure that this is actually related to power-assert.
@twada - how should we handle this? A simple assertError instanceof assert.AssertionError would work for AVA, but not every assertion library extends assert.AssertionError

@jamestalmage Thank you for clarification.

this is not a problem with our assertion per se, but that we are masking the true source of the error. I am pretty sure that this is actually related to power-assert.

You mean AVA is masking the source of error here. I think so too. It converts RangeError to AssertionError, so power-assert (wrapping same) report it with power-assert context.
To avoid it, yes, assertError instanceof assert.AssertionError may help.
power-assert will rethrow RangeError without any modification.

how should we handle this? A simple assertError instanceof assert.AssertionError would work for AVA,

Yes, with AVA's default, underlying assert module is core-assert so you can trust it.

but not every assertion library extends assert.AssertionError

Is this topic related to AVA? Or talking in generality?

Ahh - you are right. I forgot we did that. Thanks @twada

@jamestalmage My pleasure! :smiley:

#300 prevents the error masking.
#301 uses deeper to allow comparison of circular objects.
So, either way, the fix for this lands soon.

Sounds good.


Fix: refresh web push pref on standalone change

Move to a common reactive hook instead of relying on a function call.

Codecov Report
Patch and project coverage have no change.

Comparison is base (5627097) 65.85% compared to head (175ab5e) 65.85%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #782   +/-   ##
=======================================
  Coverage   65.85%   65.85%
=======================================
  Files          53       53
  Lines        7646     7646
=======================================
  Hits         5035     5035
  Misses       1775     1775
  Partials      836      836

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


consider adding MARC 991 to detail ab

Consider adding MARC 991 to detail tab. It contains brief author profiles. Ask public services if including this information is desirable.
BIBID         Contents of 991
7978244	 Chistine Macintyre is a fellow of the University of Edinburgh.
7978245	 Johannah Fahey is Research Fellow in the Education Faculty...
7978247	 Adam Berkin was an Adjunct Professor at Bank Street College ...

No, the information is not static.


Sorry this is going be a huge pull request

resolves #32
Summary
Changes made to the sequence scraper/sequence JSON spec:

Removed course name and course credits to decrease redundancy in DB
Added new detail to JSON spec allowing for choice of a list of courses (OR)
Assorted fixes to the sequence scraper logic

The code changes here are heavily hand-tested so you can be sure they work properly.
1. Removed course name/course credits from JSON spec
Now the course objects in the sequence JSON files will only contain the course code. Before, we also had the course name and the number of credits.
note: as a result of this change, we will need to update the mongosequences sevlet (SequenceProvider.java) by having it fill up the missing data by grabbing it from the course data DB
Sample of old spec
"courseList": [
    {
        "code": "COMP 232",
        "name": "Mathematics for Computer Science",
        "isElective": "false",
        "electiveType": "",
        "credits": "3"
    },
    {
        "code": "COMP 248",
        "name": "Object-Oriented Programming I",
        "isElective": "false",
        "electiveType": "",
        "credits": "3"
    },
    {
        "code": "ENGR 201",
        "name": "Professional Practice & Responsibility",
        "isElective": "false",
        "electiveType": "",
        "credits": "1.5"
    },
    {
        "code": "ENGR 213",
        "name": "Applied Ordinary Differential Equations",
        "isElective": "false",
        "electiveType": "",
        "credits": "3"
    },
    {
        "code": "",
        "name": "",
        "isElective": "true",
        "electiveType": "Science",
        "credits": ""
    }
]

Sample of new spec
"courseList": [
    {
        "code": "COMP 232",
        "isElective": "false",
        "electiveType": ""
    },
    {
        "code": "COMP 248",
        "isElective": "false",
        "electiveType": ""
    },
    {
        "code": "ENGR 201",
        "isElective": "false",
        "electiveType": ""
    },
    {
        "code": "ENGR 213",
        "isElective": "false",
        "electiveType": ""
    },
    {
        "code": "",
        "isElective": "true",
        "electiveType": "Science"
    }
]

2. Added ability to list a choice of courses
As described in issue #32, sometimes instead of one single course, a list of courses that you can choose from are put into the reccomended sequences. My proposed solution (which is implemented in this PR) is to simply put these courses into an array where you would normally expect to see a course object. It is implied that one of the courses in this array is to be picked, so the user will be able to choose one of them in the frontend app.
Example from SOEN-Games-Coop

The above recommended sequence portion results in the following json data:
{
    "season": "fall",
    "courseList": [
        {
            "code": "SOEN 490",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "ENGR 301",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "SOEN 321",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "COMP 376",
            "isElective": "false",
            "electiveType": ""
        },
        [
            {
                "code": "COMP 477",
                "isElective": "false",
                "electiveType": ""
            },
            {
                "code": "COMP 345",
                "isElective": "false",
                "electiveType": ""
            },
            {
                "code": "COMP 472",
                "isElective": "false",
                "electiveType": ""
            },
            {
                "code": "",
                "isElective": "true",
                "electiveType": "Program"
            }
        ],
        {
            "code": "COMP 345",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "COMP 472",
            "isElective": "false",
            "electiveType": ""
        }
    ],
    "isWorkTerm": "false"
},
{
    "season": "winter",
    "courseList": [
        {
            "code": "SOEN 385",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "ENGR 392",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "SOEN 490",
            "isElective": "false",
            "electiveType": ""
        },
        [
            {
                "code": "COMP 476",
                "isElective": "false",
                "electiveType": ""
            },
            {
                "code": "COMP 345",
                "isElective": "false",
                "electiveType": ""
            },
            {
                "code": "COMP 472",
                "isElective": "false",
                "electiveType": ""
            },
            {
                "code": "",
                "isElective": "true",
                "electiveType": "Program"
            }
        ],
        {
            "code": "COMP 345",
            "isElective": "false",
            "electiveType": ""
        },
        {
            "code": "COMP 472",
            "isElective": "false",
            "electiveType": ""
        }
    ],
    "isWorkTerm": "false"
}

3. Assorted fixes to the sequence scraper logic
There are also some situations where the course code will be followed by a descriptor. Some examples:
COMP 248*, COMP 248+, COMP 248 (alternative).
All of these cases will now end up being recorded as COMP 248, fully ignoring the descriptor. I made this judgement call on my own as it seemed that accounting for these exceptional situations would be far from worth our time. If you want to look into it further, be my guest...
I also fixed certain cases where empty courses would be put into the sequence and also where work terms would not be properly added.
Final words
I spent several hours going through every sequence JSON file one by one and comparing it directly to its source website.
The sequence json spec is now ALMOST perfect, with the exception of one final issue #39 which I will ask your guys' opinion on since I'm not sure how to deal with it.

@Davidster message


repo: Add automated tagging/publishing

Fix #22560
Signed-off-by: Ryan Northey<EMAIL_ADDRESS>Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

cc @lizan

@mattklein123 this still has a couple of issues to resolve, but if we can resolve quickly it would be good to land and backport to the v1.23 release branch so we can test it with the next patch release

@phlax what do you need from me?

@phlax what do you need from me?

nothing immediate
@lizan we need to give this creds to release/tag
the other issue i will look further asap

@lizan this should be ready to land - im also going to backport it to 1.23 now


WIP define revocation cred def data

First attempt at adding some detail here.
TODO:

How to map from data in revocation attributes to ECC points that can be used in cryptography. (not sure where this goes, but likely needs to be somewhere). Not sure what the 1 digit numbers represent here. The 1's and 2's between the 64 digit numbers.
Need to define the pairing friendly curve used
Detail on generators?
Move links to correct place

Signed-off-by: Wip<EMAIL_ADDRESS>

@wip-abramson -- could you please deal with the conflict on this one?  You have it named "WIP" -- does that mean you or "Work In Progress"?  :-).  Are you still working on the ToDos or is this one ready to go?

@swcurran yep I did mean Work in Progess, although I since got distracted - apologies. Perhaps these items could be tracked as issues separately?
I am away for until Tuesday now, so feel free to merge if you prefer

@wip-abramson , I really cannot assess the content from a cryptographers perspective, but besides that, it looks good to me. 👍


Publish Homebrew package

According to this comment, it seems that most Mac users would like to have a Homebrew package to easily install rudof.
I would like to see how to publish one.
In this other reply to that comment, it seems it is not difficult to do it...

+1 I would appreciate this feature


About banned account

I used the csharp example to register an account.
After some days, I tried to login the account via the csharp example (had no user interface). Needed no password or code, it succeeded to login( "AuthorizationStateReady" ). I tried to send a message, but got no response all the time.
I deleted  the ".binlog" file, and tried again. After input phone number, it tried to connect all the time before "authorizationStateClosing". As below:
▶ @object {updateConnectionState { state = connectionStateConnecting { } } }
▶ @object {updateAuthorizationState { authorization_state = authorizationStateClosing { } } }
▶ @object {error { code = 500 message = "Request aborted" } } Telegram.Td.Api.BaseObject
I tried login via desptop client, it told me it was banned.
But how can  I get the account's status( banned ro not banned  ) via tdlib?( csharp  Telegram.Td.Api)

You receive a corresponding error when you try to log in. TDLib 1.5.0 also writes to the log a big message with description of the issue and how to resolve it if you believe that the ban was done by a mistake.


Waypoint task transitions to waypoint list before task is set up

It's only a minor annoyance, but if I change a waypoint task, it immediately changes back to the waypoint list, so setting up a transfer means I have to then navigate back to the task pane to set up what needs to be transferred.
Could we either disable that transition or have it wait till a task is fully set up please?

oh whoops. I'm reacting to the selectedWaypoint changing, but I should react to the selectedWaypointIndex changing.


Expand testing

Currently the test suite is very small, most notably the juliacall suite: https://github.com/JuliaPy/PythonCall.jl/blob/main/pytest/test_all.py which is only 19 lines long. I am very worried about reliability issues from this and whether this might result in regressions.
I think expanding the test suite should be a priority, especially on the juliacall side, before new features are worked on.
Here are some suggestions. Feel free to check any that are already done or add more

[ ] Unittests for features shown in the docs

[ ] ALL JuliaCall guide examples (https://juliapy.github.io/PythonCall.jl/stable/juliacall/)
[ ] ALL PythonCall guide examples (https://juliapy.github.io/PythonCall.jl/stable/pythoncall/)
[ ] ALL conversion rules Python -> Julia (https://juliapy.github.io/PythonCall.jl/stable/conversion-to-julia/)
[ ] ALL conversion rules Julia -> Python (https://juliapy.github.io/PythonCall.jl/stable/conversion-to-python/)

[ ] Miscellaneous unittests

[ ] GC tests (currently there are zero)
[ ] Dummy package with pyjuliapkg and newmodule used
[ ] Multithreading unittests (with PythonCall.GC.disable())

Need to launch additional test suite in CI, with signals turned on

[ ] Distributed compute unittests
[ ] Julia's stdlib tests from Python via juliacall (copy the test suite; disable everything, and gradually turn on tests)
[ ] Python's stdlib tests from Julia via PythonCall.jl (copy the test suite; disable everything, and gradually turn on tests)
[ ] Any areas missing due to coverage milestones:

[ ] Code coverage milestones

[ ] Find way to track Python code generated from Julia code
[ ] Reach 60% code coverage on Python source code
[ ] Reach 80% code coverage on Python source code
[ ] Reach 90% code coverage on Python source code
[ ] Reach 100% code coverage on Python source code
[ ] Set up code coverage for Julia source code (currently not tracked)
[ ] Reach 60% code coverage on Julia source code
[ ] Reach 80% code coverage on Julia source code
[ ] Reach 90% code coverage on Julia source code
[ ] Reach 100% code coverage on Julia source code

[ ] Add integration tests

[ ] Numpy
[ ] PythonPlot.jl
[ ] Pandas (https://juliapy.github.io/PythonCall.jl/stable/compat/#Tabular-data-/-Pandas)
[ ] SymPy.jl (whenever PythonCall.jl version is made)
[ ] Matplotlib interactive support (harder to test, but you would want to test the features explained here – https://juliapy.github.io/PythonCall.jl/stable/compat/#MatPlotLib-/-PyPlot-/-Seaborn)
[ ] IPython support
[ ] PySR
[ ] diffeqpy
[ ] PyTorch import issue (basically just verify the solution on https://juliapy.github.io/PythonCall.jl/stable/faq/)

Absolutely, I've been holding off making another release because I recently did a big refactor and want to get test coverage up so I can trust I didn't break anything.
Indeed the test suite of JuliaCall is short - but then so is JuliaCall itself. My priority has been to get the coverage for PythonCall up, because that covers most of JuliaCall too.
Your list looks really good. I don't think it's especially needed to test the same code twice (from Julia and from Python) so most of the points in the first group should probably done in the PythonCall tests in Julia, leaving the tests in Python to the parts of JuliaCall actually written in Python.
Integration tests sound great.

Sounds good to me!

Sounds good to me!


fix(193523): JSDoc optional parameters don't display in functions

Hello. This PR is a fix to #193523, which was labelled with both help-wanted and bug labels.
Useful summary of the issue:

First, go to settings.json and add these 2 config lines:

"editor.suggest.preview": true,
"javascript.suggest.completeFunctionCalls": true,

Then, in a JS file type the following:

/**
 * @param {string} one hi.
 * @param {number} two howdy.
 * @param {string} [three] hello.
 */
function test(one, two, three) { }

Now, when you try to invoke the function test, you should notice that in the autocompletion preview the optional params have been omitted:

After applying the fix (based on @RyanCavanaugh advice), the problem is solved.

Also I am ready to assist with any unit test to cover this case.

I am unfamiliar with this whole review process. Is the bottom line that the fix will be included in a VS Code update in the future? Thank you

@microsoft-github-policy-service agree

I've added the requested changed @mjbvz. Ready to assist if needed.

Hello Matt. Just fixed the integration tests. Can you please review once available? @mjbvz

Pleasure!


fix: allow returning, number and boolean as well

resolves #48
This enables us to send a response for:

boolean
number
bigint

We may wrongly return a response for functions & symbols. Though likely that's a user error rather than something h3 should check for.

It would be better if we check already resolved type against JSON-safe values rather than assuming all values as response

Removed bigint. JSON.parse seems unable to handle bigint by default (https://stackoverflow.com/questions/18755125/node-js-is-there-any-proper-way-to-parse-json-with-large-numbers-long-bigin)


Compose authenticators

Relatively big PR, I apologize. It breaks a few things:

Authenticator renamed to AuthenticatorService
Authenticator is now a common trait that all tsec authenticators implement.
JWTAuthenticator now needs a AugmentedJWT backing store instead of one for JWTMAC
JWTAuthenticator now defaults to transporting as a bearer token
(Invisible to consumer) JWTInternal is gone.  No need for funky encoding/decoding anymore
CookieAuthenticator (Signed cookies) changed name, it is now SignedCookieAuthenticator.
Cookie-based authenticators dropped reliance on HttpDate, instead using java.time.Instant
AuthenticatorService is now an abstract class...

Cool things this PR adds:

AuthenticatorService are now Composable! You lose refined type information, but this solves the problem of multiple endpoints not being able to authenticate with one common interface, while still retaining some common information. This is tested
tryExtractRaw added extractRawOption added to AuthenticatorService cc @ChristopherDavenport
parseRaw added to AuthenticatorService
extractAndValidate is implemented in terms of extractRawOption and parseRaw for all Authenticators.
This means you can make decisions on whether or not to proceed with authentication based on whether the necessary conditions exist for it to be present in raw format.
liftService added to SecuredRequestHandler, so people can choose to compose TSecAuthService.
JWTMAC fixed @aeons.
JWTAuthenticator can now transport as a bearer token, or as in an arbitrary header.
Base64Url encoding/decoding, in general, to use the padding-less version.
TSec CSRF api has equal naming with http4s.

edit
I apologize for the large PR, but I wasn't comfortable merging this while I worked actively on the composability feature, and somewhere along the way, I decided to stuff in the JWTAuthenticator changes too. This should've been two PRs, one for the JWTAuthenticator changes, another for the composability feature.

Is this complete as is, or is there more coming?

Alright, I'm pretty satisfied with this. I'm sorry this pr was messy @ChristopherDavenport  @rsoeldner , but I went back and forth a lot on what I believed was a better interface for users.
Ultimately, my goal was to try to open up what you can do with authenticators and providing safer defaults. While at the same time, allowing more flexibility, such as branching decisions similar to what is implemented in tailRecAuth in regards to composability.
As far as JWT, the Authorization header is a much safer transport default for JWTAuthenticator than an arbitrary header, as http4s on purpose redacts such a header from logging. On top of this, I decided to utilize the subject field more liberally, to what is ultimately the same outcome, but with less classes in between storing things statelessly in a secure manner.
Aside from this, plus a quick JWT fix, this is all this PR has in mind.

:+1:


Fix Jenkins CI not properly handling suffix parsing

Update release job for Java 11 and ARM to properly handle alpha/beta/rc tags.
This is written so that it can be easily updated in the future to replace the Docker Hub build jobs, so that our main image tags would  be multiarch. But for now, it only handles the JRE11 and ARM builds.
Fixes #181
Reference: https://graylogdocumentation.atlassian.net/wiki/spaces/GENERAL/pages/2030534675/Dockerhub+build+rules

It works on the 4.2.0-beta.1-1 tag:

https://jenkins.ci.torch.sh/job/Release-Jobs/job/Build-Docker/view/tags/job/4.2.0-beta.1-1/8/console
https://hub.docker.com/r/graylog/graylog/tags?page=1&ordering=last_updated
https://hub.docker.com/r/graylog/graylog-enterprise/tags?page=1&ordering=last_updated

Tested using Jenkin's 'Replay' feature.


[Bug]: Problem with deleting pages

The Problem
The issue is that there is no option to specify the pages I want to remove from the PDF file.

Version of Stirling-PDF
0.27.0
Last Working Version of Stirling-PDF
No response
Page Where the Problem Occurred
No response
Docker Configuration
No response
Relevant Log Output
No response
Additional Information
No response
Browsers Affected
Microsoft Edge
No Duplicate of the Issue

[X] I have verified that there are no existing issues raised related to my problem.

😂
Don't know what happened there... Thanks for raising

There is an error in the page labeling that I want to delete. However, the option to add documents twice has been added. :-D

should be fixed?


Request for Model Weights

Hello, I tried to train a model using the given dataset, but after 110 epochs, the results are still unsatisfactory, with the discriminator's loss not going below 6. Is there a place where I can find your model weights?

Hi, I apologized for the very late response, unfortunately I don't have the model weights.
But maybe your scenario is better than mine, because in the original paper the Adversarial Loss remained constant with a value of 3, but in my case it dropped to almost 0 after epoch 25, and my Reconstruction Loss was approximately 8.25 at epoch 100. And I have to say that my results are not satisfactory either in my opinion, so it may be necessary to modify the architecture or improve the training dataset.


Issues creating service on v2.0.0

https://github.com/terraform-aws-modules/terraform-aws-atlantis/blob/1195897966c4d0ab695d40c42865a4b0ebc19805/main.tf#L495
Error: Failed getting task definition ClientException: Unable to describe task definition.
        status code: 400, request id: 0cd48c37-8d35-11e9-9e00-5ff346cf8ee8 "atlantis"

  on .terraform/modules/atlantis/terraform-aws-modules-terraform-aws-atlantis-ca4ff06/main.tf line 491, in data "aws_ecs_task_definition" "atlantis":
 491: data "aws_ecs_task_definition" "atlantis" {

v2.1.0 has been released.


Uncaught Error: WebGL not supported

Hi @Nelvin1475963, try updating your video card drivers.
WebGL is needed by the preview window to show the 3D model, and it gets that from Chromium (the engine that powers Google Chrome, although in this case it's wrapped inside Electron which is what VSCode is built on).  Chromium will detect outdated video drivers, and past a certain point will disable access to WebGL.
If you have Google Chrome installed, you can visit chrome://gpu/ to see the Chrome report on your graphics setup.


Add issue templates

I want to add issue templates for proposal, feature and documentation types so that there is proper way to create a new issue in your repo.
Please assign me this task as a part of GSSoC'21
and add necessary labels.

can you please assign this to me?

Please add GSSoC'21 and good first label


deprecate skip_children option

Why? We're actively using it to format individual files. Is there some other way to get this functionality?

@jsgf - the new default behavior of rustfmt v2.0 will be to not format sub modules (skip_children) which is why the config option is being deprecated.
An -r/--recursive flag will be added, basically inverting things: rustfmt 2.0 will be disabled by default with an optional opt-in, wheras rusftmt 1.x is enabled by default with an optional opt-out
See also https://github.com/rust-lang/rustfmt/issues/3587

Ok that's great!

For folks that are using rustfmt for format-on-save workflows, and are aren't using either 2.0 or the nightlies, here's a script that will emulate --skip-children:
https://gist.github.com/jeffomatic/fa443170b856b1af5ca3aa67e0ea3e65
Hope ya'll don't mind me posting here. I found this thread after stumbling upon rustfmt's somewhat surprising behavior of emitting formatted source of a file's dependencies.


Add ICR to skeleton

https://github.com/greyblake/crystal-icr

Still debating this actually. I’m worried people will use this and not realize it reevaluates everything for every line. So if ou create a new record and then keep adding lines it will create a record over and over.
I think the way around at least some of these issues is to warn that this will happen and wrap everything in a transaction that gets rolled back after every line. So it’s like —sandbox on Rails

I think I'm going to close this in favor of lucky eval that works basically like crystal eval but requires app.cr first.
Possibly in the future you can do something like crystal eval with no options and it'll open a vim buffer or something


Can this github repository successfully synthesize speech?

Can this github repository successfully synthesize speech?
Has anyone replicated the training and model inference from this GitHub repository?

来函妥收。

来函妥收。

你好，你是已经复现这个仓库的代码了吗？


KNOX-2527 - Added support for HMAC signature/verification in JWT token authority

What changes were proposed in this pull request?
In this change, I'm extending the current RSA based token signing with the use of HMAC. As described in the corresponding JIRA, from now on end-users are able to configure an HMAC secret in the gateway's alias service which then will be used as a signature secret (pay attention to the key size requirements!).
How was this patch tested?
Updated and ran a full maven build successfully and executed E2E tests:

configured the gateway.signing.hmac.secret alias:

$ bin/knoxcli.sh list-alias
Listing aliases for: __gateway
gateway.signing.hmac.secret

Added the KNOXTOKEN service in the sandbox topology:

<service>
   <role>KNOXTOKEN</role>
   <param>
      <name>knox.token.ttl</name>
      <value>36000000</value>
   </param>
   <param>
      <name>knox.token.audiences</name>
      <value>tokenbased</value>
   </param>
   <param>
      <name>knox.token.target.url</name>
      <value>https://localhost:8443/gateway/tokenbased</value>
   </param>
<!--
   <param>
      <name>knox.token.sigalg</name>
      <value>HS256</value>
   </param>
-->
</service>

Added a new topology - called tokenbased - to be able to test the generated tokens
Acquired a Knox token:

curl -iku admin:admin-password https://localhost:8443/gateway/sandbox/knoxtoken/api/v1/token
...
HTTP/1.1 200 OK
Date: Mon, 11 Jan 2021 15:08:34 GMT
Set-Cookie: KNOXSESSIONID=node01eow5gtl4jq0z68xpcuoo9cut0.node0; Path=/gateway/sandbox; Secure; HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: rememberMe=deleteMe; Path=/gateway/sandbox; Max-Age=0; Expires=Sun, 10-Jan-2021 15:08:34 GMT; SameSite=lax
Content-Type: application/json
Content-Length: 1862

{"access_token":"eyJhbGciOiJSUzI1NiJ9...FN7RE8Xsw","target_url":"https://localhost:8443/gateway/tokenbased","endpoint_public_cert":"MIIDe...W6Z2nJarXg==","token_type":"Bearer","expires_in":1610413714993}

Tested the acquired token by invoking the HDFS UI service in tokenbased:

curl -ik -H "Authorization: Bearer eyJhbGciOiJSUzI1NiJ9...FN7RE8Xsw" https://localhost:8443/gateway/tokenbased/hdfs

Changed the value of knox.token.sigalg parameter to HS384, reset the gateway.signing.hmac.secret with an appropriate secret (key length matters) and repeated steps 4-5. The call finished successfully.
Changed the value of knox.token.sigalg parameter to HS512, reset the gateway.signing.hmac.secret with an appropriate secret (key length matters) and repeated steps 4-5. The call finished successfully.
Changed the value of  knox.token.sigalg parameter to HS123 and repeated steps 4-5. Call failed as expected.
Removed the gateway.signing.hmac.secret and re-tried the get/verify steps; all were OK.

Logged into the Knox home page successfully (the hadoop-jwt cookie was added properly)
Also tested the case when the gateway.signing.keystore.name was set.

@lmccay - I tested it with different topologies come with different signature algorithms (HS256 and RS 256) and it was working as expected. Could you please give me another review and let me know if I can merge this PR?
HS256 test
Created a 256 bit HMAC secret:
bin/knoxcli.sh create-alias gateway.signing.hmac.secret --value 6w9zAB-E_H-McQfTjWnZr4u7x_A7D8F-
curl -iku admin:admin-password https://localhost:8443/gateway/tokenhs256/knoxtoken/api/v1/token

{"access_token":"eyJhbG...RI2hKM",...,"token_type":"Bearer","expires_in":1611689480150}

gateway.log:
2021-01-26 10:35:24,158 INFO  service.knoxtoken (TokenResource.java:getAuthenticationToken(407)) - Knox Token service (tokenhs256) issued token eyJhbG...RI2hKM (7794004b-c3e8-4aea-9d69-226786948ace)
Testing the acquired token: curl -ik -H "Authorization: Bearer eyJhbG...RI2hKM" https://localhost:8443/gateway/tokenbased/hdfs
gateway-audit.log:
21/01/26 10:37:27 ||8e4bcfe0-4a26-4f0c-a74b-857217ffeae7|audit|[0:0:0:0:0:0:0:1]|HDFSUI||||access|uri|/gateway/tokenbased/hdfs|unavailable|Request method: GET
21/01/26 10:37:27 ||8e4bcfe0-4a26-4f0c-a74b-857217ffeae7|audit|[0:0:0:0:0:0:0:1]|HDFSUI|admin|||authentication|uri|/gateway/tokenbased/hdfs|success|

RS256 test
curl -iku admin:admin-password https://localhost:8443/gateway/tokenrs256/knoxtoken/api/v1/token
{"access_token":"eyJhbG...xukCHw",...,"token_type":"Bearer","expires_in":1611690064630}
gateway.log:
2021-01-26 10:41:04,638 INFO  service.knoxtoken (TokenResource.java:getAuthenticationToken(407)) - Knox Token service (tokenrs256) issued token eyJhbG...xukCHw (fffd212d-dba7-40c5-8325-3512203ffde2)
Testing the acquired token: curl -ik -H "Authorization: Bearer eyJhbG...xukCHw" https://localhost:8443/gateway/tokenbased/hdfs
gateway-audit.log:
21/01/26 10:44:35 ||1bac63c9-1c15-4673-a592-2072f9235d53|audit|[0:0:0:0:0:0:0:1]|HDFSUI||||access|uri|/gateway/tokenbased/hdfs|unavailable|Request method: GET
21/01/26 10:44:45 ||1bac63c9-1c15-4673-a592-2072f9235d53|audit|[0:0:0:0:0:0:0:1]|HDFSUI|admin|||authentication|uri|/gateway/tokenbased/hdfs|success|

The only difference between the tokenhs256 and tokenrs256` topologies is the configured signature algorithm:
    <service>
       <role>KNOXTOKEN</role>
       <param>
          <name>knox.token.ttl</name>
          <value>36000000</value>
       </param>
       <param>
          <name>knox.token.audiences</name>
          <value>tokenbased</value>
       </param>
       <param>
          <name>knox.token.target.url</name>
          <value>https://localhost:8443/gateway/tokenbased</value>
       </param>
       <param>
          <name>knox.token.sigalg</name>
          <value>HS256</value>
       </param>
    </service>

@lmccay - I tested it with different topologies come with different signature algorithms (HS256 and RS 256) and it was working as expected. Could you please give me another review and let me know if I can merge this PR?
HS256 test
Created a 256 bit HMAC secret:
bin/knoxcli.sh create-alias gateway.signing.hmac.secret --value 6w9zAB-E_H-McQfTjWnZr4u7x_A7D8F-
curl -iku admin:admin-password https://localhost:8443/gateway/tokenhs256/knoxtoken/api/v1/token

{"access_token":"eyJhbG...RI2hKM",...,"token_type":"Bearer","expires_in":1611689480150}

gateway.log:
2021-01-26 10:35:24,158 INFO  service.knoxtoken (TokenResource.java:getAuthenticationToken(407)) - Knox Token service (tokenhs256) issued token eyJhbG...RI2hKM (7794004b-c3e8-4aea-9d69-226786948ace)
Testing the acquired token: curl -ik -H "Authorization: Bearer eyJhbG...RI2hKM" https://localhost:8443/gateway/tokenbased/hdfs
gateway-audit.log:
21/01/26 10:37:27 ||8e4bcfe0-4a26-4f0c-a74b-857217ffeae7|audit|[0:0:0:0:0:0:0:1]|HDFSUI||||access|uri|/gateway/tokenbased/hdfs|unavailable|Request method: GET
21/01/26 10:37:27 ||8e4bcfe0-4a26-4f0c-a74b-857217ffeae7|audit|[0:0:0:0:0:0:0:1]|HDFSUI|admin|||authentication|uri|/gateway/tokenbased/hdfs|success|

RS256 test
curl -iku admin:admin-password https://localhost:8443/gateway/tokenrs256/knoxtoken/api/v1/token
{"access_token":"eyJhbG...xukCHw",...,"token_type":"Bearer","expires_in":1611690064630}
gateway.log:
2021-01-26 10:41:04,638 INFO  service.knoxtoken (TokenResource.java:getAuthenticationToken(407)) - Knox Token service (tokenrs256) issued token eyJhbG...xukCHw (fffd212d-dba7-40c5-8325-3512203ffde2)
Testing the acquired token: curl -ik -H "Authorization: Bearer eyJhbG...xukCHw" https://localhost:8443/gateway/tokenbased/hdfs
gateway-audit.log:
21/01/26 10:44:35 ||1bac63c9-1c15-4673-a592-2072f9235d53|audit|[0:0:0:0:0:0:0:1]|HDFSUI||||access|uri|/gateway/tokenbased/hdfs|unavailable|Request method: GET
21/01/26 10:44:45 ||1bac63c9-1c15-4673-a592-2072f9235d53|audit|[0:0:0:0:0:0:0:1]|HDFSUI|admin|||authentication|uri|/gateway/tokenbased/hdfs|success|

The only difference between the tokenhs256 and tokenrs256` topologies is the configured signature algorithm:
    <service>
       <role>KNOXTOKEN</role>
       <param>
          <name>knox.token.ttl</name>
          <value>36000000</value>
       </param>
       <param>
          <name>knox.token.audiences</name>
          <value>tokenbased</value>
       </param>
       <param>
          <name>knox.token.target.url</name>
          <value>https://localhost:8443/gateway/tokenbased</value>
       </param>
       <param>
          <name>knox.token.sigalg</name>
          <value>HS256</value>
       </param>
    </service>


llama 1B performance

Hi Jiarui! Great implementation!
I found PY007/TinyLlama-1.1B-intermediate-step-240k-503b generates repetitive words. Maybe that's why speculative sampling doesn't work for me.
My script:
python main.py \
    --input "Write a 1000-word essay on the US constitutions" \
    --target_model_name transformers_cache/llama-2-7b-hf \
    --approx_model_name PY007/TinyLlama-1.1B-intermediate-step-240k-503b

https://huggingface.co/PY007/TinyLlama-1.1B-Chat-v0.1 is preferred by the author. However, the tokenizer size of this model is 32001. While the tokenizer size of llama-2-7b-hf and PY007/TinyLlama-1.1B-intermediate-step-240k-503b are 32000. Probably fixing the pad token will help?

I realized PY007/TinyLlama-1.1B-Chat-v0.1 also generates repetitive words. So I'm not certain which approx model we should use for llama.

Hi Jiarui! Great implementation! I found PY007/TinyLlama-1.1B-intermediate-step-240k-503b generates repetitive words. Maybe that's why speculative sampling doesn't work for me. My script:
python main.py \
    --input "Write a 1000-word essay on the US constitutions" \
    --target_model_name transformers_cache/llama-2-7b-hf \
    --approx_model_name PY007/TinyLlama-1.1B-intermediate-step-240k-503b

https://huggingface.co/PY007/TinyLlama-1.1B-Chat-v0.1 is preferred by the author. However, the tokenizer size of this model is 32001. While the tokenizer size of llama-2-7b-hf and PY007/TinyLlama-1.1B-intermediate-step-240k-503b are 32000. Probably fixing the pad token will help?

Hello Cliang, TinyLlama seems to use llama-1 architecture. I can hardly find a tiny llama-2. I am not sure if two models use different vocab tables could work together. I suggest you pick two models using the same tokenizer.

I realized PY007/TinyLlama-1.1B-Chat-v0.1 also generates repetitive words. So I'm not certain which approx model we should use for llama.

First, no matter what kind of approx model used, you can always achieve the same generation distribution as the target model.
Second, if you pick an approx model more similar to the target one, the odds of reject sampling will be small. That means more efficient for sampling.

Hi Jiarui! Great implementation! I found PY007/TinyLlama-1.1B-intermediate-step-240k-503b generates repetitive words. Maybe that's why speculative sampling doesn't work for me. My script:
python main.py \
    --input "Write a 1000-word essay on the US constitutions" \
    --target_model_name transformers_cache/llama-2-7b-hf \
    --approx_model_name PY007/TinyLlama-1.1B-intermediate-step-240k-503b

https://huggingface.co/PY007/TinyLlama-1.1B-Chat-v0.1 is preferred by the author. However, the tokenizer size of this model is 32001. While the tokenizer size of llama-2-7b-hf and PY007/TinyLlama-1.1B-intermediate-step-240k-503b are 32000. Probably fixing the pad token will help?

Hello Cliang, TinyLlama seems to use llama-1 architecture. I can hardly find a tiny llama-2. I am not sure if two models use different vocab tables could work together. I suggest you pick two models using the same tokenizer.

TinyLlama-1.1B adopted exactly the same architecture and tokenizer as Llama 2. ref:https://github.com/jzhang38/TinyLlama/tree/main?tab=readme-ov-file#tinyllama-11b


Fix plugin path

When I try to run this plugin, I get this error Error: Cannot find module 'path\to\FlowLauncher\Plugins\Translate'. Node won't find the correct path (path\to\FlowLauncher\Plugins\Translate Tool-0.1.0) because it has spaces.

Here it is:

I also had this problem with my first plugin (at first I thought this was a bug in Flow and opened an issue https://github.com/Flow-Launcher/Flow.Launcher/issues/1302)

Here it is:

I also had this problem with my first plugin (at first I thought this was a bug in Flow and opened an issue Flow-Launcher/Flow.Launcher#1302)

You can download the latest version in my release, unzip it and put it in the Plugins directory！

It still shows the same error.

If I change the start script, adding the ", it works as expected.

I also tried adding " and it works, thank you


CSS snippets shouldn't display in rule value intellisense

@Tyriar You can also write a snippet for rule values. Snippets have no limitations.
But yes, the snippet experience is an unhappy one, theres many possible ways of looking at it:

need more context on snippets, so they only show when suited. Sounds easy, but difficult to implement as it needs language server smarts, or text mate scope dependecies which I'm sceptical that they will really help, especially in scenarios like the one above. Also, we will still have to support templates that have no context and we have to show everywhere.
separate snippets out of code completions, hide them better, sort them differently (see #2343)...

Closing. There are currently no restrictions on what snippets are for.


Fix lint

Some errors I couldn't solve, and I two of the errors presents are caused by isort and pylint conflict:
setup.py|104:0|Too few public methods (1/2) (R0903, too-few-public-methods) [pylint]
stats.py|None:None|Imports are incorrectly sorted. [isort] ### the conflict that I was talinkg about
stats.py|10:0|No name 'MultipartType' in module 'pyof.v0x01.controller2switch.common' (E0611, no-name-in-module) [pylint]
stats.py|10:0|No name 'v0x01' in module 'pyof.v0x01.controller2switch.common' (E0611, no-name-in-module) [pylint]
stats.py|15:0|No name 'v0x04' in module 'pyof.v0x04.controller2switch' (E0611, no-name-in-module) [pylint]
stats.py|274:15|MultipartRequest is not callable (E1102, not-callable) [pylint]
stats.py|279:4|Parameters differ from overridden 'listen' method (W0221, arguments-differ) [pylint]
stats.py|324:4|Parameters differ from overridden 'listen' method (W0221, arguments-differ) [pylint]
stats.py|358:15|MultipartRequest is not callable (E1102, not-callable) [pylint]
stats.py|363:4|Parameters differ from overridden 'listen' method (W0221, arguments-differ) [pylint]
stats_api.py|61:52|Instance of 'StatsAPI' has no '_dpid' member (E1101, no-member) [pylint]
stats_api.py|63:61|Instance of 'StatsAPI' has no '_dpid' member (E1101, no-member) [pylint]
stats_api.py|78:27|Using possibly undefined loop variable 'col' (W0631, undefined-loop-variable) [pylint]
stats_api.py|164:4|Parameters differ from overridden '_get_latest_stats' method (W0221, arguments-differ) [pylint]
stats_api.py|262:4|Parameters differ from overridden '_get_latest_stats' method (W0221, arguments-differ) [pylint]
tests/test_rrd.py|5:0|Imports from package unittest are not grouped (C0412, ungrouped-imports) [pylint]
tests/test_user_speed.py|5:0|Imports from package unittest are not grouped (C0412, ungrouped-imports) [pylint] isort conflict
user_speed.py|7:0|Too few public methods (1/2) (R0903, too-few-public-methods) [pylint]

@lucasgsfelix, the tests are failing with Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

@lucasgsfelix, the tests are failing with Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

This error was happening before I make some changes in the napp. I copied 'requeriments/dev.txt' to the source folder and changed the name and this error was fixed, however I didn't know for sure if this was the best way to fix the problem. After I fix this problem I found another problem while running scruntinizer in the napp. The problem was a module import error.

@lucasgsfelix, please remove .scrutinizer.yml. This file has custom Scrutinizer settings that are outdated and cause errors.

@lucasgsfelix, please remove .scrutinizer.yml. This file has custom Scrutinizer settings that are outdated and cause errors.

I removed the file.


res.send(HTTPCODE) deprecated

Replacing with new standard and an error message.

Res.send() on some systems will now print to log:
express deprecated res.send(status): ...
When running under load this operation is costly and should be avoided for that 0.1% performance boost :)

@isaacdre The module has been updated and published to npm. This account has been inactive for a while so I forked it and made the changes.


ndarray.at.set(mode="drop") gives incorrect value for the last element in the array

Description
Given the following test case:
from absl.testing import absltest
from absl.testing import parameterized
import chex
import jax
from jax import numpy as jnp

class ScatterDropTest(chex.TestCase):

  def __init__(self, *args, **kwargs):
    jax.print_environment_info()
    super().__init__(*args, **kwargs)

  @parameterized.named_parameters(
      dict(
          testcase_name="indices_are_sorted_unique_indices",
          indices_are_sorted=True,
          unique_indices=True,
      ),
      dict(
          testcase_name="indices_are_not_sorted_unique_indices",
          indices_are_sorted=False,
          unique_indices=True,
      ),
      dict(
          testcase_name="indices_are_sorted_nonunique_indices",
          indices_are_sorted=True,
          unique_indices=False,
      ),
      dict(
          testcase_name="indices_are_not_sorted_nonunique_indices",
          indices_are_sorted=False,
          unique_indices=False,
      ),
  )
  def test_scatter_drop(
      self, indices_are_sorted: bool, unique_indices: bool
  ):
    positive_values = (
        jnp.full((4,), -1)
        .at[jnp.array([-1, -1, 0, 1, 2, 3, -1, -1])]
        .set(
            jnp.arange(8),
            indices_are_sorted=indices_are_sorted,
            unique_indices=unique_indices,
            mode="drop",
        )
    )

    chex.assert_trees_all_equal(
        positive_values, jnp.array([2, 3, 4, 5])
    )

if __name__ == "__main__":
  absltest.main()

The expected output is [2, 3, 4, 5] but instead [2, 3, 4, 0] is returned from the scatter.
System info (python version, jaxlib version, accelerator, etc.)
jax:    0.4.29
jaxlib: 0.4.29
numpy:  1.26.3
python: 3.11.8 (stable, redacted, redacted) [Clang google3-trunk (5b7088c3619e95eaa8e154765470ddb4d3859fa4)]
jax.devices (1 total, 1 local): [cuda(id=0)]
process_count: 1
platform: uname_result(system='Linux', node='nonet5.prod.google.com', release='5.10.0-smp-1<IP_ADDRESS>', version='#1 [v5.10.0-1<IP_ADDRESS>] SMP @1712274182', machine='x86_64')

$ nvidia-smi
Thu Jun  6 11:10:06 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A100-SXM4-40GB          On  | 00000000:DB:00.0 Off |                    0 |
| N/A   36C    P0              85W / 400W |    429MiB / 40960MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+

Hi - I think this is working as expected. In three of the cases, you are setting indices_are_sorted and/or unique_indices to True, when your indices are neither unique nor sorted. If you lie to the compiler, you get undefined results.
In the last case where both flags are set to False, the output is also consistent: you have multiple duplicate indices, and the semantics of scatter in such cases are that any of the options are valid. From the lax.scatter documentation:

If multiple updates are performed to the same index of operand, they may be applied in any order.

[2, 3, 4, 7] is a valid output here, because you specified that index -1 may be set to 7.

Ah, I was expecting that negatives indices would be always out-of-bounds and that out-of-bounds indices would not be counted against indices_are_sorted and unique_indices. It seems the way to do this, then, would be to use jnp.arange(a.size) + a.size as out of bounds indices, then set indices_are_sorted=False unique_indices=True?

It seems the way to do this, then, would be to use jnp.arange(a.size) + a.size as out of bounds indices

Yes, I believe that would work correctly.

then set indices_are_sorted=False unique_indices=True?

I'm not sure whether out-of-bound indices are included or excluded from unique or sorted. They may not be. The safest thing would be to not set either of these flags to True, unless your indices are actually unique and sorted (including any out-of-bound indices).

@ezhulenev do out-of-bounds indices need to be sorted and unique for XLA Scatter ops in FILL_OR_DROP mode to set indices_are_sorted() && unique_indices()?
On XLA:GPU indices_are_sorted appears to be unused as far as I can tell: GitHub link
... while unique_indices allows scatters to use non-atomic store instructions: GitHub link. So the performance impact of having to set indices_are_sorted=False on XLA:GPU is none.


Refactor logic which handles conditional update failure

Currently there are multiple places which does for loop writing to DB in case of conditional update failure.
We should re-write those logic.

@meiliang86 this issue should be re-opened
basically we were dealing with this err ErrConflict by write a for loop and throw away in mem change of mutable state and redo the change again: https://github.com/uber/cadence/blob/master/service/history/decisionHandler.go#L518
we should

get rid of the generation of ErrConflict, to be replaced by directly using ConditionFailedError
ref: https://github.com/uber/cadence/blob/master/common/persistence/cassandra/cassandraPersistence.go#L1896
ref: https://github.com/uber/cadence/blob/d69591532cdc305033dd62d19f9ff3f83a3c5364/service/history/workflowExecutionContext.go#L948

we should get rid of the for loop dealing with ErrConflict (ref see above), and use network middle layer to do retry (which will looks clean) if seeing err with type ConditionFailedError


Redesign the Team Screen

Is your feature request related to a problem? Please describe.
Right now, the team screen is little more than a list of people and spirit points, and an ugly one at that.
Describe the solution you'd like
We should show team captains, the team's grand total, maybe a banner set by the captain, fundraising total, a nicer list, etc.
Describe alternatives you've considered
We could have a message board (but that could be costly in terms of database costs, so I don't think it'll happen) for the team captains to communicate with teams. Maybe have a way to see a list of upcoming events associated with your team?
Additional context
Also see #133

@tajetaje Here is a proposed design that I made in conjunction with one of the Graphic Design Coordinators:

I love the design, I will say though is that I'm not sure about adding our own back button there. Take a look at the presentation of the current notifications or profile screen/click on an event in the events list.

Made branch, it has a new navigator that will allow you to make the design you want here. I haven't tested it yet so it is almost certainly broken.

Team Information need's to be fixed


Feature integration test refactor Colour RGB string value fixed #12

The problem with incorrect colour RGB in integration-test is fixed.

Fixed already by Hellacio, therefore closing this one.


Refactor read

Coverage increased (+0.04%) to 70.444% when pulling 57c14e1e2d229a6a36e109e467570c36af67faf4 on refactor_read into 4be42122a4657c196e3bbb0344692575e3f166ad on master.