Add JSDoc to CloseButton component.

Description
JSDoc is currently missing from the CloseButton component.
Problem Statement/Justification
Since JSDoc exists for other components, we should also add CloseButton component.
Proposed Solution or API
+ /**
+ * `CloseButton` is a component used primarily to trigger the close functionality of a component.
+ *
+ * @see Docs https://yamada-ui.com/components/other/close-button
+ */
export const CloseButton = forwardRef<CloseButtonProps, "button">(
  (props, ref) => {
    const [styles, mergedProps] = useComponentStyle("CloseButton", props)
    const {
      className,
      children,
      isDisabled,
      isRounded,
      __css,
      disableRipple,
      ...rest
    } = omitThemeProps(mergedProps)
    const { onPointerDown, ...rippleProps } = useRipple({
      ...rest,
      isDisabled: disableRipple || isDisabled,
    })

    const css: CSSUIObject = {
      position: "relative",
      overflow: "hidden",
      outline: 0,
      display: "flex",
      justifyContent: "center",
      alignItems: "center",
      flexShrink: 0,
      ...styles,
      ...__css,
      ...(isRounded ? { borderRadius: "fallback(full, 9999px)" } : {}),
    }

    return (
      <ui.button
        ref={ref}
        type="button"
        aria-label="Close"
        className={cx("ui-close-button", className)}
        disabled={isDisabled}
        __css={css}
        {...rest}
        onPointerDown={onPointerDown}
      >
        {children || <CloseIcon width="1em" height="1em" />}

        <Ripple isDisabled={disableRipple || isDisabled} {...rippleProps} />
      </ui.button>
    )
  },
)

Alternatives
No response
Are you willing to participate in implementing this feature and create a pull request include the implementation?
None
Additional Information
No response

Can I join this?

@Tay3052
Hi, thanks for the comment!
Yes, pls.

Fixed #1232


AssertionError hot reloading completed 'Image.network'

In my application I have a widget that looks like this:
class HutCard extends StatelessWidget {
  final Hut hut;

  const HutCard({Key key, this.hut}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return SizedBox(
      width: double.infinity,
      child: ListTile(
        leading: FutureBuilder(
          future: hut.detail,
          builder: (context, snapshot) => snapshot.hasData
              ? Image.network(
                  (snapshot.data).introductionThumbnail,
                  width: 220,
                  height: 140,
                )
              : CircularProgressIndicator(),
        ),
        title: Text(hut.name),
        contentPadding: EdgeInsets.all(8.0),
      ),
    );
  }
}

On hot reloading an assertion fails:
https://github.com/flutter/flutter/blob/169529c37064568a17b634968c73a7ff79029dfb/packages/flutter/lib/src/painting/image_stream.dart#L233
Commenting the assertion fixes the problem, and I haven't observed any adverse behaviour, but I also haven't spent enough time reading the code to know why it was there in the first place.
I attempted to create a minimal reproduction case, but wasn't able to replicate it with the code below. If I have some time I'll make another attempt at narrowing down the problem, suggestions for what might be happening are welcome.
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter network image repro',
      home: FutureBuilder(
        future: Future.delayed(
            Duration(seconds: 5),
            () =>
                'https://www.doc.govt.nz/thumbs/large/link/de41667cfe3d400c9327cf318609e81c.aspx'),
        builder: (context, snapshot) => snapshot.hasData
            ? Image.network(
                snapshot.data,
              )
            : CircularProgressIndicator(),
      ),
    );
  }
}

Call stack
_AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:42)
_AssertionError._throwNew (dart:core-patch/errors_patch.dart:38)
ImageStream.setCompleter (c:\tools\flutter\packages\flutter\lib\src\painting\image_stream.dart:230)
ImageProvider._createErrorHandlerAndKey.handleError (c:\tools\flutter\packages\flutter\lib\src\painting\image_provider.dart:347)
<asynchronous gap> (Unknown Source:0)
_Closure.call (dart:core-patch/function.dart:0)
ImageProvider._createErrorHandlerAndKey.<anonymous closure>.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\painting\image_provider.dart:389)
SynchronousFuture.then (c:\tools\flutter\packages\flutter\lib\src\foundation\synchronous_future.dart:41)
ImageProvider._createErrorHandlerAndKey.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\painting\image_provider.dart:384)
_rootRun (dart:async/zone.dart:1126)
_rootRun (dart:async/zone.dart:0)
_CustomZone.run (dart:async/zone.dart:1023)
_CustomZone.runGuarded (dart:async/zone.dart:925)
ImageProvider._createErrorHandlerAndKey (c:\tools\flutter\packages\flutter\lib\src\painting\image_provider.dart:376)
ImageProvider.resolve (c:\tools\flutter\packages\flutter\lib\src\painting\image_provider.dart:321)
_ImageState._resolveImage (c:\tools\flutter\packages\flutter\lib\src\widgets\image.dart:1019)
_ImageState.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\image.dart:1004)
StatefulElement.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4607)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
ComponentElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4526)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
StatefulElement.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4608)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
ComponentElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4526)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
ComponentElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4526)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
Iterable.forEach (dart:core/iterable.dart:279)
_ListTileElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\material\list_tile.dart:985)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
ComponentElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4526)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
SingleChildRenderObjectElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:5730)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
ComponentElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4526)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
SingleChildRenderObjectElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:5730)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
SingleChildRenderObjectElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:5730)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)
Element.reassemble.<anonymous closure> (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2974)
_Closure.call (dart:core-patch/function.dart:0)
ComponentElement.visitChildren (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:4526)
Element.reassemble (c:\tools\flutter\packages\flutter\lib\src\widgets\framework.dart:2973)

flutter doctor -v
[√] Flutter (Channel master, v1.14.7-pre.78, on Microsoft Windows [Version 10.0.18362.592], locale en-NZ)
    • Flutter version 1.14.7-pre.78 at C:\tools\flutter
    • Framework revision 306c23fd36 (7 days ago), 2020-02-01 00:38:02 +0100
    • Engine revision 6b8c150639
    • Dart version 2.8.0 (build 2.8.0-dev.6.0 162d6c5634)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\Zac\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 28.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 28.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] VS Code, 64-bit edition (version 1.41.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.8.1

[√] Connected device (1 available)
    • ONEPLUS A6000 • a21aff4f • android-arm64 • Android 10 (API 29)

Hi @zacps
would be helpful to know  what introductionThumbnail do?
thank you

This appears to be happening when some error occurs when making the key.

I've tried a few things that I thought might recreate this but I'm not able to.
The bug is that we shouldn't be trying to set the completer twice - it seems like this is happening where the completer gets set once fine, and then in an error handler tries to set it again to the error compelter and fails.

@zacps if you're ever able to reproduce this, could you please add something like print(exception); print(stackTrace) before line 347 on image_provider.dart?  That should give some indication of how to recreate this.

I can reproduce it reliably with my real app, but haven't found a minimal case.
It now raises an exception without a reload.
I/flutter (18137): [image_provider] Exception: 'package:flutter/src/painting/image_stream.dart': Failed assertion: line 230 pos 12: '_completer == null': is not true.
I/flutter (18137): [image_provider] Stack: #0      _AssertionError._doThrowNew  (dart:core-patch/errors_patch.dart:42:39)
I/flutter (18137): #1      _AssertionError._throwNew  (dart:core-patch/errors_patch.dart:38:5)
I/flutter (18137): #2      ImageStream.setCompleter
package:flutter/…/painting/image_stream.dart:230
I/flutter (18137): #3      ImageProvider.resolveStreamForKey
package:flutter/…/painting/image_provider.dart:420
I/flutter (18137): #4      ScrollAwareImageProvider.resolveStreamForKey
package:flutter/…/widgets/scroll_aware_image_provider.dart:101
I/flutter (18137): #5      ImageProvider._createErrorHandlerAndKey.<anonymous closure>.<anonymous closure>
package:flutter/…/painting/image_provider.dart:385
I/flutter (18137): #6      SynchronousFuture.then
package:flutter/…/foundation/synchronous_future.dart:41
I/flutter (18137): #7      ImageProvider._createErrorHandlerAndKey.<anonymous closure>
package:flutter/…/painting/image_provider.dart:382
I/flutter (18137): #8      _rootRun  (dart:async/zone.dart:1126:13)
I/flutter (18137): #9      _CustomZone.run  (dart:async/zone.dart:1023:19)
I/flutter (18137): #10     _CustomZone.runGuarded  (dart:async/zone.dart:925:7)

Interestingly if I turn off breaking on uncaught exceptions the images load fine.

@zacps can you try adding the lines I suggested to image_provider.dart in the Flutter framework?
That would help identify exactly what error is happening, and should help creating a new test case for this.

Those lines were from those print statements.

Ahh haha sorry.
It looks like you're very slightly behind master - would you mind bumping up to the latest master?  There's a relevant code change that might be related to this and might have fixed you.  Specifically, https://github.com/flutter/flutter/blob/f769bcc5c4dbecd7058a157188c36c5a7247143d/packages/flutter/lib/src/painting/image_provider.dart#L414-L425

Upgrading to latest master seems to have fixed it, thanks!


port forward to Nocrypto and ocaml-tls

I've modified xmpp slightly to use Nocrypto instead of cryptokit (they're not interoperable, and ocaml-tls uses nocrypto) -- upside is there's a good RNG in Nocrypto (Fortuna) :)
Also, I ported it to use ocaml-tls instead of lwt.ssl -- this means it can run directly on mirage and does not use OpenSSL. I did this because the lwt.ssl didn't work for me.
I reorganized some code as well - moved sasl_plain into the Sasl module (which should be split out into a custom library imho), only use a realm if the server provided one, ....
Also, the lwt test now sends a presence and outputs more debug.
Please let me know what you think about these changes.

Nearly a decade later, let's close this PR.

On Thu, Dec 14, 2023 at 09:55:18AM -0800, Hannes Mehnert wrote:

Nearly a decade later, let's close this PR.

Thanks!


Cloud functions: Inequality filter error after near call

Hello! I found an interesting issue. I have the following compound query:
collection.where('startTime', '>=', fromTime).where('startTime', '<', toTime);
After deploying my cloud functions, I can make this call multiple times and it works as expected. If I make a collection.near(...) call, the compound query stops working with the following error:
Error: 3 INVALID_ARGUMENT: inequality filter property and first sort order must be the same: d.startTime and g
If I redeploy the cloud functions the behavior repeats: it works until I make the near call.
As an extra note, this doesn't happen when I emulate the cloud functions on my machine while still connecting to the same remote Firestore.
I'm using geofirestore v3.3.1
Thanks!

