SelectableText crashes the app if custom contextMenuBuilder is used, Null check operator used on a null value

Steps to reproduce

Run the code sample
Press the button, it will open an overlay
Tap the text, it will crash

It happens on both Flutter 3.24.3 and 3.22.3. Works fine on 3.19.6
Expected results
Should show the custom context menu instead of crashing
Actual results
Crashes the app
Code sample
Code sample
import 'package:flutter/material.dart';

void main() => runApp(const CustomContextMenuBuilderIssue());

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

  @override
  State<CustomContextMenuBuilderIssue> createState() => _CustomContextMenuBuilderIssueState();
}

class _CustomContextMenuBuilderIssueState extends State<CustomContextMenuBuilderIssue> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Custom contextMenuBuilder')),
        body: const Center(child: TheButton()),
      ),
    );
  }
}

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

  @override
  State<TheButton> createState() => _TheButtonState();
}

class _TheButtonState extends State<TheButton> with TickerProviderStateMixin {
  late final _animationController =
      AnimationController(duration: const Duration(milliseconds: 300), vsync: this);
  bool _openInProgress = false;
  OverlayEntry? _popup;
  late ThemeData _theme;
  String _value = '0.0';

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    _theme = Theme.of(context);
  }

  @override
  Widget build(BuildContext context) {
    _value = 'Tap me to crash';
    return FilledButton.tonal(onPressed: _showPopup, child: const Text('Press me'));
  }

  void _showPopup() async {
    if (_openInProgress) return;
    _openInProgress = true;
    _popup ??= OverlayEntry(builder: _popupBuilder);
    Overlay.of(context).insert(_popup!);
    await _animationController.forward(from: 0);
    setState(() {});
  }

  Widget _popupBuilder(BuildContext context) {
    return PositionedDirectional(
      bottom: 0,
      start: 0,
      end: 0,
      child: SizedBox(
        height: 322.0,
        child: Material(
          color: _theme.colorScheme.secondaryContainer,
          type: MaterialType.card,
          child: ThePopUp(initialValue: _value),
        ),
      ),
    );
  }
}

typedef PopupOnChanged = void Function(double? amount);

class ThePopUp extends StatefulWidget {
  const ThePopUp({super.key, required this.initialValue});

  final String initialValue;

  @override
  State<ThePopUp> createState() => _ThePopUpState();
}

class _ThePopUpState extends State<ThePopUp> {
  @override
  Widget build(BuildContext context) {
    return ConstrainedBox(
      constraints: const BoxConstraints(maxWidth: 400),
      child: ValueDisplay(value: widget.initialValue),
    );
  }
}

class ValueDisplay extends StatelessWidget {
  const ValueDisplay({super.key, required this.value});

  final String? value;

  @override
  Widget build(BuildContext context) {
    final theme = Theme.of(context);
    return SizedBox(
      height: 40,
      child: FittedBox(
        fit: BoxFit.scaleDown,
        child: SelectableText(
          value.toString(),
          textAlign: TextAlign.center,
          maxLines: 1,
          style: theme.textTheme.titleLarge,
          contextMenuBuilder: _contextMenuBuilder,
        ),
      ),
    );
  }

  void _pasteFromClipboard() async {
    ContextMenuController.removeAny();
    print('Fake paste');
  }

  Widget _contextMenuBuilder(BuildContext context, EditableTextState state) {
    final List<ContextMenuButtonItem> buttonItems = state.contextMenuButtonItems;
    final int pasteButtonIndex =
        buttonItems.indexWhere((buttonItem) => buttonItem.type == ContextMenuButtonType.paste);

    if (pasteButtonIndex >= 0) {
      final pasteButton = buttonItems[pasteButtonIndex];
      buttonItems[pasteButtonIndex] = pasteButton.copyWith(onPressed: _pasteFromClipboard);
    } else {
      final pasteButton = ContextMenuButtonItem(
        onPressed: _pasteFromClipboard,
        type: ContextMenuButtonType.paste,
      );
      if (buttonItems.length > 1) {
        buttonItems[1] = pasteButton;
      } else {
        buttonItems.add(pasteButton);
      }
    }

    return AdaptiveTextSelectionToolbar.buttonItems(
      anchors: state.contextMenuAnchors,
      buttonItems: buttonItems,
    );
  }
}

Screenshots or Video
No response
Logs
Logs
======== Exception caught by widgets library =======================================================
The following _TypeError was thrown building Overlay-[LabeledGlobalKey<OverlayState>#de574](state: OverlayState#b0685(entries: [OverlayEntry#809eb(opaque: true; maintainState: false), OverlayEntry#de194(opaque: false; maintainState: true), OverlayEntry#e7ffa(opaque: false; maintainState: false)])):
Null check operator used on a null value

The relevant error-causing widget was:
  MaterialApp MaterialApp:file:///issue_reproducibles/lib/flutter/custom_context_menu_builder_issue.dart:15:12
When the exception was thrown, this was the stack:
#0      _OverlayEntryWidgetState.initState (package:flutter/src/widgets/overlay.dart:364:44)
#1      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5748:55)
#2      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593:5)
#3      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468:16)
#4      MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7035:36)
#5      Element.updateChild (package:flutter/src/widgets/framework.dart:3963:18)
#6      Element.updateChildren (package:flutter/src/widgets/framework.dart:4150:32)
#7      MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7060:17)
#8      Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#10     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780:11)
#11     Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#12     BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2693:15)
#13     BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752:11)
#14     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3048:18)
#15     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1162:21)
#16     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468:5)
#17     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397:15)
#18     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318:9)
#19     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176:5)
#20     _invoke (dart:ui/hooks.dart:312:13)
#21     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419:5)
#22     _drawFrame (dart:ui/hooks.dart:283:31)
====================================================================================================

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.24.3, on Microsoft Windows [Version 10.0.22631.4169], locale en-US)
    • Flutter version 3.24.3 on channel stable at D:\Apps\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (11 days ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

Reproducible using the code sample and steps provided above.

flutter doctor -v
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0 24A335 darwin-arm64, locale en-US)
    • Flutter version 3.24.3 on channel stable at /Users/deanli/dev/stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (12 days ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[!] Flutter (Channel master, 3.26.0-1.0.pre.173, on macOS 15.0 24A335 darwin-arm64, locale en-US)
    • Flutter version 3.26.0-1.0.pre.173 on channel master at /Users/deanli/dev/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 101c8ae6c2 (16 hours ago), 2024-09-22 14:21:32 -0400
    • Engine revision 0155f8fc45
    • Dart version 3.6.0 (build 3.6.0-269.0.dev)
    • DevTools version 2.40.0-dev.1

This is caused by https://github.com/flutter/flutter/pull/142463 cc: @justinmc

Thank you for the analysis @TahaTesser! It's reassuring that this only happens in an Overlay at least. I want to look at this but likely won't get a chance for a week or two. I will assign myself if I'm working on it.

You can workaround this by defining your custom contextMenuBuilder in a separate method rather than an inline lambda. That ensures that it isn't redefined on each build and it passes an equality check with itself. Here is @TahaTesser's code from above modified with the workaround:

Example code with workaround
import 'package:flutter/material.dart';

/// Flutter code sample for [Overlay].

void main() => runApp(const OverlayApp());

class OverlayApp extends StatelessWidget {
  const OverlayApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: OverlayExample(),
    );
  }
}

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

  @override
  State<OverlayExample> createState() => _OverlayExampleState();
}

class _OverlayExampleState extends State<OverlayExample> {
  OverlayEntry? overlayEntry;

  // Here I've put the contextMenuBuilder in a separate method so that it is not
  // redefined on every build and it passes an equality check with itself.
  static Widget _contextMenuBuilder(BuildContext context, EditableTextState state) {
    return AdaptiveTextSelectionToolbar.editableText(
      editableTextState: state,
    );
  }

  void createHighlightOverlay() {
    // Remove the existing OverlayEntry.
    removeHighlightOverlay();

    assert(overlayEntry == null);

    overlayEntry = OverlayEntry(
      builder: (BuildContext context) {
        return const Center(
          child: DefaultTextStyle(
            style: TextStyle(color: Colors.red, fontSize: 22),
            child: SelectableText(
              'Hello, World!',
              contextMenuBuilder: _contextMenuBuilder,
            ),
          ),
        );
      },
    );

    // Add the OverlayEntry to the Overlay.
    Overlay.of(context, debugRequiredFor: widget).insert(overlayEntry!);
  }

  // Remove the OverlayEntry.
  void removeHighlightOverlay() {
    overlayEntry?.remove();
    overlayEntry?.dispose();
    overlayEntry = null;
  }

  @override
  void dispose() {
    // Make sure to remove OverlayEntry when the widget is disposed.
    removeHighlightOverlay();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Overlay Sample'),
      ),
      body: Align(
        alignment: Alignment.topCenter,
        child: ElevatedButton(
          onPressed: () {
            createHighlightOverlay();
          },
          child: const Text('Show Overlay'),
        ),
      ),
    );
  }
}

