[ISSUE #7622] Revise the measurement method of GROUP_GET_LATENCY to reveal its intended semantics

Which Issue(s) This PR Fixes

Fixes #7622
Brief Description

Revise the measurement method of GROUP_GET_LATENCY to reveal its intended semantics
How Did You Test This Change?

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

Comparison is base (06e22b4) 42.93% compared to head (2128d45) 43.01%.

Files
Patch %
Lines

...ocketmq/broker/processor/PeekMessageProcessor.java
0.00%
1 Missing :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #7808      +/-   ##
=============================================
+ Coverage      42.93%   43.01%   +0.07%
- Complexity      9905     9918      +13
=============================================
  Files           1190     1190
  Lines          85934    85934
  Branches       11070    11070
=============================================
+ Hits           36898    36962      +64
+ Misses         44476    44393      -83
- Partials        4560     4579      +19

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


Feedback on some issues

Douyu live streaming sometimes gets stuck.Can other live broadcast sources be added?

Douyu Live uses Tencent’s x-p2p solution. Currently, lsf does not adopt a multi-stream p2p mode, but a single-stream p2p mode. Therefore, when the default p2p node provided by Douyu goes offline, the video will be interrupted. Currently the player can solve this problem by stopping and restarting. As for the multi-stream p2p model, I am currently still studying how to assemble the data of multiple streams. There is no public documentation, so it will take some time.

Douyu Live uses Tencent’s x-p2p solution. Currently, lsf does not adopt a multi-stream p2p mode, but a single-stream p2p mode. Therefore, when the default p2p node provided by Douyu goes offline, the video will be interrupted. Currently the player can solve this problem by stopping and restarting. As for the multi-stream p2p model, I am currently still studying how to assemble the data of multiple streams. There is no public documentation, so it will take some time.

https://github.com/youshandefeiyang/LiveRedirect/tree/main/Golang
There are multiple stream connection projects here. See if it helps.

You may have misunderstood me. This project does not provide p2p multi-streaming, but only provides multi-format. For lsf, multi-format is not the optimal solution.

Can Douyin be changed to use FLV? m3u8 is not as smooth as flv

Douyu Live uses Tencent’s x-p2p solution. Currently, lsf does not adopt a multi-stream p2p mode, but a single-stream p2p mode. Therefore, when the default p2p node provided by Douyu goes offline, the video will be interrupted. Currently the player can solve this problem by stopping and restarting. As for the multi-stream p2p model, I am currently still studying how to assemble the data of multiple streams. There is no public documentation, so it will take some time.

https://github.com/youshandefeiyang/LiveRedirect/tree/main/Golang
There are multiple stream connection projects here. See if it helps.

You may have misunderstood me. This project does not provide p2p multi-streaming, but only provides multi-format. For lsf, multi-format is not the optimal solution.

Can Douyin be changed to use FLV? m3u8 is not as smooth as flv

HLS can use Apple TV to cast the screen, so this program will return the HLS stream first. After v0.0.8, support using "http://x.x.x.x:x/douyin/xxxx?format=flv" to obtain FLV format streams.


remove hardcode namespace from controllers

Signed-off-by: Mohamed Mahmoud<EMAIL_ADDRESS>

Just a few nits, looks really good!

LGTM


rocksdb: Remove WriteBatch parameter

Feature Request
Is your feature request related to a problem? Please describe:

Almost every function  in the code of components/raftstore/src/store/fsm/apply.rs must pass a type parameter WriteBatch. This brings a lot of difficulties to developers, especially when we are facing a large-scale refactoring.
Describe the feature you'd like:

I want to remove the type parameter and merge the two kind of WriteBatch into one.
Describe alternatives you've considered:

Teachability, Documentation, Adoption, Migration Strategy:

/type feature-request


vaadin-text-area should take innerHTML as its initial value

Since in textarea you can setup the initial value in this way
<textarea>
   any text or html content as initial value
</textarea>

I would expect the same syntax for vaadin-text-area
<vaadin-text-area>
   any text or html content as initial value
</vaadin-text-area>

Thanks for the suggestion!
I consider the native way a bit odd, as it doesn’t actually handle HTML elements, it just converts those to a string. It’s a little unexpected.
Having two ways of doing the same thing is usually a bad practice (value property + textContent/innerText/innerHTML). What you propose is that we treat the textContent just as the initial value, and do not keep it in sync after the first render, right? So value would still be the source of truth.
If we would do this, it should also work for vaadin-text-field and vaadin-password-field.

Well setting the value of a textarea in its body is not odd but an expected way because is is in the spec. Different thing for input type=text|password  that cannot have inner content.
Also makes perfect sense that any content is treated as text, because that its is a text area, not a rich text editor.
Declaratively setting the initial value via attributes could be complex, because I want to use quotes, spaces, newlines in my content. That is the reason native text area supports both ways, I dont consider it's a bad practice.
Implementation should be quite easy, you only need to check for the presence of value, otherwise you get the element content (innerHTML not the textContent). You don't need to update the html content when value is set via property nor have dom observers to check if the html changes, textarea only reads the content in the initialisation.

Sorry for the long delay.

Declaratively setting the initial value via attributes could be complex, because I want to use quotes, spaces, newlines in my content. That is the reason native text area supports both ways, I dont consider it's a bad practice.

Those are compelling reasons, and I actually stumbled on the same issue last week.

textarea only reads the content in the initialisation.

Yeah, sounds good.
Any chance for a PR? 😃

You can implement this in your app with this.$.textarea.value = this.$.textarea.textContent. Not in favour of adding this feature to the element directly. The implementation would for example have to ignore text content from prefix/suffix slots. Also, we'd have to make some assumptions regarding the behaviour for the developer that might force us to expand the (redundant) API even further in the future (wrap for one).


History of custom UserModel

I try to add to my app history tracking of custom model. To get it working I need to comment history field, then make migrations, then uncomment and again create migrations. in other case Its create History model before User model and there is error in migration.
Do you have any suggestion how to avoid it? Or how to debug it?
In other models from this app I have split on creating main part of model and Add field with reference.
Django 2.0, python 3.6, version from branch django-20

Maybe check the order in which your apps are imported? Ideally, if you could include the minimum version of your app that includes this bug, I could help with debugging it.


Final report

audience:

auditors / compliance with stated project goals;
managers concerned about communicating the state of the ecosystem to general public and other stakeholders (NGOs/academics/gov't) [ABSTRACT]
academics/scientists as beginnings of a peer reviewed pub [METHODS/RESULTS]
technicians with documentation for continuance and use elsewhere [APPENDIX]

TIERS:

Static. Silhouette element to data plot over time.
Interactive. to interactive data plot using JavaScript. User experience.
Realtime. to data that gets updated automatically using Continuous Integration (Travis vs ).
Scrollytelling. Next gen viz.

use Jai's SCRIBE approach on whiteboard
due end of Sep
roadmap for future webenization of reports elsewhere too
code documentation
is fodder for peer-reviewed publication, and BB has materials; prob need to also include:

MBON
IEA

good for planning out necessary steps and logic of system

More resources:

marinebon.org/help: process
nfo-demo: technical
ocnms/rocky-shore: OCNMS already customized
Statement of Work - Dynamic Datasets for Sanctuary Infographics Websites - Google Docs: what next, which datasets for where, multiple NMS sites

Shared draft of WCR Final Report - Google Docs with Jenn B & Chris C.

Waiting for comments back before publishing

Final phase: @mspector13 formatting with 20210421-conservation-series-template.docx

Yay, this is done! Thanks @mspector13 :)


MTLS certificate enforcement

Is your feature request related to a problem? Please describe.
Binding the MTLS cert adds an extra layer of security regardless of the client authentication used. Since the MTLS happens in the APIM layer the certificate can be passed as a header or it can be passed through the MTLS message context. This then needs to be ensured during the token call.
Describe the solution you would prefer
For every token call, we need to ensure that the TLS certificate is passed regardless of the client authentication method (MTLS or PKJWT)
During registration, a client should be able to enable MTLS enforcement.
Additional context

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


NotImplementedError:

For the given code:
import asyncio
from proxybroker import Broker
async def show(proxies):
while True:
proxy = await proxies.get()
if proxy is None:
break
print("Found proxy: %s" % proxy)
proxies = asyncio.Queue()
broker = Broker(proxies)
tasks = asyncio.gather(broker.find(types=["HTTP", "HTTPS"], limit=10), show(proxies))
loop = asyncio.get_event_loop()
loop.run_until_complete(tasks)
I am getting  this 10 times:
Exception ignored from cffi callback <function sock_state_cb at 0x000001A7DF3798A0>:
Traceback (most recent call last):
File "C:\Users\koush\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\pycares_init.py", line 99, in sock_state_cb
sock_state_cb(socket_fd, readable, writable)
File "C:\Users\koush\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\aiodns_init.py", line 111, in _sock_state_cb
self.loop.add_reader(fd, self._handle_event, fd, READ)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\asyncio\events.py", line 530, in add_reader
raise NotImplementedError
NotImplementedError:
how to fix bro? also no proxy is showing

Same error in python 3.11

were you able to solve this problem, if so, how?

Doesn't reproducible error, no problem on Linux for now


README updates for the main repo, and a light overview on the docs subdir

Overview
Updating some links now that the new evergreen.segment.com is live.
Screenshots (if applicable)
N/A
Documentation

[ ] ~Updated Typescript types and/or component PropTypes~
[ ] ~Added / modified component docs~
[ ] ~Added / modified Storybook stories~

Need to figure out why the actions keep getting cancelled, but given that this is a documentation change, it should be fine.


Separate settings into basic/advanced

I think we're reaching the point where we have a lot of search settings that most people probably don't really care about or want to mess with, and it's cluttering up the GUI. I'd like to keep all the current settings (and be more comfortable with adding additional settings in the future), but simply rearrange them. My ideal is to open a new task window and have the basic settings immediately visible instead of in a series of dropdown menus. There would be one dropdown tab at the bottom that contains all the advanced settings (probably with additional sub-menus).
Here's what I'd like to see in the basic settings, with the remaining settings under the "advanced" tab. Feel free to voice your opinion if you feel strongly that a setting should be in one category or another.
Deconvolute precursors
Precursor Mass Tolerance
Product Mass Tolerance
Protease
Max mods per peptide
Min/max peptide lengths
Max missed cleavages
Initiator methionine behavior
Dissociation type
Modifications (Fixed/Variable/GPTMD)
Protein parsimony options
Quantification options
Output options

One problem with this is that if you want to do a fairly common but not ultra-basic search like semi-specific, non-specific, notch, or open-mass search, it becomes more difficult (albeit not that much more difficult). I think these searches are core parts of MM and should somehow be included in the basic settings section, but I also think they're currently a bit hard to figure out how to use. What "Search Mode" to use is likely somewhat confounding to new users, since there isn't an analogous option in other programs to choose your search algorithm.

in advanced add option to turn off final search in gptmd

done in #1645 . Happy to move things around if desired. I'll keep this issue open for discussion.


Dockerfile: update to Golang 1.12.17

ptal @selansen

shouldn't we bump up to 1.13.8 ?

@selansen I have https://github.com/docker/libnetwork/pull/2514 for that; first bumping to latest 1.12 version (which is what 19.03 is using right now); I'll backport that one to the 19.03 release branch, then I'll prepare bumps to 1.13 for an upcoming patch release.
Basically these versions are only used in CI, but it's good to have them match what's used in moby / docker, in case there's tests that have issues on newer go versions

@selansen I have #2514 for that; first bumping to latest 1.12 version (which is what 19.03 is using right now); I'll backport this one to the 19.03 release branch, then I'll prepare bumps to 1.13 for an upcoming patch release.
Basically these versions are only used in CI, but it's good to have them match what's used in moby / docker, in case there's tests that have issues on newer go versions

Got it. Thanks


install apks to actually build

git, build-base, openssl-dev, ffi-dev
uninstall 'em when done

doesn't build the docker without 'em otherwise

new PR incoming


[Planning] Modularization of the codebase

Hi everyone,
To allow us to have non-MLKit versions, or the ability to deploy outside the Google Play on Android, we need to change how the codebase is currently designed.

[x] The current smooth_app folder which refers to the app, will now be a module #3101
[x] A new folder app will contain several entrypoints explaining which version we want to use (eg: MLKit + Google Play, Zxing + FDroid…)
[x] Create a MLKit module
[ ] Create a Zxing module

To prevent having a gigantic PR, this change will be done in several steps:

Add on all assets (eg: Image.assets) the name of the package
Move the MLKit implementation to a new package and create an app module which uses this package
Implement a ZXing version of the scanner
Create a module per application storage (at the beginning only for the review popup)

Since step 1 will basically require changing most of the files, we should "freeze" the codebase during this migration and refuse all PRs.
What's the best moment to do this? (on my side, I'm unavailable until this Thursday)

