[webview_flutter][iOS] didChangeMetrics() triggers on overlaying widgets

Minimal reproducible example

code

import 'dart:io';

import 'package:flutter/material.dart';

import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter WebView Issue Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter WebView Issue Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver{
  bool _showWebView;

  @override
  void initState() {
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
    _showWebView = true;
    WidgetsBinding.instance.addObserver(this);
    super.initState();
  }

  @override void didChangeMetrics() {
    print("didChangeMetrics event fired in HomePageState");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Stack(
        children: <Widget>[
          Positioned.fill(
            top: 0,
            left: 0,
            child: Container(
              color: Color.fromARGB(255, 0, 255, 0),
              padding: EdgeInsets.all(100),
              child: (_showWebView) ? WebView(
                initialUrl: 'https://google.com',
                javascriptMode: JavascriptMode.unrestricted,
              )
              :
              Container(
                color: Colors.white,
                child: Center(
                  child: Text(
                    'Container or other widgets as child\ninstead of webview',
                    style: TextStyle(
                      fontSize: 20,
                      color: Colors.black,
                    ),
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
          ),
          MyFloatingWidget(),
        ],
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          setState(() {
           _showWebView = !_showWebView;
          });
        },
        child: Icon(Icons.refresh),
        backgroundColor: Colors.green,
      ),
    );
  }
}

class MyFloatingWidget extends StatefulWidget {
  const MyFloatingWidget({Key key}) : super(key: key);

  @override
  MyFloatingWidgetState createState() => MyFloatingWidgetState();
}

class MyFloatingWidgetState extends State<MyFloatingWidget> with WidgetsBindingObserver{

  List<int> _previousTopAndLeft;
  List<int> _requestedTopLeft;
  Offset _dragStartFingerOffset;

  int _didChangeMatricsEventCount;

  @override
  void initState() {
    _previousTopAndLeft = [200, 200];
    _requestedTopLeft = [200, 200];
    _didChangeMatricsEventCount = 0;
    WidgetsBinding.instance.addObserver(this);
    super.initState();
  }

  @override void didChangeMetrics() {
    setState(() {
      _didChangeMatricsEventCount++;
    });
    print("didChangeMetrics event fired in FloatingWidgetState");
  }

  @override
  Widget build(BuildContext context) {
    return Positioned(
      left: _requestedTopLeft[0].toDouble(),
      top: _requestedTopLeft[1].toDouble(),
      child: GestureDetector(
        behavior: HitTestBehavior.opaque,
        onPanStart: (details) {
          _dragStartFingerOffset = details.globalPosition;
        },
        onPanUpdate: (details) {
          List<int> _newTopLeft = [_previousTopAndLeft[0] + (details.globalPosition.dx.floor() - _dragStartFingerOffset.dx.floor()), _previousTopAndLeft[1] + (details.globalPosition.dy.floor() - _dragStartFingerOffset.dy.floor())];
          //Some other code to maintain the floating widget within visible area
          setState(() {
            _requestedTopLeft = _newTopLeft;
          });
        },
        onPanEnd: (details) {
          _previousTopAndLeft = _requestedTopLeft;
        },
        child: Container(
          width: 100,
          height: 100,
          decoration: BoxDecoration(
            color: Color.fromARGB(255, 255, 100, 100),
            border: Border.all(color: Color.fromARGB(255, 130, 130, 140)),
            borderRadius: BorderRadius.all(Radius.circular(10)),
            boxShadow: [
              BoxShadow(
                color: Color.fromARGB(255, 200, 200, 210),
                spreadRadius: 3,
                blurRadius: 8,
                offset: Offset(0, 0),
              ),
            ],
          ),
          child: Center(
            child: Text(
              'Matrix Changed :\n' + _didChangeMatricsEventCount.toString(),
              style: TextStyle(
                fontSize: 16,
                color: Colors.black,
              ),
              textAlign: TextAlign.center,
            ),
          ),
        ),
      ),
    );
  }
}

flutter doctor

[✓] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-x64, locale en-IN)
    • Flutter version 2.0.4 at /Users/ambatech/Documents/flutter
    • Framework revision b1395592de (9 weeks ago), 2021-04-01 14:25:01 -0700
    • Engine revision 2dce47073a
    • Dart version 2.12.2

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/ambatech/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (2 available)
    • iPad Pro (9.7-inch) (mobile) • 96ADC6A6-0DF9-4B35-A3B9-D4657C8346A5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-1 (simulator)
    • Chrome (web)                 • chrome                               • web-javascript • Google Chrome 91.0.4472.77

Issue

Dragging the overlying widget to green area unnecessarily fires didChangeMetrics() event in both FloatingWidget and UnderlyingWidget.
Happening only in iOS and when widget is overlaid on the webview.
Behaviour is normal when it is overlaid on any other widgets.
didChangeMetrics() event fires only when it is partially over webview.
When the widget is fully in green area or fully in webview then event not firing

Expected behaviour

While dragging the overlaying widget didChangeMetrics() should not unnecessarily fire in FloatingWidget as well as UnderlyingWidget.

This whole thing works fine in Android.
Similar issues ?
#50420
#58659
#53490
https://user-images.githubusercontent.com/60609139/120477970-fae3ad80-c3c9-11eb-9420-50df3c355dfe.mov

Thanks for the detailed report and code sample. I see the same behavior using latest stable.
Performing hot restart...
Syncing files to device iPhone 12 Pro Max...
Restarted application in 392ms.
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired
flutter: didChangeMetrics event fired

 flutter doctor -v
[✓] Flutter (Channel stable, 2.2.1, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.2.1 at /Users/dhs/documents/fluttersdk/flutter
    • Framework revision 02c026b03c (4 days ago), 2021-05-27 12:24:44 -0700
    • Engine revision 0fdb562ac8
    • Dart version 2.13.1

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

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

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

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 91.0.4472.77

• No issues found!

@darshankawar
Thanks for quick replay...
I tried adding a RawGestureDetector on top of WebView as mentioned in this comment
Now webview with wrapped gesturedetector looks like
RawGestureDetector(
  gestures: <Type, GestureRecognizerFactory>{
    CustomTapRecognizer: GestureRecognizerFactoryWithHandlers<CustomTapRecognizer>(
      () => CustomTapRecognizer(onTap: () {
        print('on tap event');
      }),
      (CustomTapRecognizer instance) {},
    )
  },
  child: Container(
    color: Color.fromARGB(255, 0, 255, 0),
    padding: EdgeInsets.all(100),
    child: WebView(
      initialUrl: 'https://google.com',
      javascriptMode: JavascriptMode.unrestricted,
    )
  ),
),

Now what I am assuming from console is that gestures that are being taken up by WebView (which is already an onging issue) are also blocked.
But then also didChangeMetrics event unnecessarily fires. So I think the issue is different and not related to I have mentioned in Similar issues

@stuartmorgan
Thanks for diving into issue .
Can you tell me tentative time that when can I expect fix for this issue. I have some priority work which is based on this setup.

@stuartmorgan
Thanks for diving into issue .

I'm not sure what this is referring to; all I did was triage the issue.

Can you tell me tentative time that when can I expect fix for this issue.

See https://github.com/flutter/flutter/wiki/Issue-hygiene#when-will-my-bug-be-fixed

Any workaround???


Move console logging logic to main Cpp2IL project

Main goal here was to move the reference to the Pastel nuget package from Cpp2IL.Core to the main Cpp2IL CLI project, as other users of Cpp2IL.Core don't necessarily want to include this reference
I've also replaced the Action<string, string> override system with an event based system, such that it's easier for users to subscribe and unsubscribe to logging events

A few things to say about this from a code style point of view:
I would prefer that the events be initialized with an empty implementation (so public static event LogEvent VerboseLog = (_, _) => {};) and then invoked via just VerboseLog(message, source) rather than the slightly more tedious ?.Invoke pattern.
Also this is a breaking change as you've removed the verbose flag from the API, which is all well and good letting the user handle it entirely their side, but means this has to wait until I'm ready to push a major version out - I'd rather not push a 2021.4 just for internal changes with no user-facing effect.
Other than that, this is definitely how I should have done the logging from the start (if not using an actual Logging library), so I'm in agreement this needs merging.

@SamboyCoding I've added overloads with the verbose parameter, but also applied the [Obsolete] attribute to them to prevent future usage of it. Existing applications doing a drop-in replacement should be fine
If you do end up revisiting this in a major version, consider dropping the distinction between Verbose and VerboseNewline (for example), as not all logging systems can write without a newline

Yeah, dropping the non-newline version would require a change to the binary and metadata initialization code, which is probably out-of-scope for now. Other than that, I'm happy with this now.


Threaded validation

Checklist

[ ] Appropriate branch selected (all PRs must first be merged to dev before they can be merged to master)
[ ] Any modified or new methods or classes have helpful JavaDoc and code is thoroughly commented
[ ] The description lists all applicable issues this PR seeks to resolve
[ ] The description lists any configuration setting(s) that differ from the default settings
[ ] All tests and CI builds passing

Description
Working on top of https://github.com/ibi-group/datatools-server/pull/512/files original and mobility data validation are now in their own separate threads.

@binh-dam-ibigroup, Miles is to carry out some testing, but on the whole is happy to merge this into his working PR. If you don't mind, can you review please just in case I've missed something?

This is to be expected. Once both threads have started we are then effectively passing control to the JVM which then decides how much CPU each thread will get. If the first gets 100% CPU, the second will have to wait.


button chinese and number , english vertical align

react-native, react and native-base version
"native-base": "^2.3.10",
"react": "16.3.1",
"react-native": "0.55.3"

Expected behaviour
Actual behaviour
Steps to reproduce (code snippet or screenshot)
import React from "react";
import { Button as RNButton } from "react-native"
import { Container, Header, Left, Body, Right, Button, Icon, Title, Text } from 'native-base';

export default class extends React.Component {
  render() {
    return (
      <Container>
        <Button smail>
          <Icon name="settings"></Icon>
          <Text>2018年 4月</Text>
        </Button>
        <Button smail>
          <Icon name="settings"></Icon>
          <Text>中文 Eng 123</Text>
        </Button>
        <RNButton title="2018年4月"></RNButton>
        <Text>2018年 4月</Text>
      </Container>
    )
  }
}

Screenshot of emulator/device
img
Is the bug present in both ios and android or in any one of them?
Any other additional info which would help us debug the issue quicker.

@kudorori Provide sufficient information for us to help

@SupriyaKalghatgi  I filled in my code and hope to solve this problem

@kudorori Can you elaborate on your issue description?

button chinese and number , english vertical align

@SupriyaKalghatgi  I really don't know how to describe this problem in words...
https://imgur.com/QnimM9c

@kudorori https://imgur.com/QnimM9c this gives better explanation

@kudorori As a workaround set lineHeight of Text to undefined.
<Text style={{ lineHeight: undefined}}>2018年 4月</Text>

This will be fixed in the next release.

@akhil-geekyants  thanks!

Fixed with 2.4.3


feat(demo): Layout component

Description of changes:

implement a new Layout.astro component for the demo app to remove repeated boilerplate code

Tasks:

[x] I have ran the build command to make sure apps are working: npm run build
[x] I have ran the tests to make sure nothing is broken: npm run test
[x] I have ran the linter to make sure code is clean: npm run lint
[x] I have reviewed my own code to remove changes that are not needed

Hi, @Icyscools can you approve this? I implemented a Layout component so we have less repeated code in the demo app.

If you approve also check if the merge button is available to you, and if you can merge!

Yes, I can merge this PR. Do you want me to merge this PR? @ayoayco

Let's try!

Done!

Nice! Thanks!!


Enhance Grid Layout in "View Users Associated with Facilities" Section

The current grid layout in the "View Users" section under facility management appears cluttered and could benefit from a more organized structure. A switch to a list-like layout may improve readability and user experience, providing a cleaner and more intuitive interface for viewing user details.
Before:

Steps to Reproduce:
Go to Facilities.
Click on View Facility for a specific facility.
Navigate to Manage Facility.
Select View Users.
Observed Issue: The grid layout in the "View Users" section is somewhat cluttered, making it harder for users to scan through information quickly.
Proposed Enhancement: Consider changing the grid layout to a list-style view.
Improve readability by reducing visual clutter.
Potentially allow for more user-friendly sorting and filtering options in the future.

I would like work on these .

@AnveshNalimela could you suggest how do you want to improve the UI? The current layout seems fine for me.

The Current card for holds 5 details for each user . we could switch to list or table instead of grid with each user having indivaul card

So, we are doing a redesign for the users and user management page #8878. I'd wait for that to be completed first (could probably just reuse that page with minor tweaks once that's done).


Complete Redevelopment

I completely redeveloped this example project:

The README is now a quickstart guide
The pom.xml file is up to date
The JUnit test class follows recommended practices
Unnecessary files are removed
The broken GitHub Action for automatic updates is removed
The GitHub Action to execute tests is updated

Please review but do NOT merge yet.


CGOS config

What should be time settings for playing on CGOS.
I've tried two variants:
-main time[sec] =900
-byoyomi[sec] =0
-time controll =on
or
-time controll =off
in both cases AQ loosing sometimes by time

As described in README, the following setting is recommended:
-main time[sec] =900
-byoyomi[sec] =0
-time controll =off

AQ will enter the emergency mode and return a move within 0.1 sec when the remaining time is less than 15 sec. In my test, AQ has never lost due to out of time. (excluding CGOS client problems)
However, if your network causes a delay to the CGOS server, it is likely to be lost, so I don't recommend testing on CGOS with such environment.

Is it a problem to add support for time_setting command?

No, so I will implement it in the next version.

Thanks for your response

also have issues that AQ lose by time sometimes. Set -time controll =off  but didn't help. But I didn't set -main time[sec] =900 as you mentioned here - not included in that comment in config. Will test with it.
Could you tell please what the hardware of AQ-2.0.3 were used?
Right now testing with nickname 'AQ_i5_GTX1080'.
Also what this setting are doing?
-symmetrical index
-mimic go
-self match (assume it play with itself, but how exactly to use?)
Thank you.

I think that the hardware of AQ-2.0.３ was
CPU: i7 6700K (4core/8thread)
GPU: GTX1080 (x1)
and configuration is:
-symmetrical index=0
-mimic go=off
-self match=off

The detailed information is mentioned in #9
self match flag is just for debug, so you should not change the setting.

With time_control set to on, the main time seems to be reset every time for me. For example, if I set the main_time to be 30 seconds, the match goes on for longer than 1 minute and never goes to byo yomi. I'm using the latest windows version.

I can not run him on cogs you have the config file and cgosGtp of AQ not. If so let me show you how


Update README to a version that supports LiveView

I installed phoenix_slime according to the docs, but found that when using the .slimeleex extension the compile would blow up with:
** (UndefinedFunctionError) function PhoenixSlime.LiveViewEngine.compile/2 is undefined (module PhoenixSlime.LiveViewEngine is not available)

Previously the README referenced 0.12.0.  Updating to the latest release (0.13.1, where LiveView support was added in 0.13.0) fixes the problem, so in this PR we update the README to reflect this.

Thank you and welcome @tensiondriven!


Select change problem

Hi, the main problem what I have is when the change event is triggered on a <li> item that has the same name as other it wont change the select value:
ex:
<select>
    <option value="D1"> Random </option>
  <optgroup label="Country">
    <option value="luxC"> Luxemburg </option>
    <option value="gerC">Germany</option>
  </optgroup>
  <optgroup label="City">
    <option value="luxCi"> Luxemburg </option>
    <option value="berCi">Berlin</option>
  </optgroup>
</select>

The generated <ul> and <li> behave and move the ".select" class to the right <li> but the select value stays "luxCi" even when I click on  "luxC".

Thanks for reporting this. I will look into this when I get a chance.

@NerminMujagic this issue has been fixed in v4.17.0. Please confirm and close. Thanks for reporting this.

Hi, i got similar bug when the item have the same value it wont change.
 Long Island
Mexico
Paramus
Coral Springs
Midland
San Antonio
Houston
Vaughan
Montreal
Brossard
Laval


Solved Error ReferenceError: cookieParser is not defined in Backend

Pull Request: Fix ReferenceError: cookieParser is not defined
Description:

Resolved ReferenceError: cookieParser is not defined in the backend.
Imported and initialized the cookie-parser middleware correctly.

Steps to Test:

Run npm install cookie-parser if not installed.
Verify backend functionality and ensure cookies are parsed without errors.

Issue Reference:
Fixes the ReferenceError: cookieParser is not defined.
Reviewers:
@ANSHIKA-26
Fixes #989

Please accept my pr
@ANSHIKA-26


cortile stays in fullscreen mode when not being in a fullscreen app anymore

Hi Leukipp,
First thing first: thanks a lot for cortile: though probably still young here and there, this is by far the best tiling addon for things like XFCE that I've tried, and it didn't take me long to adopt it, and talkg about it to friends!
The first thing I have a problem with, though, is when going out of a fullscreen app, eg a fullscreen Youtube video in Firefox. When I put it in full screen (without doing anything cortile wise), it correctly displays it like so, but when going out of it (eg hitting the escape key), the tiling remains in fullscreen mode, and I have to manually revert to my preferred mode (vertical-left, by doing ctrl+maj+left).
What I'd prefer is for the mode that was on before going fullscreen to automatically be restored when going out of a fullscreen app: it would avoid having to do it manually, which tiling is noticeably about.

Fixed with v2.5.1, see https://github.com/leukipp/cortile/issues/58#issuecomment-2294008416.

Works great : thanks!


I have a Chinese guide of Argo workflows

As I mentioned in the title, I'm not sure if it's good  to place it in this repo.
See also https://github.com/LinuxSuRen/argo-workflows-guide

Thanks. Looks like it's still in progress. Feel free to submit a PR once it's ready.

I'll update it continuously. So, there is no ready state.

Sure feel free to send a PR

Is that ok to put it in the Blog Posts list? Or any suggestions about the category.

That should be fine for now. We'll probably want to come up with new categories later.


Update gulp-if, fix #1648

See https://github.com/roots/sage/issues/1648

poke @retlehs

thanks!

\o/


feat: implement pr comment trigger

Initial attempts at creating a github comment input trigger.
Not really functional yet because there is no info about what revision the PR is on at the time of the comment, so the github-ci module can't clone it. Not yet sure how to workaround this, because the webhook event for issue comments doesn't provide that information. The pull_request attribute also seems to be stripped down.
This is also the first time I've used cue, so I'm not sure if I'm doing things right.

there is no info about what revision the PR is on at the time of the comment

One way that might work could be to add another input by reusing the github_pr "function" so you always have the latest commit on that PR and then reference that input from the input you already added, matching them by PR ID and timestamp (PR sync event must be older than comment event).

Looks like the webhook event does contain the PR number (see here)! This means we don't need two inputs.
The issue number is at github_body.issue.number and we can check whether the issue is a PR with github_body: issue: pull_request: {}.

So, we are reacting to just plain comments in a pr.
From: https://cicero.ci.iog.io/run/3822fe10-87fb-4181-bd36-a7ce522e14ab
"github_event": "issue_comment" -> https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#issuecommentevent
Not to be confused with PullRequestReviewComments: https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#pullrequestreviewcommentevent

Can we merge this? We are using it in plutus


Adding documents with bad authentication throws a 500

Describe the bug
When I run meilisearch without any data.ms and with a masterkey.
And then I try to send documents to meilisearch WITHOUT sending my masterkey it crashes and send a 500.
I can't reproduce the bug with a non-empty data.ms or with a masterkey.
To Reproduce
Steps to reproduce the behavior:

rm -rf data.ms
./meilisearch --master-key prout
In another shell; mieli add ~/datasets/movies.json or bat ~/datasets/movies.json | http post :7700/indexes/mieli/documents

Expected behavior
It send the following error;
{
  "code": "missing_authorization_header",
  "link": "https://docs.meilisearch.com/errors#missing_authorization_header",
  "message": "The Authorization header is missing. It must use the bearer authorization method.",
  "type": "auth"
}

Screenshots

Meilisearch version:
v0.26.1
I can also reproduce the issue on main and v0.27.0 branch.
Additional context
I just noticed I couldn't reproduce the bug with a smaller dataset so you should try it with the movies dataset

And I just noticed that when I run the command with curl I get the error back;
irevoire@tamo ~/datasets 🕷 % curl \
  -X POST 'http://<IP_ADDRESS>:7700/indexes/movies/documents' \
  -H 'Content-Type: application/json' \
  --data-binary @movies.json
{"message":"The Authorization header is missing. It must use the bearer authorization method.","code":"missing_authorization_header","type":"auth","link":"https://docs.meilisearch.com/errors#missing_authorization_header"}%

But meilisearch still throw a 500;

[2022-04-19T15:16:42Z INFO  actix_web::middleware::logger] <IP_ADDRESS> "POST /indexes/movies/documents HTTP/1.1" 401 221 "-" "curl/7.82.0" 0.000204
[2022-04-19T15:16:42Z ERROR actix_http::h1::dispatcher] handler did not read whole payload and dispatcher could not drain read buf; return 500 and close connection
[2022-04-19T15:16:42Z ERROR actix_http::h1::dispatcher] stream error: Handler dropped payload before reading EOF

FYI, cannot reproduce in v0.25.0 and older. The bug is present since v0.26.0.

Hey, it seems to be related to actix-web#2695, I will follow the advancement in case of a workaround is proposed. 🤔

Yes, I have seen similar reports but will prioritise a fix for this.
Can you point me to the code in Meilisearch that would handle this request.

Sure, this error is thrown when our authentication extractor returns an error

Adding to this issue:

This is unrelated to whether the db contains. something or not (could reproduce with full db), which makes more sense
The size of the payload has an influence on how often this bug is triggered: sending only one document doesn't trigger it, while sending a big payload triggers it almost all the time. This makes me feel like this is a concurrency issue, where poll_request gets called after a response has already been returned.
I could reproduce consistently with an extractor that fails immediately:

pub struct Fail;

impl FromRequest for Fail {
    type Error = PayloadError;

    type Future = futures_util::future::Ready<Result<Fail, Self::Error>>;

    fn from_request(req: &HttpRequest, payload: &mut actix_web::dev::Payload) -> Self::Future {
        err(PayloadError::Overflow)
    }
}

pub async fn add_documents(
    // meilisearch: GuardedData<ActionPolicy<{ actions::DOCUMENTS_ADD }>, MeiliSearch>,
    fail: Fail,
    path: web::Path<String>,
    params: web::Query<UpdateDocumentsQuery>,
    body: Payload,
    req: HttpRequest,
    analytics: web::Data<dyn Analytics>,
) -> Result<HttpResponse, ResponseError> {

why do you need to remove data.ms?

Hello @amab8901
We remove data.ms to show we start from an empty Meilisearch instance to reproduce the issue. It gives more context to reproduce the issue 😊

Not sure my issue is related to this but I was able to do without master key on development environment on v0.28. Now, I updated to v0.30.x and it appeared this issue has occurred again. Though it seemed success on logger
888b     d888          d8b 888 d8b                                            888
8888b   d8888          Y8P 888 Y8P                                            888
88888b.d88888              888                                                888
888Y88888P888  .d88b.  888 888 888 .d8888b   .d88b.   8888b.  888d888 .d8888b 88888b.
888 Y888P 888 d8P  Y8b 888 888 888 88K      d8P  Y8b     "88b 888P"  d88P"    888 "88b
888  Y8P<PHONE_NUMBER>8 888 888 888 "Y8888b. 88888888 .d888888 888    888      888  888
888   "   888 Y8b.     888 888 888      X88 Y8b.     888  888 888    Y88b.    888  888
888       888  "Y8888  888 888 888  88888P'  "Y8888  "Y888888 888     "Y8888P 888  888

Config file path:	"none"
Database path:		"./data.ms"
Server listening on:	"http://<IP_ADDRESS>:7700"
Environment:		"development"
Commit SHA:		"unknown"
Commit date:		"unknown"
Package version:	"0.30.2"

Thank you for using Meilisearch!

We collect anonymized analytics to improve our product and your experience. To learn more, including how to turn off analytics, visit our dedicated documentation page: https://docs.meilisearch.com/learn/what_is_meilisearch/telemetry.html

Anonymous telemetry:	"Enabled"
Instance UID:		"6d2fe938-d748-4a83-943a-b61a8d71f6ea"

A Master Key has been set. Requests to Meilisearch won't be authorized unless you provide an authentication key.

Documentation:		https://docs.meilisearch.com
Source code:		https://github.com/meilisearch/meilisearch
Contact:		https://docs.meilisearch.com/resources/contact.html

[2023-01-24T00:07:16Z INFO  actix_server::builder] Starting 2 workers
[2023-01-24T00:07:16Z INFO  actix_server::server] Actix runtime found; starting in Actix runtime
[2023-01-24T00:07:20Z INFO  actix_web::middleware::logger] <IP_ADDRESS> "POST /indexes/movies/documents?primaryKey=test HTTP/1.1" 401 221 "-" "curl/7.77.0" 0.000305

but got
curl \
  -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=test' \
  -H 'Content-Type: application/json' \
  --data-binary @preset.json
{"message":"The Authorization header is missing. It must use the bearer authorization method.","code":"missing_authorization_header","type":"auth","link":"https://docs.meilisearch.com/errors#missing_authorization_header"}%

We tried to test with RCs of v1, and we don't have the issue anymore! Closing this issue then


Issue 297: Reduce overhead for CubeDomainsBuilder instantiation

This PR Fixes #297 by

As the overhead comes from CubeStatus, we pass the required objects directly instead of IndexStatus
Use Broadcast so they persist in each worker so we don't have to pass them for each task

Seems that the change in the code is not affecting the structure of the index in larger appends.
When @fpj adds his review, I will wrap up and prepare the merge.


feat: build rocky linux 9.1 images

What problem does this PR solve?:

E2E tests for rocky linux 9.1

Which issue(s) does this PR fix?:

https://d2iq.atlassian.net/browse/D2IQ-94873

Special notes for your reviewer:

We had disabled yum version lock for RHEL 8 because of dependency errors with already installed packets.
https://github.com/mesosphere/konvoy-image-builder/blob/main/ansible/roles/setup_versionlock/tasks/redhat.yaml#L2-L5
We had fixed this issue by not upgrading already installed packages.
We will need to revisit this logic for RHEL 8 and see if we can add back this version lock for RHEL 8.
I will test and file separate PR for this.
Does this PR introduce a user-facing change?:

Created TC configurations for building Rockylinux release AMI (fips, non-fips) , Azure image (non-fips)


[Driver] Improve Android Toolchain compatibility

swiftc breaks when calling it from a CMake context with the -DCMAKE_TOOLCHAIN_FILE parameter referencing the Android NDK's CMake toolchain. (This is something you'd want to do when building libdispatch or Foundation). The issue listed is <unknown>:0: error: unable to load standard library for target 'x86_64-none-linux-android21'
By removing the Android API level number from the end of the LLVM triple in the swift driver we can ensure the triple containing the API level still gets provided to clang for C compilation without breaking swiftc.
Note: this change only affects Android. I am pretty sure there are no other Android triples that end with a number that we'd be breaking here.

Ok it looks like this doesn't fix the issue we're having. We need to change this in the frontend implementation but I'll need to dig a little deeper as to where that is.


Update dev-docs with floc

Adding documentation for the FLoC user id module.

Perhaps there should be guidance that the token is only useful during
the origin trial
On Fri, Jun 4, 2021 at 11:14 AM Scott Menzer @.***> wrote:

@smenzer approved this pull request.
LGTM
should the full sharedId token be shared in the docs someplace, though?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

should the full sharedId token be shared in the docs someplace, though?

Oh - I truncated the token because it blew out the table to the point where it was very awkward.
Take another look? Had to play around with getting that long of a string to appear without blowing out the page.


Automatic security check information on each Actions listing

Summary
Today, there is no way for consumer of individual actions to determine its trustworthiness and quality, other than analyzing whether it comes from a verified creator. Enterprises have been asking for actions that follow standards (e.g: CodeQL, timely dependency updates, etc.).
When this work is complete, we will automatically run checks on repositories hosting published Actions to determine if the repository where the Action is hosted follows security best practices. We use a subset of OpenSSF (Open Source Security Foundation) scorecard checks to make this determination and publish that metadata as part of the Action listing page and details.
Intended Outcome
We are building this to continue our credibility with customers that GitHub is serious about security. With 17K actions on the Marketplace and more getting added every day, it's imperative that we surface the necessary metadata for  consumers to be able to make decisions about what actions they can rely on.
How will it work?
Whenever there's a state change in a repository (based on certain rules) a dynamic workflow is kicked off to run the checks. The results from the scoring are then surfaced on to the listing page. Since it's a new change, once we go GA, we will give action creators a grace period to make any desired changes, after which the results will be automatically published to the listing details page. New actions authored and published after the GA date will automatically get graded.
These checks against a repository that's hosting the action will evaluate holistic security practices, source risk assessment and build risk assessment.

This issue is being closed as outdated. For more information, please check out this Discussion post. Stay tuned for new additions to our refreshed public roadmap!

We wanted to provide more details on why we removed this from the roadmap. We're continuing to invest in the security of the Actions ecosystem, and giving publishers and consumers tools to verify and attest to the source of workflows and artifacts created with them.
Currently, we are prioritizing investments into Immutable Actions (https://github.com/github/roadmap/issues/592), release and artifact attestations. We're removing this change from the roadmap for now while we focus our investment into those areas.
If you’re interested in this feature, please share your feedback in the GitHub community so we can track interest and consider it in the future.


change slidertime from 13 to 10 seconds

🍰 Pullrequest
chnage slidertime from 13 to 10 seconds

After checking with bernd, let's stick with 13 seconds after all.


PHP Code Style and Markdown Format

For better readability

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: sgotre sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@sgotre thank you for the contribution.  Did you sign the CLA?  thanks

closing and re-opening to see if the CLA check passes

@sgotre I am closing this PR.  if you sign the CLA, please re-submit.  Thank you

sorry i can not sign this :( bit please take my PR as inspiration :)


Single Configuration File - A.K.A. storybook.config.js

let's discuss the "Single Configuration File" feature
I will update this template with the agreed changes. The inspiration is from here
API
The storybook.config.js will be at a root level, but we also may consider it to be configurable with the cli argumetns (for example for people that will have a few configurations).
structure
interface SbConfg {
  entries?: Array<string> | string
  addons?: Array<string>
  presets?: Array<string> | Array<object>
  webpack?: object | function
  babel?: object | funciton
};

storybook.config.js exposes an object
module.exports = SbConfg;

storybook.config.js exposes a fuction
module.exports = (env, mode) => SbConfg  // anything else ?

entries
Let's not call this field stories, because semantics will maybe changed
globs:
{
  entries: 'src/**/*.story.js'
}

array of globs:
{
  entries: ['src/**/*.stories.js', 'src/**/*.examples.js']
}

path to file:
{
  entries: 'path/to/stories.js' // it may have a `require.context` or something else
}

combination
{
  entries: ['path/to/stories.js',  'src/**/*.stories.js']
}

I am not sure, but maybe regex is also relevant.
we should add a sensible default, so it will work without any configuration

addons
An array of addons in the following structure:
{
  addons: ['@storybook/addon-X', '@storybook/addon-Y']
}

We will register the addons by ourselves (no need of addons.js). The question is what to do with the addon's defaults, for example with what we setup today in config.js ? we can use the same pattern as in presets 🤷♂
presets
array of strings
{
  presets: ['@storybook/preset-scss', '@storybook/preset-typescript']
}

array of objects
{
  presets: [
    {
      preset: '@storybook/preset-scss',
      options: { }
    }
  ]
}

combination
{
  presets: [
    {
      preset: '@storybook/preset-scss',
      options: { }
    },
    '@storybook/preset-typescript'
  ]
}

webpack
object
Will be merged to the final SB webpack config
{
  webpack: {
    module: {
      rulese: []
    },
    // other stuff
  }
}

function
Like today, but we may change if something is redundnat
{
  webpack: (config, mode. default) => {}
}

babel
same as for webpack
object
Will be merged to the final SB babel config
{
  babel: {
    plugins: [],
    presets: []
  }
}

function
{
  babel: (config, mode) => {}
}

things to cover

global decorators. How we will set them ?
there are apps that has a customisation of configuration, for example we support custom tsconfig.json to be set in .storybook dir, only for angular app. How we will configure this ? maybe with presets ? IDK
RN

deprecations:

./storybook dir
custom webpack.config.js
custom babelrc
addons.js
config.js
parts of the @storybook/app api, like a configure method, that is used in config.js

All the client part of @storybook/[apps] can be deprecated also, right?

Which one? I am not sure

Re configuring addons, client side:

we can use the same pattern as in presets 🤷♂

Only if the config is static though. If you e.g. want to register a react class or something, this is going to be tricky via a config file evaluated on the server. Maybe this is mostly fine though?

Also, what about global parameters? Can we add that to the unknown's list @igor-dv? :)

Global parameters?

Sure, like
import { addParameters } from '@storybook/react';
addParameters({ ... });

I think it's just one of the entries

Working on this

I'm having a customized story loader that will generate stories on the fly..., it will also do something like addon-smart-knobs.  Not sure if this can be done in the core or reserve an option entry to run customized scripts?!

@leoyli that's something presets should be able to do.

it should still be possible to use a storybook dir:

it has just no special meaning
the configuration can be set via cli option: --config ./path/to/storybook.config.js (filename optional, so --config ./path/to would be the same)
entries can be referenced in parent dirs: ../src/**/*.stories.ts (relative to config file)

theme configuration, automatically gets passed through theme.create:
module.exports = {
  theme: {
    base: 'dark',
    brandImage: '???', // previously it was possible to use webpack image imports here
  },
  theme: 'dark',
}

favicon configuration (maybe should be an option of theme):
module.exports = {
  favicon: '???', // previously it was possible to use webpack image imports here
}

Are #6806 overlapped with this old issue?!

@leoyli you are 💯% correct sir.
I have a WIP branch, which does things a little differently from what's described in this issue, but is addresses these points.
I'll close this issue in favor of https://github.com/storybooks/storybook/issues/6806


Decode ATC_MiThermometer packets

I'm playing with these: https://github.com/atc1441/ATC_MiThermometer
And your project looked like a good fit so I created a simple class to decode those messages.
This is very much a work in progress, but since it does already report the temperature I thought you might accept my humble contribution.

Seems to work fine with my thermometers running the ATC firmware, but why not display the MAC address? Otherwise, the data from multiple sensors will just get jumbled together.

but why not display the MAC address?

Good point. I'm hoping I would have realised that myself also once trying to actually do something with this.

Just confirming that the latest version is working as expected for me, I see my three sensors with their correct MAC addresses listed.

Can someone make a small tutorial of how to use it with the ATC firmware? I cannot get it to work. Regards

I am sorry for the delay. I did miss your PR completely.
I'll check things tomorrow.

I am sorry for the delay. I did miss your PR completely.
I'll check things tomorrow.

I've been running this plugin for a few weeks, and it seems to work fine. Thanks!

Thanks.

I just released a new version with your plugin included.
Thanks again... and sorry for the delay

Hi, I am about to release a new version. Would it be possible to check if it messes up with your plugin? I plan to release it on Wed 19 May 2021 around 19:00 GMT
TIA


Delete methods are not consistent with API

In the Project/Challenge/Task API the delete methods are described to return “204 NoContent”, but the delete methods returns instead a status code “200” with content {"message":"Challenge 40 deleted by user 21."}
Either correct the documentation or the delete method implementation.

The documentation for the API will be shifting to Swagger, instead of the markdown document that we have. So I am closing this and referencing the Swagger issue that we will be focusing on completing. This will have the correct 200 status code for the delete methods.
#96


BUG: Fixed IG Accounts without a Facebook account failing login due to 400 Bad Request

File changed: repositories/account.repository.js:19
Previously with the endpoint /api/v1/accounts/login Instagram accounts not associated with a Facebook account would receive this error:
400 Bad Request; The username you entered doesn't appear to belong to an account. Please check your username and try again.

After looking at the network logs of Instagram I decided to try switching the endpoint to /api/v1/web/accounts/login/ajax/ and that seemed to do the trick. Also tested that the new endpoint is compatible with Instagram accounts that have Facebook connections.
EDIT: I added a commit to convert the 2FA function in the account repository to use the web API as well. Seems like there's some security check to make sure the login and 2fa requests  come from the same platform. Also, if the user doesn't have a  facebook account associated with their Instagram account, I don't think SMS will work here. I had to use an authenticator app to 2FA. Should we add this to the documentation?
Question, for some reason the twoFactorLogin function hangs sometimes, but it still does a successful 2FA as my next login is trusted. Confused on why this happens and hoping we can get some clarity on why so this PR can be merged.
^ Disregard, issue with my express route.

const auth = await ig.account.login(process.env.IG_USERNAME!, process.env.IG_PASSWORD!);
console.log(auth)

Im getting undefined when loggin in with valid credentials. Am i the only one getting this ?

Hmm, i this with an account that is tied with Facebook or isn't? The change I PR'd was the only way I could make non-facebook tied accounts to work, and I did a basic test for Facebook tied accounts and saw no issues on my end.
I'll take a look at this once I'm home.


CAMEL-11576 - Refactor endpoint syntax handling in order to support camel-stream component

Fixes #
Thanks for the PR it has been merged. Do you mind closing this?

Thanks for merging it.


[Bug report]: Prettier is added as a dependency instead of dev dependency in the Tegel core package

Requirements before reporting

[X] No duplicated issue reported.
[X] I have checked the latest version if the bug exist there. See all available packages at npmJS.com
[X] I have followed the installation guide.

Package versions
@scania/tegel: 1.13.0
Reproduction steps
In my app I get problems with a conflicting peer dependency for prettier. I guess that wouldn't occur if prettier where added as a dependency instead of dev dependency in the Tegel core package?
Here is a link to the package.json:
https://github.com/scania-digital-design-system/tegel/blob/develop/packages/core/package.json
Contact information
<EMAIL_ADDRESS>

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

This is now done, so closing this one for now.


fatstocks, enswathed

This pull request was generated by the 'mq' tool
[test]
flake rate: 0.4
logical conflict every: 100
sleep for: 300s
[pullrequest]
requests per hour: 30
deps=[e,f]

/trunk merge


[FEATURE] Ability to use internationalized hostnames

Current implementation doesn't cover case, when using internationalized domain as hostname in mocked DNS records dictionary.

It would be great to add ability automaticaly transform all passed hostnames to punycode hostnames.

Done 🚀


Switching to shadow plugin

I've faced 2 problems when building zally-cli:

Empty bin/zally.jar (no manifest, no classes).
Stackoverflow when playing with the configuration of gradle-one-jar to fix 1.

Because of this, I propose to switch to shadow plugin: it works, has better docu and bigger community.
I've never used Gradle before, so let me know if you have a better solution :)
PS. The first issue is maybe related to https://github.com/rholder/gradle-one-jar/issues/21

Let's cross fingers and hope issues are resolved.
LGTM

👍

Yeah, it was time to replace it. Already tried to fix issues 3 times.
👍


Support query with vim-kensaku

TBW

https://jsr.io/@vim-fall/extra/doc/matcher/kensaku/~/kensaku
Supported as extra library


Fix: remove duplicate policy rules in show command, coming from API g…

remove duplicate policy rules in show command, coming from API  groups

This should address #62


Rewrite quite a lot. Travis, Docs, CI stuff to follow.

Lets discuss this.

As this plugin has not been released yet, we are free to merge this now and decide on array vs string syntax before the release.
It might be possible to support both:

the four element array as is current, [[<op>,<left>,<right>,<target>], [...],[...]]
a hash, [{target=>"", calculation=>"<left> <op> <right>"}, {...}, {...}]

I am a big fan of using differentiating classes at initialization or register to prevent doing conditional checks on known settings in the filter method again and again for each event.
I also want to add custom validation to this plugin ala file input line 195 and 228 so that we can produce the validation errors during config validation and not in pipeline building. I created an issue in Logstash (See elastic/logstash/issues/9733) to try to ensure that the next gen Java API supports this.
Validating the settings is made on the instance by calling the config_init class method before register is called. It would be possible to move the whole register method body to a validator and set the @calculate_copy instance variable upon success - it is just more hoops to just through and is potentially fragile regarding the Java API.

@webmat
Refactored the OperandStruct and added Registers as a reference implementation.


php: Bump php81 and php82

Both are bugfix releases:
php81: https://www.php.net/ChangeLog-8.php#8.1.18
php82: https://www.php.net/ChangeLog-8.php#8.2.5
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Flagging this as security related, it does look like a CVE ID has been issued but this seems to be very suspicious (to say the least) from the changelogs:

Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \0 delimiter and enclosure).


[UI] Collapse Bottom Input Icons on Mobile

On mobile devices the icons on the input box can become a bit cramped.
Consider collapsing the icons/options into a 3 dot context menu icon that can be pressed and shows the available options for uploading an image or file etc..
This could look similar to how the 3 dot context menu icon functions in the conversations panel at the top right.

After further testing, I'm not a fan of this. Closing out the issue.


Implementation of Idempotency for Account Resource Handler

Issue #
Description of changes: Implemented Idempotency by checking if the provided email is already there for any of our accounts, if yes then will set the flag ' PreExistingResourceChecked ' to true else it would be false(as it is intiated), we use method checkForExistingResource to do this, we use method createResourceIfNeeded to check whether to create the account or not
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Can we add some tests in account/CreateHandlerTest?

Can we add some tests in account/CreateHandlerTest?

yes, working on it


feat: pass custom color props to Alert comp

This PR fixes #180.
I am still unable to figure out how to pass the dynamic value of color styles.ts. I will soon figure that out, would appreciate some direction from you guys as well. Thanks

Hi @Nazeeh21, thanks for the PR. The ideal way to change this is by adjusting each variant to have a pre-defined color on it and not pass color as a prop. It's a pattern for us to try to avoid always props that change styles and use pre-defined styles. If you can just change the color you can use the css prop of the component for this.

I'm getting this error from the pre-commit hook while committing
[FAILED] pnpm tsc --noEmit [FAILED]
[FAILED] pnpm tsc --noEmit [FAILED]
[FAILED] pnpm tsc --noEmit [FAILED]
[STARTED] Applying modifications from tasks...
[SKIPPED] Skipped because of errors from tasks.
[STARTED] Reverting to original state because of errors...
[SUCCESS] Reverting to original state because of errors...
[STARTED] Cleaning up temporary files...
[SUCCESS] Cleaning up temporary files...

✖ pnpm tsc --noEmit:
src/components/Pagination/paginationMachine.test.ts(19,19): error TS2345: Argument of type '{ actions: { onPageChange: jest.Mock<any, any, any>; }; }' is not assignable to parameter of type 'InternalMachineOptions<MachineContext, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, ResolveTypegenMeta<any, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, BaseActionObject, ServiceMap>, true, a...'.
  Property 'delays' is missing in type '{ actions: { onPageChange: jest.Mock<any, any, any>; }; }' but required in type '{ delays: MakeKeysRequired<any>; }'.
src/components/Pagination/paginationMachine.test.ts(25,25): error TS2345: Argument of type 'StateMachine<MachineContext, any, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, { value: any; context: MachineContext; }, BaseActionObject, ServiceMap, MarkAllImplementationsAsProvided<...>>' is not assignable to parameter of type '"Some implementations missing"'.
src/components/Pagination/paginationMachine.ts(21,27): error TS2307: Cannot find module './paginationMachine.typegen' or its corresponding type declarations.
src/components/Pagination/usePagination.tsx(46,19): error TS2554: Expected 2-3 arguments, but got 1.
src/components/Pagination/usePagination.tsx(53,19): error TS2345: Argument of type '{ actions: { onPageChange: (ctx: MachineContext) => void; }; }' is not assignable to parameter of type 'InternalMachineOptions<MachineContext, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, ResolveTypegenMeta<any, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, BaseActionObject, ServiceMap>, true, a...'.
  Property 'delays' is missing in type '{ actions: { onPageChange: (ctx: MachineContext) => void; }; }' but required in type '{ delays: MakeKeysRequired<any>; }'.
husky - pre-commit hook exited with code 1 (error)

I'm getting this error from the pre-commit hook while committing
[FAILED] pnpm tsc --noEmit [FAILED]
[FAILED] pnpm tsc --noEmit [FAILED]
[FAILED] pnpm tsc --noEmit [FAILED]
[STARTED] Applying modifications from tasks...
[SKIPPED] Skipped because of errors from tasks.
[STARTED] Reverting to original state because of errors...
[SUCCESS] Reverting to original state because of errors...
[STARTED] Cleaning up temporary files...
[SUCCESS] Cleaning up temporary files...

✖ pnpm tsc --noEmit:
src/components/Pagination/paginationMachine.test.ts(19,19): error TS2345: Argument of type '{ actions: { onPageChange: jest.Mock<any, any, any>; }; }' is not assignable to parameter of type 'InternalMachineOptions<MachineContext, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, ResolveTypegenMeta<any, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, BaseActionObject, ServiceMap>, true, a...'.
  Property 'delays' is missing in type '{ actions: { onPageChange: jest.Mock<any, any, any>; }; }' but required in type '{ delays: MakeKeysRequired<any>; }'.
src/components/Pagination/paginationMachine.test.ts(25,25): error TS2345: Argument of type 'StateMachine<MachineContext, any, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, { value: any; context: MachineContext; }, BaseActionObject, ServiceMap, MarkAllImplementationsAsProvided<...>>' is not assignable to parameter of type '"Some implementations missing"'.
src/components/Pagination/paginationMachine.ts(21,27): error TS2307: Cannot find module './paginationMachine.typegen' or its corresponding type declarations.
src/components/Pagination/usePagination.tsx(46,19): error TS2554: Expected 2-3 arguments, but got 1.
src/components/Pagination/usePagination.tsx(53,19): error TS2345: Argument of type '{ actions: { onPageChange: (ctx: MachineContext) => void; }; }' is not assignable to parameter of type 'InternalMachineOptions<MachineContext, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, ResolveTypegenMeta<any, { type: "NEXT"; input?: unknown; } | { type: "PREV"; input?: unknown; } | { type: "GOTO"; input: number; }, BaseActionObject, ServiceMap>, true, a...'.
  Property 'delays' is missing in type '{ actions: { onPageChange: (ctx: MachineContext) => void; }; }' but required in type '{ delays: MakeKeysRequired<any>; }'.
husky - pre-commit hook exited with code 1 (error)

Have you run the pnpm install before doing that? You can also run pnpm ts:check to force type generation before committing.

Have you run the pnpm install before doing that? You can also run pnpm ts:check to force type generation before committing.

Yes, I did run pnpm install, but haven't tried ts:check, will try using that and see if it solves the thing

Okay, so pnpm ts:check worked. I have tried changing the color of the title, icon, and buttons based on the value of the custom color props pass to the Alert component. Now I'm going to work on changing the background of the pseudo-class :after, which is taking a little longer because I believe we can't change the property of a pseudo-class using the css prop because its inline styling

I changed the color of the pseudo element based on the color props value. Now, the entire component uses the explicitly passed color props if they are provided, otherwise it just uses the status prop's value. Pls have a look and lmk if any changes are required. 🙂

any updates on this?? Lmk if any changes are required.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Searching for words prepended with underscores doesn't work

My documents include many class names such Msg_IDT_ZOOM

If I search for Msg I get results ✔
If I search for Msg_IDT_ I get results ✔
If I search for IDT I get no results ❌
If I search for ZOOM I get no results ❌

I'd like users to be able to search for IDT and ZOOM so that it shows Msg_IDT_ZOOM in the results - how can I do this?
I'm using Lunr.js through the mkdocs-material theme (http://squidfunk.github.io/mkdocs-material/)

This is caused by what lunr considers to be a separator, by default an underscore is not considered a separator.
This is easy to change, as described in this fiddle.
I'm not at all familiar with that mkdocs theme, so I'm not sure how you would make these changes in that context, perhaps open an issue on that project?

Thanks so much for taking the time to reply with the explaination and code example. I'm not really much of a JavaScript coder but I dug in to the JavaScript code for the MkDocs theme and replaced:
tokenizer.separator=/[\s\-] with tokenizer.separator=/[\s\-\_] and it worked! 👍

Nice, glad its working for you!


Multiple Sector Columns in CSV Output

Describe the bug
When you use the one transaction per row function in the QB, there are several columns related to Sector Code. It is unclear why multiple columns are returned and what the difference is between them.
To Reproduce
Steps to reproduce the behavior:

Go to Query Builder
Select following parameters:

Reporting Organisation = United Nations Population Fund
Sector = 13010, 16062
Output format = Each financial transaction

Download CSV results
See repeating columns:

Expected behavior
There are clear columns for Sector Code at activity and transaction level.

iati-cloud-2020-02-07T14_23_38.csv.zip
@JoshStanleyDevInit I was unable to reproduce?

@siemvaessen try this: https://iati.cloud/search/transaction?q=reporting_org_ref:(41119) AND transaction_sector_code:("13010" "16062")&wt=csv&rows=5000000

This looks like the JSON string issue @ https://github.com/zimmerman-zimmerman/iati.cloud/issues/2074 ?


Fix cloudflared warnings/errors by adding Stop/Start service

Hey there, I noticed that cloudflared was having some trouble removing the older versions because if it's already running then it won't be able to remove the old files.

I adjusted the script so that it will stop the cloudflared service first, install/upgrade cloudflared, then if the service was running before, start it again.
I also added the functionality to stop the service when uninstalling, as well as before modification. This should ensure that the service is started.
In addition, I formatted the code in VS Code using Ctrl+Alt+F w/PowerShell extension.

Hi @JPRuskin not sure if you missed this, but Cloudflared won't uninstall properly unless stopped.

Hey asheroto,
Thank you for this - sorry I hadn't gotten to it yet. I mostly use this package as a client, rather than a service, so needed to figure out a plan to test it a little before merging! Makes perfect sense, though.
I'll try and test and merge this today.
-JPR

Out of interest, as it was something that was on my mind when I wrote it originally - would you see usefulness in a parameter that would install it as a service and potentially supply configuration via a package parameter?

Hey there!
No problem, thanks for working on it. 😊
I use this package by installing it, then creating tunnels with cloudflared. Not sure if you realized this, but it actually doesn't create a Windows service on installation, it creates a Windows service when a tunnel is created.
I think since the Cloudflare downloads page explains that users should install cloudflared (via winget), as does the documentation, this Chocolatey package should also install cloudflared.
As far as package parameters, one could simply pass parameters through the --params parameter, right?
I could see an advantage in adding some notes to the output of ChocolateyInstall.ps1 saying something like...
Creating a tunnel with cloudflared:
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/

But as far as its own params for package configuration... not sure... for me I probably wouldn't use it because I'd want to interact with cloudflared directly, even if scripted I'd want to handle things on its own lines of the script for readability.
As far as using the EXE as a client instead of installing, I suppose you could consider making a cloudflared.portable package which could be used exactly for this purposes. That way it'll be a separate package that won't conflict with the users that expect it to install.

Not sure if you realized this, but it actually doesn't create a Windows service on installation, it creates a Windows service when a tunnel is created.

To my understanding the MSI installer just drops the exe on disk (and PATH). e.g., here's the install directory the MSI produces:

For what it's worth, we're not "installing" the exe at all - it's just a runnable binary that we're dropping in place.
To be honest, I don't see any advantage in installing the MSI over the current (portable, less potential requirement for elevation) approach, which is why I went with it. If you have other reasons we should change the package to install the MSI, let's chat about it! To me, most of the documentation says "download the EXE" (e.g. here) and not "install the MSI".
You don't have to create a service to create a tunnel, oddly (AFAIK)! It just runs until the EXE halts, which is less good for permanent infrastructure (or reboots). The quick dev tunnels are really cool for showing stuff to folk, in my experience, though!
Creating the service happens if you run the exe with service install (or something like that - roughly) - not for tunnels that just get run.

As far as package parameters, one could simply pass parameters through the --params parameter, right?

There may be some undocumented args for the MSI that I'm not aware of! As far as I know there are no available arguments, so --install-arguments wouldn't do anything even if we were using the MSI (--params is actually package params, so would need to be handled in the install script).
My thought was more "I see folk either calling this ad-hoc, or wanting to install the service", and thought it might be useful to offer that service install step/registry and file configuration detailed in the link above as an optional package parameter. Sounds like not so much! :)

For what it's worth, we're not "installing" the exe at all - it's just a runnable binary that we're dropping in place.

I suppose it depends on what you define "install" to be. For me, a sufficient installation is when any files are put in the Program Files directory and it's registered as a program to be uninstalled in Add/Remove Programs. In addition, it modifies the PATH environment variable so one can just type cloudflared from any directory in PowerShell. If it just dropped the file, I'd totally agree, but since it also registers it for removal and adjusts the path, to me it's installed.

If you had started out by using the portable version, it wouldn't be an issue to continue using that. But since the cloudflared Chocolatey package already has 17k downloads, then it has users that are expecting to be able to just type cloudflared from the command line without specifying a path. That means their scripts will not work in the future if the cloudflared file isn't updated. It also means that folks that have a Windows Service using the cloudflared in Program Files won't be able to continue using the latest version. That's why I think switching to a cloudflared.portable would be a viable option because then it creates a separate path forward with the portable version. I mean I guess you could just replace that particular file, but then how would you handle unregistering and also removing the path? Seems easier to use the MSI in that case. 😊
Yes, you are right, the tunnel creates when using the cloudflared service install, but those are actually the instructions provided when configuring through Cloudflare's Zero Trust dashboard. So even Cloudflare is advising you to install the software. I think you're describing locally-managed tunnels, whereas I'm describing dashboard-managed tunnels.
Create a new tunnel through this and you'll see: https://one.dash.cloudflare.com -> Networks -> Tunnels

I totally understand and agree the portable is easier, but it's a different use case. The service is made to be semi-permanent for production. It's not geared toward one-time dev tunnels, but for production use.

Sometimes I wish things were easier. Haha. Technology makes certain things easier and certain things harder.


No_Name Folder Created in Blob container

when instructing the AzureblobSDK to upload a file to the blob container without a root folder, it creates an empty folder:

This was caused when two slashes were combined. It is prevented by doing one last check on the path before uploading
finalPath = finalPath.replace('//', '/');

@jdenicola-pa This has been fixed and will be in v1.6


Include the WildFly Galleon plugins transformer in this project

This is a move of the module: https://github.com/wildfly/galleon-plugins/tree/main/transformer to this project.
Note: the java packages have not been renamed.

Thanks @jfdenise


Open a new tab

Usually user want to keep live it's current tab and move to other tab to open new address.
So here we can add features like multiple tab support.
Please correct if I am not wrong.

Thanks again for your feedback. This is now done https://github.com/duckduckgo/Android/pull/219 and ready for our next release.


Use of aesDecriptionResult and aesDecryptionResult variables

Alessandro,
I think that the use of the variables "aesDecriptionResult" and "aesDecryptionResult" should be replaced with "AesEncryptionResult" for project consistency.
Alternatively you could add a "aesDecryptionResult" class and change the DecryptString and DecryptFile functions be of a "aesDecryptionResult" type and then update the "AesEncryptionResult" class to remove the fields related to decryption.
At the very least I think "aesDecriptionResult" should be replaced with "aesDecryptionResult" as I think that was a typo.
Les

Fixed by https://github.com/alecgn/crypthash-net/commit/4b2f8057b163b8cb0922aa2efc13b30cf8932e40


Allow graphql-js 15 and 16 in peerDependencies

The peerDependencies currently specify
    "graphql": "~0.10.0 | ~0.11.0 | ~0.12.0",

Can we declare support for graphql-js 15 and 16, or is there something that needs to be updated?

Did something in  https://github.com/sevenclev/node-soap-graphql/pull/8


typo fix

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

Thanks for the PR! The term here though I believe is correct, "memoize".


MudTreeView: Fix selection issues

Description
closes #5704
closes #4492
closes #3394
This PR addresses issues #5704, #4492, #3394, and follows on from PR #5857. By tackling bind issues with IsSelected. Given the challenges of integrating async methods into property setters, I've introduced a new method:
public async Task SetSelectedValue(T value)

This method is designed to find a given value within the tree and execute the necessary selection logic. I'm seeking feedback on this approach, particularly regarding the following points:
Current usage of SelectedValue as an update event may be misleading due to the lack of a straightforward two-way bind. Would replacing this with a callback method and adding documentation for clarification be a best practice?
How Has This Been Tested?
Unit tests are planned to cover these changes. I’m looking for feedback on the approach before proceeding with test implementation.
Types of changes

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

The visual change is the same as in #5856.
Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

@ScarletKuro What do you think about the addition of ' public async Task SetSelectedValue(T value)` ?

Hi. Sorry for the delay.

@ScarletKuro What do you think about the addition of public async Task<bool> SetSelectedValue(T value) ?

If people ask for a method to select item from outside, then it makes sense.
This method should contain Async suffix - SetSelectedValueAsync
Also, shouldn't this method also accept IEqualityComparer? What if I'm using a class that is not mine and I can't override the equals of the class?

In MudChipset ...
https://github.com/MudBlazor/MudBlazor/blob/5ebb8451e8a0faa1c42ba4ff9a35fb8b16bb0611/src/MudBlazor/Components/ChipSet/MudChipSet.razor.cs#L153
... and others we have the possibility to set a comparer, so yes, it should also be added as a parameter to MudTreeView and then used for such comparisons. I was actually surprised that we have no Comparer parameter in tree view even though it uses a hashset internally.

It could be an optional parameter in the method, or an optional parameter in component itself, matter of taste.

I would lean towards an optional parameter but I can also see why having it in the component could be beneficial.
Happy with either way just let me know and I'll push a change.

Also when looking in some other places of the code base I saw code like this to deal with using asnyc in a property setter:
[Parameter]
        [Category(CategoryTypes.FormComponent.Data)]
        public DateTime? Date
        {
            get => _value;
            set => SetDateAsync(value, true).AndForget();
        }

I think a similar technique could be employed to resolve the issues in the setter but if done wrong could cause issues in peoples projects.

It could be an optional parameter in the method, or an optional parameter in component itself, matter of taste.

It should be in the component IMO because it can be used for the internal hashset. So if the parameter is supplied it should in any case be also supplied to the hashset.

Also when looking in some other places of the code base I saw code like this to deal with using asnyc in a property setter:
[Parameter]
        [Category(CategoryTypes.FormComponent.Data)]
        public DateTime? Date
        {
            get => _value;
            set => SetDateAsync(value, true).AndForget();
        }

I think a similar technique could be employed to resolve the issues in the setter but if done wrong could cause issues in peoples projects.

This is not the only way. You could also use SetParametersAsync to call the setter and await it and it is probabably the better way of doing it. We only adopted this pattern very recently.

Also when looking in some other places of the code base I saw code like this to deal with using asnyc in a property setter:
[Parameter]
        [Category(CategoryTypes.FormComponent.Data)]
        public DateTime? Date
        {
            get => _value;
            set => SetDateAsync(value, true).AndForget();
        }

I think a similar technique could be employed to resolve the issues in the setter but if done wrong could cause issues in peoples projects.

This technique is not what we would like to use, since we want to get rid of it in future.

Okay, so won't do the async in setter.
Can you point me to an example of using SetParametersAsync to achieve this.
Also trying to look this up online has lead me to a couple of stack overflow posts saying don't use SetParametersAsync, I would like to understand why I'm trying to learn more about blazor
https://stackoverflow.com/questions/76475515/should-i-be-using-setparametersasync-for-all-parameter-properties

The argument against using SetParametersAsync is based around optimization. We want to achieve a different goal by using it, namely to await async code that needs to be executed after the parameter has been set. We want to await the code because of error handling which is built into await. By using .AndForget() which we did a lot in the past it is possible that exceptions get lost which can cause the user headaches.
Here is an example from another PR:

In the example you gave would this mean Hidden was set evetime any other parameter in the component was set, this might be what Blazor is doing anyway. I guess the value wont change until the base is called so you could do a diff with value returned from
SetParamaters.
Also the post I referenced talked about ParameterView going stale if you await in the method?
Either way I'll have a play around tomorrow morning and see what I come up with.

If you have to await more than one method because more than one parameter changed you could just add the tasks into a list and await them with Task.WhenAll or so

@henon and @ScarletKuro made a few changes, but it did trigger a few more questions.
The code I've commit works with my testing, when I set SelectedValue in my app it gets set as you would expect, but how should this interact with the MudTreeViewItem selected item.
If someone manually changes the selected value of a tree item should we try and listed for the changes and reflect that in the SelectedValue.
I've also not done the compare part yet.

If someone manually changes the selected value of a tree item should we try and listed for the changes and reflect that in the SelectedValue.

I don't know much about treeview as it was coded by someone else but in any case the internal state of the component should remain consistent no matter which method was used to manipulate it. I hope that helps you with this question.

There is also a question about what to do it someone set selected value to an invalid option, not figured out a nice way to handle this.

I think the selected value should then be null or default(T)?

There is also a question about what to do it someone set selected value to an invalid option, not figured out a nice way to handle this.

I think the selected value should then be null or default(T)?

I think this is all correct in terms of how the selection logic, I'll take a look at the build failures later.

The test is probably failing because there is no category attribute for the SelectedValue

@henon and @ScarletKuro
I'm working on a test to check the compare parameter and would like your opinions:
        [Test] public void TreeView_SelectedValue_ShouldUseCompareParameter()
        {
            // test tree with items ("Ax", "Bx", "Cx", "Dx")
            var comp = Context.RenderComponent<TreeViewCompareTest>();

            comp.SetParametersAndRender(parameters => parameters.Add(p => p.SelectedValue, "Ax"));

            comp.Instance.SelectedValue.Should().Be("Ax");

            comp.SetParametersAndRender(parameters => parameters.Add(p => p.SelectedValue, "A"));

            comp.Instance.SelectedValue.Should().Be(default);

            // set the comparer to a value that will only check the first character of the string
            comp.SetParametersAndRender(parameters => parameters.Add(p => p.Compare,
                new DelegateEqualityComparer<string>(
                    (x, y) =>
                    {
                        if (string.IsNullOrEmpty(x) && string.IsNullOrEmpty(y))
                            return true;
                        if (string.IsNullOrEmpty(x) || string.IsNullOrEmpty(y))
                            return false;
                        return x[0] == y[0];
                    },
                    obj =>
                    {
                        if (string.IsNullOrEmpty(obj))
                            return 0;
                        return obj[0].GetHashCode();
                    }
                )
            ));

            comp.SetParametersAndRender(parameters => parameters.Add(p => p.SelectedValue, "A"));

            comp.Instance.SelectedValue.Should().Be("Ax");
        }

So Selected value has been set to A but the value after my update will be Ax, as that is the first match with the custom compare.
The other option would be to leave the selected value as "A", the correct tree item will be selected but the SelectedValue would not match the value of the SelectedTreeItem.
The question is should selected value be equal to value of the "selected" tree item, or the value the parameter was set to?
What behavior would you expect?

Your test works exactly how I would expect it. This is also consistent with the behavior that the selected value gets overwritten with default when setting it to an invalid value.

@henon and @ScarletKuro I think everything is done now, take a look when you have time.

@henon I've added a test to cover the most of the code I've written the only no covered code is a guard clause that I don't think it's possible to trigger but catches a possible null issues.
Is this okay to go in, if so how? not too sure on the process yet.

Good job @jacob7395, thank you very much for your efforts!

And to answer your question, yes, sometimes some errorhandling statements can not be tested without extreme efforts. That is OK. It is not worth the effort mostly.

Thank you both for your help, I learned a lot from this one. The stuff around not using property setters for parameters is really interesting.

Unfortunately this patch broke my code. That said, I was using some hacks so that I could force the tree to reflect a new SelectedValue when I set programmatically, and I will refactor.
So that said, how do I use this enhancement? I don't see a SetSelectedValue() method.
Or do we just bind to SelectedValue as in the following? (this doesn't seem to work)
<MudTreeView @ref="treeView" T="string" MultiSelection="false" @bind-SelectedValue="selectedTreeValue" @bind-SelectedValue:after="TreeSelectedChanged">
I know there is a "Select" method, but my Trees are populated using foreach loops in the Razor syntax and not using as list of MudTreeViewItems in code. I just want to select using a string value.

I should add that when I set the bound selectTreeValue string variable in code, I get a null reference exception in the following code (RenderTreeBuilder) ...
`public void AddContent(int sequence, RenderFragment?

fragment)

{
if (fragment != null)
{
OpenRegion(sequence);
fragment(this);
CloseRegion();
}
}`

Apologies, there must be something in my code causing the issue, as this all seems to work fine on the testing site...
https://try.mudblazor.com/snippet/wYwouldFhoWstKcD
Please ignore the above, I have answered my own question.  Will investigate and report back if I find something that breaks on the demo site.

I deleted my comments from earlier today and was able to determine it was a visibility/async issue on my end causing this enhancement to break my existing code.
Binding the SelectedValue now works great and highlights the node! Thanks for the long-needed enhancement! I was able to remove all my "work around" code for this issue. :)

I'm guessing this resulted in the Select method being added in... Is there any example usage of this? I'm wondering how it would be used in the case where we can't identify the MudTreeViewItem object to select.
In this example, I feed the MudTreeView a hash set of <TreeItemData>.
        <MudTreeView @ref="_mudTree" T="TreeItemData" Items="_treeItems" SelectedValue="_selectedItem" SelectedValueChanged="OnSelectedItemChanged">
            <ItemTemplate>
                <MudTreeViewItem  Value="@context" <EMAIL_ADDRESS>/>
            </ItemTemplate>
        </MudTreeView>

    private HashSet<TreeItemData> _treeItems = new HashSet<TreeItemData>();
    public class TreeItemData
    {
        public MyObject MyObject { get; set; }
        public HashSet<TreeItemData> TreeItems { get; set; } = new HashSet<TreeItemData>();

        public TreeItemData(MyObject myObject)
        {
            MyObject = myObject;
        }
    }

I'm having trouble programatically setting the _selectedItem. Setting it directly to the TreeItemData object from the Items list doesn't seem to work.

I'm guessing this resulted in the Select method being added in... Is there any example usage of this?

You mean the SetSelectedValue(T? value)?
You can't, it's internal, also this changes gives some headache https://github.com/MudBlazor/MudBlazor/issues/8360

You mean the SetSelectedValue(T? value)?

There's an exposed Select method:
public async Task Select(MudTreeViewItem<T> item, bool isSelected = true)
{
    if (MultiSelection)
    {
        await item.Select(isSelected);
        await SelectedValuesChanged.InvokeAsync(SelectedValues);
        return;
    }

    if (isSelected)
    {
        await SetSelectedValue(item.Value);
        return;
    }

    await SetSelectedValue(default);
}

This looks like what we want, but it's asking for a MudTreeViewItem. From my MudTreeView reference, I don't know how to access its internal MudTreeViewItem collection such that I can identify the one I'd like to programtically select.
My scenario is this:

User navigates to my site with query parameter: scheme://host/?objectId=1234
My page loads all of the "objects" from database, converts them into a HashSet<TreeItemData> such that I can feed it into my MudTreeView.
Once parameters set, I want to select the tree item that has id 1234 such that it is highlighted and appears to have been clicked.

There's an exposed Select method. Is there any example usage of this?

You can look the code, for example the tests, one of the examples:
<MudTreeView @ref="_treeView" T="string" @bind-SelectedValue="selectedValue">
    <MudTreeViewItem @ref="_item1" Value='"content"' />
    <MudTreeViewItem @ref="_item2" Value='"src"' />
</MudTreeView>

@code {
    MudTreeView<string> _treeView;
    MudTreeViewItem<string> _item1;
    MudTreeViewItem<string> _item2;

    public string selectedValue;

    public async Task SelectFirst()
    {
        await _treeView.Select(_item1);
    }

    public async Task SelectSecond()
    {
        await _treeView.Select(_item2);
    }

    public async Task DeselectSecond()
    {
        await _treeView.Select(_item2, false);
    }

}

I'll rewrite it completely when I'm done with MudList where I want to do some small improvements. This component was contributed by a non-active member anyway, so it is about time we consolidate it.

I can post the Expanded and Selected proerties change if u want

How about you just PR it and I continue from there?

Thanks for looking into all of this. If you are going to rewrite, I'd also like to mention that virtualization is essential for this type of component. As it stands, if you expand too many nodes it'll bog down your app.

@kelltom sure, but that'll be a separate work item and if you could help with that (once we got the breaking changes done in v7) that would be great.

@kelltom I just found out that MudTreeView 's selection logic works perfectly find if you just use @bind-SelectedValue. Here is proof

No need to use this: public async Task Select(MudTreeViewItem<T> item, bool isSelected = true) and I am inclined to remove it and just make sure multi-selection works well with an IReadOnlyCollection<T> instead of a HashSet<T>.

Oh, sorry, it doesn't work when you initialize the selected value in the bound variable. I will fix that.


Mistype in Intel® RealSense™ D400 Series Calibration Tools User Guide

Trying to make dynamic calibration on Ubuntu 20.04 with recommendation from: https://github.com/IntelRealSense/librealsense/issues/2329

Instructions for installing the Linux version of the tool are on page 14 onward of the user guide for the tool.
https://www.intel.com/content/www/us/en/support/articles/000026723/emerging-technologies/intel-realsense-technology.html

$ echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionicmain' | sudo tee /etc/apt/sources.list.d/realsense-public.list deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionicmain
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key 6F3EFCDE
Executing: /tmp/apt-key-gpghome.1FoxtUlaPC/gpg.1.sh --keyserver keys.gnupg.net --recv-key 6F3EFCDE
gpg: key C8B3A55A6F3EFCDE: ""CN = Intel(R) Intel(R) Realsense", O=Intel Corporation" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
$ sudo apt update
E: Malformed entry 1 in list file /etc/apt/sources.list.d/realsense-public.list (Component)
E: The list of sources could not be read.

Required Info

Camera Model
D435

Operating System & Version
Ubuntu 20.04 LTS

Kernel Version (Linux Only)
5.4.0-51-generic

Platform
PC

Issue Description
Because copied from PDF instruction doesn't have a space between "bionic" and "main" and it's copied as "bionicmain" in file that cause error.

Hi @TDHster   I tried to recreate how this may have happened, as the sentence is written correctly as bionic main in the PDF of the Dynamic Calibrator.   Corruptions can happen if you try to copy and paste lines from the pages of a PDF, and this is common with PDF files in general.  So the content of the document is correct, I believe, and it is just the structure of the file that makes it difficult to directly copy text from.

Thank  you, MartyG.


Secrets do not work for versions after 0.4.9

sudo habitus_linux_amd64 --binding=<IP_ADDRESS> --port=7777 --host unix:///var/run/docker.sock --build host=<IP_ADDRESS>

Version 0.4.9
--2017-05-19 09:29:41--  http://<IP_ADDRESS>:7777/v1/secrets/file/id_rsa
Connecting to <IP_ADDRESS>:7777... connected.
HTTP request sent, awaiting response... 200 OK

Versions after:
--2017-05-19 09:31:11--  http://<IP_ADDRESS>:7777/v1/secrets/file/id_rsa
Connecting to <IP_ADDRESS>:7777... failed: Connection refused.

It seems to me that the API do not start. Added a sleep to the docker build to check the port and there was none. Also the log misses the "2017/05/19 11:29:41 ▶ Starting API on 7777" line.

thanks @lukogex for the report

hi @lukogex after version 0.4.9 you need to enable the secret service with option --secrets=true.
will update the documentation
your command looks like this:
sudo habitus_linux_amd64 --binding=<IP_ADDRESS> --port=7777 --host unix:///var/run/docker.sock --build host=<IP_ADDRESS> --secrets=true

Thanks for the information, worked now also for the latest version.


Sort all Python imports

The goal of this PR is to sort all Python imports for readability in the following order:

Future
Python Standard Library
Third Party
Current Python Project
Explicitly Local (. before import, as in: from . import x)
Custom Separate Sections (Defined by forced_separate list in configuration file)
Custom Sections (Defined by sections list in configuration file)

You can automatically format your Python imports with the package isort.

+1 though I hope you did this automatically somehow, hah!

@aldenpeterson-wf Of course! Hah.
I regularly use isort

Please note that gevent's monkey patching must be applied before the import of requests (see #655). Perhaps isort can be configured to not touch that if we run it again (or we can just manually fix it).


Ramifications of updating SplineFontDB

The changes in #6 update the SplineFontDB from 3.0 to 3.2 by default. Are there any possible side effects to this for downstream projects? It doesn't seem to phase mine at all, but I'm not very familiar with how FontForge handles updates or what other programs may read this value. I realize they can adjust this default, but if it will break anything for anybody I'd rather introduce it behind a non-default flag first, then later bump the default.
If no possible problems are foreseen I think we can move ahead with a new release tag, the logic for that makes sense to me.

There's nothing for you to worry about @alerque. We did a few version bumps because we added some new items having to do with background images. I confirmed that these new items are understood fine by sfdnormalize. The version bump is so users of old FontForge versions know that files with these new items can't be understood by their version.
It is perfectly OK to consider any 3.0 SFD as being a 3.2 SFD. Just, not every 3.2 SFD can be a 3.0 SFD. So, because sfdnormalize understands the new items without issue, it's actually downgrading files with them in a way old FontForge's won't understand. The new default version reflects its actual state of SFD conformity.

Got it. I think the only catch would be if used with files produced by an old FontForge (i.e. with none of the new keys) was normalized it would appear to be no longer compatible with the same version of FF that created it, but given the distro penetration the latest release has I think I'll let that be somebody else's problem.

I was downgrading because I didn't use any of the new features and the version of FontForge available on Travis would choke on the newer SFD version.

Thanks for the background. It's not adjustable from the CLI, and defaults to 3.2. Travis isn't an issue for me given their lack of support for FOSS projects, they have newer images and could be setup with a fresher FontForge, and if that's not acceptable to some project they can add CLI args to normalize to an older version.


Moving the prepare_data from the main files right before the training

What to do: Send the prepare_data lower in the main files
Why do it: We want to load everything before the data, so that if there's a bug in the configs, but the data takes minutes/hours to load, we don't have to wait that long before it crashes.
Currently, prepare_data is called early on in many main_run_X.py files. It could be moved down the file to be executed right
https://github.com/datamol-io/graphium/blob/7143a9b483205fdf56abd63b8c0cbe0e49e7cb22/expts/main_run_multitask.py#L60
It could be moved down the file to be executed right after this line
https://github.com/datamol-io/graphium/blob/7143a9b483205fdf56abd63b8c0cbe0e49e7cb22/expts/main_run_multitask.py#L77
The only thing preventing it is the task_norms being sent to load_predictor here: https://github.com/datamol-io/graphium/blob/7143a9b483205fdf56abd63b8c0cbe0e49e7cb22/expts/main_run_multitask.py#L65-L67

Closing since PR #432 added a CLI command for graphium-prepare-data, which allows the user to prepare data in advance. This is the preferred way of operating


Add wallet

Added balance command to allow users to check their balance

@kenessajr since tests are working against the live server this test will not pass.
They depend on the latest changes in pindo repository. Please depoly pindo first.
Thank you.

@erwagasore since Mobicash is using the deploy. I will advise deploying the changes in the night.


[Feature Request]: Add Full Screen Mode Button

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
I would like to request the addition of a "Full Screen Mode" button to the drawing board interface. This button would allow users to switch the drawing board to a full-screen view, providing a more immersive and distraction-free drawing experience.
Use Case
This feature would be particularly beneficial for users who want to maximize their workspace while drawing, especially on smaller screens. It would enhance focus and allow for a more detailed view of their artwork.
Benefits

Improved user experience by allowing distraction-free drawing.
Increased usability for artists using smaller devices or screens.
Enhanced focus and immersion for users, leading to potentially better artistic outputs.

Add ScreenShots
No response
Priority
Medium
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[ ] I'm a SSOC'24 contributor
[X] I want to work on this issue

Hi @rohitinu6 I've assigned you the issue, Best of Luck :)


Possibility of token limit increase

Describe the bug
Hi, currently we are facing problems with token limitation which is 4097. Is there any possibility to increase existing token limit to 7000 tokens.
Thanks in advance
To Reproduce
NA
Code snippets
No response
OS
Linux
Python version
Python v3.8
Library version
openai-python v0.26.5

Hey, there is no way to increase the number of tokens, I suggest you try out some different truncation approaches.


[Feat] Support Api key for ollama apis

Hi @bugaosuni59 thanks for the PR! There are quite a few approaches to auth that all differ based on the environment where Ollama is deployed (api keys, oauth, etc) and so this is something better done using a proxy before the http Ollama API (e.g. using Nginx, Caddy or other tools).


Simplify argument passing in process runtimes

Motivation
Currently the process runtime goes over each variable inside the functiondetails protobuf and passes them as individual arguments. This is not only complicated, but each new variable addition/deletion results in changes to processruntime. This pr passes the entire proto as a json string which can then be converted back to protobuf in the instances, thereby simplifying this process.
Modifications
Describe the modifications you've done.


Device with Nuki ID in HEX Value not accepted (even not in Hombridge UI)

HI,
I have a new White Edition Nuki Smart Lock witch have a ID like this 121F037C, the config is not accepted this and even is not shown after initial load. So I think the Nuki ID could not longer a string value.
Config:
{
  "nukiId": 121F037C,
  "isDoorSensorEnabled": true,
  "isSingleAccessoryModeEnabled": true,
  "unlatchFromUnlockedToUnlocked": true
 },

could this be changed, to have the new locks with hex value ID in HB?
If you need additional information let me know.
Thanks a lot!

The nukiId has to be the ID coming from the Bridge, not the serial number or the ID on the web, take a look at the README: https://github.com/lukasroegner/homebridge-nuki#find-nuki-ids-of-the-devices

Thanks a lot, but do I have to de configure already installed and configured devices to add a new one?

If you provided the config like shown above, Homebridge won't load as this is not valid JSON. I suggest removing the part of the config that you posted above, restart Homebridge, then check the logs for the actual ID that is coming from the Bridge.

This was the plan, I started with the old working config 1 Opener and 2 SmartLocks but the new one was not shown up, after a restart of HB. Anyway the lock is now working.


ISSUE: Puzzling behavior with creating Yahoo accounts in K-9: v5.010 and Android: v6.0.1

Expected behavior
I have two Yahoo email accounts:
<EMAIL_ADDRESS><EMAIL_ADDRESS>Both have the same password.
You would expect that both accounts would be created in K9-Mail.
Actual behavior
<EMAIL_ADDRESS>works and
<EMAIL_ADDRESS>fails.
Steps to reproduce
I created both accounts in K-9 Mail using:
INCOMING:
IMAP server: imap.mail.yahoo.com
Security: SSL/TLS
Port: 993
Username: [email<EMAIL_ADDRESS>Authentication: Normal password
Password: ***************
Auto-detect IMAP namespace: Checked
IMAP path prefi:
Show only subscribed folders: Unchecked
Use compression on network: All checked (Mobile, Wi-Fi, Other)
OUTGOING:
SMTP server: smtp.mail.yahoo.com
Security: SSL/TLS
Port: 465
Required sign-in: Checked
Username: [email<EMAIL_ADDRESS>Authentication: Normal password
Password: ***************
Environment
K-9 Mail version: v5.010
Android version: v6.0.1 on Nexus 6P
Account type (IMAP, POP3, WebDAV/Exchange): IMAP

Please use the mailing list for support requests.


Have 3 results for library based eval

Right now we combined all 3 in EvalString but probably providing 3 results would make sense (or taking 2 writers and returning 1 result)

the eval result
the stdout equiv
the stderr equiv

for now this just puts everything in a string, more or less how it appears:

Originally posted by @ldemailly in https://github.com/grol-io/grol/pull/32#discussion_r1678336423

it's sort of covered by having errors showing up into a separate errors array as well as having log go to stdout

it's covered between Out, LogOut, and regular result and errors