Diff
27a28,35
>   // Here I've put the contextMenuBuilder in a separate method so that it is not
>   // redefined on every build and it passes an equality check with itself.
>   static Widget _contextMenuBuilder(BuildContext context, EditableTextState state) {
>     return AdaptiveTextSelectionToolbar.editableText(
>       editableTextState: state,
>     );
>   }
>
36c44
<         return Center(
---
>         return const Center(
38c46
<             style: const TextStyle(color: Colors.red, fontSize: 22),
---
>             style: TextStyle(color: Colors.red, fontSize: 22),
41,45c49
<               contextMenuBuilder: (BuildContext context, EditableTextState state) {
<                 return AdaptiveTextSelectionToolbar.editableText(
<                   editableTextState: state,
<                 );
<               },
---
>               contextMenuBuilder: _contextMenuBuilder,
87a92
>

I think the root cause here is the fact that TextSelectionOverlay was never meant to have its values updated, and so we simply dispose and recreate it whenever they do:
https://github.com/flutter/flutter/blob/b397ee3297e46adabc28a91c3fc76cd2c34c213f/packages/flutter/lib/src/widgets/editable_text.dart#L3075-L3076
In this case, the OverlayEntries are built and then immediately disposed, and when initState is called on their _OverlayEntryWidgetStates, their OverlayEntry has already been disposed, causing the error Null check operator used on a null value.
Really, we should come up with a way to update these values that doesn't involved disposing and recreating the overlay.
CC @LongCatIsLooong in case you happen to have any ideas or think that there is something to fix in Overlay. Otherwise I think everyone should use the workaround in the meantime until we can do a bigger refactor of TextSelectionOverlay.


Retire Usage rule and update Error rule

The current usage rule is out of date, has ambiguous terms guidance and is generally not very helpful.
This update removes the Usage rule completely and instead adds any ISG terms that have clear "Do not use" guidance and definitive suggested alternatives to the Error rule. All ambiguous terms or terms without suggested alternatives are removed.
Terms are pulled directly from the ISG word usage list: https://www.ibm.com/docs/en/ibm-style?topic=word-usage.
This PR is a more manageable piece of this larger PR: https://github.com/redhat-documentation/vale-at-red-hat/pull/539
DONE: ~move do-not-use terms without guidance to https://github.com/redhat-documentation/vale-at-red-hat/pull/591~

These terms could be added to this rule:
  - as well as: and
  - below: earlier|later|following
  - above: later|previous|preceding
  - carry out: test|run
  - choose|check: select
  - consumes?: use|uses
  - uncompress: decompress
  - either: each
  - execute: run|issue|start|enter
  - fatal: unrecoverable
  - higher: later
  - hit: press|type
  - illegal: invalid|not allowed|incorrect
  - ingests?: import|load|obtain|process
  - invoke: start|call
  - kill: end|stop
  - legacy: existing|traditional|established|classic|earlier|previous
  - like: such as
  - since: because
  - so: so that|therefore
  - so long as: if|when
  - translate: convert:transform
  - demount: unmount|dismount
  - updatable: can be updated|can be changed

@jhradilek Would appreciate your eyes on this. have been working on an off for the last few months on this one. Think it's nearly ready. I want to throw out the Usage rule and consolidate the TermsErrors rule.
Running this to test (Pasting PR version TermsErrors.yml into the local .vale folder):
┌───── ~/rhel-8-docs/rhel-9 (master)*
$ vale ./modules --ext='.adoc' --output=line  --filter='.Name == "RedHat.TermsErrors"' --minAlertLevel=error > /home/aireilly/vale_test_updated_errors.txt

I get the following errors: http://pastebin.test.redhat.com/1108678
I think these are legitimate errors. WDYT?

Hi @aireilly, I looked over your list and most of these are legitimate, I however found a few irregularities.
In the Word Usage section of the online version of the IBM Style Guide, the following are listed as warnings and advised to be used with caution in the specified context. I would have expected these in RedHat.TermsWarnings, not RedHat.TermsErrors:

downgrade
execute
launch
terminate

There may be more but these four jumped at me in your output file.
There are at least two words that recommend a replacement in direct contradiction with the IBM Style Guide:

Use 'turn off' rather than 'Power off': The IBM Style Guide only mentions "power off" in the guidance for "power down" and says the following: "Do not use. Use power off or turn off." This makes "power off" perfectly valid. The Red Hat Supplementary Style Guide does not have an opinion but happily uses "power off" in examples.
Use 'adviser' rather than 'Advisor': The IBM Style Guide says the exact opposite: "advisor - Write as shown: not adviser." and "adviser - Do not use. Use advisor."

I would also recommend removing Subversion or at least making that rule case sensitive as Apache Subversion (SVN) is still a common occurrence in technical documentation and thus not an error.

Thanks @jhradilek Re: Advisor, I see this in https://www.ibm.com/docs/en/ibm-style?topic=word-usage:

Hi @aireilly, thank you, that is consistent with what I quoted and I see it is correct in your branch so please ignore that comment. I was reviewing both pastebins for comparison and this is visible in the second one that uses rules from main.

Actually a large number of these need to move to the Warning rule.

This is looking pretty good now IMO (RHEL 9 docs errors with latest ErrorTerms rule): http://pastebin.test.redhat.com/1108758

Great job, @aireilly, the updated error list looks pretty good indeed. I have only a few minor comments:

Use 'later' rather than 'higher'. This should be a warning as the IBM Style Guide only restricts the use of the word when describing software versions. Some of the reports in your output are of course correct, but others complain about sentences like "value higher than the total number" which I think are valid. The suggestion does not make sense in this context.
Use 'uses' rather than 'consume' and Use 'use' rather than 'consumes'. I believe these are flipped but should also be warnings as the IBM Style Guide explicitly states: "Consume is acceptable when it is part of the existing product terminology." Some of the reports in your output are correct, but others are related to Subscription Manager which even has the consume subcommand.
Use 'select' rather than 'Choose'. This should be a warning as the IBM Style Guide only restricts the use of the word when referring to actions performed on interface element. Choosing a username or an installation method are valid uses for that word.
Use 'convert:transform' rather than 'translate'. The one report in your output is right and the word should be fixed, but I still believe this should be a or a warning as the IBM Style Guide only restricts the use of the word when referring to data. In other parts of our documentation, you would find phrases like "The text of an application that cannot be translated into the selected language remains in US English" that are correct. Additionally, I would recommend adding rules for other forms of the word like "translates" or "translated" which are also present but currently unchecked.
Use 'executable program' rather than 'executable'. This can stay as an error but I think we need to expand the regular expression to account for other valid uses of the word like "executable file" or "executable files".

Getting pretty close... http://pastebin.test.redhat.com/1108879

Something is screwy in the Workflows.

I can still see "choose" reported as an error but otherwise looks good to me!

Oops! removed.

Merging this. We can fix remaining errors as we find them.


Return symbols, not strings, for AbstractModel#show_controller, show_action, index_action, destroy_action etc.

To make the HerbariaController refactor work, it seems @JoeCohen discovered that Rails automatically prepends the controller namespace to the controller name, if the caller of a route builder is in a namespaced controller like Herbaria::MergesController. However, this can unfortunately lead Rails to build inaccurate controller names like herbaria/herbaria, if the caller of the route builder is trying to build a route to an action in the main controller (i.e., no namespace needed).
However, if you send the controller name as a string prepended by a leading forward slash, though, Rails will not prepend the namespace, and you'll get controller: "/herbaria" which works as desired.
This has some odd and unpredictable effects elsewhere, though, as the Model.show_controller is used for other purposes in the code. The forward slash has to be accounted for, even when this is not as expected. (I encountered these problems on the NamesController/NameDescriptionsController refactor and decided to try to regularize it upstream.)
Generally I've been switching to symbols everywhere in the app for url builders with a controller/action hash { controller: :ctrlr, action: :action }, and while Rails will accept anything, including an IOU, I'd rather be able to count on getting a controller symbol when I call for the show_controller, and an action symbol for the index_action. (If we need to call a namespaced controller, we can always explicitly call it.)
So here I've i worked out a way to return symbols, eg :location, :observations for the show_controller, :show (or :show_location) for the show action, etc, while still fixing the issue of Rails erroneously prepending a controller namespace, closer to the source, in Application Controller. There only seems to be one place it's needed: the source of the issue seems to be Rails redirect_to, and this PR prepends the forward slash to any controller name just prior to calling that method. Meanwhile, Model.show_controller now always returns the symbol for the controller.

Coverage decreased (-0.006%) to 91.979% when pulling e449d441fabbcc20aa2fe3774437f697f7c62d81 on nimmo-show_controller-maybe-use-symbol into 7925e8022946ea9080c0df8d2bc3376283dbe557 on master.

I:

pushed my changes to the comments
pushed the deletion of Observation's now-unnecessary override of show_controller.
merged master into this branch and resolved conflicts.

As @pellaea already approved this branch, I intend to merge it.

Sounds good. Thanks, Joe.

On Aug 3, 2022, at 6:11 PM, Joseph D. Cohen @.***> wrote:
I:
pushed my changes to the comments
pushed the deletion of Observation's now-unnecessary override of show_controller.
merged master into this branch and resolved conflicts.
As @pellaea already approved this branch, I intend to merge it.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.

It's now running on the server

Hi Joe,
Thanks for checking it out. I agree with moving the comments, i'd be glad for you to handle it if you can.

On Aug 1, 2022, at 10:10 PM, Joseph D. Cohen @.***> wrote:
@JoeCohen requested changes on this pull request.
@nimmolo I finally found the time, and slept enough, to focus on this PR.
I have no substantive suggestions. The comments should be revised to reflect the changes you made to the code.
I can do that if you like; just let me know.
In app/controllers/application_controller.rb:

Assure that this method calls a top level controller namespace by putting

the show_controller in a string after a leading slash.

Suggestion: Move the comment explaining the / prepend from AbstrctModel to here.
⬇ Suggested change

Assure that this method calls a top level controller namespace by putting

the show_controller in a string after a leading slash.

Assure that this method calls a top level controller namespace by putting

the show_controller in a string after a leading slash.

The name must be anchored with a slash to avoid namespacing it.

references: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

https://stackoverflow.com/questions/20057910/rails-url-for-behaving-differently-when-using-namespace-based-on-current-cont

In app/models/abstract_model.rb:

@@ -322,6 +322,8 @@ def formatted_errors

that handles the "show_" action for this object.
The comment should reflect the change from string to symbol.
(I tried to do this as a GitHub suggestion, but that doesn't work well when commenting on unchanged lines.)
⬇ Suggested change

that handles the "show_" action for this object.

Return the name of the controller (as a symbol)

that handles the "show_" for this object.

GlossaryTerm.show_controller

=> :glossary_terms (for normalized controller)

In app/models/abstract_model.rb:

@@ -374,9 +376,9 @@ def self.class_defined?(klass)

Otherwise, perhaps define "index_action" in the individual object class.
JDC 2021-01-14
def self.index_action
Change the preceding comment to reflect change from string to symbol.
In app/models/abstract_model.rb:

@@ -392,9 +394,9 @@ def index_action

name.show_action => "show_name"

def self.show_action
Revise preceding documentation to reflect that it's now aymbol
In app/models/abstract_model.rb:

@@ -568,7 +570,9 @@ def destroy_controller

name.destroy_action => "destroy_name"

def self.destroy_action
Revise documentation to reflect change from string to symbol
In app/models/observation.rb:

@@ -195,12 +195,7 @@ class Observation < AbstractModel

Override the default show_controller
def self.show_controller
This method also no longer needed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.


Migrate to cucumber junit 5

Hi,
Really sorry @pascalgrimaud , I tried something: you know, I have my phases, and I'm currently in the 'traceability, unicity of the information' one (sometimes at the extreme).
This one is regarding a cucumber update to switch to a junit 5-compatible version, so it looks like the failed tests are expected.
I don't know how it works when I have to update the bom and the code as well: do we have to merge this one to get the snapshot version to ensure that the cucumber templates works?
Maybe we could publish PR Bom's snapshots artifacts by default with a  qualifier (e.g. the PR number) in order to test it without merging in the main branch?

The commit msg is not nice, as we can't know what you're doing without looking the diff :-)

Updated title

There is already a snapshot artifact with GitHub for main branch, if I'm correct, but I don't use it.
About the CI, you could do something similar to https://github.com/jhipster/generator-jhipster/pull/17068/files but don't forget to revert before the merge
That's why, in my opinion, splitting code into lib is a bad idea for contributors. As a core team member, it was not simple for you, I can't imagine for a new contributor.
Anyway, it's another subject.

May be just a matter of explaining more things in the CONTRIBUTING.md.
Honestly, I've spent hours to figure out how configure IJ to test generator-jhipster


Par green CON

Please move Par Green with its search records to be an alternative to Par.
It is actually the centre of the village of Par.
Geoff

OK


Round 9 - Voice Recording

Login
Press voice recording
Record message 2 min (we let it time out)
Click done
On the Daily Intake Report, click on the voice recording and click play
Voice playback will start...
Press Logout
Observation: playback continues to occur even after the user has logged out.
Expected result:The playback should stop after logout.

Thanks Sara, we'll fix this.


Defaulting to .bin extension when saving

Summary
Fixes #106. Defaulting to .bin extension when saving.

Might also add to that: When explicitly removing any extension the .bin extension should be added implicitly.

I'd be fine with appending .bin if there is no extension provided.

Alright, a default extension .bin is now also added when no extension given.


Resistance against timing attacks

Do we need to make the field arithmetic resistant to timing attacks?
For example, removing the final conditional branch in the Montgomery multiplication or making the computation of the modular inversion constant?
Can an adversary take advantage of these attacks to break the security of the system?

I'd focus on the jubjubs before worrying about the pairing friendly curves, not sure if zcash's jubjub is constant time.  Also see https://github.com/zkcrypto/bls12_381/

I agree with @burdges, we first should focus on constant time twisted Edwards arithmetics (and all that is then needed for field arithmetics). For any primitive based on a pairing-friendly curve (except the pairing evaluation itself) we can always transform to Edwards, avoiding the pitfalls of affine Weierstrass arithmetics.

Also all binary exponentiation functions for field elements (like pow()) and elliptic curve points (like mul_bits()) which branches conditionally based on the current bit value of the exponent being iterated over.
This conditional branch will incur different computational load based on the exponent value.
For certain use cases, and under certain conditions, this timing leak may be observed by an attacker and used to recover the exponent.
While we added a disclaimer for each of these functions, would be nice to implement an efficient-constant time variant for them, maybe to be enabled using a compilation feature.


Bug: cell output erased after execution/model training is complete.

Bug: Notebook Editor, Interactive Window, Editor cells
Hi guys,
I'd love to use VSCode for my Data Science endeavours but this break the workflow:
Progress bar generated report gets erased after it's finished, not very convenient when training models:

Steps to Reproduce:

pip install fastprogress
open a new notebook in VSCode and run the snippet

from fastprogress.fastprogress import master_bar, progress_bar
from time import sleep
mb = master_bar(range(10))
for i in mb:
    for j in progress_bar(range(100), parent=mb):
        sleep(0.01)
        mb.child.comment = f'second bar stat'
    mb.main_bar.comment = f'first bar stat'
    mb.write(f'Finished loop {i}.')
    #mb.update_graph(graphs, x_bounds, y_bounds)

Finished Loop 0, 1, 2...

Does this issue occur when all extensions are disabled?: Yes

VSCode Version:

Version: 1.47.2
Commit: 17299e413d5590b14ab0340ea477cdd86ff13daf
Date: 2020-07-15T18:22:15.161Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 5.4.0-42-generic

OS Version:

Operating System: Linux Mint 20
Kernel: Linux 5.4.0-42-generic
Architecture: x86-64

Python

Version 3.8.2
Anaconda? - Nope

Cheers,
Giga
Microsoft Data Science for VS Code Engineering Team: @rchiodo, @IanMatthewHuff, @DavidKutu, @DonJayamanne, @greazer, @joyceerhl

Hi @agigao , is it the progress bar being deleted that bothers you or the execution time being deleted that bothers you?

@claudiaregio hi, well the execution report: error rate, validation loss, etc.

@agigao To make sure I'm understanding correctly, when you use this command in another tool does it not clear the output of those stats, it just shows them? Does not require a print statement to view them?

@agigao I was able to validate that that is the behavior in different tools.

@claudiaregio it isn't erased in a regular jupyter notebook.

@agigao, I think I know what the issue is and wanted to check that I've identified it correctly. I ran the code cell you provided in both VS Code and Jupyter. It seems the root cause of this bug is that our editor represents code cell outputs as individual strings instead of an array of strings.
Specifically, our editor produces code cell output that looks like this:
   "outputs": [
    {
     "data": {
      "text/html": "Finished loop 0.
Finished loop 1.
Finished loop 2.
Finished loop 3.
Finished loop 4.
Finished loop 5.
Finished loop 6.
Finished loop 7.
Finished loop 8.
Finished loop 9.",
      "text/plain": "<IPython.core.display.HTML object>"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],

And Jupyter produces output that looks like this (this appears to be the only difference):
   "outputs": [
    {
     "data": {
      "text/html": ["Finished loop 0.
Finished loop 1.
Finished loop 2.
Finished loop 3.
Finished loop 4.
Finished loop 5.
Finished loop 6.
Finished loop 7.
Finished loop 8.
Finished loop 9."],
      "text/plain": ["<IPython.core.display.HTML object>"]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],

Would you mind doing me a favor? Could you either:

provide the code that prints the execution report so I can confirm that fixing this discrepancy will resolve the problem, or
open the raw ipynb produced by our extension in Notepad or any other plain text editor, and confirm that the difference is that the outputs are not represented as arrays? In fact, if you edit the output representation to be arrays and reopen it in our extension, that ought to be sufficient to get the execution report to show up again. Thanks 😊


Log githook progress

This is an exploration for new feature to show stdout/stderr output in a Sublime Text panel while a hook is running, as discussed in #812
Currently pre-push (logs to stdout) and pre-commit (logs to stderr) hooks have been tested on OS-X.
Some demos (bad gif conversion results in 2x slower playback, sorry for your time :) )
Commit (Commit view closes automatically)

Push

Awesome, could you also share your toy hooks for testing purpose?

Yep, this was in .git/hooks/pre-commit:
#!/bin/sh

sleep 1
echo "yo"
sleep 1
echo "hey"
sleep 1
echo "who loves slow commits?"

sleep 2
echo "this guy"
sleep 2

exit 0

Some notes about the implementation:

Appending to the panel assumes the panel was already created
Avoids mucking with individual commands, adding support for all commands in git_command
Can only capture one stream at a time and the user needs to know which one per command

With threads both could be read, with extra complexity.

Essentially a poor Popen.communicate implementation, potential for nasty bugs here

I first tried to use the build system to run the 'hooked' git commands (see first commit), this solved the problem but did not report back to GitSavvy when it was done.

I have just a couple of general comments:

I would prefer not to make this the default behaviour at this time, at least until it's been tested thoroughly by us and other users.
The condition forking we have going on, and the sheer length of the GitCommand.git method makes me think that we should extract the internals of processing the command output / communication in a separate function. This would also make somewhat easier to test.

@asfaltboy I'll update this PR this weekend with threaded stdout/stderr reading and cleaned up code. Thanks for the comments!

Cool, I'll try to dial in the weekend to help out

A quick summary of the changes:

A single setting (live_panel_output) adds the new behaviour to show_panel_for
Switched to threads: Both stdout and stderr are always live-logged to the panel
Cleaned up the git command - the differences with Popen.communicate are now in a wrapper
Now honours show_input_in_output setting.

Very cool, I will enable it for more command to see if it has some flows.
I have found some other thing we should do while we are at it (if you add me as a contributor, I may have time to push some small things into this PR)
These lines should not be there anymore,
https://github.com/tomv564/GitSavvy/blob/158b13a8a02ba46dc95ac74c0f2de885d6ff823f/core/git_command.py#L229-L233
I got an issue with commiting.
http://recordit.co/DtTz12vDRd a screen cast what I did
Typo in the screencast : Where is STD ERR

@stoivo Recently, github added a new feature to allow maintainer of a repo to push to the branch of the submitted PR. You should be able to push commits to it unless @tomv564 has deliberately disabled it.

@stoivo feel free to push to the branch, you should have the maintainer access @randy3k mentioned.
The lines you want to remove, are those not responsible for showing the output if live_panel_output is not enabled?
They could be bypassed if live_panel_output is ON.
I can help troubleshoot the issue you recorded later - did any errors show up sublime's panel?

No errors, no nothing. Just stop responsing.

Either Popen.communicate handles this automatically or I messed it up, but even an empty commit message must be sent into git commit -F or the process will hang indefinitely waiting for input. See demo of fix below:

Very nice, seems to work.
I will continue to test it.

If you enable it for log, then git: log fails.

What's your opinion on the git log issue? Already sorted? Must fix?

I think the git log is a must fix issue. I would not recommend anybody to enable log for live log. But we need to know why it doesn't work

@stoivo, I hope the issue was specific to the graph view?
All other git log commands succeeded with live output but git log --pretty hung forever.
Disabling the pager by adding --no-pager to git fixes the graph view (see last commit)
Popen.communicate must do something to avoid the pager (which we probably should duplicate, but I don't have time to research).
At the very least it's good to document this issue in the settings?

The default for live_panel_output should be set false because we are not sure what other commands will break when it's one. Otherwise, I guess we are good to go.

@tomv564  we should add --no-pager and the first argument if live_panel_output is on.
man git
       -p, --paginate
           Pipe all output into less (or if set, $PAGER) if standard output is a terminal. This overrides the pager.<cmd>
           configuration options (see the "Configuration Mechanism" section below).

       --no-pager
           Do not pipe Git output into a pager.

I agree, @randy3k. But it is a really cool feature.

I'm sorry, no time to add this logic, but @stoivo please add it if you feel it is necessary.

I think this should be all.
I am aware of one issue. git log .... Git log is using a pager and there the method return before the log command is done.
I have 2 different approaches to a solution.

Add the --no-pager if the is a log command.
Investigate git and popen to understand why it works when we user popen.comuticate.

Either way, we want to go. I would like to merge this PR like it is. And not recommend anyone to enable live for log.  And who really wants to read the anyway?

I rebased everything. I think this is solid now. Please read over and check if it looks okey.
I am aware of one issue. If you enable live log for git log  we will have problems. Somehow Popen maks git use a no pager. We could sneak in a --no-pager every time it is a git log command.

This should be all, Ci passes.

I will test this PR with live_panel_output turned off for a few days before merging it.

We should remove the blacklist option. It doesn't make much sense.

Updated

I believe we could merge it and give it a try.


fix: privacypolicy

:tada: This PR is included in version 0.118.6 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add Indexable

This was proposed many times in the past and I think it's time to implement this.
All started with me trying to implement the sieve exercise on exercism. I came up with a solution very similar to that of @jhass ( http://exercism.io/submissions/dd85bc5d9c6947dd98fcc807db62afe8 ), using Array, and then wanted to use BitArray only to find out it didn't have an each method. So I thought about adding it, but it was very similar to that of Array. And that of Slice, and Deque. So I extracted all those iterators into a separate class, but then thought many other methods were similar. Then I remembered about the idea of adding an Indexable module so all implementations can be in sync, and also to avoid a lot of boilerplate in every implementation.
Indexable needs a protected unsafe_at(index) to be implemented. This allows for some methods to be implemented much more efficiently (I did some benchmarks), to avoid some index bounds check when it's safe to avoid them.
I found a couple of compiler bugs: if you include a generic module that includes another generic module, that second generic module isn't seen in restrictions. Then protected methods aren't correctly considered in generic modules so for now I made the unsafe_at methods public. But we can change these when we fix the compiler bugs.
One drawback of this change is that now some Array methods are not immediately seen in the Array docs, but you need to jump to Indexable, so newcomers might be confused with this.
Indexable only provides read access, not write access. I didn't find the write methods in Array, Slice, StaticArray and Deque to be similar, and there's also the thing that Tuple is read-only.

Big :+1:, I'm just not sure about the name, it makes me think of memory, probably because RAM stands for random access memory. What about my initial idea of Indexable?

Ah, sounds good. Then it's also maybe more clear that you can index into it, but not necessarily mutate it.

I don't think the documentation issue you mention is a stopper. At most, is something might push the docs to handle better the inherited methods due to modules.

Should Indexable(T) always include Enumerable(T)? I don't see a case where you would want one without another.

@RX14 In the next release I'll change Indexable to include Enumerable, right now there's a bug that prevents us from doing that, but it seems to be fixed in master. There's a comment in Indexable about this (the include line is commented)

I can't see why unsafe_at shouldn't be public at all times. The unsafety of using it is pretty apparent from the name :-)

@ozra Yes, definitely. The unsafe part already tells you that it is unsafe, and for optimizing some bottlenecks it can be useful to avoid a bounds check if you know you will always index in bounds.


Improve Windows installer and advertise it

Advertise Windows installer link in documentation
Change the license displayed in the installer since the project LICENSE file is not suited for it... Main license is GPL (from PyQt), and probably licenses from all embedded softwares should be provided..

Thanks @andygotz for the feedback

What about shipping it with PySide6?

Yes, why not, but we've way less tested silx with PySide6 than with PyQt5.


Ensure relocatable config files

Using CMAKE_INSTALL_PREFIX causes build issues when you relocate the installed CMake package, i.e., as it is done in conan.
CMAKE_INSTALL_PREFIX should not be used in the cmake.in files directly. The @PACKAGE_INIT@ macro initializes PACKAGE_PREFIX_DIR correspondingly.
See also:
https://github.com/ignitionrobotics/ign-tools/pull/30
https://github.com/osrf/sdformat/pull/419
https://github.com/osrf/gazebo/issues/2782
cc @stefanbuettner

I think it's good now with my fixes, based on the approach in https://github.com/dartsim/dart/pull/1529 and https://github.com/osrf/sdformat/pull/419, but I'd like another set of eyes and some testing if possible
cc @j-rivero @caguero

I think it's good now with my fixes, based on the approach in https://github.com/dartsim/dart/pull/1529 and https://github.com/osrf/sdformat/pull/419, but I'd like another set of eyes and some testing if possible
cc @j-rivero @caguero

perhaps we can test this by including it in a prerelease (see #147)

I'm going to merge this now and include in a prerelease to get further testing

I'm going to merge this now and include in a prerelease to get further testing

You were a bit faster merging than I commenting: I tried this today, seems to work fine for all the scenarios I tried: colcon workspace to build ign-math7, simulate a release in Debian packaging system (using -DCMAKE_INSTALL_LIBDIR=lib/aarch64-linux-gnu, would be great to set a test for this) or just manually inspecting the file with the default no-arguments. I see no reason not to merge this one. Nice work.

I'm going to merge this now and include in a prerelease to get further testing

You were a bit faster merging than I was commenting: I tried this today, seems to work fine for all the scenarios I tried: colcon workspace to build ign-math7, simulate a release in Debian packaging system (using -DCMAKE_INSTALL_LIBDIR=lib/aarch64-linux-gnu, would be great to set a test for this) or just manually inspecting the file with the default no-arguments. I see no reason not to merge this one. Nice work.

sorry for not waiting! we can see how the prerelease goes


hickory doesn't support device binding and add fwmark

we currently use hickory as the dns clients, but there is a potential issue:
when using tproxy or tun to handle all the traffics, we cannot apply a fwmark or bind to a network interface, since hickory doesn't offer this option. So, the outbound dns request sent by clash-rs will be intercepted by tproxy/tun.
this will cause two PROBLEMS:

when using tproxy with fwmark, it will cause needless interception of packet, since it the dns traffic sent by clash-rs could be directly sent out, but now it's intercepted and go back to clash, and will be relayed, which costs.
when using tun with routing table & dns-hijack is enabled, if we can't recognize the dns traffic sent by clash-rs and other applications, it will cause a endless loop, since all the udp dns requests will be caught by dns hijacker.

In my view, there are two ways to solve it:

make feature requests to hickory, push them to make some changes and add device binding and fwmark to the dns stream's options;
impl our own DnsTcpStream & UdpClientStream, and apply the fwmark and bind_to_device action to the udp/tcp socket.

@ibigbug thoughts?

and clash.meta implements dns client by themselves, so to them, this issue doesn't exist

good point.
had a quick look, we could probably impl this Trait https://docs.rs/hickory-proto/0.24.1/hickory_proto/xfer/trait.DnsRequestSender.html for UDP and https://docs.rs/hickory-proto/0.24.1/hickory_proto/tcp/trait.Connect.html for TCP, and do something similar to https://docs.rs/hickory-proto/0.24.1/hickory_proto/tcp/struct.TcpClientStream.html#method.with_bind_addr_and_timeout ?

it's also good idea to patch upstream, i think there are also potential improvements can be done such as https://github.com/hickory-dns/hickory-dns/issues/2070

clash.meta is also intercepting the connection establishment and use that with "github.com/miekg/dns"

this looks like a simple AsyncRead/Write https://docs.rs/hickory-proto/0.24.1/hickory_proto/tcp/trait.DnsTcpStream.html we might hook into this with our own new_tcp_socket helper too

oh, sorry for not noticing the this issue in hickory-dns. Yeah, we can impl it by ourselves, it's a easy job.

clash.meta is also intercepting the connection establishment and use that with "github.com/miekg/dns"

doesn't clash.meta uses "github.com/miekg/dns" only for the types, like dns.Msg? It seems that all the connections used for dns were established via dialHandler = getDialHandler(...) & dialHandler(...)

we somehow do the same in a certain level too https://github.com/Watfaq/clash-rs/blob/446fd937bf1e65e66c3fa8c43b9d697bf57f47ca/clash_lib/src/app/dns/resolver.rs#L196
we do manual message exchange for caching and anti spoofing purposes and use that client to send message to the remote server


WXCContentControl missing pointer hovered event processing

Dear WinObjC Engineers,
WXCContentControl is missing some pointer event processing, including hover; such as those found in WUIIInkUnprocessedInput, e.g.: addPointerLostEvent addPointerHoveredEvent.
Sincerely,
Ed

Thanks for reporting this.

PointerHovered and PointerLost aren't part of the ContentControl's interface, those are only on InkUnprocessed input--can you use those directly.  If you need the Hover functionality, you can rely on PointerEnter and PointerExit functionality to determine when control is hovered over.

@tadam-msft Thanks for the added information. Given that a WXCContentControl is installed onto the visual tree, how to I get the indirection (reference) to unprocessed ink input instance? Once I have that reference (a pointer) then I can call upon it, but I need to know the proper way to reference it within a given node in an object tree.

@edvv, I don't have much experience with the Inking APIs, but as far as I know, WUIIInkUnprocessedInput  doesn't interact with arbitrary (or any) WXCContentControls.  Rather, it is meant to be paired with a WUIIInkCanvas instance.
Can you share more details on what you're trying to achieve?
For normal (non-InkCanvas) Xaml elements/UIViews, if you want to track hover state, you can do something like the following:
[[myView xamlElement] addPointerEnteredEvent:^(RTObject* sender, WUXIPointerRoutedEventArgs* e) {
// Hover-on handling
}];
[[myView xamlElement] addPointerExitedEvent:^(RTObject* sender, WUXIPointerRoutedEventArgs* e) {
// Hover-off handling
}];

You'll also need to remove the subscriptions in your dealloc, so this is a bit more correct:
EventRegistrationToken _pointerEnteredEventRegistration = { 0 };
EventRegistrationToken _pointerExitedEventRegistration = { 0 };
...
__block MyType* weakSelf = self;
_pointerEnteredEventRegistration = [[myView xamlElement] addPointerEnteredEvent:^(RTObject* sender, WUXIPointerRoutedEventArgs* e) {
// Hover-on handling via weakSelf
}];
_pointerExitedEventRegistration = [[myView xamlElement] addPointerExitedEvent:^(RTObject* sender, WUXIPointerRoutedEventArgs* e) {
// Hover-on handling via weakSelf
}];
...
in dealloc:
[[myView xamlElement] removePointerEnteredEvent:_pointerEnteredEventRegistration];
[[myView xamlElement] removePointerExitedEvent:_pointerExitedEventRegistration];

@jaredhms Thank you for your help. I got what I needed, so I'm closing this.


How to get Assimp AIMetadataEntry String value?

Environment

LWJGL version: 3.2.3
LWJGL build #: 13
Java version: 8
Platform: Windows
Module: assimp

Description
Hello, I am trying to read the metadata from fbx files using assimp, because I need to get their correct scale, and it's often incorrectly scaled by a factor of 100. In another issue on the assimp Github, I found that there is the "UnitScaleFactor" property, which should contain the value. In my currently inspecting file, it has type 4, so it should be a string.
How do I read in string values?
My current method (environment with the other types) is
        val metadata = aiScene.mMetaData()
        if (metadata != null) {
            // UnitScaleFactor
            val keys = metadata.mKeys()
            val values = metadata.mValues()
            for (i in 0 until metadata.mNumProperties()) {
                val key = keys[i].dataString()
                val valueRaw = values[i]
                val valueType = valueRaw.mType()
                val value = when (valueType) {
                    0 -> valueRaw.mData(1)[0] // bool
                    1 -> valueRaw.mData(4).int // int
                    2 -> valueRaw.mData(8).long // uint64
                    3 -> valueRaw.mData(4).float // float
                    4 -> { 0 }// todo how do we get a string?
                    5 -> {
                        // aivector3d
                        // todo doubles or floats?
                        val buffer = valueRaw.mData(12*8).asDoubleBuffer()
                        Vector3d(buffer[0], buffer[1], buffer[2])
                    }
                    else -> continue
                }
                println("metadata $key: $valueType, $value")
            }
        }

I do it like this
		var buff = entry.mData(2048);
		int len = buff.getInt();
		buff.limit(buff.position() + len);
		return StandardCharsets.UTF_8.decode(buff).toString();

Don't worry about that 2048 value, it doesn't allocate anything, so you can put anything here (as long as it's longer than your potential strings)

Thank you :)
Now I just need to find out, why "UnitScaleFactor" is a string 😅. It's a double in the source file as well.

Hey @AntonioNoack,
The supported mType values are these:
public static final int
        AI_BOOL       = 0,
        AI_INT32      = 1,
        AI_UINT64     = 2,
        AI_FLOAT      = 3,
        AI_DOUBLE     = 4,
        AI_AISTRING   = 5,
        AI_AIVECTOR3D = 6,
        AI_AIMETADATA = 7,
        AI_META_MAX   = 8;

The value 4 corresponds to AI_DOUBLE, so UnitScaleFactor is correctly represented, it's not a string.


Rethink bookkeeping of PipelineStage per pipeline

In #317 , a PipelineExecutor instance keeps track of a PipelineStage which is reported to the client. The PipelineStage is updated and used not only in PipelineExecutor, but also in the GRPCHandler (instantiated per PipelineExecutor) and relevant code that are part of the pipeline logic.
Currently, the GRPCHandler and relevant code has no access to the PipelineStage stored at the PipelineExecutor. However, the GRPCHandler and relevant code also reports a pipeline stage to the client. This pipeline stage is hardcoded.
We would like to refactor the code so that

the PipelineStage, if reported to the client, is always bookkept at the PipelineExecutor instead of hardcoded.
logic about the PipelineStage is not scattered in multiple places.

Partially addressed: We now maintain the PipelineStage centrally through PipelineExecutor decorators. However, ambiguity still exists in the GRPC client interface. I'm not sure how much value it provides to also fix this.


Revendor kevpar/containerd#fork/master and cri-api v

containerd has moved from k8s.io/cri-api/v1alpha2 to k8s.io/cri-api/v1. Our cri fork also needs to be updated to use the same version in order to be able to build containerd from our fork.

Similar comment that we now use fork/main as the default branch from kevpar/containerd.

I think we should try to get in https://github.com/kevpar/cri/pull/15 then rebase this with the updates to use v1 api

Closing in favor of #40


[Enhancement]: NonDurability Config to Improve Performance

Problem
Databases used for testing are leveraging durability at the cost of performance for no gain given the context.
Solution
Given that this is a testing library, I'd propose that durability is disabled by default and could be added back with something like the below:
        return new TestcontainersBuilder<PostgreSqlTestcontainer>()
            .WithDatabase(new PostgreSqlTestcontainerConfiguration
            {
                Database = "db",
                Username = "postgres",
                Password = "postgres"
            })
            .WithName($"IntegrationTesting_PeakLims_{Guid.NewGuid()}")
            .WithImage("postgres:latest")
            .Durable()
            .Build();

Benefit
Enhanced performance of your tests.
https://shusson.info/post/non-durable-postgres-for-e2e-tests
Alternatives
?
Would you like to help contributing this enhancement?
No

With the current module implementation it is a bit difficult to achieve, it requires a dedicated extension method (to turn it on / off). This will be definitely possible with https://github.com/testcontainers/testcontainers-dotnet/issues/493#issuecomment-1319938591.
We can set the postgresql.conf file f.g. in the meantime with the recently added WithResourceMapping(byte[], string) builder method, before the container and PostgreSQL starts.

I disabled the PostgreSQL durability in the new module. BTW, I noticed you can disable it already with the legacy module approach by using WithCommand(params string[]).


1.19 - Support Chest Boats with Reinforcements

Probably want to utilize the PDC api to avoid having to make huge changes that lets reinforcements apply to entities

Reinforced entities are too difficult to balance, I'm closing this as won't fix.


JBPM-5371: Stunner - move BPMN custom property editors from forms mod…

…ules into bpmn modules

+1

bpmn specific code should ultimately not be in kie-wb-common, but in a jbpm repo. Is it plannend to move this later? @romartin @jlindop

@csadilek Yes, I believe we're planning to move the bpmn code to a different repo. When @romartin migrated the stunner code to kie-wb-common, he mentioned that he'd prefer to keep the bpmn code here for now.

@jlindop ok thanks.


Enhanced the intro/outro usage.  The Pixidefaults inclusion have been…

… decoupled from the Phaser Outro and put into a separate module, prior to this it would not be possible to exclude the UMD wrapper and keep the pixi defaults, which I'm not sure would have been much use to anyone, now you can optionaly keep the pixi defaults.
Also the Pixi intro module has been split into intro/main modules, so it's intro/outro modules can be excluded cleanly without being tied to the body of the Pixi code. Finally the Pixi into/outro exclusion is tied to Phaser's excludes, ie if Phasers intro/outro is excluded so are Pixi's - this could be separated by giving pixi it's own module list but I can't see why anyone would not want to exclude the wrappers from both, they can always generate the Phaser/Pixi modules in separate passes if they want differing wrapping anyway.

:+1:


Remove bazel shutdown on automation/test.sh

What this PR does / why we need it:
dockerized bazel shutdown was failing on several builds:
https://search.ci.kubevirt.io/?search=Usage%3A+bazel+<command>+<options>&maxAge=336h&context=3&type=build-log&name=&excludeName=&maxMatches=5&maxBytes=20971520&groupBy=job
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

FYI @ormergi

/hold
lets see whats wrong with the lanes

/retest

/lgtm

/unhold

/retest

/retest


translating README to english

We've requested a new feature: translate documentation to english (#127 and #774 ). As other developers said, this is important for other developers maintain this opensource project.
My first pull request is related to README. I created README.en.md. My suggestion is create a translated copy for all document files, and also, keep updated these.
If official maintainers agreed with my pull request, I'll translate other documents.

@developer2324

Relate-to: https://github.com/LiteOS/LiteOS/issues/807


System Health "States" report is incorrect -- possibly because of invalid regexp

Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
The UI page /ui/diagnostics/systemhealth shows all zeros for pfstates, pfnat, srcip, and dstip.
I believe this is because the file /var/db/rrd/updaterrd.sh, which is generated from the below code, contains the command egrep -v \"<\\-.*?<\\-|\\->.*?\\->\".
https://github.com/opnsense/core/blob/1472df66fb36c93bd44c3b1857b92fd49cb2c979/src/etc/inc/rrd.inc#L329
Executing this command in the shell results in:
$ /usr/bin/egrep '<\-.*?<\-|\->.*?\->' < /tmp/pfctl_ss_out
egrep: repetition-operator operand invalid

The problem appears to be the use of the lazy match (aka minimal match) operator *?, which doesn't seem to be supported in the FreeBSD grep.
This regular expression is supported in GNU grep, so I speculate that when the updaterdd.sh code was written, OPNSense used GNU Grep, but at some point it was changed to use FreeBSD grep.
To Reproduce

In the UI, navigate to Reporting -> Health -> System
Click on "Show Tables"
See all the zeros under the pfstates, pfnat, srcip, and dstip columns.
In the shell, execute grep pfctl_ss_out /var/db/rrd/updaterrd.sh
See the commands that are used to populate those columns.
Run the command manually, egrep -v "<\-.*?<\-|\->.*?\->"
See the error message and no output.

Expected behavior
I expect the pfstates, pfnat, srcip, and dstip columns to have non-zero data.
Describe alternatives you considered
I considered installing GNU grep on my system, but I don't know the FreeBSD or OPNsense package infrastructure well enough to do this.
I briefly considered fixing the regular expressions, but I don't know exactly what you're looking for in the pfctl output, so I can't fix the expression to find it.
Version
OPNsense 22.7.10_2-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

FreeBSD 13 changed grep utilities from GNU to BSD... Can you try 49c7402?
# opnsense-patch 49c7402

It does require giving RRD backend a full recycle, best to do a reboot at a convenient time.
Cheers,
Franco

Will add this to 22.7.11 although final feedback from reporter is missing. Works on my end now anyway...


Report found problems as they are returned instead of collecting

This fixes the problem where mima check in the Akka build would run out of memory (with 2GB heap). Akka has many artifacts and checks BC between quite a few minor versions.

Yes please :) LGTM

Anyone want to review? Otherwise we'd like to merge as problem surfaced again in different project

Ping @2m


Fetch msg from server

This commits "add a js script" and "made name change" should not show up in this PR. Would you please rebase the latest master to see if they are gone?
And a tip is, I think it's better to checkout to master and pull before checkouting a new branch.


My GFW design improvements

Improves the design of the My GFW pieces, like the subscriptions list.

Deploy whenever you want :)

Thanks! :100: :star2:


"Enable PSI Icons" results in broken icons in Randomness plugin

Describe the bug
Using both Atom Material Icons and Randomness (of which I am the developer) in IntelliJ's New UI results in broken icons in the Randomness plugin. In the "Broken icons" screenshot below, observe the missing horizontal and vertical line in each icon.

Correct icons
Broken icons

Before reporting this issue, I tried to make sure this is not a bug in Randomness. The only code relevant for icons is the Icons file, but even after removing most of the code there (including the RadialColorReplacementFilter), and stripping my code down so that it essentially just directly displays an icon, the issue persists. Therefore, I am convinced this is an issue with the Atom Material Icons plugin.
To Reproduce

Use IntelliJ 2023.3 or newer.
Use Atom Material Icons v94.0.0 or newer.
Use Randomness v3.0.0 or newer.
Enable the New UI.
Press Alt + R (or ⌥R) while no modal dialogs are open.

Disabling "Enable PSI Icons" in the Atom Material Icons settings and then restarting removes the issue. Re-enabling that setting and then restarting brings back the broken icons.
Expected Behavior
See images above.
Environment
IntelliJ IDEA 2023.3 (Community Edition)
Build #IC-233.11799.241, built on December 2, 2023
Runtime version: 17.0.9+7-b1087.7 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Linux 6.5.0-5-amd64
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 16
Registry:
  ide.experimental.ui=true
Non-Bundled Plugins:
  com.fwdekker.randomness (3.2.0)
  com.mallowigi (94.1.0)
Kotlin: 233.11799.241-IJ
Current Desktop: KDE

Screenshots
See images above.

Awesome, thank you! :-)


update devtool link since repo was migrated

hm, I don't see my changes on https://deploy-preview-1195--react-native.netlify.com

This doesn’t reflect on the docs site yet; is there something extra that has to be run that publishes changes to the site?

Looks like it was only updated for the @next and not the current version, updated here: https://github.com/facebook/react-native-website/pull/1206


LINK-1805 | Display only mandatory signup fields

Description
We want to collect data only for the mandatory fields so hide all the signup fields which are not set to be mandatory
Closes
LINK-1805

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (5707e6d) 0.00% compared to head (96cec3a) 99.60%.

Files
Patch %
Lines

src/domain/signupGroup/validation.ts
90.90%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff            @@
##           main     #321       +/-   ##
=========================================
+ Coverage      0   99.60%   +99.60%
=========================================
  Files         0      579      +579
  Lines         0     9717     +9717
  Branches      0     2166     +2166
=========================================
+ Hits          0     9679     +9679
- Misses        0       33       +33
- Partials      0        5        +5

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


GitLab 101:this is an lssue

James Madison
James Monroe

[ ]  item 1
[ ] Item 2
[ ]  Item 3

it is done .


Write a Kotlin program to convert days to weeks

Description
Write a Kotlin program to convert days to weeks
1 week = 7 days
Input  : 35
Output : 5

How to contribute

Save the solution in program/ConvertDaysToWeeks.kt file
Add ConvertDaysToWeeks.kt file in convert-days-to-weeks folder

!assign


Increase analysis range to 1200 frames + extra improvements

The max of 3 seconds in 60 FPS previously was going too quick.
Known issues: frame rate and graph does not start and end with the video. This is an old bug and was less noticeable on 180 frames previously.
Build for testers: https://drive.google.com/file/d/13UOVRN-ujap_FK3vQE-vC8fff3YR4ZqK/
Demo: https://youtu.be/JVG441SJ7_w
New features:
Framerate text in white:

Fixed fullscreen bug.

Smaller graph fonts:

Draw lines and triangle before framerate plot:

Center frametime:

Fixes #96
Fixes #74
Fixes #36

Thanks for the contribution, but unfortunately this is not enough to fix the issue. You edited the QML configuration, i.e., the "Frontend" of the application correctly, but there is still the need to actually adapt the backend (the C++ code) as well to include this functionality.
I currently save the computed data in a so-called "model", and I have a FramerateModel and a FrametimeModel which have to be adapted as well. It looks like this would be enough to make it work, but as it's absurdly non-intuitive to write GUI Tests for QML you would need to build the application yourself and test it before I could accept this pull request.
Feel free to follow the DEVELOPMENT.md guidelines to compile trdrop locally.

@cirquit Thank you, I will now build and test my changes before submitting a new PR 😅 Will push changes to cpp_inter once I confirm that the changes do indeed work.

@cirquit On the subject of building locally, I don't see 8.1.0 in 5.12.2 listing.

and it's only under Dev Tools.

@cirquit On the subject of building locally, I don't see 8.1.0 in 5.12.2 listing.

and it's only under Dev Tools.

Should I be installing both?

So to be completely honest, I kind of remember that there were some issues with using the 7.3.0 version, but I can't remember which. Please try with the 8.1.0 MinGW, I hope that the development guidelines are up to date with that.

Made PR Draft until I can build locally.

@cirquit I am now able to build the software locally on my PC but can't open the export window even without my changes.

Ignore previous comment. was building with 7.3.0, 8.1.0 works.
Initial Result: http://media.discordapp.net/attachments/353705816282628096/867788928147783680/export.mp4
Had to made int8 to int16 to allow for larger values than 255.
https://github.com/cirquit/trdrop/pull/97/commits/42a914519256c5aa1db9add943d774ccfed75466#diff-446952cbcef00f34187419fe805d2c87f7ad67fc7ea56aabffc9649da7681582

@cirquit Ready for Review.

Draw lines and triangle before framerate plot:

@cirquit How would I go about shipping builds for testers? Not sure what to do with installer template.

Fixed fullscreen bug.

Thanks a lot for the contributions! I will try to find some time on the weekend to check out all the changes you made and make new minor release.

I actually remembered why I fixed the time to a maximum of 180 frames - this was because if we enable the graph centering, we are saving half of that frame in a buffer, which leads to a memory explosion (which was for my laptop at around 90 frames). Did you notice any of these issues?

@cirquit Nope, at least on Windows, it goes up to about 350mb max at 1080p although I haven't increased the cache size of 30 frames yet.


Report's Language

Hello,
I am trying to change language at yearly report. It is like Januari, Pebruari, Maret. I want it as like English. I have tried in many ways. But how to solve it?

Hi @salihanmridha,
You may change it within this file :
https://github.com/nafiesl/free-pmo/blob/master/app/helpers.php#L86-L102
I think i miss this one for translation. I will update this to use laravel lang, as soon as i can.
Thanks for informing this. :+1:

Yeah, I just did it few minute ago. :) thanks :)

Yes, sure. Thanks. :)


[adobepass] Add support for Frontier MSO

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[ ] New extractor
[x] New feature

Description of your pull request and other information
Adds Frontier MSO. Resolves issue #11867

The MVDP name is now frontier_auth-gateway_net
To get to the login page you are also redirected multiple times. I've been attempting to work with this in the code base, but have been unsuccessful.
I have credentials we can test with if someone is willing to help,


LTD-3186-Summary-Template

Ideally, if they haven’t filled in the consignee/third party section we shouldn’t show it at all in this final check your answers summary.
SS shows third parties section is not filled so it is not showing up:

Workflow

[x] Ticket exists in Jira https://uktrade.atlassian.net/browse/LTD-3186
[x] Jira ticket has the correct status.

Reviewing help

[ ] Explains how to test locally, including how to set up appropriate data
[x] Includes screenshot(s) - ideally before and after, but at least after

Housekeeping

[ ] Added all new environment variables to Vault.
[ ] Cleaned up old feature flags
[ ] Upgraded any vulnerable dependencies.
[ ] I have updated security dependencies
[ ] Python requirements have been re-compiled.
[ ] Frontend assets have been re-compiled.

Merging

[x] This PR can be merged by reviewers. (If unticked, please leave for the author to merge)

As this is adding a bit of branching logic to the template, do you think there's any test coverage that could be added? I see there's quite a lot of test_summary or test_summaries tests but don't know if any of them actually test the html rendered?


Update client to consume latest Komoju API

This is a result of running bin/generate-client
Also bumps the version.

If you have time, @k2nr can you please have a look at this? Thanks

Thanks, LGTM :+1:


feat: Cache all the kernels. No Akmods Bootstrap

Thank you for contributing to the Universal Blue project!
Please read the Contributor's Guide before submitting a pull request.

Seems odd that the args flip flop... first last then first

Something interesting.
Asus doesn't provide kernel headers:


[BUG] error when importing TBATS

Describe the bug
when running the code:
from sktime.forecasting import tbats
I get the error
ImportError: cannot import name '_centered' from 'scipy.signal.signaltools'
To Reproduce
from sktime.forecasting import tbats
Versions

Please run the following code snippet and paste the output here:
Python dependencies:
pip: 21.0.1
setuptools: 52.0.0.post20210125
sklearn: 0.24.2
sktime: 0.8.1
statsmodels: 0.12.2
numpy: 1.21.6
scipy: 1.8.1
Cython: 0.29.28
pandas: 1.2.4
matplotlib: 3.3.4
joblib: 1.0.1
numba: None
pmdarima: None
tsfresh: None

can´t reproduce with sktime 0.12.0 (python 3.8, windows), the reported sktime version is a heavily outdated version 0.8.1 which is probably not compatible with scipy 1.8.1 and no longer supported.
Suggest update to sktime 0.12.0, @psteningNHS


Fix renderer gsubbing

Fix the renderer view name conversion when using double quotes.
Problem:
"editoria\u0001_\u0002ext"
"counci\u0001_\u0002ditoria\u0001_\u0002ext"

Fixed:
"editorial_text"
"council_editorial_text"
"council_result_table"

Also updated the tests, to catch this.
https://jira.dev.bbc.co.uk/browse/CONNPOL-2870

@Integralist, ready for review.

Looks good @samfrench :cake:

@Integralist, not sure I will have to update alephant-publisher-queue or alephant-publisher-request, as they don't specify a renderer version in their gemspec. It looks like we're all done now.

@samfrench all good then :-) although I'd personally take the chance to try and anchor down some of the versions (but I'm not fussed at the moment, I'll leave it up to you to decide if you want to do it)

I did speak to @leostaples about that. At the moment, we would rather use the latest versions, and only lock down if it becomes a problem. We'll see how it goes.


Addded Scala kore parser and Kore2K translator and integrated them into K

@dwightguth only the last commit is relevant; the rest are just history imported from the kore repository.

@dwightguth I think I've addresses all your recommendations.  Sorry for not understanding what you meant earlier;  I had just woken up.

this is good enough, so I approved. Note however that what I actually suggested was to make TextToKore's interface be static. (ie, in scala, to say object TextToKore { def apply(...) = ... }


Bug in example workflow

The workflow is not valid. .github/workflows/openhands-resolver.yml (Line: 8, Col: 3): Error calling workflow 'All-Hands-AI/openhands-resolver/.github/workflows/openhands-resolver.yml@main'. The workflow is requesting 'contents: write, issues: write, pull-requests: write', but is only allowed 'contents: read, issues: none, pull-requests: none'

Hi! Could you make sure that you followed step 4 here and gave the right permissions?
https://github.com/All-Hands-AI/openhands-resolver?tab=readme-ov-file#using-the-github-actions-workflow

Yeah, unfortunately that doesn't work because we're using a personal access token to make the commits (not the GITHUB_TOKEN provided by the workflow directly). I wasn't able to figure out how to make the commits with GITHUB_TOKEN, but if anyone figures out a way to do that I'd be happy to have a PR. Anyway, I'll close this for now!


TODO: 5.9 Require a password to wake the computer from sleep or screen saver

test new code

commenting code out. this should be a configuration profile.


stop using beta.kubernetes.io/os  and arch

https://github.com/openyurtio/openyurt/blob/daa3acd2cb44d4118c9d8ee9633450f63e95a020/pkg/controller/nodelifecycle/node_lifecycle_controller.go#L68-L73
See https://github.com/kubernetes/kubernetes/issues/89477, https://github.com/kubernetes/kubernetes/issues/89477#issuecomment-603911496.
Kube plan to remove support in next releases(maybe v1.28).

@pacoxu Thank you for raising issue. node life cycle controller will be removed in OpenYurt v1.2, and the job is under working.

It sounds like there is not need to update here.
Thanks for confirmation.

It sounds like there is not need to update here. Thanks for confirmation.

@pacoxu yes, the newly added controller that provide autonomy functions will work together with native NodeLifeCycle controller in Kube-controller-manager.


Make getting circuit version more stable

When we determine the version of serialized circuits that we should use for a given version of zero_bin, we use the version of evm_arithmetization  that is set in Cargo.lock. This is perfect as a way to version serialized circuits, but the way we do this at runtime is not the best for distributing a binary for others to use.
Currently this is the process:

At compile time, we get the path to the root of the repo by reading the env variable CARGO_MANIFEST_DIR and bake this path into the binary.
At runtime, we look for Cargo.lock in this directory and attempt to read the version of evm_arithmetization.
If we can't find Cargo.lock or a version of evm_arithmetization inside the file, we default to the NA version.

While the above should work fine in development settings, this is probably going to be an issue once we start building and redistributing the zero_bin binary since it's going to attempt to look for Cargo.lock in the location that it was built in.
Ideally instead, if we can read the version set in Cargo.lock at compile time and bake the version string into the binary, this is probably the most optimal solution. However, doing this requires using a proc macro which (at the moment) requires a sub-crate that only contains proc macros and nothing else.
While we could create a sub-crate just for this, I also noticed that no crate exists for reading a project's Cargo.lock at compile time, which I find a bit surprising. When I have a bit of free time, I'm going to attempt to create a public crate to do this, since I think there are probably a lot of other projects that could also use this.

Update: I'm going to take the time to write a generic library to query Cargo.lock at compile time. Might not be ready for a while, so the proper fix might take a bit.

So I think we can close this issue once #310 is merged since it switches circuit versioning over to be kernel hash based.

Agreed 👍🏼


chore: generalize cache

This PR removes hardcoded values that are specific to mathlib4 from Cache, using a JSON for config purposes instead.

Actually, let me hardcode some templates for the config file first

This pull request has not seen any activity for quite a while, and it does not pass all CI checks. For these reasons, I am closing it now.
If you are still interested in getting this PR merged, please re-open the PR, update the branch, and make sure that all CI checks pass, Please label the PR with awaiting-review when ready.


Initial implementation

Live preview here: https://wip--toml-io.netlify.app/en/

You found that amazingly fast! 😅Those were just bullet point notes to myself, I'm going to do a better job of explaining soon, promise!

@cannikin Yay! Super excited to see you working on this again! ^>^
Couple of questions:

Dropping sections (specifically, the final 3) would be OK with this change, correct?

I'm thinking of moving the English specification out of the README, and wondering how that would interact with this.

Can we drop the "1.0" from the logo in the navbar? I find it confusing since it shows up even when looking at 0.5.0 or others. Plus, it'll be another thing to update when we do a 1.1. ;)

Dropping sections (specifically, the final 3) would be OK with this change, correct?

Do you mean the last three sections on the spec itself? Comparison, Get Involved and Wiki? Those would be safe to remove yes!

Can we drop the "1.0" from the logo in the navbar?

I thought that would be used to show what the current, latest official release is (I've got to update my build script to actually pull the latest version, instead of hardcoding "1.0" in there).
I'm going to tweak the "Version" and "Language" nav selectors so they actually show the version/language you're currently viewing. Do you think that would help with the ambiguity of that version next to the logo?

Do you think that would help with the ambiguity of that version next to the logo?

Maybe? Some part of me feels like this is over-engineering but I'm speaking with definitely-not-an-expert-at-this eyes here.
Plus, https://rachelbythebay.com/w/2013/06/05/duck/ comes to mind whenever I'm looking at a webpage that someone else is working on, so I'm very wary of being too nitpicky -- feel free to call me out on that.

haha No problem! Check it out now and see how that feels. The Version and Language dropdowns show whatever you're currently viewing and the version next to the logo is always the latest official (english) spec version. Maybe I can even sneak in little "latest" label in there somehow...

I still prefer not having any text beside the logo, but this works for me. :)

@cannikin is there anything more to be done here? Can we merge this in and iterate off that?
I'm kinda itching to just retitle this PR to "initial implementation" and merge it. We don't have to get this perfect on the first try (perfect is the enemy of good enough) and it's probably better to have something merged in to iterate on together. :)

Yep, I've been waiting to hear from everyone else about feedback, but I've been ready to go for years! 😃
Anyone know where the domain and DNS is? Does @mojombo still own that? We could deploy to Netlify and have it live there, or figure out some way to turn the static content generated by yarn build into GitHub Pages?

This just needs to merge into master IIUC, and master was hooked up to toml.io (via Netlify) by @mojombo last I checked. :)