I opted to split my collections and use the geofirestore collection exclusively for the near operation to address my issue. Is this the intended usage or are there plans to support the above in the future? Thank you for your great work!

Hey @rodduenes, so yea you can't have inequality filters with geofirestore as geofirestore uses inequality filters in order to make a query and firestore doesn't support multiple inequalities. See the README.md as well as this response to a similar issue.

Thanks @MichaelSolati, clearly I missed that while reading the readme before


strange Bluetooth issue

[ x] I have searched open and closed issues for duplicates
[ x] I am submitting a bug report for existing functionality that does not work as intended
[ x] I have read https://vigem.org/Community-Support/
[ x] This isn't a feature request or a discussion topic

Bug description
I've installed the Bluetooth and Dshid drivers as described in the guide also I tested it in Bluetooth connection and I get this error
Steps to reproduce

install all the packages
check if appears the copy-cat controller error
shows a different warning

**does not connect by Bluetooth
Screenshots
error

that shows in DShidMini control

Machine info

**CPU-Architecture:**x64
Windows version: Windows 10 21H2
Software/driver version(s):  2.2.282
Any other helpful information

This message has nothing to do with BthPS3, to properly diagnose check out the FAQ, and see what the driver is actually doing under the hood.


upgrade to Jenkins2

@alexwen We're currently not using the MSH version of this plugin in our Jenkins 2 based deployment.  I know you had made PRs for upstream for some of the changes in here.  Do you know if they were accepted/merged?  If so, we potentially could just let the fork die and not migrate it to Jenkins 2.


[type:fix] duplicate response header

Fixes #5188

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #5190 (81fd845) into master (fe5077c) will decrease coverage by 0.18%.
Report is 2 commits behind head on master.
The diff coverage is 38.88%.

:exclamation: Current head 81fd845 differs from pull request most recent head 67b52cd. Consider uploading reports for the commit 67b52cd to get more accurate results

@@             Coverage Diff              @@
##             master    #5190      +/-   ##
============================================
- Coverage     61.96%   61.78%   -0.18%
+ Complexity     8575     8564      -11
============================================
  Files          1243     1244       +1
  Lines         37582    37628      +46
  Branches       3556     3558       +2
============================================
- Hits          23287    23248      -39
- Misses        12263    12342      +79
- Partials       2032     2038       +6

Files
Coverage Δ

...ugin/httpclient/HttpClientPluginConfiguration.java
82.35% <100.00%> (+1.10%)
:arrow_up:

...ient/config/DuplicateResponseHeaderProperties.java
58.33% <58.33%> (ø)

...ache/shenyu/plugin/httpclient/WebClientPlugin.java
62.74% <60.00%> (-3.93%)
:arrow_down:

...henyu/plugin/httpclient/NettyHttpClientPlugin.java
32.50% <16.66%> (-7.50%)
:arrow_down:

...yu/plugin/httpclient/AbstractHttpClientPlugin.java
31.50% <0.00%> (-6.20%)
:arrow_down:

... and 17 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


i18n code showing on /organizations/teams Teams Management page

Describe the bug
An i18n code is showing instead of the translated text on the /organizations/teams Teams Management page.
Screenshots

Completed.


Expose CoreDNS over tcp + make Dig in terratests go via tcp

why: When we get rid of Docker Desktop and use for instance Lima, it doesn't have support for UDP port forwarding from host to containers running in the VM - https://github.com/lima-vm/lima/issues/366
So as a workaround, we can run the Dig in our tests using the tcp protocol, where the redirect works fine (it uses ssh tunnel).
~tests will fail, it assumes a new release on AbsaOSS/gopkg with this https://github.com/AbsaOSS/gopkg/pull/11 merged in~
It adds a new service for coredns that uses NodePort (30053) and then adds this redirect in k3d manifests so that
dig @<IP_ADDRESS> -p5053 failover.cloud.example.com +short +tcp
dig @<IP_ADDRESS> -p5054 failover.cloud.example.com +short +tcp

both work
~todo: update docs for local playground~
that AbsaOSS/gopkg library contains a module called strings, that was renamed to string like a year ago, but only now it's failing because of the newly released version. Hence the strings -> string thing.
btw:

DNS resolvers and recursive servers MUST support UDP, and SHOULD support TCP, for sending (non-zone-transfer) queries.
--- https://datatracker.ietf.org/doc/html/rfc7766

Signed-off-by: Jirka Kremser<EMAIL_ADDRESS>

This way it will be deployed into default namespace
On Thu, Mar 24, 2022, 18:39 Jirka Kremser @.***> wrote:

@jkremser https://github.com/jkremser requested your review on: #845
https://github.com/k8gb-io/k8gb/pull/845 Expose CoreDNS over tcp + make
Dig in terratests go via tcp.
—
Reply to this email directly, view it on GitHub
https://github.com/k8gb-io/k8gb/pull/845#event-6301396414, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIM5FHBQGLM53X6CW7Z5Y3VBSSF7ANCNFSM5NPMMEDA
.
You are receiving this because your review was requested.Message ID:
@.***>

This way it will be deployed into default namespace

good point, added k8gb ns


Build status is set to 0 ("Clean") after exception thrown during Transfer.groovy

When a truncation error occurs during Transfer.groovy (e.g. a transferred text file is over 80 columns), an exception is thrown and the console output shows that the build ended in an ERROR state:

However, the build result (i.e. retrieved with the dbb build-result export command) shows a status of 0 'CLEAN':

The truncation error exception results in the execution of the catch block in Transfer.groovy:
https://github.com/IBM/dbb-zappbuild/blob/main/languages/Transfer.groovy#L124-L129

After investigation with @lauren-li and @monvora, it looks like an issue with the underlying technology that we will report to the development team.

A defect has been identified with the FileMetadataStore, that will be addressed by the DBB development team.

Please tack the defect in the file metadata store via the support channels.
Enhancements to improve the Exception handling has been delivered via zAppBuild Release 3.6.0

APAR PH58203 has been opened to address the situation that CopyToPDS returns/reports a RC=0 on an exception


pkg:option: include ReadDirConfig() and remove cilium pkg option import

Signed-off-by: Djalal Harouni<EMAIL_ADDRESS>

@tixxdz can you also take care of operator/flags.go?

It looks like the github.com/cilium/cilium/pkg/option package is still used in operator/flags.go:
https://github.com/cilium/tetragon/blob/f1a37fc2dfbf5827611ad5b9db966502ecdb0db9/operator/flags.go#L18
I think the use of that import (option.CMDRef) could be replaced by a local definition as well.

Thank you @tklauser ! updated and pushed

Thank you @kaworu


Fix the object not found error in vSphere

This fixes the bug of https://github.com/apcera/libretto/issues/90.
The root cause is that we do the recursive search in multiple objects type but the search will be broken if there is no desired object found in a folder.
Also fixed the diverse of sample vSphere code.
@variadico @zquestz @mbhinder @ketandixit

LGTM

LGTM


Translation of README.md into Brazilian Portuguese.

The goal is to expand the community by facilitating understanding for Brazilian developers. I checked to ensure the minimum of translation errors that could cause problems.

Muito bom happais !
👍


[dv,alerts] Fix alert_sva_active to have correct reset polarity

This PR fix the reset polarization of the alert_sva_active flag in the alert_esc_if which was inverted.
The alerts SVA should be active only when the reset is deasserted, which means when rst_n = 1.
This means alert_sva_active should be with the same polarization as rst_n, hence the fix.

Thanks!

@andreaskurth can you please merge it also to earlgrey_1.0.0 branch?


I Found 300+ problems security issues in codebase

Describe your problem and how to reproduce it:
I added eslint security within project and found more than 300 problems mostly security problem in codebase.
Add a Link to the page with the problem:
PR: #38844
Tell us about your browser and operating system:

Browser Name:
Browser Version:
Operating System:

If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):

After adding Eslint Security Plugin I find out a lot of bugs in codebase these all warnings are related to security which we should fix as soon as possible I have also attached the PR we need to fix these warnings.

Thanks for your report. We recommend reaching out on the security channels for issues like this.
Can you be more succinct on the issues? The screenshot and your reports is quite vague?

I have added a Pull Request for this.

These issue are related to security best practices they are simply eslint security rules i think we should work on that, This will improve codebase and follows best practices.

We are aware of the PR. Can you expand on the specifics of the errors that this plugin catches along with a sample fix?
In the current state of the PR, all it has are cryptic warnings. Please note we are interested in adopting the practices, but not before we understand what these are.
I recommend you add some demo commits to the PR, that shows the errors (we are probably not keen on the warnings, but it may change) followed by a sample fix.

Sure! I will add a commit for fix within that PR I will get back to you.

Heya @viveksharmaui - are you able to provide a status update? It looks like raisedadead has requested additional information for the specifics of this functionality. Additionally, the PR #38844 you have opened appears to be in need of a rebase against our master branch. 🙂


hadoop: 2.2.0 -> 2.7.3, 2.8.1; nixos/hdfs: init at 2.7.3, 2.8.1

Motivation for this change

2.2.0 is a well outdated version (2013) and not supported by upstream. The latest version is 2.8.0, the oldest supported legacy branch is  2.5.x.
HDFS server was broken because of "/bin/ls" hardcoded in Java, so binary distribution cannot be used, recompilation from patched sources is required.

tested only HDFS-server (four daemons).
Map-Reduce, YARN and other features may not work.
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Fix a way how multiple versions are exposed. Look into https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/libraries/ffmpeg for a reference. Besides that, nice :)

@offlinehacker
this is a commonly used way too:
https://github.com/NixOS/nixpkgs/blob/fe891e7e109410d5fe02a42fef487c21b88cbf1b/pkgs/development/compilers/vala/default.nix#L28
https://github.com/NixOS/nixpkgs/blob/fe891e7e109410d5fe02a42fef487c21b88cbf1b/pkgs/development/compilers/cudatoolkit/default.nix#L99

@fpletz: I made the same changes in https://github.com/NixOS/nixpkgs/pull/25942

rebased as minio occipied id 280