Hi @g123k!
We discussed this yesterday and I believe we could be rather relaxed about step 1, as the impact would be on code lines we rarely change.
Just checking: for the following code, would it be as easy as adding package: 'smooth_app'?
import 'package:flutter/widgets.dart';
import 'package:flutter_svg/svg.dart';

/// Displays a default asset as a _picture not found_ image.
class PictureNotFound extends StatelessWidget {
  const PictureNotFound();

  static const String NOT_FOUND_ASSET = 'assets/product/product_not_found.svg';

  @override
  Widget build(BuildContext context) => SvgPicture.asset(
        NOT_FOUND_ASSET,
        fit: BoxFit.cover,
        // to be added? package: 'smooth_app', // or with a static const
      );
}

If so, we have no reason to delay your PR about step 1.
If the impact is a bit larger, please reply with a sample of how you would change the code of PictureNotFound.

Our former discussion besides the in person ones were here: https://github.com/openfoodfacts/smooth-app/issues/2591

@monsieurtanuki Yes, exactly that will be the change required.
I think to ease the migration, I will create a SmoothImage (or something like that) where I define the package.
By changing the Widget, I think we should take the opportunity to let SmoothImage to handle both SvgPicture and Image Widgets, in order to hide the SVG dependency.

Can't handle svgs but we already have a wrapper @g123k 😉

@g123k That's where I would like to raise a flag:

if it's only about adding package: 'smooth_app' to dozens of asset related lines of code

it could be coded,
reviewed
and merged in one hour and with a minimal impact

if it's about adding a layer of abstraction on top of png and svg

that will impact the whole project
that will be harder to code and to review
we don't need that

As far as I understood things, we could have that new "module system" OK by the end of the week, because all steps are easy. And we don't need to make any step more difficult, do we?
Or maybe there's something that I'm missing.

Ok so let's make it simple, I will just add package everywhere.
When is the best time to "freeze" the code base?

@g123k Perfect!
If it's just about adding package: 'smooth_app' here and there, we don't have to freeze the code, do we?
Tomorrow morning would sound good.
Regarding the pending #3059 large PR, there should be no impact (or no impact I can manage), so no reason to freeze. And I may split its code in simpler PRs anyway - if possible.

Ok I implement step 1

I have to change a little bit the step 1:

Add the package attribute for all assets
Create an app package (empty for now)
Add smooth_app as a dependency

Once MLKit & ZXing will be available, we will be able to deploy to FDroid and many other stores.
In terms of GitHub Actions, what should we do? One action per store? A single action for all stores? (any suggestion @M123-dev)

My plan was to have to 3 build jobs

iOS
Android main

Where 1. automatically releases to the store, but 2 is uploading the apk as artifact which we dowload in one seperate workflow per store, so that we don't fail te release on all platforms when there is a problem with one, to reuse as much code as possible and to not have a built per platform that would be a total waste of recources.
The whole FDroid build will be done on FDroid itself no github actions involved besided maybe pinging that we wan't a new release, we have to investigate this.

https://github.com/openfoodfacts/smooth-app/issues/2771

It seems like the last point about ZXing has been solved in #3252 now :+1:  (but I may be wrong)
This means that with the next release the F-Droid process could be started?

Yes that's right @Altonss

@M123-dev Great news, thanks a lot! So now somehow should just update the build recipe available here to switch to the new app I assume? https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/openfoodfacts.github.scrachx.openfood.yml

Either this or we create a new listing cf: #2771


Full character sets in body and headers

Add support for

RFC 2045 & 2047,  extended by RFC 2184, 2231, and 6352.


Android EGL_BAD_MATCH error on first frame #1904

Description
Got more finding on #1904
The android issue is only reproducible on android devices with Mali GPU (eg . Google Pixel, Oppo)and works fine on android phones on Adreno GPU like Samsung Galaxy , One plus etc
The SkiaView freezes and on scrolling below error comes -
E/libEGL  (16722): eglMakeCurrentImpl:1014 error 3009 (EGL_BAD_MATCH)11-06 08:51:19.301 E/libEGL  (16722): eglMakeCurrentImpl:1014 error 3009 (EGL_BAD_MATCH)
Version
214
Steps to reproduce
Plz refer #1904
SkiaView freezes on first frame on android devices with Mali GPU
Snack, code example, screenshot, or link to a repository
Plz refer #1904

Thanks for reaching out Sumit and I would like to help you fix this issue hopefully.
Here are some of the comments from #1904:

SkiaView will disappear in upcoming releases (with a deprecation warning that could appear as early as this week)
You mentioned many time this idea of a "fast first frame" with SkiaView. This concept really to exist for us when talking about the deprecated SkiaView.
If you have a small reproducible example using Canvas, we will take a look at it in a timely manner.

Closing for now but if you have new elements to provide, we will reopen it immediately.

Thanks for your reply .
Is there a document I can refer to for moving from SKiaview to Canvas?
What is the alternative for onDraw of SkiaView in Canvas?