In that case, let's get this thing live! MERGING

https://toml.io !

It's live: https://toml.io/en/ :)

@cannikin I think you can also see the security advisories on this repository -- lemme know if you're updating the dependencies or would prefer that I do that. :)

If you're okay to do it going forward that's fine by me! Thanks for taking care of those outstanding ones, I forgot all about them!

Actually, could you do this initial round -- I should go to bed (it's 3am!). :)

No problem, I'm on it! Thanks for the ones you already did! :)

@pradyunsg Okay I updated all dependencies and cleared all the existing dependabot alerts, but now I've got two new ones instead. 😒 Since those are dependancies of dependancies is my only hope that I add those directly to package.json and hope they satisfy the requirements of the other packages that need them? And if not, is there any hope for satisfying those warnings? Other than just dismissing them? haha

(narrator voice) he didn't sleep.
These two look like RCE issues -- which isn't a big deal for us, since they're used during development or deployment off master, and the website is a static website anyway. I say it's fine to ignore them for now. We can come back to them later, if we find them annoying. :)


Trojan:Win32/Wacatac.B!ml detected in fga_0.6.2_windows_386.tar.gz

The trojan detected while downloading windows 386 version of tar. I am using Windows 11 Pro

Detected : Trojan:Win32/Wacatac.B!ml
Status : Quarantine failed
This threat or app might not be completely remediated.
Details : This program is dangerous and executes commands from an attacker.
Affected Items
containerfile: C:\Users\arul\Downloads\fga_0.6.2_windows_386.tar.gz
file: C:\Users\arul\Downloads\fga_0.6.2_windows_386.tar.gz->(GZip)->fga.exe
webfile: C:\Users\arul\Downloads\fga_0.6.2_windows_386.tar.gz|https://objects.githubusercontent.com/github-production-release-asset-2e65be/649913371/e06ff406-7140-43db-ab6f-ae18e9493408?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241208%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241208T120117Z&X-Amz-Expires=300&X-Amz-

The detection by Windows Defender appears to be a false positive. To proceed safely, please follow these steps:

Verify the Integrity of the Binary:

Download the binary's SHA256 checksum from the official release page: OpenFGA CLI Releases.
Compute the checksum of the downloaded file and compare it with the one provided:

On Windows, you can use PowerShell:Get-FileHash fga.exe -Algorithm SHA256

Ensure the computed checksum matches the one from the release page.

Add an Exception to Windows Defender:
If the checksum matches, you can add the file or folder to your antivirus exclusion list:

Open Windows Security > Virus & threat protection.
Scroll down to Manage settings > Exclusions > Add or remove exclusions.
Add the folder containing fga.exe or the binary itself.

Next Steps:
To address this issue for all users, I think, we should sign the binary with a trusted code-signing certificate. Signed binaries are less likely to be flagged by antivirus programs.


Code generation should use File or Path parameters instead of String

The code has changed much since the time of creation of this issue, and current API looks OK.


How can we optimize the number of components for NMF?

Dear Junhao,
In the given example, there are two parameters: num_component_min and num_component_max. However, I didn't find an option specifically for tuning between these values. Does SOPNMF offer a solution for determining the optimal number of components, similar to the Reconstruction Error and Reproducibility methods mentioned in the study by Sotiras, A., Resnick, S.M., and Davatzikos, C. (2015) titled 'Finding imaging patterns of structural covariance via non-negative matrix factorization' in Neuroimage, 108, pp.1-16?
Thank you,
Jian

Hi,
Sorry that I did not see this before.
SOPNMF did not optimize this hyperparameter during modeling. Instead, you should define this a prior. Then you can use some other metric to choose the optimal C. For example, you can run the model from C=2 to 10, and then perform split-sample analysis and calculate the reproducibility index to find the peaking points.
Thanks

Hi Junhao,
Thanks for your explanation.
Best


v3

This is a proposal I've made long time ago, and move it as a separate repository until this one would be created: https://github.com/zf-fr/hydrator
Some things should likely be changed, but from my memories the new hydrator was more flexible, much more efficient.
If someone would like to take it and submit a PR here. Maybe the awesome @weierophinney ?

The description looks really interesting. :+1: for performance boost and benchmarks. This should be moved to this repo.

+1 for @bakura10 hydrator

I'm swamped currently; if somebody would be willing to create a PR with the changes proposed by @bakura10 , that would be fantastic. What I will evaluate is:

Preservation of backwards compatibility and/or documented, clear migration path. These are crucial!
Demonstrated improvement. Likely this will require two pull requests, one against current master with benchmarks (see the event manager and service manager repositories for examples using the athletic library), and the pull request with the updates proposed by @bakura10 , so we can compare objectively.
Documentation. New features and capabilities are great. But if there's no documentation, how will developers know how to use them?

With those guidelines: any takers?

Thank you @weierophinney , I definitely do'nt have time for doing that and on our current project we are using manual hydration so there is no reason for me to invest more time currently on that, but I'll be happy to review if anyone take my PR or have any questions on the chnages I've done.

@weierophinney I add the benchmarks to master and develop branch. I use the benchmarks from @bakura10 repo and update the classes to work with phpbench.

No aggregate/event-based hydrator?

@robob4him

No aggregate/event-based hydrator?

We've had the AggregateHydrator, which is event-driven, for quite some time; perhaps you missed it?

@weierophinney
I think he means the proposal from @bakura10, because there is no aggregate/event-based hydrator included.

I've been doing iterative improvements to the develop branch in preparation for a 3.0.0 release. The main changes:

Usage of scalar typehints for parameters and return values, object typehints for parameters, and nullable typehints where appropriate. This includes formalizing passing context data/objects to strategies and naming strategies; with nullable types, scalar types, and object types, we can do this properly instead of by convention.
Moving the various *EnabledInterface definitions to the appropriate subnamespaces.
Standalone plugin manager, for use when zend-servicemanager is not available or desired.
Renaming hydrators to include the Hydrator suffix (though we will keep the originals around as extensions of the new classes, each marked deprecated).
More documentation (though there's still more to be done, and @froschdesign has indicated he's working on it).

From what I can see, the bulk of the performance optimizations were around the hydration and extraction context, which revolved around creating a reference to an object containing the object and data being hydrated, and the object from which extraction was occurring. The changes I made to the interfaces essentially nullify the need for that approach.
As such, I'm closing this one, as we're close to completing the changes for v3. We can do additional iterative improvements afterwards.


Remove heavy examples and demo data from npm package distribution

Create a .npmignore file avoid to pack hevy examples in the npm package distribution.
Without this file, npm package is 250 Mb,
With this file, it's only 3.5 Mb

Looks good to me! thanks!


Crashing on division by zero

Library Version: 7.1.5
My app is crashing due to a division by zero when trying to reload an array of dates.
I'm using the function reloadDates and i'm sending two equal dates 2018-05-02 22:36:03 UTC and the lib crashes inside the function
indexPathOfdateCellCounterPath(_ date: Date, dateOwner: DateOwner) -> IndexPath?

when trying to perform a division by zero.
I've attached some images to better illustrate the situation.

@patchthecode I've investigated a little further and found what was causing the problem.
I was fetching the data that I will display in the calendar and trying to reload the dates that had some content to show in viewWillAppear function. But for some reason, at this point the calendar didn't loaded itself yet, because I've printed thenumberOfItemsInSection  and was returning 0 for all sections, that's why the 'division by zero' error. I've moved this function the fetch the necessary data to viewDidAppear function and all worked flawless.

thanks. for letting me know.
it that case its not that serious. I'll just add a guard check there then

https://github.com/patchthecode/JTAppleCalendar/commit/8357f49a4a9bd21c97332ec378d4bf2fb68a19de
closing issue.
guard added to master branch


[BUG] rwx integration tests failing on arm64 set up

Describe the bug
rwx integration tests failing on arm64 set up in nightly test run with longhorm master image.
https://ci.longhorn.io/job/public/job/longhorn-tests-arm64/71/

This is impacted by https://github.com/longhorn/longhorn/issues/2111.

This is impacted by https://github.com/longhorn/longhorn/issues/2111.

@khushboo-rancher , We would also like to see this issue fixed, Is it within your scope of next release?

@odidev Yes, it is in the scope for v1.1.1 (next release)

This issue is fixed and we don't observe this issue in our nightly test https://ci.longhorn.io/job/public/job/ubuntu/job/arm64/job/longhorn-tests-ubuntu-arm64/173/testReport/tests/test_rwx/


update to preview5

Update to dotnet 5.0
now needed to install curl
contract script hashes updated
consensus was moved to a plugin and needs AutoStart flag

I added the ApplicationLog plugin for 2 reasons;

I extended the contract deploy tests. We previously asserted on a txid, but that is the wrong approach. The presence of a txid only indicates that the transaction was relayed, not that it was successfully executed. We can only get the transaction execution state via the applicationlogs
the ApplicationLog had changes that we didn't catch previously (command name changed, return format changed)


Add Smart-Parens Like functionality to the web repl

Playing with the cljs part, one could add the smart parens functionality to the code-mirror based editor.
This completely independent from the scheme interpreter's inner mechanics, and should be pretty much straight forward for clojurescript guys.
Please head over to scheje.slack.com so we can discuss this further.

Closed as transferred to turbopape.github.io


Worked on functionality for NoAuthClient, added tests and worked in auth.py

Hi @danicarrion ,
Can you check out my work and make sure it makes sense!
Thanks

:+1:


quick-lint-js: 2.6.0 -> 2.8.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/quick-lint-js/versions.
meta.description for quick-lint-js is: "Find bugs in Javascript programs"
meta.homepage for quick-lint-js is: "https://quick-lint-js.com"
meta.changelog for quick-lint-js is: ""
Updates performed

Version update

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 2.8.0 with grep in /nix/store/n5skrd8bs7jps65r9i5dq1x9rb73wy18-quick-lint-js-2.8.0
found 2.8.0 in filename of file in /nix/store/n5skrd8bs7jps65r9i5dq1x9rb73wy18-quick-lint-js-2.8.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
quick-lint-js

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/n5skrd8bs7jps65r9i5dq1x9rb73wy18-quick-lint-js-2.8.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A quick-lint-js https://github.com/r-ryantm/nixpkgs/archive/e496f6c210d8e55aab4868987a9b4e3360813f99.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/n5skrd8bs7jps65r9i5dq1x9rb73wy18-quick-lint-js-2.8.0
ls -la /nix/store/n5skrd8bs7jps65r9i5dq1x9rb73wy18-quick-lint-js-2.8.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

quick-lint-js

Maintainer pings
cc @ratsclub for testing.

nixpkg-review NixOS Linux x64 build went fine
1 package built:
quick-lint-js

when trying to run the program I get
./results/quick-lint-js/bin/quick-lint-js: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

not sure how to test it, maybe @ratsclub you can check it?

I don't think the issue is related to this PR, let's retry test version on lastest master
@ofborg build quick-lint-js quick-lint-js.passthru.tests

Looks like this is https://github.com/NixOS/nixpkgs/pull/108496#issuecomment-1192083379

https://github.com/NixOS/nixpkgs/pull/189943


dynamic Image

please make the coupon image can be pulled from url (image data), not a static image (image file name)

Hi,
You can find answer in this thread(Issue#4)~


Add PSR-16 dependency

So, we support PSR-16

No need to resubmit acually, see https://github.com/symfony/symfony/pull/32004


Add peaks merging

Add peaks merging, merge low intensity peaks into high intensity peaks within a small ppm tolerance (look at hecklib for inspiration)

This maybe also ties into #10 a bit.

Fixed by allowing mzdata.


Generating types in python format

Is your feature request related to a problem? Please describe.
I was following the tutorial for generating the database types for supabase here , so I thought normally this command can be adapted for the python in order to generate the corresponding types in python objects
Describe the solution you'd like
to include the command
npx supabase gen types python  --project-id "$PROJECT_REF"   --schema public > types.py  should generate the types in the python.
Describe alternatives you've considered
converting the types generated in ts into py ;) .
Additional context
N.A

Could you please assign this issue to me? I find it very interesting t. Also, could you guide me on anything I need to know to get started? Any specific instructions or resources would be greatly appreciated

thanks @Mohmn  for the response . my bad for late response but yeah I understood we will have to define the generator types and the wrapped call functions in order to pythonic format.

python types would actually be incredible, having a built in almost-ORM? with supabase would be wild

Please, this would be amazing.

Please, this would be beyond amazing.

Wrote a small implementation for Python here:
https://github.com/nikita-olechko/Supabase-Table-Type-Definitions-In-Python/blob/main/README.md
Far from comprehensive, but works.

https://github.com/supabase/postgres-meta/pull/808

Any updates on this ?

If it could get testing guidance on my PR I'd continue my work.

You pr would add a new command to supabase cli ?

No it just adds Python type generation.

No it just adds Python type generation.

So it's a standalone script .py ?

... no. It's been a while but as I remember it the CLI generates types and has a language flag. I'm adding Python as a language.

To anyone else reading, it's really not that hard to add a language. I ran the existing examples through ChatGPT to get the gist of it, copied the existing code and tests from the most semantically similar language and manually converted the tests to Python. Then I just practiced test driven development to iterate. That's why I need a supabase expert to review my tests and help me cover all the cases.

Also my pr runs right now for what it's worth, you can use it. It just might produce wrong code, but close enough hopefully at this stage to manually fix. You could provide broken cases back up to the pr to assist.

... no. It's been a while but as I remember it the CLI generates types and has a language flag. I'm adding Python as a language.
Probably your confusion is me answering no to your question about adding a new CLI command. It's not a new command, it's the same as always, it's just an option to that command, specifically what language to generate. That option already exists, I'm just adding a new value to its enum, Python.

You got it! That "no" made me fantasticate ...
Now it's extremely clear. Thanks for it

It'd be great to see this added!


Create credentials for Google Recaptcha

We need to have credentials for each env.
Login to create one:
https://www.google.com/recaptcha/admin

credentials for dev and demo has been created.
@ephor @kiurchv  Feel free to ask it when needed)


Fix broken link in README

Thanks a lot @bernhardschaefer. So at least someone is reading my posts carefully ;-)

;-)