I was looking into #30537 and found this PR. What's happening here? I'm confused and scared.

This is outdated anyway
I am using a different hadoop package so unable to maintain the code of this PR if it would be accepted.

my current production overlay code is https://gist.github.com/volth/3c0a601b6826bf452615c57560eba2e3

Broken after removal of protobuf2_5 https://github.com/NixOS/nixpkgs/pull/29134

Superseded by https://github.com/NixOS/nixpkgs/pull/32893


Suggest a content table

add a content table to organize the document categories to make the navigation easy, this is inspired by the famous vue-awesome repo

Can you narrow it down a little? i feel the number of categories an overkill for now, but the idea of a content table is good

I kept the necessary parts which are the resources and Components & Libraries

Now it seems fine, thanks


wlr_backend_autocreate()  failed err on amd GPU

System Info and Version
 System/Version info
Hyprland, built from branch  at commit  dirty ().
Date:
Tag: , commits:

flags: (if any)

System Information:
System name: Linux
Node name: battlestation
Release: 6.6.32
Version: #1-NixOS SMP PREEMPT_DYNAMIC Sat May 25 14:22:56 UTC 2024

GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c0) (prog-if 00 [VGA controller])
13:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c7) (prog-if 00 [VGA controller])

os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.20240531.805a384"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_END="2024-12-31"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"

plugins:

Bug or Regression?
Bug
Description
I'm using nixOS, ever since I switched to v24.05, hyprland(v0.40.0-unstable-2024-05-05) freezes on login screen for 5sec then throws me back to login screen(lightdm), everything was working fine on v0.32.3.
I tried rolling back hyprland to v0.32.3 and it works fine, so I'm guessing v0.40 broke something?
Also, if I launch v0.40 manually from tty it works fine.
How to reproduce
Use v0.40 with nixOS  v24.05
Crash reports, logs, images, videos
hyprlandCrashReport1517.txt

does using a tty instead of lightdm work?

does using a tty instead of lightdm work?

Yes

then it's a lightdm issue kek


How ConfigMap is good ?

Configmap is good

@nishitniru  Please provide the details of issue you encountered.

/triage needs-information

@niranjandarshann  Thank you, I am the first contributor in this field and I wants to know the whole process of contribution in opensource.

@niranjandarshann Thank you, I am the first contributor in this field and I wants to know the whole process of contribution in opensource.

@nishitniru  Happy for your eagerness to learn the oss process. This is kubernetes(Open source github profile) you can go through this link to start contribution in kubernetes opensource. follow all the details provided here.

@nishitniru as per you retitle, I think you  were wondering about the importance of ConfigMap.
ConfigMaps are used to separate application code from the environment-specific configuration. There's no need to hardcode the configuration data in the Pod specification. We can change the  settings of configuration  during runtime and create complex configurations easy.

Ref Link : https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
for full information of ConfigMap.

/remove-triage needs-information
/kind support
/sig docs

/transfer kubernetes


⚠ Bofrost.nl has degraded performance

In 0c64d8e, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 2178 ms

Resolved: Bofrost.nl performance has improved in 224dcd9 after 34 minutes.


fix eureka instanceinfo searilization

The server side DataCenterInfo default implement would not allow "metadata" field.
Maybe it is better to make "DataCenterInfo" as a public interface and allow user to provide  other implements.
Test with spring cloud eureka server.

Thanks a lot for fixing this. 🙇

The server side DataCenterInfo default implement would not allow "metadata" field.

I didn't know about this. Is there any reference that I can take a look, please?

@minwoox  I do not find any documents about this.
The portmapper enable should write as "@enabled"
https://github.com/Netflix/eureka/blob/1749af98a8c60784c36e448813cc73cdb4e4823c/eureka-client/src/main/java/com/netflix/discovery/converters/EurekaJacksonCodec.java#L553
/**
     * This phantom class name is kept for backwards compatibility. Internally it is mapped to
     * {@link MyDataCenterInfo} during the deserialization process.
     */
    public static final String MY_DATA_CENTER_INFO_TYPE_MARKER = "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo";

https://github.com/Netflix/eureka/blob/1749af98a8c60784c36e448813cc73cdb4e4823c/eureka-client/src/main/java/com/netflix/discovery/converters/jackson/DataCenterTypeInfoResolver.java#L29

Thanks for the link.
Are you using Armeria with Eureka by the way? 😄

I am testing.  not in production yet.


Support for wavemeter lock

I am trying to get the wavemeter lock working and was hoping there could be some documentation on how the lock works. There does not appear to be a way to turn the lock on or off from the GUI. Is there a reason for this or am I missing a way to turn the lock on and off easily?

We tend to just set it programmatically from ARTIQ anyway, so I wouldn't even know whether there is an UI option. (There probably isn't.) Could be added, though.

We tend to just set it programmatically from ARTIQ anyway, so I wouldn't even know whether there is an UI option. (There probably isn't.) Could be added, though.

We are running 3 labs from the same lasers so having it on the GUI probably makes more sense for us in the near term.
We'll have a go at adding it.

We are running 3 labs from the same lasers so having it on the GUI probably makes more sense for us in the near term.
We'll have a go at adding it.

Same for us, but as we have wand set up in the device DB for our experiments anyway (as the setpoints for the PI lasers during loading are slightly different), having the UI be an ARTIQ experiment submission box was just fewer lines of code.
Just adding a modal dialogue box with target offset (and lock owner name, defaulting to gui or something like that) accessible via context menu on each laser should do the trick for you, I guess.

Same for us, but as we have wand set up in the device DB for our experiments anyway (as the setpoints for the PI lasers during loading are slightly different), having the UI be an ARTIQ experiment submission box was just fewer lines of code.
Just adding a modal dialogue box with target offset (and lock owner name, defaulting to gui or something like that) accessible via context menu on each laser should do the trick for you, I guess.

Clearly @dnadlinger and I are now in different time zones ;)

I am trying to get the wavemeter lock working and was hoping there could be some documentation on how the lock works

The lock (like the rest of wand) operates using an ARTIQ rpc interface. The documentation is currently all in docstrings (these are the ones you'll see via the artiq rpc tool). See, e.g.
https://github.com/OxfordIonTrapGroup/wand/blob/492e0ba97ba1ba4eef3c11105d25e4bbf76c84ab/wand/server.py#L231-L241
I am trying to get the wavemeter lock working and was hoping there could be some documentation on how the lock works
In the long run we should move away from the readme.md we currently have and use sphinx to build docs from the code (the readme is already getting out of date and IME the further the docs are from the code the more quickly they rot). I would gladly accept a clean PR to add sphinx docs (see e.g. the way @dnadlinger set it up for ndscan).

We are running 3 labs from the same lasers so having it on the GUI probably makes more sense for us in the near term.
We'll have a go at adding it.

I had originally planned to allow the wavemeter lock to be controlled from the GUI. There are two reasons this didn't happen: limited screen real estate; it turned out not to be very useful for our workflows.
The first of these can be worked around by putting the lock settings in a menu or something. But before doing that I'd like to understand a bit more about what your workflow is.
In my experience the main reason we want to lock a laser is to do something with the experiment like load an ion. In that case it makes most sense (as @dnadlinger said) to lock the laser in the experiment by putting the wand server in the device_db. That has nice features like one can catch the exception that is raised if the laser is already locked by someone else and either wait-retry or bomb out with a clear error message. If you want to automate things down the road then you'll need this anyway. It also removes one more thing that people can forget and not be able to load, which is always good. It's also nice because you can easily add an assert in the code to check if the laser has jumped to the wrong mode and come out of lock.
Another reason to lock lasers is to do some data acquisition (neutral fluorescence or whatever), maybe while scanning the laser. In that case the acquisition is usually being done via a python script or artiq experiment. Again, locking the laser in the data acquisition code tends to make most sense for the reasons above.
If you just want your lasers locked to the right place, the startup script is generally the best approach.
If all else fails, you can use a python terminal and rpc tool to send a lock instruction.
My question is what you're doing that doesn't fall into one of the above categories so that locking via the GUI is the best approach. Essentially, I'm happy to add new functionality if it's genuinely useful, but the codebase here is already big enough to impose a decent maintenance burden and I want to avoid adding more features/code unless there is a demonstrated use-case for them.

Clearly @dnadlinger and I are now in different time zones ;)

I am trying to get the wavemeter lock working and was hoping there could be some documentation on how the lock works