We use typescript, so it is just based on the RNSkiaDrawCallback. Where we get canvas: SkCanvas. We pass this into draw methods to control the draw directly.
An example method
export const drawNoData = (
  baseYOffset: number,
  textColor: string,
  backgroundColor: string,
  ctx: DrawingContext,
  typeface: SkTypeface | null,
  text = "No Data",
  width = 67
) => {
  ctx.canvas.save();

  const y = baseYOffset + (ctx.height - baseYOffset) / 3;
  const x = ctx.width / 2 - width / 2 - NO_DATA_PADDING;

  const font = getFont(typeface, NO_DATA_FONT_SIZE);

  const strokePaint = ctx.paint.copy();
  strokePaint.setStyle(PaintStyle.Fill);
  strokePaint.setColor(Skia.Color(backgroundColor));
  ctx.canvas.drawRRect(
    Skia.RRectXY(
      Skia.XYWHRect(
        x,
        y,
        width + NO_DATA_PADDING * 2,
        NO_DATA_FONT_SIZE + NO_DATA_PADDING * 2.5
      ),
      NO_DATA_PADDING,
      NO_DATA_PADDING
    ),
    strokePaint
  );

  const textPaint = ctx.paint.copy();
  textPaint.setStyle(PaintStyle.Fill);
  textPaint.setColor(Skia.Color(textColor));
  ctx.canvas.drawText(
    text,
    x + NO_DATA_PADDING,
    y + NO_DATA_FONT_SIZE + NO_DATA_PADDING,
    textPaint,
    font
  );

  ctx.canvas.restore();
};

We use typescript, so it is just based on the RNSkiaDrawCallback. Where we get canvas: SkCanvas. We pass this into draw methods to control the draw directly.
An example method
export const drawNoData = (
  baseYOffset: number,
  textColor: string,
  backgroundColor: string,
  ctx: DrawingContext,
  typeface: SkTypeface | null,
  text = "No Data",
  width = 67
) => {
  ctx.canvas.save();

  const y = baseYOffset + (ctx.height - baseYOffset) / 3;
  const x = ctx.width / 2 - width / 2 - NO_DATA_PADDING;

  const font = getFont(typeface, NO_DATA_FONT_SIZE);

  const strokePaint = ctx.paint.copy();
  strokePaint.setStyle(PaintStyle.Fill);
  strokePaint.setColor(Skia.Color(backgroundColor));
  ctx.canvas.drawRRect(
    Skia.RRectXY(
      Skia.XYWHRect(
        x,
        y,
        width + NO_DATA_PADDING * 2,
        NO_DATA_FONT_SIZE + NO_DATA_PADDING * 2.5
      ),
      NO_DATA_PADDING,
      NO_DATA_PADDING
    ),
    strokePaint
  );

  const textPaint = ctx.paint.copy();
  textPaint.setStyle(PaintStyle.Fill);
  textPaint.setColor(Skia.Color(textColor));
  ctx.canvas.drawText(
    text,
    x + NO_DATA_PADDING,
    y + NO_DATA_FONT_SIZE + NO_DATA_PADDING,
    textPaint,
    font
  );

  ctx.canvas.restore();
};

@wcandillon I tried using Canvas as well(refer below code)  , but get same error for android devices with Mali GPU -
E/libEGL  (31956): eglMakeCurrentImpl:1014 error 3009 (EGL_BAD_MATCH)
E/libEGL  (31956): eglMakeCurrentImpl:1014 error 3009 (EGL_BAD_MATCH)
Looks like it's being called from SkiaOpenGLHelper.h
<Canvas
        ref={ref}
        style={style}
        mode={mode}
        debug={debug}
        onTouchEnd={handleTouchEnd}
        onLayout={onLayout}
        onSize={size}
        onTouch={() => onTouch?.(drawingContextRef.current)}
      >
        <Drawing
          drawing={(context) => {
            handleDrawing(context);
          }}
        />
      </Canvas>

EGL_BAD_MATCH indicates a thread issue which makes sense if you are using SkiaView or Drawing  the code you have in handleDrawing you can use the same code using this API: https://shopify.github.io/react-native-skia/docs/shapes/pictures/ this will get rid of the error. I may also recommend to use regular canvas components if possible

Tried using Picture, used sharedValue to update the Picture but that useDerivedValue didn't work so tried useDerviedValueonJS . If I use just a state instead of sharedValue and put that on useMemo dependency for createPicture it works fine but is causing some slowness.
In the below code both drawValue and layout values are getting updated, but the picture isn't getting updated according to the updated value .
const picture = useDerivedValueOnJS(
      () =>
        createPicture(
          {
            x: layout.x,
            y: layout.y,
            width: layout.width,
            height: layout.height,
          },
          (canvas) => {
            console.log("updated values - ", drawValue.value, layout);
            const paint = Skia.Paint();
            paint.setColor(Skia.Color("pink"));
            canvas.drawRect(
              { x: 0, y: 0, width: 100, height: 100 + drawValue.value },
              paint
            );

            const circlePaint = Skia.Paint();
            circlePaint.setColor(Skia.Color("orange"));
            canvas.drawCircle(
              50 + drawValue.value,
              50 + drawValue.value,
              50,
              circlePaint
            );
          }
        ),

      [drawValue, layout]
    );

    return (
      <GestureDetector gesture={Gesture.Race(tap, longPress, scroll)}>
        <Canvas
          ref={canvasRef}
          style={{ flex: 1 }}
          debug={debug}
          onLayout={handleLayout}
        >
          <Picture picture={picture} />
        </Canvas>
      </GestureDetector>
    );

In the above code both drawValue and layout values are getting updated, but the picture isn't getting updated according to the updated value because of useDerivedValueOnJS .
Tried looking for Picture + Reanimated Example app, was not able to find it

I tried Picture recording example , it seems to be working initially but sometimes it crashes
--
Thread Performance Checker: Thread running at QOS_CLASS_USER_INTERACTIVE waiting on a lower QoS thread running at QOS_CLASS_DEFAULT. Investigate ways to avoid priority inversions
PID: 83862, TID: 5257673
JSI_HOST_FUNCTION(finishRecordingAsPicture) {
auto picture = getObject()->finishRecordingAsPicture(); // com.facebook.react.JavaScript (11): EXC_BAD_ACCESS (code=1, address=0xc)
Code below -
 const scroll = Gesture.Pan()
      .runOnJS(true)
      .onStart((pos) => {
        recorder.current = Skia.PictureRecorder();
        const canvas = recorder.current.beginRecording(
          Skia.XYWHRect(0, 0, layout.width, layout.height)
        );
        const ctx: DrawingContext = {
          canvas,
          paint: Skia.Paint(),
          width: layout.width,
          height: layout.height,
        };
        ctxRef.current = ctx;
        onStart(pos);
      })
      .onChange((pos) => {
        onActive(pos);
      })
      .onEnd((pos) => {
        onEnd();
        touchEndY(pos.velocityY);
        touchEndUnpinnedX(pos.velocityX);
        touchEndPinnedX(pos.velocityX);
      })
      .onFinalize(() => {
        picture.value = recorder.current.finishRecordingAsPicture();
      });

    return (
      <GestureDetector gesture={Gesture.Race(tap, longPress, scroll)}>
        <Canvas
          ref={canvasRef}
          style={{ flex: 1 }}
          debug={debug}
          onLayout={handleLayout}
        >
          <Picture picture={picture} />
        </Canvas>
      </GestureDetector>
    );
  }

the code above it too error-prone, you shouldn't save the canvas into a ref and have it created/deleted in depending on the gesture state, it's way too easy to get into an invalid state here.

In the example here we are doing same thing on gestures -
https://github.com/Shopify/react-native-skia/blob/main/example/src/Examples/API/Touch.tsx#L41
only thing I have added is creating Recorder ref and canvas ref .

Your code makes it so the canvas can be in a wrong state.

Yeah @sumitmanral I would not have gone this direction shoot me the poc and ill review

Sure I will send it over . The reason I made it a ref was the incoming data that should also cause redraw of the Picture not just Gestures


Added evolution fields, emit next evolution links.

Oops, this wasn't ready for upstream yet. Meant to PR against my master instead.


Text height depends on language

Steps to Reproduce
Text widgets with same TextStyle, depending on language of text, they will be different height.
iOS simulator:

Android emulator:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      appBar: AppBar(title: Text('Text heights')),
      body: new DefaultTextStyle(
        child: Padding(
          child: new Row(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Expanded(
                child: new Container(
                  color: Colors.blue,
                  child: Text("A B C D E F G H I", maxLines: 2, softWrap: true),
                ),
              ),
              Expanded(
                child: new Container(
                  color: Colors.red,
                  child: Text("A B C 😀 G H I 😀", maxLines: 2, softWrap: true),
                ),
              ),
              Expanded(
                child: new Container(
                  color: Colors.yellow,
                  child: Text("あいうえお", maxLines: 2, softWrap: true),
                ),
              ),
              Expanded(
                child: new Container(
                  color: Colors.green,
                  child: Text("あい😀えお", maxLines: 2, softWrap: true),
                ),
              ),
            ],
          ),
          padding: EdgeInsets.only(top: 16.0),
        ),
        style: TextStyle(
          fontSize: 36.0,
          color: Colors.white,
          height: 1.0,
        ),
      ),
    ),
  ));
}

Logs
No errors.
[✓] Flutter (Channel dev, v0.5.4, on Mac OS X 10.12.6 16G1314, locale ja-JP)
    • Flutter version 0.5.4 at /Applications/flutter
    • Framework revision 3019ad976d (3 days ago), 2018-06-11 11:31:25 -0700
    • Engine revision d33bbff470
    • Dart version 2.0.0-dev.60.0.flutter-a5e41681e5

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/najeira/Library/Android/sdk
    • Android NDK at /Users/najeira/Library/Android/sdk/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • ANDROID_HOME = /Users/najeira/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.2, Build version 9C40b
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.2

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    • Dart plugin version 171.4424
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 23.1.3
    • Dart plugin version 181.4203.498

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

[✓] Connected devices (3 available)
    • Android SDK built for x86 • emulator-5554                            • android-x86 • Android 8.0.0 (API 26) (emulator)
    • iPhone X                  • 3264D9F7-7AB5-4C13-8863-85CEC0730DB1     • ios         • iOS 11.2 (simulator)

Please make sure your screen is wide and high；
Different width of the mobile phone screen display different effects；

Flutter now defers to system fonts for glyphs not found in the default Roboto font, see for example https://github.com/flutter/flutter/pull/17879. Perhaps that's why you're seeing different heights.
cc @jason-simmons

Even with the same FontSize, does the box size depends on the font?

@najeira https://www.creativelive.com/blog/why-do-font-sizes-vary/ seems to answer that.

If the fonts are different, it is natural that it is different height. However, it is difficult to lay out that the height is different in the same font.
This is a screenshot of Google search with Chrome browser:

Alphabet and Japanese has same box height because they are in the same font.

I will try using a custom font to unify the alphabet and Japanese fonts.

@najeira

it is difficult to lay out that the height is different in the same font.

did you ensure this is the case?
I think it is what @HansMuller tried to point out that they might not use the same font:

Flutter now defers to system fonts for glyphs not found in the default Roboto font,

It is not ensure whether it is the same font or not. However, I think that iOS has only system font "San Francisco". On Android, Roboto and NotoSans include both alphabet and Japanese.

When using a custom font, the alphabet, Japanese and emoji are the same height.
It is probably because different fonts are used for each character when font is not specified.
Since it does not occur in the platform-native development, I hope a solution.

@najeira could you solve the problem by using a custom font? Which font is working?

@lastant I confirmed it with "Noto Sans JP".

Related #21997

In the Android native app, if the device is set to Japanese, NotoSans/Roboto is selected and both alphabet and Japanese are drawn with NotoSans/Roboto. iOS too. Therefore, the height will be the same.
Flutter and native, I think there is a difference in the mechanism of font selection.

/cc @GaryQian FYI since you were looking at a similar problem

any process on this?

I work around this issue using StrutStyle.
See: Controlling text height using StrutStyle

@najeira Thanks a loooooooot! You are my best friend!

Ahh yes, forgot this issue was still open. Strut is designed to fix this along with many other height-related issues :)
I'm going to close this now!

This issue does not occur in the platform-native development, there is a difference in the mechanism of font selection.
It is better to have a solution without using StrutStyle.

@GaryQian  this problem still not work. if I solved the text height, the hint text will have problem like this:

the input text and prefix at the same line .but hint text will be strange..

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.


Update user guide/shark-ai package with fastapi, uvicorn, aiohttp

These requirements were not previously mentioned in the sd README, and now that we've migrated the requirements setup into the shark-ai[apps] package, we'll need to make sure they are added in for a seamless setup experience.

FYI @amd-chrissosa

Already fixed by https://github.com/nod-ai/SHARK-Platform/pull/529?


support user defined comments for catalog

Feature request
Is your feature request related to a problem? Please describe.

创建catalog:
StarRocks> CREATE EXTERNAL CATALOG mysql_catalog
    -> PROPERTIES
    -> (
    ->     "type"="JDBC",
    ->     "user"="root",
    ->     "password"="root",
    ->     "jdbc_uri"="jdbc:mysql://localhost:3306",
    ->     "driver_url"="file:///tmp/mysql-connector-java-8.0.30.jar",
    ->     "driver_class"="com.mysql.cj.jdbc.Driver",
    -> "Comment"="MySQL Catalog"
    -> );
Query OK, 0 rows affected (0.02 sec)

但是不支持自定义 comment？
StarRocks> SHOW CATALOGS;
+-----------------+----------+------------------------------------------------------------------+
| Catalog         | Type     | Comment                                                          |
+-----------------+----------+------------------------------------------------------------------+
| default_catalog | Internal | An internal catalog contains this cluster's self-managed tables. |
| mysql_catalog   | JDBC     | NULL                                                             |
+-----------------+----------+------------------------------------------------------------------+
2 rows in set (0.00 sec)

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Hi @shawn0915 , I can take a look and support this feature

Hi @shawn0915 , you can add user defined comment directly by CREATE EXTERNAL CATALOG [catalog_name] COMMENT [custom_comment] instead of putting them in properties.
The full syntax is: (Reference)
CREATE EXTERNAL CATALOG [IF NOT EXISTS] <catalog_name>
[COMMENT <comment>]
PROPERTIES ("key"="value", ...)


Add foxes

Insert URLs to the project here:
https://github.com/FraunhoferIWES/foxes

[x] The projects is active, documented, open source licensed, shows usage from external parties and is directly targeting environmental sustainability. Find more details in the Contribution Guide.

All issues labeled as 'Good First Issue' of the project listed on OpenSustain.tech will be visible on ClimateTriage.com. This is a great way to welcome new community members to your project.

@SchmJo @MellBeli

Thanks for adding foxes!


Support for sharding

Migrated from https://code.google.com/p/solrnet/issues/detail?id=11

Current issue has been closed as part of cleanup process, which is tracked in https://github.com/SolrNet/SolrNet/issues/338.
Please reopen if needed, hopefully helping bringing up to date with current code.


Adding CLI commands to describe a tenant and list available tenants by part of the domain name

Adding CLI commands to describe a tenant and list available tenants by part of the domain name

Thanks for the fix @dinithis! I have now merged this pull request to master branch.


AssetManager problem in cloud platform

What steps will reproduce the problem?
Yii2 asset manager specified to any file storage and file serving. There is a small problem with this in a cloud platform.
  server A          server B            server C   ....     server X
     |                 |                   |                   |
     \---------------------------------------------------------/
                                |
                               LB
                                |
                          client browser

Yii2 schema:

client make request
server A
asset managerer copy or symlink files on server A
response
client make new request with asset urls
server B, C (LB select random servers)
not found asset files (onlye copy files server A)

Idea:

It would be nice to have an easy-to-implement solution to not direct file serving.
serving asset contents

from action (read files from direct path, without copy to asset folder)
support CDN PUT or another storage (redis, database)

What is the expected result?
files serving any servers
What do you get instead?
not found asset files (onlye copy files server A)
Additional info
yii2 solution (with my source codes):

asset manager put base directory to databse
asset serving action
get base directory from database
read and serving content from base directory + url path (with file checks and more)

Q
A

Version
2.x

PHP version
-

Operating system
-

I am using https://gitlab.com/mikk150/yii2-asset-manager-flysystem
I had same issue, but even kind of worse, because I do not know(or care) about servers or how many of them I have(auto scaling applications based on load, by purchasing cheapest one from amazon, azure or digitalocean by bidding).. This is uploading them to CDN and CDN deals with it's thing

@kamarton @mikk150 @SamMousa @samdark I have been working with assets, and that problem with flysystems is effectively eliminated, since it works with relative routes and part of it does not work with symlinks, now just working with the local adapter would be completely resolved, they think it is worth implementing that you can work with two adapters at the same time, example:
$mountManager->copy('local://sourcePath/file.ext', 'publish://basePath/file.ext');
Where local can be the local adapter and publish could be local, aws, digital ocean, google cloud storage, or any other adapter.
On the other hand, the other version problem can be solved by adding at the end of the hash 'v0' -> default version, and it can be customized in the assetBundle 'v1' ... 'v99', example hashv0 or (hashv1 ... hashv99).