The lock (like the rest of wand) operates using an ARTIQ rpc interface. The documentation is currently all in docstrings (these are the ones you'll see via the artiq rpc tool). See, e.g.
https://github.com/OxfordIonTrapGroup/wand/blob/492e0ba97ba1ba4eef3c11105d25e4bbf76c84ab/wand/server.py#L231-L241
I am trying to get the wavemeter lock working and was hoping there could be some documentation on how the lock works
In the long run we should move away from the readme.md we currently have and use sphinx to build docs from the code (the readme is already getting out of date and IME the further the docs are from the code the more quickly they rot). I would gladly accept a clean PR to add sphinx docs (see e.g. the way @dnadlinger set it up for ndscan).

We are running 3 labs from the same lasers so having it on the GUI probably makes more sense for us in the near term.
We'll have a go at adding it.

I had originally planned to allow the wavemeter lock to be controlled from the GUI. There are two reasons this didn't happen: limited screen real estate; it turned out not to be very useful for our workflows.
The first of these can be worked around by putting the lock settings in a menu or something. But before doing that I'd like to understand a bit more about what your workflow is.
In my experience the main reason we want to lock a laser is to do something with the experiment like load an ion. In that case it makes most sense (as @dnadlinger said) to lock the laser in the experiment by putting the wand server in the device_db. That has nice features like one can catch the exception that is raised if the laser is already locked by someone else and either wait-retry or bomb out with a clear error message. If you want to automate things down the road then you'll need this anyway. It also removes one more thing that people can forget and not be able to load, which is always good. It's also nice because you can easily add an assert in the code to check if the laser has jumped to the wrong mode and come out of lock.
Another reason to lock lasers is to do some data acquisition (neutral fluorescence or whatever), maybe while scanning the laser. In that case the acquisition is usually being done via a python script or artiq experiment. Again, locking the laser in the data acquisition code tends to make most sense for the reasons above.
If you just want your lasers locked to the right place, the startup script is generally the best approach.
If all else fails, you can use a python terminal and rpc tool to send a lock instruction.
My question is what you're doing that doesn't fall into one of the above categories so that locking via the GUI is the best approach. Essentially, I'm happy to add new functionality if it's genuinely useful, but the codebase here is already big enough to impose a decent maintenance burden and I want to avoid adding more features/code unless there is a demonstrated use-case for them.

The first of these can be worked around by putting the lock settings in a menu or something. But before doing that I'd like to understand a bit more about what your workflow is.

It's more that we don't have a workflow yet because we are still setting up parts of the lab in relative isolation.  We wanted to fire up and test our locks and we were like 'why is the lock box greyed out and unclickable?'.
Now we have an idea of how you actually ended use this in real life and where the docs are at, we'll see if we can live without the button.
Is there some minimal ARTIQ example code that could go in the docs to get people started or do you think it would end up with too many lab-specific idiosyncrasies to be useful?

The first of these can be worked around by putting the lock settings in a menu or something. But before doing that I'd like to understand a bit more about what your workflow is.

It's more that we don't have a workflow yet because we are still setting up parts of the lab in relative isolation.  We wanted to fire up and test our locks and we were like 'why is the lock box greyed out and unclickable?'.
Now we have an idea of how you actually ended use this in real life and where the docs are at, we'll see if we can live without the button.
Is there some minimal ARTIQ example code that could go in the docs to get people started or do you think it would end up with too many lab-specific idiosyncrasies to be useful?

Is there some minimal ARTIQ example code that could go in the docs to get people started or do you think it would end up with too many lab-specific idiosyncrasies to be useful?

@dnadlinger can maybe post some. But, what I'd say here is that the magic of RPC is that as soon as you stick the wand server in your device db you get access to the interface I linked above, so you can directly call any of those methods from your experiment.

Is there some minimal ARTIQ example code that could go in the docs to get people started or do you think it would end up with too many lab-specific idiosyncrasies to be useful?

@dnadlinger can maybe post some. But, what I'd say here is that the magic of RPC is that as soon as you stick the wand server in your device db you get access to the interface I linked above, so you can directly call any of those methods from your experiment.

otherwise, have a play with rpc_tool (it's ace!)

otherwise, have a play with rpc_tool (it's ace!)

Yes, I'm sure you're right.  It's the usual problem with all of ARTIQ - the tools are powerful and documented, but it's hard for students fairly new to all this to see how they can build them into their workflow.  To be honest, just paraphrasing your comments above in the readme would be a start.  Like, 'here is some cool ideas for how to integrate WAND in your lab'.

Yes, I'm sure you're right.  It's the usual problem with all of ARTIQ - the tools are powerful and documented, but it's hard for students fairly new to all this to see how they can build them into their workflow.  To be honest, just paraphrasing your comments above in the readme would be a start.  Like, 'here is some cool ideas for how to integrate WAND in your lab'.

yes, artiq is actually one of the best documented projects I've used...for the bits where the documentation exists (e.g. not applets). One thing it is sorely missing is a bit of high-level context.
Anyway, PRs for documentation improvements welcome here. The usual paradox is that the only people with enthusiasm for writing docs are the ones who haven't understood the project yet.

yes, artiq is actually one of the best documented projects I've used...for the bits where the documentation exists (e.g. not applets). One thing it is sorely missing is a bit of high-level context.
Anyway, PRs for documentation improvements welcome here. The usual paradox is that the only people with enthusiasm for writing docs are the ones who haven't understood the project yet.

shall we close this and open a new issue if you have further comments/questions after some playing?

shall we close this and open a new issue if you have further comments/questions after some playing?

Sure.  We'll have a play with Sphinx too.  Thanks.

Sure.  We'll have a play with Sphinx too.  Thanks.

@dtcallcock: It's literally just something like
class Enable1033Lock(EnvExperiment):
    """Enable 1033 wavemeter locker"""
    def build(self):
        self.setattr_argument("detuning", NumberValue(default=-600 * MHz, unit="MHz"))
        self.setattr_device("wavemeter_lab1")

    def run(self):
        self.wavemeter_lab1.lock("lab1_1033",
                                 set_point=self.detuning,
                                 name=NAME,
                                 timeout=None)

@dtcallcock: It's literally just something like
class Enable1033Lock(EnvExperiment):
    """Enable 1033 wavemeter locker"""
    def build(self):
        self.setattr_argument("detuning", NumberValue(default=-600 * MHz, unit="MHz"))
        self.setattr_device("wavemeter_lab1")

    def run(self):
        self.wavemeter_lab1.lock("lab1_1033",
                                 set_point=self.detuning,
                                 name=NAME,
                                 timeout=None)

Some docs that mention how to do this using sipyco_rpctool would certainly be appropriate, though.

Some docs that mention how to do this using sipyco_rpctool would certainly be appropriate, though.


Target Pipeline

In FAKE I would define different targets and run them as required for example

dotnet fsi build.fsx -t IntegrationTests
dotnet fsi build.fsx -t UnitTests
dotnet fsi build.fsx - runs the default command which may or not include all tests

Is there an equivalent for FsMake or are those meant to be defined in different scripts?
Also, what is the purpose of let! pipeline = Pipeline.create ... and do! Pipeline.create ...?
Example:

Pipelines.create {
    // this makes it available on the scope
    // besides it's usage in default_pipeline
    // is there other reason I'd like to use let! ?
    let! build = Pipeline.create "build" ...

    // does this mean this will always get executed?
    // does it make it available to call it from the CLI?
    do! Pipeline.createFrom build  "build:examples" ...
    default_pipeline build
}
|> Pipelines.runWithArgsAndExit args

I really like the idea of pipelines, steps and all of those things I'm pretty sure I will start adopting this library for my personal projects :)

Minutes Later: Looks like I can use the name of the pipeline to invoke that one but I will still ask because it might be good feedback for the docs

I could definitely add some documentation on the specifics of pipelines and what the purpose of the Pipelines.create computation expression is for.
As I'm sure you've seen from the type signature, Pipelines.runWithArgsAndExit takes a Pipelines record as a parameter. Pipelines.create just helps you construct this record but it could constructed any other way if you wanted to.
The type declaration is here: https://github.com/seanamos/FsMake/blob/develop/FsMake/Pipelines.fs#L10
To answer your question about the let! (which also applies to do!).  let! build = Pipeline.create "build" ... both creates a locally scoped build variable of type Pipeline and it also adds that Pipeline to the underlying Pipelines record that we are creating with the computation expression. This makes the pipeline callable from the CLI (by its name).
The CLI runs pipelines, not individual steps.
do! just adds the Pipeline to the Pipelines record, but does not create a locally scoped variable.
On do! Pipeline.createFrom build  "build:examples". createFrom uses an already declared pipeline (in this case build) as a base for another Pipeline. So the "build:examples" Pipeline will do everything the "build" Pipeline does first, then it will do any additional steps that you specify in "build:examples" Pipeline. It can be run by using the name "build:examples" from the CLI.
I hope that helps.

That helps indeed after exploring and playing with it later after this issue I came up with this
#r "nuget: FsMake, 0.6.1"

open FsMake
open System.IO

let args = fsi.CommandLineArgs

let parseOutput (version: string) =
    match version.Split(".") with
    | [| v; _; _ |]
    | [| v; _; _; _ |] ->
        try
            Ok(v |> int)
        with _ ->
            let messages = Console.message "Could not get SDK version" Console.Level.Error
            MakeError [ messages ] |> Error
    | _ ->
        let messages = Console.message "Could not get SDK version" Console.Level.Error
        MakeError [ messages ] |> Error

let plwScriptPath (ctx: MakeContext) =
    let result =
        Cmd.createWithArgs "dotnet" [ "--version" ]
        |> Cmd.redirectOutput Cmd.Redirect
        |> Cmd.result

    result ctx
    |> Result.bind (fun result -> parseOutput result.Output.Std)
    |> Result.map (fun version ->
        let isRelease = ctx.ExtraArgs |> List.contains "Release"
        let dir = if isRelease then "Release" else "Debug"
        let version = $"net%i{version}.0"
        //bin\Debug\net6.0\playwright.ps1
        Path.Combine("./", "bin", dir, version, "playwright.ps1"))

let cleanDirs = Glob.create "dist/**" |> Glob.toPaths

let sourceFiles =
    Glob.create "build.fsx"
    |> Glob.add "src/*.fs"
    |> Glob.add "src/**/*.fs"
    |> Glob.exclude "**/obj/**"
    |> Glob.exclude "**/fable_modules/**"
    |> Glob.toPaths

let fantomasFormat =
    Step.create "format:sources" {
        do!
            Cmd.createWithArgs "dotnet" [ "fantomas"; yield! sourceFiles ]
            |> Cmd.checkExitCode Cmd.ExitCodeCheckOption.CheckCodeZero
            |> Cmd.run
    }

let fantomasCheck =
    Step.create "format:check" {
        let! ctx = Step.context

        let! result =
            Cmd.createWithArgs "dotnet" [ "fantomas"; "--check"; yield! sourceFiles ]
            |> Cmd.checkExitCode Cmd.ExitCodeCheckOption.CheckCodeNone
            |> Cmd.result

        if result.ExitCode = 99 then
            Console.error "Some Files need Formatting, attempting format"
            |> ctx.Console.WriteLine

            do! fantomasFormat.Make
    }

let build =
    Step.create "build" {
        let! ctx = Step.context
        let isRelease = ctx.ExtraArgs |> List.contains "Release"

        do!
            Cmd.createWithArgs
                "dotnet"
                [ "build"
                  "src"
                  if isRelease then
                      "-c"
                      "Release" ]
            |> Cmd.run
    }

let publishBin =
    Step.create "publish:binary" {
        let! ctx = Step.context

        Console.info "Cleaning dist before releasing" |> ctx.Console.WriteLine
        cleanDirs |> Seq.iter File.Delete

        let cmd = Cmd.createWithArgs "dotnet" [ "publish"; "src"; "-o"; "dist" ]

        do! cmd |> Cmd.run

    }

let plwInstall =
    Step.create "playwright:install" {
        let! ctx = Step.context

        match plwScriptPath ctx with
        | Ok path -> do! Cmd.createWithArgs "pwsh" [ path; "install" ] |> Cmd.run
        | Error msg -> failwithf "%A" msg
    }

let plwCheckInstalled =
    Step.create "playwright:version" {
        let! ctx = Step.context

        match plwScriptPath ctx with
        | Ok path ->
            do!
                Cmd.createWithArgs "pwsh" [ path; "--version" ]
                |> Cmd.checkExitCode Cmd.CheckCodeZero
                |> Cmd.run
        | Error msg -> failwithf "%A" msg
    }

let formatCheck = Pipeline.create "format:check" { run fantomasCheck }
let buildSources = Pipeline.create "build" { run build }
let formatSources = Pipeline.create "format" { run fantomasFormat }

let buildInitial =
    Pipeline.createFrom buildSources "build:initial" {
        run plwInstall
        run plwCheckInstalled
    }

let buildFormatted = Pipeline.createFrom formatCheck "build:formatted" { run build }

let publishBinary =
    Pipeline.createFrom buildFormatted "publish:binary" { run publishBin }

Pipelines.create {
    add formatCheck
    add buildSources
    add formatSources
    add buildInitial
    add buildFormatted
    add publishBinary
    default_pipeline buildFormatted
}
|> Pipelines.runWithArgsAndExit args

I really like it and not just for F# stuff, I think it has a lot of potential to automate other stuff
feedback on that script is welcome as well
Thanks for taking the time on answering that!

I've made some changes to the script you posted to show how it could be done slightly differently.
I believe this might also answer your question on how to signal failures.
There are variants of Make.fail and Step.fail.
I will answer your error handling issue more comprehensively though.
#r "nuget: FsMake, 0.6.1"

open FsMake
open System.IO

let args = fsi.CommandLineArgs

let parseOutput (version: string) =
    make {
        match version.Split(".") with
        | [| v; _; _ |]
        | [| v; _; _; _ |] ->
            try
                return v |> int
            with _ ->
                return! Make.fail "Could not get SDK version"
        | _ ->
            return! Make.fail "Could not get SDK version"
    }

let plwScriptPath =
    // only runs once and caches the result
    memo {
        let! ctx = Make.context

        let! result =
            Cmd.createWithArgs "dotnet" [ "--version" ]
            |> Cmd.redirectOutput Cmd.Redirect
            |> Cmd.result

        let! version = parseOutput result.Output.Std
        let isRelease = ctx.ExtraArgs |> List.contains "Release"
        let dir = if isRelease then "Release" else "Debug"
        let version = $"net%i{version}.0"
        //bin\Debug\net6.0\playwright.ps1
        return Path.Combine("./", "bin", dir, version, "playwright.ps1")
    }

let cleanDirs = Glob.create "dist/**" |> Glob.toPaths

let sourceFiles =
    Glob.create "build.fsx"
    |> Glob.add "src/*.fs"
    |> Glob.add "src/**/*.fs"
    |> Glob.exclude "**/obj/**"
    |> Glob.exclude "**/fable_modules/**"
    |> Glob.toPaths

let fantomasFormat =
    Step.create "format:sources" {
        do!
            Cmd.createWithArgs "dotnet" [ "fantomas"; yield! sourceFiles ]
            |> Cmd.checkExitCode Cmd.ExitCodeCheckOption.CheckCodeZero
            |> Cmd.run
    }

let fantomasCheck =
    Step.create "format:check" {
        let! ctx = Step.context

        let! result =
            Cmd.createWithArgs "dotnet" [ "fantomas"; "--check"; yield! sourceFiles ]
            |> Cmd.checkExitCode Cmd.ExitCodeCheckOption.CheckCodeNone
            |> Cmd.result

        if result.ExitCode = 99 then
            Console.error "Some Files need Formatting, attempting format"
            |> ctx.Console.WriteLine

            do! fantomasFormat.Make
    }

let build =
    Step.create "build" {
        let! ctx = Step.context
        let isRelease = ctx.ExtraArgs |> List.contains "Release"

        do!
            Cmd.createWithArgs
                "dotnet"
                [ "build"
                  "src"
                  if isRelease then
                      "-c"
                      "Release" ]
            |> Cmd.run
    }

let publishBin =
    Step.create "publish:binary" {
        let! ctx = Step.context

        Console.info "Cleaning dist before releasing" |> ctx.Console.WriteLine
        cleanDirs |> Seq.iter File.Delete

        let cmd = Cmd.createWithArgs "dotnet" [ "publish"; "src"; "-o"; "dist" ]

        do! cmd |> Cmd.run

    }

let plwInstall =
    Step.create "playwright:install" {
        let! path = plwScriptPath
        do! Cmd.createWithArgs "pwsh" [ path; "install" ] |> Cmd.run
    }

let plwCheckInstalled =
    Step.create "playwright:version" {
        let! path = plwScriptPath

        do!


Mac version?

This looks awesome! Would it be possible to get this working on Mac as well. The main serialport package seems to be compatible, is there anything platform specific?

Hi Justin, thanks for asking! No -- I built it to be cross-platform. I just haven't had a chance to get a service running to compile it on mac yet. I should be able to do that shortly.

Amazing, please let me know if I can help with testing or anything.

Is there any update regarding this request? I am also interested in running in with macOS. Thanks!

I would also love to know if this works on Mac! I am trying to figure out the process needed to build from source, but I'm in over my head on that one so far. It seems like you need to install Node.js and the Yarn package manager, and then build it from the cloned repo? This is the exact application I need to fine tune a low pass filter for light sensors for a project I'm working on.

Hey there! I just wanted to report back to say that I figured out how to build the Mac version from the source code, and it works great! I tried to fork this repo, add the built Mac version, and then issue a PR, but the file size is too large for a standard repo. I tried to use git's LFS thing for large files, but I've never used that before, and somehow it now thinks that my repo that doesn't have any files in it is over the data limit. Anyway, I'm going to keep trying to figure out how to host the built Mac version for people, either as a fork, or possibly elsewhere. In the meantime, if anyone wants to build it themselves, it actually wasn't too hard, and I'd be happy to walk you through the steps I took. I had never used Node.js or Yarn electron before and I still got it done, so you can too! This application is well worth it. This is the best serial plotter I've ever used, and it's helping me design filters for sensors on a robotics project.

Thanks for doing that Evan and sorry I didn't respond -- I have out of touch with some of this work recently.
I actually have a mac now so I can pretty easily build the application on it and then upload the files to my site. Any issues I should know about that you had to debug during the build?
Thanks,
CR

Hey, no worries! You made an awesome free tool that's the best serial plotter I've ever seen as what seems like a passion project, I'm not expecting a super fast turn around on anything. The build went really smoothly and the application works great! The only issues I ran into were me not know what I was doing. This is a seriously awesome set of resources you've put out. I just used this and your Jupyter notebooks to build a low pass Butterworth filter for a project I'm working on, and it's the clearest resource I've found for someone entirely new to DSP.

I appreciate the kind words, Evan.
I compiled on MAC and, like you, I surprisingly did not run into build issues. Typically there would be at least one or two.
I've uploaded the version compiled on MAC (arm64), can you test it out for me? Then I can close this issue.

Sorry for the slow response! It's a hectic week. I just downloaded the file, but unfortunately, I get an error saying 'The application “Serial Analyzer.app” can’t be opened.' I tried to look into what might be causing this, and one idea I came across was that zipping an application can potentially strip it of execution settings. There was a proposed fix using the chmod command in the terminal, but I really don't know Mac well enough though to go messing with a command that could brick the whole filesystem on my work laptop. I did share my build of the application with my coworkers as a zip file, but none of them had tried to use it yet, and it turns out to have the same problem. When I built the application, it also generated a .dmg installer, so I wonder if sharing the installer instead of zipping the application might work. I just shared that with my coworkers too, and hopefully they'll try that out soon and I can let you know!

One of my coworkers just tried both the app and the dmg file, and neither worked unfortunately. The dmg file yielded an application that had an error saying the application was damaged and could not be opened. I'm so confused about why it would work fine when I built it on my computer, but not when shared with other people!

Thanks for the feedback, I'll review the electron app build settings this weekend and see if I can get it sorted.

I've recompiled in a couple of different formats. I created the zip file through the build process rather than zipping it manually.
If you have time and want to try these, please let me know if they are working or what errors you are encountering. Right now I can't seem to find any specific issues as to why these might not be working.

Closing this for now since I've uploaded equivalent files for mac. Please let me know of any issues encountered.


[WIP] Dataplane CRD API and initial implementation

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Will clean and reopen


Kusto insiders gallery update to 0.4.0

This PR fixes #
Vsix link: https://mssqltools.visualstudio.com/CrossPlatBuildScripts/_build/results?buildId=85339&view=artifacts&pathAsName=false&type=publishedArtifacts

@gupta1 Please make sure you send me or @alanrenmsft the link to the VSIX you want uploaded when opening a gallery update PR

@gupta1 Please make sure you send me or @alanrenmsft the link to the VSIX you want uploaded when opening a gallery update PR

@Charles-Gagnon Sure, I have added the link in the description


Bump Forms 5 dependency to pre-5

Description of Change
What the title says!
In addition; removed the dependency from the Markup Sample to the NuGet, since that would now always require failing builds and having an additional PR after a new pre-release of XCT was released. Instead it now references the actual Markup source project.
Also in Markup sample fixed a link to point to MicrosoftDocs account

A new build for this PR has been completed. As a result a NuGet has been created which allows you to verify this fix or try out the new feature! Download here

A new build for this PR has been completed. As a result a NuGet has been created which allows you to verify this fix or try out the new feature! Download here

A new build for this PR has been completed. As a result a NuGet has been created which allows you to verify this fix or try out the new feature! Download here


not show  new  function

Hello
i  know you add new  function  but  i do not see it in my admin
can you  help  me?

New function? Can you be more specific, please?
I simply can't understand what are you trying to say.

I have updated the module! Now you can select location (Paris or Amsterdam) when ordering a server!
Check "Custom fields" section in the Wiki page for details!
I have created an email template which will be used as a "Welcome" message to users who order a server. That email contain server details.

Oh, yes, I did!

Go to https://github.com/caffedrine/scaleway-whmcs/wiki/Setting-up-module
and check your 2.4 and make sure your custom field looks this way! These is a new field called "Location" (the last one).

https://github.com/caffedrine/scaleway-whmcs/wiki/Welcome-email

please  look  my sceen

And do not enable IPv6 on ARM Servers, I think it is not available for this kind :)

i don't see  Field same you

yes,my admin do not have more  field as you
why?

Because you have to create those custom fields, one by one
Fill those fields properly and then click save!

i   don't understand  .because i do step by step  for  you


Split mass balance calculation

A dream, thanks! As a DRY ultra, my original idea was to have totals and balance in one function with a mode argument and a prefix[mode] = {'total': 1, 'balance': -1}, but the current solution is probably more readable?
You decide.

Hey, sorry I didn't really intend for you to do a proper review earlier, as it was still work in progress, I just thought it was easiest to ask my questions directly in the code. Thanks for clarifying! I have now done a bit of refactoring to reduce code duplication, but hopefully keeping readability. Not sure if you want to take another quick look @JakobBD?


Pass context for the entire field, not each method individually

The current way of doing it is really restrictive, especially for multiple choices. Change it so context is passed at the field level, like this:
field :multiple_choice do |users|
    ask "Hello, who do you want to find?"

    users.each do |user|
      choice user.name
    end
end

Which removes the complexity of having to detect lambdas all over the place.

@leemachin This functionality would be extremely helpful for a project I'm working on. Any idea how long this will take to implement?

Honestly I'm not sure. I need to figure out the right way to do it and I think it might mean changing how some things work.


Get value of any vector for a given row

I have a list of vectors
val vectors = List(a: IntVector, b: BigIntVector, c: BigIntVector)

The int get(int index) method isn't available in any common vector interface. How do I get the value of all the vectors as shown below instead of having to invoke int get(int index) on each vector individually?
vectors.map(v => v.get(row))

Please suggest.

Hi @iamsmkr,
I'm not really sure what you're looking to do. The BigIntVector class implements a version of get(int) that returns a long rather than int (since it's a BIG int vector). The only way to map over the three types would be to use long as the return type.
   List<Long> rowData = vectors.map(v -> v.get(row)).boxed().collect(Collectors.toList());

I didn't attempt to compile that, as I'm not entirely sure I'm answering the right question. It might need some tweaking.

@lwhite1 Thank you so much for your response! I have managed to achieve this using Shapeless instead. I have captured it in a blog post here. Please see and let me know what you think?

getObject is part of ValueVector, though there isn't a setObject - would that have worked?

Looks like an interesting approach, but i'm not a Scala guy so I can't
really comment. Glad you were able to solve your issue.
On Tue, Jul 19, 2022 at 9:30 AM Shivam Kapoor @.***>
wrote:

@lidavidm https://github.com/lidavidm See this repo
https://github.com/iamsmkr/shapeless-arrow/blob/main/src/main/scala/com/iamsmkr/TacklingVectorsWithShapeless.scala#L67
on how I managed to solve this problem using shapeless. I have also tried
to explained a bit on it in a blog here
http://shivamkapoor.com/blogs/technology/2022/07/17/tackling-heterogeneity-in-apache-arrow-value-vectors-using-shapeless/.
Let me know what you think?
—
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow/issues/13445#issuecomment-1189056881,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2FPAQIOWN6S47Q74YIP3TVU2UXHANCNFSM52BBSV7A
.
You are receiving this because you were mentioned.Message ID:
@.***>


Export and Import folder structure

Hi @kasperbolarsen, great sample thank you, I made small changes to the submission, hope that is ok, nothing major. This will be live shortly 🎉👏

Hi @pkbullock
Not at all. Any kind of changes that I might as well make myself in future PRs?


Supplying a wider nested type to a narrow type param of a function doesn't work as expected

Flow version:
0.140.x
See flow try.
Here when trying to supply a wider type to a narrower type here —
type NarrowType = {
  key: { name: string }
}

type WideType = {
  key: { id: string, name: string }
}

const wideType: WideType = {
  key: {
    id: 'string',
    name: 'string',
  }
}

function foo(param: NarrowType) { console.log(param)}

foo(wideType)

Expected behavior
Here wideType satisfies requirements of narrowType, and should be acceptable as an input. Typescript's behaviour is much closer to expectation.
Actual behavior
Flow complains that id is present in wider type, but absent in a narrower type.

TypeScripts behaviour is intentionally unsafe, while Flow is safe. That is because we consider mutation in this case of param.key, e.g. imagine if foo is defined as:
function foo(param: NarrowType) {
  param.key = {name: 'hi'}; // We just broke `wideType`!
}

If you mark the key property as read-only, then that unsafe mutation is not possible and Flow does not error:
https://flow.org/try/#0KYDwDg9gTgLgBDAnmYcBiBXANlgKs1AXjgG8AoOOASwBMAuOAZxiioDsBzAGgrjYEMAtsAbNWnHgF8A3GTJIUcAHL8oUCAHd8i4uUoBqANbBEDEnyEimLdhziS4AekdwABvtdwawNhBjBGBAALfngYINQwdRRYRGpAqGB+GgBaCDYsRDJJOQVUAHVaYG0iUl5jU3RsPAJsuQBjdOY4DSKShkLvErhdcpMzXkpaBgByMVsRnkpKAWFR8c5J3hycsgAzDDZ6mCp0uDWICAAKMFUhBhU1TRKASjLKZzhTqCEAOgqe0lmrEaCqEZkThc4SogQ0EGwNDgACNUPw2HBgFcoHxNLxGmxGBAsMBXlgIBwTmdBDdZKsDsdWl0CDcgA

@gkz what about this case?
Making properties read-only doesn't seem to help.
https://flow.org/try/#0C4TwDgpgBA6glgEwgJwArIPYIK4GNhQC8UA3gFBRQDUiAXFAM7DJwB2A5gDQXWsCGAWwj0mLDtwC+AbjJlQkKADk+yTAHcU6LHgLFylKvyEjmbLmWmz50ZaoxqtOfAwCCqviCJKV6zZifAANoAujJy4NAAyigAbigAaigMcBisXvrUuBgCYHzAcABGADYQjjoM9PBIaP46IZJhWaxMUMAQTPTRyHHIicjJqek8WTl5hSVlzvSBJEbCUADkAGYYGAucUHSLBSoLEsENsk0tfAW49Lbqk8Cu7p7EbUwAdCO5+cWltc5SYUA


Formulation

Some of the sentences could be formulated slightly better, grammar wise or to better convey their meaning.

Thanks for pointing that out. Hope to see your pull request soon :-)


gzip filter: make sure the stream ends properly

gzip filter: make sure the stream ends properly
This patch adds additional call of Z_FINISH to properly ends gzip
stream. This also provides a reset functionality since an ended stream
needs to be re-init'ed.
Risk Level: Low
Testing:

Maintain the corresponding unit and integration tests to be PASSED.
Manual test by following repro steps defined in https://github.com/envoyproxy/envoy/issues/2909

Docs Changes:
N/A
Release Notes:
N/A
Fixes #2909
Signed-off-by: Dhi Aurrahman<EMAIL_ADDRESS>

@gsagula this is an attempt to try to cure #2909. Thanks!

@dio I'll take a look at. Thank you for pinging me.

@dio My apologies for missing the GH notifications about the issue and, thank you again for this fix! It looks great, just a few comments.

@gsagula yes, that came to my mind while proposing this PR. Will try to have a test on it.

@gsagula, so I have this simple test server in node (sorry for some .js) serving a small .txt file and an over 100MB .pdf file. The following will give you Transfer-Encoding: chunked,
const Server = require("http").Server;
const fs = require("fs");
const server = new Server((req, res) => {
  return fs
    .createReadStream(req.url == "/book" ? "book.pdf" : "a.txt")
    .pipe(res);
});

server.listen(1234);

Then,

Run and put the server as an upstream host
Get the book.pdf using curl curl localhost:9000/book -H 'Host: test-server.com' -H 'Accept-Encoding: gzip' -o book1.pdf.gz
gunzip the dumped file.
Open the file.

Seems fine.

@dio That's awesome! I will do a final pass + some manual testing a bit later. Thanks for all the work 👍
ps. (Js and Crypto) are the two words that make things popular these days 😛

@gsagula sorry for missing that. Will revert back and investigate.

No worries, thanks for looking into it!
I think what you had before was correct. Deflating with Z_NO_FLUSH till buffer gets full,  Z_SYNC_FLUSH to do the byte-alignment, and then Z_FINISH when the end_stream is received.
Did you have a chance to test this last change with your js server and few clients?
I'm still at work, but I'll dig in a bit more when I get home.

@dio @gsagula I thought about this more, and here is actually what I think we want to do:

I think we basically want to SYNC_FLUSH on every data frame. The reason I think this is in the case of streaming responses where there might be long delay between data frames.
Then we want to FINISH on end_stream.

This is also different from what we did before. WDYT?

@mattklein123 Thanks for the input. Calling SYNC_FLUSH on every data frame was in my very initial design. It simplifies a lot the implementation. I dumped it because Zlib documentation states that this might degrade compression and, it should be avoided. I didn't see too much difference to be honest
Now, thinking about slow responses, the current implementation will indeed aggravate delay. I'm in favour of changing it 👍
Side question: Would be better also to have only one input buffer in this case?
https://github.com/dio/envoy/blob/d44d929d63d6f0821231d8341cfac2242f860a0c/source/common/compressor/zlib_compressor_impl.cc#L36

Side question: Would be better also to have only one input buffer in this case?
https://github.com/dio/envoy/blob/d44d929d63d6f0821231d8341cfac2242f860a0c/source/common/compressor/zlib_compressor_impl.cc#L36

I would compress all slices of the input buffer, then SYNC_FLUSH. Then only if end_stream FINISH.

@dio @gsagula big apologies but you are going to lose the race with this: https://github.com/envoyproxy/envoy/pull/3074
Please merge master once that goes in. Sorry. :(

@gsagula @mattklein123 one question. (While not end_stream) If we flush every time after we compressed all slices, this https://github.com/envoyproxy/envoy/blob/master/test/extensions/filters/http/gzip/gzip_filter_test.cc#L89 would not be true anymore.
Is it really necessary to expect Http::FilterDataStatus::StopIterationNoBuffer first?
I tried to change the filter's encodeData as follows:
Http::FilterDataStatus GzipFilter::encodeData(Buffer::Instance& data, bool end_stream) {
  if (skip_compression_) {
    return Http::FilterDataStatus::Continue;
  }

  const uint64_t n_data = data.length();
  if (n_data > 0) {
    compressor_.compress(data, compressed_data_);
    // Always do flush after compressing all slices.
    compressor_.flush(compressed_data_);
  }

  if (end_stream) {
    compressor_.finish(compressed_data_);
  }

  if (compressed_data_.length() > 0) {
    data.drain(n_data);
    data.move(compressed_data_);
    return Http::FilterDataStatus::Continue;
  }

  return Http::FilterDataStatus::StopIterationNoBuffer;
}

I can confirm that it works (using that little server serving 110MB book.pdf). So I think it wouldn't hurt any kittens if I change the expectation to be:
void doResponseCompression(Http::TestHeaderMapImpl&& headers) {
    uint64_t content_length;
    ASSERT_TRUE(StringUtil::atoul(headers.get_("content-length").c_str(), content_length));
    feedBuffer(content_length);
    EXPECT_EQ(Http::FilterHeadersStatus::Continue, filter_->encodeHeaders(headers, false));
    EXPECT_EQ("", headers.get_("content-length"));
    EXPECT_EQ(Http::Headers::get().ContentEncodingValues.Gzip, headers.get_("content-encoding"));
    // no Http::FilterDataStatus::StopIterationNoBuffer anymore.
    EXPECT_EQ(Http::FilterDataStatus::Continue, filter_->encodeData(data_, true));
    verifyCompressedData();
    drainBuffer();
}

WDYT?

Hi @dio

one question. (While not end_stream) If we flush every time after compressing all slices, this https://github.com/envoyproxy/envoy/blob/master/test/extensions/filters/http/gzip/gzip_filter_test.cc#L89 would not be true anymore.

That's right. We no longer need to buffer the response.

I tried to change the filter's encodeData as follows:
..

Based on the above Matt's response, I think you should deflate the data frame in one pass. It would change a bit compress() implementation. That's kind of what I think.
Http::FilterDataStatus GzipFilter::encodeData(Buffer::Instance& data, bool end_stream) {
  if (!skip_compression_) {
     // Z_FINISH when end_stream is true, otherwise Z_FLUSH.
     compressor_.compress(data, end_stream);
  }

  return Http::FilterDataStatus::Continue;
}

@gsagula deflate-in-one-go is accommodated in the PR now. Thanks!

@dio Thank you for doing this! I'll take a look at the changes a bit later today.

@gsagula

stream a large text file and save it in .gz format (the actual bug)

I have manually tested it. And I think it is passed.

stream a large text to clients (browser/curl --compressed)

I have manually tested it. And I think it is passed.

stream a non-compressible file (it actually expands)

I can see that currently the filter by default compress the stream (if the accept-encoding is required and trasferred as chunks). I think we should by default don't compress and only care for whitelisted content-type.
I can do detection (of the magic numbers) but it seems to much and will introduce false-positive?

I can see that currently, the filter by default compresses the stream (if the accept-encoding is required and transferred as chunks). I think we should by default don't compress and only care for whitelisted content-type.
I'm not sure I follow this one. Would mind to elaborate it, please?

I can do detection (of the magic numbers) but it seems too much and will introduce false-positive?
I think checking for the magic number is still not reliable. One common idiom is to buffer the entire response, compress it and, verify that didn't expand. However, this approach would have other side-effects such as latency and memory. For now, we just compress anything and assume that most of the time this filter will be receiving compressible content.

I'm not sure I follow this one. Would mind to elaborate it, please?

@gsagula e.g. having this:
          http_filters:
          - name: envoy.gzip
            config:
              memory_level: 9
              compression_level: BEST

when a client asks for Accept-Encoding: gzip, the filter compresses the upstream's stream regardless Content-Type (hence even when the chunks from the upstream are already compressed, the filter compresses again)

the filter compresses the upstream's stream regardless Content-Type

I don't think so, it validates against a default content-type's list if none is specified in the config:

A response does not contain a content-type value that matches one of the selected mime-types, which default to application/javascript, application/json, application/xhtml+xml, image/svg+xml, text/css, text/html, text/plain, text/xml.

https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/gzip_filter.html?highlight=gzip#how-it-works
https://github.com/envoyproxy/envoy/blob/55a95f481798a571ef00e02d056fe6b180de8876/source/extensions/filters/http/gzip/gzip_filter.cc#L32

@gsagula Hum, it seems my test server doesn't send Content-Type. Haha. So it is being hit by
https://github.com/envoyproxy/envoy/blob/master/source/extensions/filters/http/gzip/gzip_filter.cc#L205
Sorry for false alarm.
So yeah, I think I have your concerns tested now.

LGTM, Thanks for correcting it. Just one minor comment.

Thanks, @mattklein123! I have added the comments and done a master merge.


istioctl pc listeners(clusters) add output whether its inbound or outbound

Describe the feature request
Currently all listeners and clusters are listed as the same, without distinguishing as inboud or outbound.
Having it check the name prefix, then output the type can be helpful.
istioctl pc listeners $(kpidn bug -lapp=httpbin1).bug

ADDRESS           PORT      TYPE
<IP_ADDRESS>       15020     TCP
<IP_ADDRESS>     9000      TCP
<IP_ADDRESS>     443       TCP
<IP_ADDRESS>      53        TCP
<IP_ADDRESS>     443       TCP
<IP_ADDRESS>     443       TCP
<IP_ADDRESS>     15443     TCP
<IP_ADDRESS>      443       TCP
<IP_ADDRESS>     15011     TCP
<IP_ADDRESS>       443       TCP
<IP_ADDRESS>     15443     TCP
<IP_ADDRESS>           9091      TCP
<IP_ADDRESS>           15004     TCP
<IP_ADDRESS>     14268     TCP
<IP_ADDRESS>     16686     TCP
<IP_ADDRESS>           15019     TCP
<IP_ADDRESS>     15020     TCP
<IP_ADDRESS>           15010     TCP
<IP_ADDRESS>     42422     TCP
<IP_ADDRESS>     80        TCP
<IP_ADDRESS>     14250     TCP
<IP_ADDRESS>     14267     TCP
<IP_ADDRESS>           20001     TCP
<IP_ADDRESS>           15014     TCP
<IP_ADDRESS>     15032     TCP
<IP_ADDRESS>           9090      TCP
<IP_ADDRESS>           3000      TCP
<IP_ADDRESS>           80        TCP
<IP_ADDRESS>     15031     TCP
<IP_ADDRESS>     443       TCP
<IP_ADDRESS>           8060      TCP
<IP_ADDRESS>     15030     TCP
<IP_ADDRESS>     15029     TCP
<IP_ADDRESS>           9411      TCP
<IP_ADDRESS>           8080      TCP
<IP_ADDRESS>      443       TCP
<IP_ADDRESS>           8000      TCP
<IP_ADDRESS>           9901      TCP
<IP_ADDRESS>           15001     TCP
<IP_ADDRESS>           15006     TCP
<IP_ADDRESS>           15090     HTTP

Additional context

We will need bigger changes soon anyways once we move to filter chains cc @lambdai

Got it. Then I would re-word this as distinguish inbound and outbound config for istioctl pc, whether it's filter chain or listeners, making this difference always help IMO.

IMHO inbound/outbound and my filter chain change is orthogonal
The reason is that each listener/filter has the attribute: inbound or outbound. It is never early to add the in/out attribute.

WRT to the fact of listener when outbound listener only have 1 physical listener :15001
I think we might want to maintain the current listener view and hide the detail of the only port 15001 listener
WDTY @howardjohn

It depends on how the intended UX for our istioctl pc debugging tool should be. Whether it's for seasoned users to drill lower level Envoy config or we still need to maintain another higher level view.
I think we can have both. Displaying filter chain && listener, plus how are they  selected by the filter chain match attributes, in a priority order, destination port, ip address, etc.
@esnible might be able to provide some comments.

We want to have commands that can be used for power users to quickly illustrate something that has gone wrong, and also tools to help new users understand what is happening.
Is there anything we can do about those addresses?  To help users understand what they are, and why so many addresses are being listened upon?

<IP_ADDRESS>_port is for outbound listener, for http
:svc-port is for tcp, outbound, listener.
:container-port is for inbound listener
virtualInbound is for all other default to TCP proxy case.
Having said that, I think we need a more reliable way to distinguish inbound/outbound traffic. Above is just networking impl details, and subject to change. It turns out not a good practice to rely on. not sure if we can have proto level labeling/annotation on listener debugging annotation for this kinda of information.

i admit this is a thorny thing, in terms of making config understandable, while we have upcoming envoy config change.
are there some ways to generate a request handling decision tree, maybe? i think that's a good analogy based on my understanding of the listener/filter chain matching logic. the only thing is how to make generated config keep up with the istioctl tooling. as mentioned above, re-interpret again in istioctl is not something we should be doing.

on the listener there is a field "direction" which we set and can use
On Wed, Dec 18, 2019, 12:13 AM Jianfei Hu<EMAIL_ADDRESS>wrote:

i admit this is a thorny thing, in terms of making config understandable,
while we have upcoming envoy config change.
are there some ways to generate a request handling decision tree, maybe? i
think that's a good analogy based on my understanding of the
listener/filter chain matching logic. the only thing is how to make
generated config keep up with the istioctl tooling. as mentioned above,
re-interpret again in istioctl is not something we should be doing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/19394?email_source=notifications&email_token=AAEYGXOVZPYQX65T7VR4VBLQZHLSFA5CNFSM4JVPUUF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHFJMNQ#issuecomment-566924854,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXLV5XS4VITPAYKPATTQZHLSFANCNFSM4JVPUUFQ
.

Would it bind Istioctl too tightly to Kubernetes if the pc listeners had a list of IPs (derived by using client-go equivalent of kubectl get svc -o custom-columns=NAME:.metadata.name,CLUSTER-IP:.spec.clusterIP and kubectl get pods -o wide?
It would be awesome if the output was something like
ADDRESS           WHAT          PORT      TYPE
<IP_ADDRESS>       pod:foo         15020     TCP
<IP_ADDRESS>     service:bar         9000      TCP
<IP_ADDRESS>     pod:baz         443       TCP
<IP_ADDRESS>      pod:bif         53        TCP
<IP_ADDRESS>           outbound     15006     TCP
<IP_ADDRESS>           outbound     15090     HTTP

@esnible if we want something like that I suggest we just have the WHAT say the cluster name we are sending to. There are a lot of complications with what you described, for external services, subsets, etc. And we aren't tied to k8s, and you can use istioctl pc clusters to map it

Cluster name should be sufficient, agreed.

@incfly I am considering giving this the community/intern-help-wanted tag.  Can you summarize what you now believe this subcommand's output should look like for 1.7?

This is implemented by --verbose on listener, and cluster now shows direction


config find bug

https://github.com/gulpjs/gulp/issues/664

Resolved in node 0.12 https://github.com/gulpjs/gulp/issues/664#issuecomment-74452275


[FLINK-4093] Expose metric interfaces

This PR allows users to create their own Counters and register them with Flink.
To that end, Counter was refactored into a SimpleCounter class implementing a new Counter interface. Gauge was changed to an interface as well.

The changes look good to me. +1 for merging. Good work @zentol. I only had a question concerning the use of generic parameters which is not really necessary, imo.

merging


Implement multi-channel size reduction methods

Introduce, implement and document how straw reduces size for multi-channel audio and how it differs from FLAC
A stub can be found in desgin.md

Shift
The shift should probably be dealt with like this:

Global shift correction -> the removed samples to stream header
Local shift correction -> the removed samples to frame header

Should we use use supersampling? -> this would probably increase the computation time significantly

Shift
OR maybe a better method

Do local shift correction only.
Substract the mean shift correction value, store this "redisual" value rice encoded in the frame header.
Store the mean value in the stream header.

1 set of coeffs -> autocorrelation coefficients mean
calculate coefficients
calculate residuals and store differences

Tied to #23

Done in #36


Add NotFound Page

Fixes Issue

Closes #16
Changes proposed

[x] Add Not Found Page

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] My change requires changes to the documentation.
[x] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

May be we can keep the items at the center to prevent sticking them with the navbar
or we can add this image to provide a visual cue as well https://illustrations.popsy.co/amber/crashed-error.svg

Yeah, sure have added svg and centered the content. Btw nice svgs have you created it? If not whats the source?


⚠ Bofrost.es has degraded performance

In 4d9d252, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1495 ms

Resolved: Bofrost.es performance has improved in e28412c after 7 minutes.


fix: derive BEq on structure with Prop-fields

Closes #3140

Perfect. Thanks for taking the time to review this :-)


Fix chef warning

WARN: Default value nil is invalid for property package_options of resource docker_installation_package. Possible fixes:

Remove 'default: nil' if nil means 'undefined'.
Set a valid default value if there is a reasonable one.
Allow nil as a valid value of your property (for example, 'property :package_options, [ String, nil ], default: nil').

Error: Property package_options must be one of: String!  You passed nil. at [...]/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef.rb:20:in `log_deprecation'

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@amotoohno

Please sign the CLA here.

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.

Thanks Moto!


Support for names and slugs to be longer than 100 characters?

Is there a way for names and slugs for tags to be larger than 100 characters?
I see a PR from a few years ago (#279) was closed without merging.
Happy to submit a new PR if others would like support for larger tags, too.

I'm not sure if this needs to be merged into the project since you could subclass TagBase, but at a minimum the existing max_length value DOES seem like something that should be in the docs, explicitly mentioned in the customization section, since the docs don't seem to mention any limitations or warnings regarding a non-standard max_length. It does seem to be a relatively important element of usability.

+1 on "custom tag", having a global configuration has its own can of worms (to be honest I would not recommend anyone use the base Tag model, building off a custom tag base will save you a lot of headache long term)


Driver diagnostics (such as remarks and errors) don't obey -parseable-output

Diagnostics emitted by the driver itself don't obey -parseable-output.  This makes it a bit difficult for clients to handle the output and leads to things like https://github.com/apple/swift-package-manager/issues/5968.
Consider this command line:
❯ swiftc -parseable-output -whole-module-optimization -incremental -c foo.swift

(assuming there is a file foo.swift).  It results in:
remark: Incremental compilation has been disabled: it is not compatible with whole module optimization
1201
{
  "command_arguments" : [
    "-frontend",
    "-c",
    "foo.swift",
    "-target",
    "arm64-apple-macosx12.0",
    "-Xllvm",
    "-aarch64-use-tbi",
    "-enable-objc-interop",
    "-stack-check",
. . .

which is a mixture of JSON output and plain-text output.  Making matters worse, both the JSON output and the diagnostics are emitted to stderr.  I would have expected that output would go to stdout when -parseable-output is passed, while the human-readable diagnostics go to stderr.
Alternatively, when -parseable-output is in effect, the diagnostics from the driver could be wrapped in JSON packets reflecting the type of diagnostic so that clients don't have to handle a mixture.

This is not great.
Re: emitting parseable output to stderr, this is a behavior that SwiftDriver inherited from the legacy driver, and we need to be careful we don't break clients that rely on that... I agree that in principle it should go to stdout.
I'm not sure how we get interleaving in the output that https://github.com/apple/swift-package-manager/issues/5968 sees, since both the plain driver diagnostics, and parseable output, are emitted synchronously on the same dispatch queue:
https://github.com/apple/swift-driver/blob/main/Sources/SwiftDriver/Driver/Driver.swift#L413
https://github.com/apple/swift-driver/blob/main/Sources/SwiftDriver/Driver/ToolExecutionDelegate.swift#L169
I agree with the options we have, we could come up with a JSON format that will be a part of parseable-output for driver diagnostics only, or actually just change current parseable-output to go to stdout.

Thanks Artem.  There are certainly multiple things going on here.  The missing newline looks like a simple problem in SwiftPM's handling of unparseable JSON, so that can easily be fixed and I'm preparing a fix now.
But I do think that the SwiftDriver should probably emit its own diagnostics in JSON (and this is actually related, probably, to how SwiftDriver's diagnostics don't show up in the .dia file either, when that option is passed — I know the underlying implementation reasons for that, but from the outside it's still unfortunate).

As for stdout vs stderr, perhaps a new option is warranted — although I think it's probably better to emit them as JSON so that the order is preserved among the messages.

Also, I didn't figure out why the original problem had that unfortunate truncation, but figured we can deal with that separately from the newline.  Perhaps there's some kind of undercounting in UTF-8 to String conversion going on — I haven't looked closer at what the output parsing in SwiftPM is actually doing, but messing up byte counts and character counts is a classic kind of bug.

@artemcm For https://github.com/apple/swift-package-manager/pull/5987, is there a good way to reliably generate a remark from the Swift Driver that I can use in my unit test in that PR?  I tried with the incremental one and the whole module optimization, but it seems that in the self-hosted test I get the remark but in the smoke test I don't.  Is that an unreliable remark to rely on?

This remark is reliable but I believe smoke tests actually do not utilize the new swift-driver, relying on the legacy driver instead.
@neonichu investigated this in https://github.com/apple/swift-package-manager/pull/5885.

Ah!  Thank you for clarifying!  Maybe the best is to make the test conditional so that if the message is there then we make sure it's newline-terminated.  If there's a better one that we can use, I could switch to that, but if the driver isn't even involved in the smoke tests, then there doesn't seem much we can do.  And also seems like a problem that would go away over time, when swift-driver is used unconditionally.


onOpened not fired on production

Description:
I noticed that the onOpened is not fired on production. I tried it on debug and it works like a charm.
Environment
I use react-native-onesignal: 3.2.8
Installed it via: npm install --save react-native-onesignal
Steps to Reproduce Issue:

Installing onesignal for react-native (as described above)
Setting up the SDK as mentioned in the docs of OneSignal.
Sending a push notification.
Clicking on the push notification opens up the app and after 100 ms, it opens another screen to show the push notification text.

This works well on debug, but on production, it doesn't open the other screen.
Here is part of the code of what I use:
In the App.js
onOpened(openResult) {
        console.log('Message: ', openResult.notification.payload.body);
        console.log('Data: ', openResult.notification.payload.additionalData);
        console.log('isActive: ', openResult.notification.isAppInFocus);
        console.log('openResult: ', openResult);
        if (openResult.notification.payload.body !== '') {
            const pushTitle = openResult.notification.payload.title;
            const pushBody = openResult.notification.payload.body;
            AsyncStorage.multiSet([['pushtitle', pushTitle], ['pushbody', pushBody]]);
        }
    };

In my home.component.js
AsyncStorage.multiGet(["pushtitle", "pushbody"]).then(responses => {
            responses.map((result, i, response) => {
                if (response[1][1] !== '' && response[1][1] !== null) {
                    setTimeout(() => {
                        navigation.navigate('PushDetails', {
                            title: response[0][1],
                            body: response[1][1]
                        });
                    }, 100)
                }
            })
        })

Edit:
Small addition, the app is closed when receiving the push notification.

Ok, another update:
I have moved the addEventListener for opened, outside the class
OneSignal.addEventListener('opened', (openResult) => {
    if (openResult.notification.payload.body !== '') {
        const pushTitle = openResult.notification.payload.title;
        const pushBody = openResult.notification.payload.body;
        AsyncStorage.multiSet([['pushtitle', pushTitle], ['pushbody', pushBody]]);
    }
});

Now the following thing happens:
When I receive a push notification, the app is closed, I click the notification and the app opens, but nothing (apart from the normal app shown) happens. When I close the app and reopen it, suddenly the other screen is shown with the push notification.
So the first time the app opens from the notification, not happens (apart from the normal app shown), but when I reopen the app, the screen is shown with notification text.
Any idea, or is this a bug?

@udarts Can you ensure that your code that calls OneSignal.addEventListener() is definitely getting called when your app launches?
I've seen some devs add the event listeners in really weird places, such as in the componentWillUnmount() function of some component that doesn't even get displayed under most circumstances. Please make sure your code that adds the event listener does get called every time.
It's also strange that you have an onOpened function, but you also are passing the addEventListener('opened'... function a callback? This means the callback will get called and not your onOpened() function

The code is added in the componentWillMount, and the addEventListener('opened'... this is the same as the documentation on oneSignal: https://documentation.onesignal.com/docs/react-native-sdk-setup#section-usage

@udarts Test out 3.2.11 and let me know if the issue still occurs for you. Also, try adding the event listener and initializing OneSignal in componentDidMount

@Nightsd01 will check as soon as I can.


Emhass Fails to install

Tring to install EMHASS through HAOS produces the following error message:

it should be solved, upgrade to add-on v0.5.2 when it is available.
Please close the issue if everything goes back to normal

Fixed