I'm not sure how this is relevant @terabytesoftw, I'm assuming the flysystem asset manager already publishes data to any flysystem filesystem; how would having support for multiple help?
Note that there are already composite adapters that will allow you to write to multiple filesystems (local & remote) and then read with fallback (local first, remote otherwise):
https://flysystem.thephpleague.com/docs/adapter/replicate/
https://github.com/Litipk/flysystem-fallback-adapter
I'm not sure how having a mount manager that copies between paths is relevant here.
(I think I'm missing some context)


less db requests

This will make a lot less calls on the database (3 less for every hour)
This is for 28 hour entries:
OLD:
  Account Load (0.4ms)  SELECT  "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."subdoma
  User Load (0.6ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [
  Project Load (0.4ms)  SELECT "projects".*  FROM "hours" WHERE "hours"."project_id" = $1 AND "hours"."billed" = $2  [["
  Project Load (0.5ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 2]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 3]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 3
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 4]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 4
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 5]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 5
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 6]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.4ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 6
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 7]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 7
  User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 8]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 8
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 9]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 9
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 10]]
  CACHE (0.1ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 11]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 12]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 13]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 14]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 15]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 16]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 17]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 18]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 19]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 1
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 20]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 21]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 22]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 23]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 24]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 25]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 26]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.3ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 27]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 28]]
  CACHE (0.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = $1 LIMIT 1  [["id", 1]]
  Category Load (0.2ms)  SELECT  "categories".* FROM "categories" WHERE "categories"."id" = $1 LIMIT 1  [["id", 2
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 29]]

NEW
 Account Load (0.3ms)  SELECT  "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."subdoma
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [
  Project Load (0.3ms)  SELECT "projects".* FROM "projects" WHERE "projects"."billable" = $1 AND "projects"."arch
  Hour Exists (0.3ms)  SELECT  1 AS one FROM "hours" WHERE "hours"."project_id" = $1 AND "hours"."billed" = $2 LI
  Hour Exists (0.3ms)  SELECT  1 AS one FROM "hours" WHERE "hours"."project_id" = $1 AND "hours"."billed" = $2 LI
  Hour Load (0.5ms)  SELECT "hours".* FROM "hours" WHERE "hours"."billed" = $1 AND "hours"."project_id" = 1  [["b
  Category Load (0.6ms)  SELECT "categories".* FROM "categories" WHERE "categories"."id" IN (1, 2, 3, 4, 5, 6, 7,
  User Load (0.7ms)  SELECT "users".* FROM "users" WHERE "users"."id" IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  Project Load (0.4ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" IN (1)

:100:


Add getFork, sendSignedAttestation and sendSignedBlock to ValidatorApiChannel

PR Description
Add getFork, sendSignedAttestation and sendSignedBlock to ValidatorApiChannel. Use them from ValidatorCoordinator and the REST API.

ValidatorCoordinator is gradually going away entirely.  There will be a separate ValidatorClientService which loads duties and does the actual coordination of block/attestation production, calling into ValidatorApiHandler to get information from the beacon chain service as needed.


Zarr groups (grouped) loader and operations

Is your feature request related to a problem?
I work in geospatial sciences and use Zarr, Xarray, NetCDF etc. but it is at the moment very hard to create a Xarray Dataset that contains multiple grids and dimensions.
Describe the solution you'd like
Ideally I would love to be able to open Zarr store with groups where attributes are preserved and identified by Xarray for easier interoperability with HoloViz and others.
Describe alternatives you've considered
Right now I try and add the groups of a Zarr store one by one as variables but that is hacky and does not necessarily preserve attributes.
Additional context
No response

@keewis https://github.com/pydata/xarray/pull/7338 mentions datatree, so we could refer people back to there from now on?


cursorDidChange should fire when blank editor gets focus

If the editor's post has no content, the cursorDidChange hook does not fire when the editor gets focus.

This has ended up being more complicated than initially expected because the editor's position exists in an ambiguous state when the editor is blank (aka !editor.post.hasContent). A Position requires a section and offset, and there is no section in a blank post. In this case the editor has a "blank"/inert position when it has focus, but from its perspective it can't tell the difference between having a blank position and having focus and having a blank position without focus. It's possible to fix this by special-casing some of the cursor-did-change checks to include whether the editor has focus. A future improvement may be to force a post to always have a valid position target (which likely means forcing a post to have at least an empty markup section at all times).


Create a web config system app

After EOL of Debian LTS, we moved touchpi default development environment to Bullseye.
With this change in touchpi release Beta 0.5.0 the python development version changed from python 3.6 to python 3.9.
This change allow using python packages like NiceGUI for web devlopment.
This issue propose to change the old shellscript based config editor in the scripts folder to a more modern web based config editor.
Optional it would be nice to implement this feature as backend app.
requirement.txt for niceguy should reflect this. The app should not run as default and can be added optional in _core_apps.
After adding this feature it is a good startpoint to update the documentation for configure touchpi and developing apps.

@merlin1996 please develop in your fork to test development process


feat: add maintenance timeout to toast as 60s

Adds a basic timeout to the maintenance toast so it doesn't need to be dismissed by the user. We don't need a reload here either as the service should just kick back in and resolve the session again on the next API call.

NB: Also fixed a minor typo in sed s/maintanance/maintenance/g file naming

Accidentally rebased in Nick's commits, will re-do


Import scene list from Build Settings

It would be really nice to import the scenes I added to Build Settings (unity's default way of building) to the SuperUnityBuild SceneList

Ah. Good idea. Allowing a quick export to that list might be nice for some people as well.


can't send email via ssl

it is ok when send email with port 25,
but when I switch to the port 587, it failed,
https://github.com/tomav/docker-mailserver/wiki/Configure-SSL
I use docker-compse
ports:
- "25:25"
- "143:143"
- "587:587"
- "993:993"
volumes:
- maildata:/var/mail
- mailstate:/var/mail-state
- ./config/:/tmp/docker-mailserver/
- ./mail/letsencrypt/etc:/etc/letsencrypt
environment:
- ENABLE_SPAMASSASSIN=1
- ENABLE_CLAMAV=1
- ENABLE_FAIL2BAN=1
- ENABLE_POSTGREY=1
- ONE_DIR=1
- DMS_DEBUG=0
- SSL_TYPE=letsencrypt
cap_add:
- NET_ADMIN
the log from the server
May 24 14:03:46 mail postfix/submission/smtpd[1467]: connect from unknown[<IP_ADDRESS>]
May 24 14:03:48 mail postfix/submission/smtpd[1467]: lost connection after UNKNOWN from unknown[<IP_ADDRESS>]
May 24 14:03:48 mail postfix/submission/smtpd[1467]: disconnect from unknown[<IP_ADDRESS>] unknown=0/1 commands=0/1
May 24 14:04:02 mail postfix/submission/smtpd[1467]: warning: hostname <IP_ADDRESS>.broad.sz.gd.dynamic.163data.com.cn does not resolve to address <IP_ADDRESS>: Name or service not known
May 24 14:04:02 mail postfix/submission/smtpd[1467]: connect from unknown[<IP_ADDRESS>]
May 24 14:04:03 mail postfix/submission/smtpd[1467]: lost connection after UNKNOWN from unknown[<IP_ADDRESS>]
May 24 14:04:03 mail postfix/submission/smtpd[1467]: disconnect from unknown[<IP_ADDRESS>] unknown=0/1 commands=0/1

Port 465 (deprecated) was used for SSL (SMTP with SSL wrapper), port 587 is for STARTTLS.
This docker image does not currently support port 465. The logs may be consistent with a client that only supports SSL, not STARTTLS. In that case this issue is a duplicate of #618.
https://www.fastmail.com/help/technical/ssltlsstarttls.html


How to resize window

Hey guys i have a problem i have removed thinks from the menu but now everything is not the correct size
https://imgur.com/a/ZLi12vj
so how to rezise windows?

just drag the corners or the sides

i main in the code


feat: add autoFetchDeviceToken option for ios

Thanks for opening a PR, Samox! Appreciate your time and hard work to contribute some code to the project.
As mentioned in this recent comment, Expo apps should not need to change the value of autoFetchDeviceToken unless there is a problem.
With that in mind, I'll close this PR for now and will instead provide a bug fix to the problem that you're experiencing.
Thanks!


QR-code not working

Describe the bug
The QR-code created in staging environment can't be activated in the app.
This is true for Nuremburg and Bavaria in Android as well as in ios
To Reproduce
Steps to reproduce the behavior:

create an entitlement card in staging environment.
Make shure your app is switched to staging environment
Try scanning the QR-code
See error "Fehler beim Lesen des Codes"

which app version are u using? @Docmale

2024.3.4

2024.3.4

we didn't make an official beta release so far. So no need to test. It may also be related to the fact that the staging environment and the app beta are not that the same version

@ztefanie released a beta version and asked me to test.

@ztefanie released a beta version and asked me to test.

Ok i didn't know. As we had discussion in mattermost this release is broken so please wait for the fixed one

@ztefanie released a beta version and asked me to test.

I did, thanks for testing @Docmale
Someone else was also testing and left us the comment, that the version is broken. So we will fix this error and release a new beta. We will let you know, when you can continue testing. :)

Anyway, the bug has been fixed. Tested several QR-codes in version 2024.3.16


Uima 6138

merge with master

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Apache UIMA Java SDK (GitHub PR)/5/


[ISSUE-516][FEATURE] Worker should clean remaining directory when start before registering to Master

What changes were proposed in this pull request?
Worker will clean remaining directory under working dir before registering Master.

Why are the changes needed?
To avoid the issue that there isn't enough disk space and be put into blacklist.
What are the items that need reviewer attention?
only test with local FS, and do we need to exit JVM or just print a warning log if the data can't be completely cleaned up in given time.
Related issues.
#516
Related pull requests.
#515
How was this patch tested?
/cc @related-reviewer
/assign @main-reviewer

FYI: Add a check about the existence of workingDir, because when the worker is first initialized on localFs/hdfs , no existed workingDir. @waitinfuture


bazel test numpy issue: RuntimeError: module compiled against API version a but this version of numpy is 7

Hello everyone,
I just wrote my own op, and finally got it to compile, but I'm having trouble running bazel test. Specifically, I get the following error:

RuntimeError: module compiled against API version a but this version of numpy is 7

I am surprised as I was able to compile tensorflow with bazel, and import it without any problems. Any ideas as to what might be causing this? My test is the following:
import tensorflow as tf

class ChainCRFTest(tf.test.TestCase):
    def testChainCRF(self):
        with self.test_session():
            pre_pots = [[[1, 3, 1], [4, 1, 2], [2, 1, 1]],
                        [[2, 2, 1], [3, 1, 1], [1, 2, 3]],
                        [[3, 1, 1], [2, 1, 2], [1, 3, 2]],
                        [[1, 2, 1], [4, 1, 3], [1, 1, 1]]]
            potentials = tf.convert_to_tensor(pre_pots, tf.float32)
            result = tf.user_ops.chain_crf(potentials)
            print(result.eval()) # TODO

# bazel test tensorflow/python:chain_crf_op_test --verbose_failures

And the full error:
$ cat /home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/testlogs/tensorflow/python/chain_crf_op_test/test.log
exec ${PAGER:-/usr/bin/less} "$0" || exit 1
-----------------------------------------------------------------------------
RuntimeError: module compiled against API version a but this version of numpy is 7
Traceback (most recent call last):
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/kernel_tests/chain_crf_op_test.py", line 1, in <module>
    import tensorflow as tf
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/__init__.py", line 50, in <module>
    from tensorflow.python.framework.framework_lib import *
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/framework/framework_lib.py", line 62, in <module>
    from tensorflow.python.framework.ops import Graph
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/framework/ops.py", line 40, in <module>
    from tensorflow.python.framework import versions
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/framework/versions.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/pywrap_tensorflow.py", line 26, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/home/jernite/.cache/bazel/_bazel_jernite/f9fe393f3882802b0a658bd50e054d61/tensorflow/bazel-out/local_linux-fastbuild/bin/tensorflow/python/chain_crf_op_test.runfiles/tensorflow/python/pywrap_tensorflow.py", line 22, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: numpy.core.multiarray failed to import

Thanks in advance,
Yacine

This looks like a numpy version issue. Maybe you have more than one version of numpy installed in various places? If you installed from source using the instructions, you should have built against numpy 1.10 (version a), but maybe your runtime environment is set up using an older version?

Do the tests pass without your new op?  It seems very weird that the new op would have anything to do with this, but I haven't looked at that code path and could easily be wrong.

Hello,
Thanks for the quick reply. Other tests also fail with the same error. I checked my version of numpy (using >>>import numpy; numpi.version.version :  1.10.1),  and was unable to find another (but I'm unfamiliar with how the modules are organized on that machine).
I ended up just compiling with my new op, and it works. However, if someone wants to help debug bazel-test, I'm happy to run more tests.
Best,
Yacine

I'm hitting this too now, though I'm not sure if it's the same issue.  If I run python3 directly, or invoke it indirectly using bazel run, import numpy pulls in something from /usr/local/lib/python3.4/dist-packages/numpy.  This is also the version of numpy picked up if I compile.
However, if I use bazel test, it pulls in a version of numpy from /usr/lib/python3/dist-packages, which in my case is incompatible.  Presumably bazel is messing with paths in an inconsistent manner, though I haven't investigated fully yet.

Sounds like it's worth asking the bazel folks about.

Bazel folks asked: https://github.com/bazelbuild/bazel/issues/753

Closing due to inactivity / likely bazel / environment related

@vrv I also get the same error message.  Should we reopen this issue?

I don't think it's a TensorFlow issue -- your numpy version at runtime has to match the version that TensorFlow was compiled with.

I met the same problem. But you should notice that when you install tensorflow  it use numpy version A and when you run app of tensorflow you use numpy version 7. Does not match.
You can check your running numpy version by: pip freeze or import numpy and numpy.version.version to verify this. The solution is to update your numpy to the tensorflow installing dependent numpy version.


Changes to allow unprivileged vespa.

@arnej27959, please review

Updated pull request at https://github.com/vespa-engine/vespa/pull/5288


Two-fold Performance Enhancement by Optimizing Face Extraction Function When align_first == True

Removing the recursive algorithm doubles our performance gains. Also, by recalculating the facial area without reliance on the detect_faces function, we avoid using it twice, resulting in further efficiency.

Linting failed - https://github.com/serengil/retinaface/actions/runs/7857063255/job/21440536002?pr=80

LGTM, thank you for your contribution


Error is thrown depending on order when listeners are registered

Need to verify if reflux/refluxjs#38 is working or not.

The following error is produced in certain configurations on this line:
Uncaught TypeError: Cannot read property 'hasListener' of undefined
This happens when you register composed listeners before other stores and actions. The args array has a length set, but is an array of undefined.
Testcase pseudo code:

// Inside a store init
var join = Reflux.all(testAction1, testAction2);

this.listenTo(join, resetCallback);
this.listenTo(testAction2, commonlyCalledCallback); // throws the error from here

>
>Workaround is to listen to the joined actions/stores afterwards:
>
>```javascript
this.listenTo(testAction2, commonlyCalledCallback);
this.listenTo(join, resetCallback);
// no errors thrown, works as expected

This appears to be fixed: https://github.com/reflux/reflux-core/blob/3e7c9d816a504a1f6dd12337840ad589f5bfc874/test/composedListenable.spec.js#L182-L202
In case there's still any doubt around its usage with createStore(), this also passes: https://github.com/devinivy/reflux-core/commit/cce2e4d8352bd65ddd7ac37c4313691f7e31d4e1

Thanks @devinivy. Is it okay for me to pull in your commit?

Go for it!  Made a PR https://github.com/reflux/reflux-core/pull/18

That test was pulled-in to master.  Seems this is fixed :+1:


Problem with setAutoCollectRequests(). Requests are not being sent to application insights

Requests are not being automatically logged in application insights, only custom telemetry is being logged
applicationinsights version 3.1.0
I see a few warnings in the terminal on application start
@azure/opentelemetry-instrumentation-azure-sdk [
'Module @azure/core-tracing has been loaded before @azure/opentelemetry-instrumentation-azure-sdk so it might not work, please initialize it before requiring @azure/core-tracing'
]
@opentelemetry/instrumentation-winston [
'Module winston has been loaded before @opentelemetry/instrumentation-winston so it might not work, please initialize it before requiring winston'
]
@opentelemetry/instrumentation-winston [
'Module winston has been loaded before @opentelemetry/instrumentation-winston so it might not work, please initialize it before requiring winston'
]
Accessing resource attributes before async attributes settled []
I am not sure if these warnings are an issue
code setup:
app.ts
import express = require('express');
import { useExpressServer } from 'routing-controllers';
import { HealthCheckMiddleware } from './middlewares/health-check-middleware';
import { appInsightsLoader } from './applicationInsights/app-insights-loader';
import { UserController } from './controllers/user-controller';
/**

Application Insights
*/
appInsightsLoader();

/**

Application Setup
*/
const expressInstance = express();
const app = useExpressServer(expressInstance, {
cors: true,
middlewares: [HealthCheckMiddleware],
controllers: [UserController],
});

export { app };
app-insights-loader.ts
import appInsights = require('applicationinsights');
import { env } from '../env';
const appInsightsLoader = (): void => {
if (env.APPLICATIONINSIGHTS_ENABLED) {
appInsights
.setup(env.APPLICATIONINSIGHTS_CONNECTION_STRING)
.setAutoCollectRequests(true)
.setAutoCollectExceptions(true)
.setAutoCollectDependencies(false)
.setAutoCollectConsole(true)
.setSendLiveMetrics(false)
.start();
}
};
export { appInsightsLoader };

@nandeeswar-elanco The winston-instrumentation warnings are not expected. Please make sure to initialize the Application Insights SDK before importing the winston module.
Regarding requests specifically, do you have an example of a code snippet you're expecting to generate request telemetry?


No need for specification of category colours any more

0.7.0 contains code that will automatically assign a random bgColor and color if none is passed in.
Something to keep in mind for the next version of the importer :)

gotcha!


Spinner and done icons

Added spinner and done icons:

These icons can be customized or disabled separately:
require('lsp-notify').setup {
    icons = {
        spinner = { '/', '-', '|', '\\' },    -- or `= false` to disable
        done = '!'                            -- or `= false` to disable
    }
}

Or disabled together:
require('lsp-notify').setup {
    icons = false
}

The code is taken from usage recipes with some slight modifications to handle that the icons are optional.

@nenikitov this is amazing, thanks you for contributing!

related https://github.com/mrded/nvim-lsp-notify/issues/3


onRowExpand

I'm using GigaGrid inside a tab component and also I update it with live data.
Therefore when the user expands a rows group clicking on the (+) icon, I need  to know it, so that when the user goes to a different tab and then comes back to the original one he finds the grid with the same groups expanded as before.
GigaGrid has the property initiallyExpandedSubtotalRows, with it I can tell the grid that a list of row groups must be expanded to show the rows contained in them.
But I would neeed a property "onRowExpand", similar to onRowClick, so that when the user expands a rows group I can keep track of it and later call initiallyExpandedSubtotalRows on that row group.
Is it possible to have it?

Are you using redux and is attaching your store to GigaGrid via connect()? that is a typical use case, and indeed if used in a tab (and which tab is activate is a state in the redux store) Grid state will be erased each time you click on a different tab
However, if you don't wire which tab is active as a prop into GigaGrid - then the table will not be re-rendered and previous states (including which rows were expanded) will be perserved
I've encountered the same challenges in the Apps I build

I don't use redux.
I checked it with a version of the application that does not use tabs. The grid is a react element in a tree of react elements, all described in a declarative way.
Updating the content of the table with a new value in a cell, the row groups close themselves and the rows under them disappear. Only clicking on the (+)  again they appear again, like if the grid forgets completely that the groups was  open in the first place.
To update the grid I call the render method in the following way:
React.createElement(reacttable.GigaGrid, {
                    disablePagination: true,
                    rowKey: 'id',
                    data: dataOutFiltered,
                    bodyHeight: $(document).height() * .7,
                    columnDefs: columnDefsWithGroups,
                    initialSortBys: [{ colTag: "sortId", direction: reacttable.SortDirection.ASC }],
                    key: self.props.viewKey,
                    initialSubtotalBys:subtotalBys,
                    onRowClick: self.onRowClick,
                    initiallyExpandedSubtotalRows: toKeepExpanded
                })

The variable dataOutFiltered contains all the data to show in the grid, and if only one value in a cell changes, that's the only update in dataOutFiltered.
I checked the last version of the grid (0.5.1) and still have the same problem.

Yeah I believe this is about general support for cell updates. There are several approaches I can think of

Use an overlay data strucutre as state: meaning, the component exposes an API that allow an external caller to mutate a state called "cellUpdates". When render() is called, cells with an entry in cellUpdates renders the updated value instead of their original value

... does that approach make sense?
Current behavior (if you just straight-up replace the data in props) is:
The entire component (GigaGrid) is re-rendered, and states could be lost


Treating LXD container as VPS with public IPv4 and IPv6 correctly.

Required information

Distribution: Ubuntu LTS
Distribution version: 16.04

Issue description
Hi. I have Ubuntu 16.04 in a dedicated OVH server. I want to buy 200 IPv4, launch 200 LXD containers, and use one IPv4 for each container, and have IPv6 correctly enabled also (essentially treating LXD containers as VPS).
I cannot gather the entire procedure by reading the documentation, and the info online seems contradictory, for example, about DHCP, static IPs, and I am having difficulty about the IPv6 implementation on OVH.
After an lxd init, what steps would be necessary for setting these static public IPv4 and IPv6 for each container and making them permanent?
Should I configure the distribution in the container to have a static IP in  /etc/network/interfaces, and then do a
lxc network attach-profile eth0 default eth0?
What is the recommendation for treating LXD containers as VPS (using LXD as a sort of hypervisor) assigning them public IPs?
Thanks

OVH does IPv4 and IPv6 weirdly. In both cases they don't route the subnet to you but rather just announce it to the subnet you're connected to.
So there's no nice and easy way to carve a bunch of those IPs to assign to a LXD bridge, especially as IPv6 requires at least a /64 and OVH gives you only a partial /64 so not good enough.
Your only real option if you don't want to play the NAT game, is to have a bridge with no IPv4 and IPv6 on it at all, then on the host add a manual IPv4 and IPv6 route for each one of the IPs you want to use with your containers, then have your containers configured to use that as static assignment with the host's own IPs as the gateway.

In a more normal setup where your provider actually routes subnets to your IP, as my ISP does for example, then all you'd need to do is create a LXD bridge with that routed IPv4 and IPv6 subnet (so long as that one is /64 or bigger) and things would just work automatically.

Just solved it right now on ovh (after trying everything)
Not so nice but works. Follow this howto:
https://hibern8.wordpress.com/2014/03/16/ipv6-in-lxc-at-ovh/
in short:
host:
br0 (pyhisical eth0 in it) - public ipv4 and public ipv6 subnet (with ::1) from ovh, gateway to ovh :ff:ff
lxdbr0 - bridge managed by lxd with private ipv4 only (and with nat)
npd6 daemon configured and started
containers:
eth0: bridged, parent br0 (static ipv6 from ovh subnet ::2 and so on, gateway to ::1 not to :ff:ff... ovh)
eth1: bridged, parent lxdbr0 (dhcp, ipv4 gets from lxd)
So one interface for public ipv6 one for ipv4 nat. Maybe it should be nicer, but works as i want - every container has own public ipv6 (static) and ipv4 dynamic natted...
Don't know why ovh has this crappy setup for ipv6...

Hi Stephan, sorry to bother you again. You said:

Your only real option if you don't want to play the NAT game, is to have a bridge with no IPv4 and IPv6 on it at all, then on the host add a manual IPv4 and IPv6 route for each one of the IPs you want to use with your containers, then have your containers configured to use that as static assignment with the host's own IPs as the gateway.

There you said "have a bridge with no IPs on it at all". So should I create a br0 in the /etc/network/interfaces of the host without any bridge_ports line?
There you said "then on the host add a manual IPv4 and IPv6 route for each one of the IPs you want to use with your containers". What is the correct way to do that? IP Alias (br0:0 or eth0:0) and then NAT forwarding? The route command? Forwarding all ports of every IP via "iptables -t nat -A PREROUTING  -p tcp -i eth0 -d <IP_ADDRESS> -j DNAT --to-destination <IP_ADDRESS>" directly to the private IP of the containers?
There you said "then have your containers configured to use that as static assignment with the host's own IPs as the gateway". From this I understand I have to modify the /etc/network/interfaces of each container with the corresponding failover IP with the host IP as the gateway. This I understand.
Thanks for your work, God bless you.

https://discuss.linuxcontainers.org/t/public-ip-in-the-ct/453 should help


Switch to Python 3.5+

cf https://github.com/jupyterlab/jupyterlab/issues/2096

Do we want to make jupyter_server the actual dependency?

Once it is released :wink:


Creating keys fails after switching subdomain for AWS account

When trying to create a new KMS key via Thales after a switch of the subdomain for that account was done fails when it is done via Terraform but works in the Thales console.
The Provider get connected to Thales.
The new key is created in Thales but not in AWS.
There is no trace in AWS Cloud trail of a API call for creating the key.
What is ran:
ciphertrust_aws_key
What error is given:
Error: error creating aws key [NCERRBadRequest: Bad HTTP request]: Error Creating AWS Key : MalformedPolicyDocumentException: The new key policy will not allow you to update the key policy in the future.
The last logged in Terraform before the error (TF_LOG=debug):
2024-10-15T14:13:09.114Z [INFO]  provider.terraform-provider-ciphertrust_v0.10.5-beta: 2024/10/15 14:13:09 [DEBUG] setting computed for "key_admins" from ComputedKeys: timestamp=2024-10-15T14:13:09.112Z
Key created with the same key policy in AWS works and via the GUI in Thales. We only get this error via the Terraform provider.
Versions:
thalesgroup/ciphertrust 0.10.5-beta
Terraform 1.6.6

Hi, sorry to hear the provider is doing that.
Could you add log_level=debug in the provider block and run again.
By default this will create ctp.log or you can specify log_file parameter as well.
This log the api request and response.

This is what I get from the ctp.log:
Error: -16T07:52:36.815Z [ERROR] AWSCreateKey Status: 400 Bad Request
Error: -16T07:52:36.816Z [ERROR] AWSCreateKey Error: [NCERRBadRequest: Bad HTTP request]: Error Creating AWS Key : MalformedPolicyDocumentException: The new key policy will not allow you to update the key policy in the future.
But as mentioned above the exact same policy works both in AWS and Thales GUI it only fails via Terraform. And no trace is seen in AWS.

It was an issue with the container id for the provider. No so straight forward error on this.


Add version: KDE.Kdenlive version 23.08.4

- [X] Have you signed the Contributor License Agreement?

[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.6 schema?

Resolves #141108

Microsoft Reviewers: Open in CodeFlow

For moderators
This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping Exorcism0666.

[!warning]
With the new version of Komac, numerous Pull Requests may contain bugs or unwanted elements. If such issues arise, please tag russellbanks so that these bugs can be addressed in future updates.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！

@stephengillie This is normal, if you try to install this version, normally it will always be indicated as 23.08.4

Verify:

Automatic Validation ended with:

Installer Verification Analysis Context Information:
Specified hash doesn't match.
Actual hash:   83C3B30DDF2298916A2FEF39CEE2CB2579764E6B99FE908EFE8CDB3CD12B8846
Expected hash: 8712b9483669b5c01d5642681c6d9f1d191ff8b46848a29344dc873e0c92e138

3/6/2024 6:30:25 PM

Installer Validation

(Automated response - build 866.)

Possible duplicate package entry.
Similar installer SHA256 hash found in manifest:

InstallerSha256: 83c3b30ddf2298916a2fef39cee2cb2579764e6b99fe908efe8cdb3cd12b8846

manifests\k\KDE\Kdenlive\23.08.05

Since the installer with 23.08.5 in the name installs the version in this PR, the manifest for 23.08.5 should be removed.

@trenly


undefined class/module Delayed::PerformableMailer

with the upgrade from 4.1.5 to 4.1.6 it seems like delayed_job can no longer find the PerformableMailer.
the error we are getting is:
Job Delayed::PerformableMailer (id=59) FAILED permanently with Delayed::DeserializationError:
Job failed to load: undefined class/module Delayed::PerformableMailer. Handler: "--- !ruby/object:Delayed::PerformableMailer

we are using ActionMailer::Base. It works fine in version 4.1.5. Could it be a problem with how we are initializing delayed_jobs and/or ActionMailer?

Just pushed a new version that should fix your issue. I forgot rails doesn't eager load rake tasks, so in the right set of conditions the worker can kick off without ever triggering ActionMailer to load within rails, which is the trigger our updated loading code was relying on to load Delayed::PerformableMailer.

thank you!


Remove linting for Helm 2.x

Signed-off-by: Tom Kerkhove<EMAIL_ADDRESS>

DCO is so much fun in the UI 😂


docs: enable nightly-only docsrs

See rust-lang/rust#43781. This enables infoboxes like "Available on crate feature XXX only." in the documentation generated using cargo doc on nightly, or by building on docs.rs.
This can be tested with:
RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --no-deps --all-features

Example:


Webpack Extensions update

This PR adds in webpacking for the external extensions that previously weren't (with the exception of import as that currently requires a module that is incompatible with webpacking).
The changes include:

adding/editing the appropriate .vscodeignore and .gitignore files, webpack config files (also cleaning up entries that are no longer relevant as well)

bumping the localization extension to 4.1.2. to work with webpack (it does not affect functionality of the extension).

Additionally for Server-report, there was an old renderTemplateHtml function that has been removed as handlebar requires a complicated workaround to webpack, and it was not used at all inside ADS nor in the extension itself. (The extension has been verified to work fine without it)

All extensions have been tested and work without any noticeable issues.
If this requires a bump in the extension version number, please let me know (Server-report is already bumped to a higher number).

Pull Request Test Coverage Report for Build 972868278

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

Totals

Change from base Build 972856624:
0.0%

Covered Lines:
26353

Relevant Lines:
55745

💛  - Coveralls


Live

Test PR

Docs Build status updates of commit de28413:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Fetch by ids

Hello, how can I fetch entities by ids?
sth like
const albumsEntities = await albumRepository.fetch([albumId1,  albumId2 ...])

// or

const albumsEntities = await albumRepository.fetch(albumId1,  albumId2 ...)

You can't, but that is an awesome idea! Keep this open and I'll add it to the backlog.

This has been updated.


[events] Fix deadlock in TestExchangeBasic

Signed-off-by: Gaurav Singh<EMAIL_ADDRESS>The goroutine writing to errChan will block on the reader (main routine), however the main routine will block for the goroutine to finish with the wait() before it can read from errChan thus causing the deadlock.
An example here: https://play.golang.com/p/zwk-FHPKx-4
For this case, we don't really need the sync.WaitGroup at all since the main routine's execution is already blocked on the errChan (read or close). Fix this by removing the wait logic.

ping @AkihiroSuda


How is the concatenation operation performed in the model?

Hi, thank you for sharing your work!
I am trying to understand the implementation from the paper and I came across a question about the concatenation operation. I assume that the MLP class from the code represents the architecture from Figure 1.

The forward pass in the code, however, does not explicitly contain a concatenate operation. Looking at this loop it seems that the layers are being applied in cascade instead of forming parallel branches.
    def forward(self, x):
        for i, lin in enumerate(self.lins[:-1]):
            x = lin(x)
            x = self.bns[i](x)
            x = F.relu(x)
            x = F.dropout(x, p=self.dropout, training=self.training)
        x = self.lins[-1](x)
        return torch.log_softmax(x, dim=-1)

In other words, what I would expect is to have something similar to this (I have not tested the code):
    def forward(self, x):
        branches = []
        for i, lin in enumerate(self.lins[:-1]):
            _x = lin(x)
            _x = self.bns[i](_x)
            _x = F.relu(_x)
            _x = F.dropout(_x, p=self.dropout, training=self.training)
           branches.append(_x)
        x = torch.cat(branches)
        x = self.lins[-1](x)
        return torch.log_softmax(x, dim=-1)

Can you indicate me whether or not this interpretation is correct? Am I missing something and the concatenation takes place in some other part of the code? Thank you in advance.

Hi!
Your interpretation is indeed correct, in that the code we reported implements a slightly different -- and somewhat more expressive --  version of SIGN. Here, node features downstream the application of the graph filtering operations are concatenated before being projected (see line 125 of file 'sign_training.py'). This version could, in principle, simulate the architecture depicted in Figure 1 of the paper by learning a single block-diagonal parameter matrix W where each block corresponds to matrices Theta_0, ..., Theta_r.
For completeness, we will consider sharing the code implementing the exact architecture in Figure 1, although of trivial implementation.
Hope this helps!

Understood, this answer is definitely helpful. Thank you again!
I am closing this issue.


tracebox: 0.2 -> 0.4.4

Description of changes
Fix build and update to 0.4.4
Things done

Built on platform(s)

[ ] x86_64-linux
[x] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 191388 run on x86_64-linux 1

1 package built:

tracebox

It fails to print version correctly, would be good to fix this
[nix-shell:~/.cache/nixpkgs-review/pr-191388]$ ./results/tracebox/bin/tracebox -V

Thanks for review and merge. I will check why the version is missing.

added version test in #191584


Fr translation | Update

minor changes to improve translations' understandability and quality

Thanks your PR!
However please read: https://gogs.io/docs/features/i18n

My bad, didn't see this page :/
So I just need to review those changes using crowdin?

Exactly :D

I see, it works like Twitter translation center :)

Ha~ never used Twitter one, but this kind of system should be similar.

Indeed.
Done, everything is reviewed :)

Well done, thank you!


[CI] Disable e2e and integration github actions on PRs coming from dependabot

We are currently over testing, we can rely on check actions for the library updates to help us reduce testing cycles

@adrianriobo : Hello, can I work on this issue?

I already see a check in e2e test pipeline to not execute for dependabot:
https://github.com/crc-org/crc/blob/d9f83bcc27dc8717469091553c90d9b97c2b5105/.github/workflows/windows-e2e.yml#L13-L15
Do we want to add same check in other github actions?

Ah sure, this was added to reduce the # of executions specially when provisioning machines on cloud. Definetly if you see any missing please go and filter them

As discussed internally, we already have this check on Windows envs, and OpenShift CI doesn't run on the dependendabot PRs.
I think we can close this issue as completed.


Missing license

This is a polite warning that the extension does not meet the k6 extension registry requirements
Currently, there is no license information set for the extension.
It is recommended to set an OSS license accepted by OSI (and FSF) (e.g. MIT, Apache-2.0, AGPL-3.0, etc.).
See also: https://spdx.org/licenses/
As stated in the About the Extensions Registry document, extensions that do not meet the registry's requirements will be de-listed.
An automatic system will be implemented soon, which checks whether the registered extensions meet the requirements and automatically de-lists the extensions that do not.
Of course, you can re-register the de-listed extension later, but in order to avoid inconvenience, it is advisable to meet the requirements.

Sure, fixed in https://github.com/distribworks/xk6-ethereum/commit/0f52c084a2d92ad64e6c10c58a883db33fa1020a


[DOC] Migrate to google docstring style

PR Description
Please describe the changes proposed in the pull request:

Migrate all "visible" (i.e., rendered into mkdocs) docstrings to Google style. For better compatibility with mkdocstrings.
With this change, we can finally drop the dependency on the legacy python handler and use the newer python handler with mkdocstrings.
Added a guidelines page on docstring style for future developers / contributors to follow.
Update changelog.

This PR relates to #1032.
(There are other ideas raised in that issue that I would like to fix as well, hence not closing, but that's for a future PR)
PR Checklist

Please ensure that you have done the following:

[ ] PR in from a fork off your branch. Do not PR from <your_username>:dev, but rather from <your_username>:<feature-branch_name>.

[x] If you're not on the contributors list, add yourself to AUTHORS.md.

[ ] Add a line to CHANGELOG.md under the latest version header (i.e. the one that is "on deck") describing the contribution.

Do use some discretion here; if there are multiple PRs that are related, keep them in a single line.

Relevant Reviewers

Please tag maintainers to review.

@ericmjl

🚀 Deployed on https://deploy-preview-1235--pyjanitor.netlify.app

darglint is struggling with checking all of these files, and pre-commit-CI is timing out after 180s. And I can't find a way to extend this timeout.
I've run the pre-commit hooks locally, from 088b3f3 (dev) to 61dc66d (current HEAD before the changelog commit)

As for using ruff to replace darglint, it's not currently implemented yet so that's not an option for now.

But anyway, in better news, I think I've migrated all the public docstrings to Google style already (no guarantees on the private ones, though, I think I got most of them as well). PR is now ready for review! 🎉
Key review points:

updated the dependencies and relevant mkdocs.yml config
look through the rendered documentation and see if there's anything that looks off

Thanks!

@thatlittleboy I spot-checked the Functions page, and it looks great!
This is quite a heroic effort 🎉
Thank you for handling this migration!
I think we shouldn't worry about pre-commit timing out unless it gives us a ton of problems in the future. In that case, we can always run our own pre-commit Action.

@samukweku and @Zeroto521 - the PR diff is large but conceptually, it's a small change.  That way we'll get the updated docs into dev asap!


Add postgres fragment tagged literal

Add a fragment tagged literal in addition to the existing sql tagged literal. fragment creates a QueryFragment, that can be included in an sql tagged literal.
Example usage:
const sharedValues = fragment`${123}, ${'admin'}`;
await sql`INSERT INTO users (id, credits, role) VALUES (1, ${sharedValues}), (2, ${sharedValues})`;

This PR is addressing similar issues as https://github.com/vercel/storage/pull/126, but without allowing unsafe SQL.

Missed that I forgot to run prettier

@vvo Could you please take a look again?