seed use case left-overs

Tasks

[ ] #876 (for now only comment out)
[x] offer undo for 5 sec before actually deleting a seed
[x] sorting should be the same as in the map: the one that expire soonest should be at the top, using harvest year if no expire date (Best by) given
[x] Menge/Qualität (e.g. enough and organic) not translated in Overview
[x] reload of page+greeting when deleting plant (wanted: simply remove element without reload)
[ ] larger notes fields (later: which also supports Markdown, see also #722)
[ ] Harvest Year needs two lines (should be on one line)
[x] hover text for the two actions, "archive seed" and "edit seed"
[ ] example for price 2.99€ should be just 2.99
[ ] example for yield should be good/hoch (lower-case)

Use case
No response
Related Pull request
No response

Seed ordering has been fixed in #882.

Seed ordering has been fixed in https://github.com/ElektraInitiative/PermaplanT/pull/882.

Is this fix only in the plants layer or is this also for the seeds overview?
I added two more left-overs in the top post:

larger notes fields which also supports Markdown, see also #722

For now, can you maybe simply make the field bigger so that the user can write multiple lines of normal text in the notes?
There is also a visual problem which might be easily fixable:

Harvest Year needs two lines

@badnames I added two more minor things:

[ ] example for price 2.99€ should be just 2.99
[ ] example for yield should be good/hoch (lower-case)

The little things here can all be fixed in #902, to get the release done tomorrow.

Might add a placeholder to

I find it a bit confusing that a seed has a plant name. Shouldnt we maybe call it seed name?

Also is that correct that the names are flipped from the search and the seed management page

Abelia triflora (indian abelia)
vs
Indian abelia - (Abelia triflora)
Additionally I realized you can enter empty whitespaces as additional name

I find it a bit confusing that a seed has a plant name. Shouldnt we maybe call it seed name? It doesnt really feel like creating a seed when it has a plant name.

Good point. Actually, it is currently simply called "Complete Name" and can be both for seeds and plants. Maybe we should also extend unique name, to be allowed for seeds (with additional name added). See also doc/database/hierarchy.md
@badnames what do you think about terminology?

Also is that correct that the names are flipped from the search and the seed management page

When/where did it got flipped?

Additionally I realized that you can enter empty whitespaces as additional name

Yes, we need to restrict additional names: it should have at least one letter or number and should not contain confusing chars like - or '.
I added this to #916

When/where did it got flipped?

The select box results on creation are not same as the names on the management page.

The examples are fixed by @4ydan, I ticked them in the top post.
A larger notes fields would be also very nice to have (even without Markdown as first step).

The paginated select results on creation are not same as the names on the management page.

Fixed in #933

Harvest Year needs two lines (should be on one line)

Fixed in #934

larger notes fields

Fixed in #935

UC done

#1001


nodes signals provider

Please make your website available over HTTPS and that all tests pass using yarn test.

Closing for failure to redirect HTTP to HTTPS. Please open a new PR once ready.


Form errors on /users/edit are unreable

I was trying to create an account and got some errors when submitting the form.  Unfortunately, the text of the error messages is white with a white background so the only way to read the error is to highlight the text.

The #101  changes the error box to look like the below screenshot:


Feature requests

I have two requests that I hope would be taken into consideration because they are, in my opinion, the only two things left for me before I declare I've found the perfect browsing app for my needs.
I always tend to turn images and JavaScript off when I'm on mobile data. However, when I'm using WiFi, I'd like these features turn on automatically. So, I wonder if it'll be possible to have one extra option for both of these settings. For example, the options for images/JavaScript could be, "Turn OFF, Turn ON, Turn ON (WiFi)".
It is currently possible to have JavaScript enabled/disabled for particular websites (under Pattern Match) and this overrides the main settings. I wonder if it'll be possible to include images as one of the options under Pattern Match.
I hope you can take into consideration these suggestions.
Thanks.

i'll consider


Clear enterprise plugin service ref before saving adapter to cache

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.


Option to use README.md and not README.rst

By default, when converting from pypoetry.toml to setup.py, running dephell deps convert will convert README.md to README.rst, and include a reference to it in setup.py.
However it's an additional file with no real purpose for us. I can't find any option to turn off this behaviour. Am I missing something?

Thank you for your feedback. No, there is no flag for it yet. Let's fix it :)

Could you describe the background for it to help to make a better solution? Why aren't you just gitignoring README.rst as other build artifacts (dist/)? If it's because you want to use markdown with description-content-type, motivation there is many users have old setuptools without the support of it and they got broken long-description.

If it's because you want to use markdown with description-content-type

That's pretty much what we're hoping to achieve, yes. We're using the README.md from our GitHub repos as the long description for our PyPi packages.
Surely if someone has set
description-content-type="text/markdown"

in their pyproject.toml, the conversion should generate markdown? Then those that have compatibility issues could either use text/x-rst or leave it out?

Please, if you get implementing this feature, please, have a look at https://github.com/dephell/dephell/pull/392#issuecomment-600537707. TL;DR: it should be a separate flag since long_description_content_type is a relatively new feature in setuptools, and nobody bothers about upgrading it.
Common, don't make things complicated for your users, just add README.rst into .gitignore and that's all. DepHell has fallback on the case if README.rst wasn't committed.


Add capability to set an extra spec

Description
A way to add extra specs and pinning depending on variables (python matrix build, etc.) would be to pass extra specs to micromamba command: micromamba create -n <env-name> -f <spec-file> <extra-specs>

Why do we need this PR? You can simply install the extra spec yourself using micromamba in the activated env, right?

I wonder if we should add quoting or if we should accept a list of specs here and then quote each on individually

Because there is the issue with 'python>=3.8' being a bash redirection


Editor steals focus when markdown is updated

Setting the markdown of an MDXEditor seems to steal focus.
For example:
mdxEditor.current?.setMarkdown(props.someMarkdown);
This will result in mdxEditor taking focus, which is undesirable in an application, particularly mobile, since it causes the keyboard to appear.

Didn't I fix this here? https://github.com/mdx-editor/editor/issues/97. Can you help me with a reproduction?

Hey @urb4nc4rl - let me know once you give a reproduction.


Flutter doesn't work after 2.8.0 update

Describe the bug
Running flutter run fails with the following error:
Target debug_android_application failed: FileSystemException: Cannot copy file to
'/home/flexagoon/Documents/Code/flutter/fdc_meals_app/build/app/intermediates/flutter/debug/flutter_assets/fonts/MaterialIcons-Regular.otf', path =
'/home/flexagoon/bin/cache/artifacts/material_fonts/MaterialIcons-Regular.otf' (OS Error: No such file or directory, errno = 2)

The issue is here: https://github.com/NixOS/nixpkgs/blob/f6da7b400708640ae1dae471b872f81164fe4e07/pkgs/development/compilers/flutter/patches/move-cache.patch#L23
Before the 2.8.0 update, this line used to say
https://github.com/NixOS/nixpkgs/blob/d05d2113bbd392c4b904f5942e0028bfd2276679/pkgs/development/compilers/flutter/patches/move-cache.patch#L26
So, flutter copied the cache to ~/.cache/flutter, which was fine. Now, however, it tries to copy the cache to ~/bin/cache, which doesn't exist, so flutter throws an error.
Steps To Reproduce
Steps to reproduce the behavior:

Go do any flutter project
Run `flutter run

Expected behavior
Flutter builds the app and runs it on the device
Notify maintainers
@ericdallo @babariviere
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
I cannot run it because I use flakes, so it just says file 'nixpkgs' was not found in the Nix search path.

My bad, it should be fixed by https://github.com/NixOS/nixpkgs/pull/152094

Thanks!

@ericdallo thanks!


{PrivateDns} Track 2 Migration

Description

Changes made for track 2 migration:
Model:
RecordSetPaged --> RecordSetListResult
Methods:
delete ---> begin_delete
update ---> begin_update
create_or_update ---> begin_create_or_update
Exception:
CloudError ---> HttpResponseError and ResourceNotFoundError
Removed unnecessary subitems for:
operations_tmpl='azure.mgmt.privatedns.operations#PrivateZonesOperations.{}
operations_tmpl='azure.mgmt.privatedns.operations#VirtualNetworkLinksOperations.{}
operations_tmpl='azure.mgmt.privatedns.operations#RecordSetsOperations.{}
Updated privatedns package to https://pypi.org/project/azure-mgmt-privatedns/1.0.0/
Testing Guide

History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

PrivateDns

@rajitaaa, please resolve the conflict.


Cleanup

✅ Checklist

[x] Github issue details are up to date for people to QA.
[x] I have tested all my changes.

🕵♂ Notes for Code Reviewer
Just some cleanup of the recent code added, no major logic changes,
Removed the empty state of the model and made it null. Its either there or not.
👯♀ Paired with
Solo

Looks good just some comments & questions


Make ZeroMemory portable to Linux

This is not used in perf critical paths, so the simplest implementation was used.

Codecov Report

Merging #379 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #379      +/-   ##
==========================================
+ Coverage   17.36%   17.36%   +<.01%
==========================================
  Files         211      211
  Lines      122416   122422       +6
  Branches    11769    11770       +1
==========================================
+ Hits        21258    21264       +6
  Misses     100311   100311
  Partials      847      847

Flag
Coverage Δ

#2017
17.36% <100%> (ø)
:arrow_up:

#Debug
17.36% <100%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

src/TraceEvent/TraceEventNativeMethods.cs
34.54% <100%> (+8.01%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f23408e...f062b99. Read the comment docs.


Changelog

Where can I find the changelog for this plugin?

The only changelog available is this: https://github.com/lg2de/sonar-scm-tfvc/releases
I recently took responsibility for this repository. I don't have enough time and energy to clear up the past.


Unregister any lingering Service Workers

Unregister any lingering Service Workers based on https://github.com/nystudio107/devmode/blob/develop/cms/templates/_boilerplate/_partials/register-service-worker.twig

Thanks!


Add support for liquid template engine

Please could you add support for  HTML (Liquid)
"Atom Beautify could not determine a supported beautifier to handle this file with grammar "HTML (Liquid)" and extension "liquid". If you would like to request support for this file and its language, please create an issue for Atom Beautify at https://github.com/Glavin001/atom-beautify/issues"
I can sort of fudge it by setting the file type to HTML (Twig) (liquid and twig have similar syntax)

First, test you code in Pretty Diff at http://prettydiff.com/?m=beautify and see if it breaks your code.  Twig uses Pretty Diff at the beautifier.
If all is well then I would create a pull request with a liquid.coffee file modeled after the Twig file at https://github.com/Glavin001/atom-beautify/blob/master/src/languages/twig.coffee
Once that pull request is merged in all should be well.

This comment might also be helpful: https://github.com/Glavin001/atom-beautify/issues/261#issuecomment-268017339

Yep - it works in prettydiff - indeed, it presumed the liquid was .twig 👍

Jekyll also uses Liquid FWIW

Closing as duplicate of https://github.com/Glavin001/atom-beautify/issues/393 and reopening https://github.com/Glavin001/atom-beautify/issues/393


Add section on front page listing fuzzers we've created

The front page has a section for custom static analysis work we've done: "Trail of Bits custom queries for static analysis tools". We should include a similar section for fuzzing to list the fuzzing tools ToB has created.

Added here: https://github.com/trailofbits/testing-handbook/pull/27


tighten_depends metis dependency in all packages that depends on metis

As of 2023/08/29, two version of metis have been packaged on conda-forge:

5.1.0
5.1.1

Both version contain a run_exports: {{ pin_subpackage('metis', max_pin='x.x') }}. However, it emerged that there is an ABI breakage between 5.1.0 and 5.1.1 (see https://github.com/KarypisLab/METIS/issues/71#issuecomment-1696082046), so we need to:

Update run_exports of metis to be max_pin='x.x.x' (see https://github.com/conda-forge/metis-feedstock/pull/38 and https://github.com/conda-forge/metis-feedstock/pull/39)
Update old builds to only be compatible with the patch version they have been built with (this PR)

The PR is currently in draft, as I will update it once https://github.com/conda-forge/metis-feedstock/pull/38 is merged.
Checklist

[x] Used a static YAML file for the patch if possible (instructions).
[x] Only wrote code directly into generate_patch_json.py if absolutely necessary.
[ ] Ran python show_diff.py and posted the output as part of the PR.
[ ] Modifications won't affect packages built in the future.

<!-- Put any other comments or information here --!>

Please add a comment on what the patch is fixing.

Done, thanks.

Once you are ready to merge this, make it not a draft a pr and we can go ahead!

Once you are ready to merge this, make it not a draft a pr and we can go ahead!

Sure, I am waiting on https://github.com/conda-forge/metis-feedstock/pull/39 and then I will update the timestamp.

show_diff.py  : https://gist.github.com/traversaro/d90db5c42647458d2fbb174ae150f8b1
(in a gist as it is too big for a comment)

The PR is ready for review.


Using 'select' on a dataframe created from 'sql' throws an error

When creating a dataframe from spark.sql and then using select throws an error. Expected to be able to select the column from the data.

mostly fixed in #3


CDN for lahmatiy/es6-promise-polyfill

Not issue actually, just to keep note and relation to:
https://github.com/jsdelivr/jsdelivr/pull/11148
https://github.com/jsdelivr/jsdelivr/pull/11149

Done: http://www.jsdelivr.com/projects/es6-promise-polyfill


When the page rotates into full screen,  only click on the middle area, and click on other areas have no effect

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

open the full screen page
click on the top and bottom area of page ,have no effect

Expected results
All areas of the entire page are clickable
Actual results
only click on the middle area
Code sample
Code sample
import 'dart:math';
import 'package:flutter/material.dart';

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

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Container(
            color: Colors.black,
            height: MediaQuery.of(context).padding.top,
          ),
          Flexible(
              child: AspectRatio(
            aspectRatio: 1.8,
            child: Container(
              color: Colors.black,
            ),
          )),
          Expanded(
              child: Column(
            children: [
              TextButton(
                  onPressed: () {
                    Navigator.of(context).push(_createRoute());
                  },
                  child: const Text("enterFullScreen")),
            ],
          ))
        ],
      ),
    );
  }
}

Route _createRoute() {
  return PageRouteBuilder(
    opaque: false,
    fullscreenDialog: true,
    settings: const RouteSettings(),
    pageBuilder: (context, animation, secondaryAnimation) => const FullScreenPage(),
  );
}

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

  @override
  State<FullScreenPage> createState() => _FullScreenPageState();
}

class _FullScreenPageState extends State<FullScreenPage>
    with SingleTickerProviderStateMixin<FullScreenPage> {
  late AnimationController controller;

  late Animation<double> angle;
  late Animation<double> sw;
  late Animation<double> sh;

  late Animation<double> mh;

  late Animation<double> pt;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) => _listener());
    controller = AnimationController(
        vsync: this, duration: const Duration(milliseconds: 300))
      ..addListener(() {
        setState(() {});
      });
    angle = Tween<double>(begin: 0.0, end: pi / 2)
        .animate(CurvedAnimation(parent: controller, curve: Curves.easeInOut));
  }

  _listener() {
    controller.forward();
  }

  Future<bool> _onWillPop() async {
    await controller.reverse();
    return Future.value(true);
  }

  void _exitFullScreen(BuildContext context) async {
    await controller.reverse();
    if (context.mounted) {
      Navigator.of(context).pop();
    }
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.sizeOf(context);
    double h = size.width / 1.8;
    EdgeInsets padding = MediaQuery.of(context).padding;
    sw = Tween<double>(begin: size.width, end: size.height)
        .animate(CurvedAnimation(parent: controller, curve: Curves.easeInOut));
    sh = Tween<double>(begin: h, end: size.width)
        .animate(CurvedAnimation(parent: controller, curve: Curves.easeInOut));
    mh = Tween<double>(begin: size.height, end: size.width)
        .animate(CurvedAnimation(parent: controller, curve: Curves.easeInOut));
    pt = Tween<double>(begin: padding.top, end: 0)
        .animate(CurvedAnimation(parent: controller, curve: Curves.easeInOut));
    return WillPopScope(
        onWillPop: _onWillPop,
        child: Scaffold(
          backgroundColor: Colors.transparent,
          extendBody: true,
          body: Transform.rotate(
            angle: angle.value,
            child: OverflowBox(
                maxWidth: sw.value,
                maxHeight: mh.value,
                child: Stack(
                  children: [
                    Positioned.fromRect(
                        rect: Rect.fromLTWH(0, pt.value, sw.value, sh.value),
                        child: GestureDetector(
                          behavior: HitTestBehavior.opaque,
                          onTap: () => _exitFullScreen(context),
                          child: Container(
                            color: Colors.deepPurple,
                            child: const Center(
                              child: Text(
                                "exitFullScreen",
                                style: TextStyle(
                                    fontSize: 20, color: Colors.white),
                              ),
                            ),
                          ),
                        )),
                  ],
                )),
          ),
        ));
  }
}

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel beta, 3.14.0-0.2.pre, on macOS 13.5.2 22G91 darwin-arm64, locale zh-Hans-CN)
    • Flutter version 3.14.0-0.2.pre on channel beta at /usr/local/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 123453dc41 (12 days ago), 2023-08-31 13:50:44 -0700
    • Engine revision b93c76ab94
    • Dart version 3.2.0 (build 3.2.0-42.2.beta)
    • DevTools version 2.26.1
    • Pub download mirror https://mirrors.tuna.tsinghua.edu.cn/dart-pub
    • Flutter download mirror https://mirrors.tuna.tsinghua.edu.cn/flutter

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

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

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

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

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

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

Hi @An-uking. Thanks for filing this. I am able to reproduce this on the latest master and stable channels.
stable, master flutter doctor -v

[✓] Flutter (Channel stable, 3.13.3, on macOS 13.0 22A380 darwin-arm64, locale en-NG)
    • Flutter version 3.13.3 on channel stable at /Users/damilolaalimi/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (7 days ago), 2023-09-06 14:32:31 -0700
    • Engine revision b8d35810e9
    • Dart version 3.1.1
    • DevTools version 2.25.0

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

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

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

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

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

[✓] Connected device (3 available)
    • iPhone 13 Pro (mobile) • 14B6FEE4-2F1C-401F-8804-A5115D7A6DA2 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   •
      macOS 13.0 22A380 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript •
      Google Chrome 116.0.5845.187

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

• No issues found!

[✓] Flutter (Channel master, 3.14.0-14.0.pre.266, on macOS 13.0 22A380 darwin-arm64, locale en-NG)
    • Flutter version 3.14.0-14.0.pre.266 on channel master at /Users/damilolaalimi/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d3bc797758 (2 hours ago), 2023-09-13 03:13:39 -0400
    • Engine revision 8611cb0ce3
    • Dart version 3.2.0 (build 3.2.0-140.0.dev)
    • DevTools version 2.27.0

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

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

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

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

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

[✓] Connected device (3 available)
    • iPhone 13 Pro (mobile) • 14B6FEE4-2F1C-401F-8804-A5115D7A6DA2 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 116.0.5845.187

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

• No issues found!

Transform.rotate has an alignment property that actually constrains the size of the child for rotation and alignment.  It will be pretty difficult and expensive to rotate a child without knowing the size of the child aka layout bounds and maintaining its aspect ratio.
If you remove OverflowBox, you can see why other areas have no effect. The container with a gesture detector has the original size and aspect ratio.
Transform.rotate calculates the size of the child, and rotates and aligns its child. The default alignment is Alignment.center so you get a purple container in the center.
This is similar to how Align or Center widgets constrain the child for alignment.
Here is a simplified and cleaned-up example. I added two buttons that show the difficult results.
https://github.com/flutter/flutter/assets/48603081/0aad6cce-d445-4af4-9eeb-52f01a2909d8
Code sample

expand to view the code sample
import 'dart:math';
import 'package:flutter/material.dart';

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

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

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

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            TextButton(
              onPressed: () {
                Navigator.of(context)
                    .push(PageRouteBuilder(pageBuilder: (_, __, ___) {
                  return const RotatedPage();
                }));
              },
              child: const Text("Enter rotated page"),
            ),
            TextButton(
              onPressed: () {
                Navigator.of(context)
                    .push(PageRouteBuilder(pageBuilder: (_, __, ___) {
                  return const RotatedPage(rotate: false);
                }));
              },
              child: const Text("Enter normal page"),
            ),
          ],
        ),
      ),
    );
  }
}

class RotatedPage extends StatefulWidget {
  const RotatedPage({super.key, this.rotate = true});

  final bool rotate;

  @override
  State<RotatedPage> createState() => _RotatedPageState();
}

class _RotatedPageState extends State<RotatedPage>
    with SingleTickerProviderStateMixin<RotatedPage> {
  late AnimationController controller;

  late Animation<double> angle;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) => _listener());
    controller = AnimationController(
      vsync: this,
      duration: const Duration(milliseconds: 300),
    )..addListener(() {
        setState(() {});
      });
    angle = Tween<double>(begin: 0.0, end: pi / 2).animate(
      CurvedAnimation(parent: controller, curve: Curves.easeInOut),
    );
  }

  _listener() {
    controller.forward();
  }

  void _exitPage(BuildContext context) async {
    await controller.reverse();
    if (context.mounted) {
      Navigator.of(context).pop();
    }
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    Widget container = GestureDetector(
      onTap: () => _exitPage(context),
      child: ColoredBox(
        color: Colors.deepPurple,
        child: Center(
          child: Text(
            "Exit ${widget.rotate ? 'rotated' : 'normal'}  page",
            style: const TextStyle(
              fontSize: 20,
              color: Colors.white,
            ),
          ),
        ),
      ),
    );

    if (widget.rotate) {
      container = Transform.rotate(
        angle: angle.value,
        child: container,
      );
    }

    return Scaffold(
      body: container,
    );
  }
}

I also tried  RotationTransition for this use case as this will be a better solution than using Transform.rotate for route transitions. However, it also produces similar results. You can see the page maintains the original size and aspect ratio if you don't rotate it fully.

If you rotate fully, it will take proper space on the screen and you will have no blank areas.
See also:
https://docs.flutter.dev/cookbook/animation/page-route-animation
https://medium.com/flutter-community/everything-you-need-to-know-about-flutter-page-route-transition-9ef5c1b32823
https://api.flutter.dev/flutter/widgets/RotationTransition-class.html
I believe this is working as intended. You might be able to get a solution to your specifications on StackOverflow.


Fix paths of target sources outside the workspace

This change addresses item #1504
This changes visible behavior
Target sources from outside the VS Code workspace folder are now represented with their correct paths.
Furthermore, if the user clicks on them, instead of an error message, the correct file opens 😃
Other Notes/Information
This is not thoroughly tested yet. But everything looks fine for with VS Code 1.55.2 on macOS and a very simple example project.

Interesting.  I actually stumbled on this old PR that was closed without review/merge and it appears to address the same issue.  https://github.com/microsoft/vscode-cmake-tools/pull/1635/files

Oh yeah, I see. As far as I see, it does exactly the same thing (although in a slightly different way) 👍
How would you like to proceed?

I just tested this with a more complex project. Turns out: My approach fails when the target's source root is not the same as the workspace root. (In context of the convertToExtCodeModelFileGroup function: targetObject.paths.source != "." still produces incorrect paths with my patch. On the other hand, #1635 handles it correctly.
So I propose closing this PR and instead applying the patches from #1635. Is that alright with you?

That user closed the PR and we didn't hear back, so if you could update your PR with the changes needed, we'll approve it and get it in.

Alright, I'm ready 👍 Could you allow CI execution?

@andreeis we forgot to mark the milestone on this one.  The code change is pretty small - this is mostly adding tests.  Should we take it in 1.7.2?

I think we can, of course, I am looking at it now.


Add powerdns 4.4 as supported version

Nothing special within the changelogs and the module is managing 4.4 with my 4.3 config

Sorry, my bad, I've chosen the wrong base branch

Sorry, my bad, I've chosen the wrong base branch


CKEditor file browser integration doesn’t work

If I enable the filebrowser in CKE and add the configuration like in your docs, cabinet opens, but if I select an image or other file, it just gets displayed (due to the same link on name and thumbnail) and doesn’t get forwarded to CKE.
I don’t really need this, but maybe there’s an easy fix?

I have the same problem.

I have tried it again just now, and it seems to work for me. Are you maybe using CKEditor 5? I'm only using CKEditor 4 (by way of https://github.com/django-ckeditor/django-ckeditor)
It also doesn't seem to matter if I click on the thumbnail or on the file name, both work fine.


Using OCI_BAM_INTERNAL for types using handles leads to a segault

Using OCI_BAM_INTERNAL for types using handles (OCI_Object, OCI_Lob,
OCI_File, OCI_Timestamp, OCI_Interval, OCI_Ref and OCI_Collection) is leading to segfault when executing the statement

fixed by commit 7728f85f


How to add gcc and add it to PATH?

Hi, I just want to build something under Windows using msys2's gcc. From the docs, I didn't find how can I install gcc and releated toolchains and add these binary to the PATH, and make them avaliable in the following steps?

  build-simulator-windows:
    runs-on: windows-latest
    steps:
      - uses: numworks/setup-msys2@v1
      - uses: actions/checkout@v1
      - run: msys2do pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-freetype mingw-w64-x86_64-pkg-config make
      - run: msys2do make

You can replace the last line with msys2do mingw-w64-x86_64-gcc whatever :)

@Ecco But this still does not solve add them to the PATH env, so the original makefile will not correctly build without modified like gcc using msys2do gcc. Is there any suitable way to add them to the PATH env?

It does. Just msys2do make  then!

Thanks, I will try, I'm curious about how it works.

@liudonghua123, see the alternative syntax supported in my fork: https://github.com/eine/setup-msys2#msystem. See also #21. Last, you can fork this project yourself and explicitly add msys64/usr/bin to the path: https://github.com/numworks/setup-msys2/blob/master/index.js#L35


fastertransformer speed slower than pytorch

I am runing on vit got unexpected result:
FP32 op time :  2464.206495285034 ms
FP32 torch time :  2419.6650743484497 ms

it's even slower than pytorch.....

It is a possible case because GEMM takes almost all time under FP32.
In such case, small noise of time of GEMM may affect the latency obviously. In your case, the relative difference of latency is about 2%, which may be a noise. For such cases, FT and pytorch should have similar latency.
We don't suggest using FP32 for transformer model because FP16 can bring lots of speedup without accuracy drop.

@byshiue I found I didn't search GEMM info which caused using default gemm. Does searching a best algo will boost time a little bit? Does this gemm info file can cross different PC with same GPU card model?

Sorry for delay reply. Searching best algo may improve the speed. It is case by case.
In general, the gemm info file can used in different devices with same GPU.


Disallow changes to managed preferences

Define enumerations for preferences that can be managed in an enterprise environment using MDM
Add methods in AppState to check for managed preferences
Update Advanced, Download, Experiments and Update preference pane to disable controls to modify any of the managed preferences

I have verified that changes behave as expected by installing a configuration profile generated using "iMaging Profile Editor" (https://imazing.com/profile-editor). I have attached the Manifest template to this comment
com.xcodesorg.xcodesapp.plist.zip
Please review these changes and provide any feedback and how these can be included into future releases.
Thanks

I have made a binary available here https://github.com/abiligiri/XcodesApp/releases/tag/<IP_ADDRESS> with the changes

Thanks @MattKiazyk for merging these changes.


use official version of neutron/temporary-filesystem

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Fixed tickets
-

Related issues/PRs
#470

License
MIT

What's in this PR?
use official version of neutron/temporary-filesystem in composer.json
Why?
the dependency problems have been resolved in version 2.3.0.

Thanks!


bug: Yields broken for properties

Description of the bug
griffe complains with No type or annotation for yielded value 1 when using Yields: together with properties.
Both removing @property or changing Yields: to Returns: works but results in different code or rendered docs.
To Reproduce
@property
def children(self) -> Iterator[EnumValue]:
    """
    Yields:
        Direct children of this node.
    """
    yield from self._values

where
_values: List[EnumValue]

Full traceback
Relevant info:
WARNING -  griffe: wake/ir/declarations/contract_definition.py:357: No type or annotation for yielded value 1
WARNING -  griffe: wake/ir/declarations/enum_definition.py:109: No type or annotation for yielded value 1
WARNING -  griffe: wake/ir/declarations/error_definition.py:94: No type or annotation for yielded value 1
...

Full log from mkdocs build -v:
log.txt
Expected behavior
griffe works with properties yielding values as expected.
Environment information

griffe --debug-info

- __System__: macOS-14.5-arm64-arm-64bit
- __Python__: cpython 3.12.2 (/Users/michal/.pyenv/versions/3.12.2/bin/python3.12)
- __Environment variables__:
- __Installed packages__:
  - `griffe` v0.47.0

Hi @michprev, thanks for the report.
It's actually the first time (I think) that I encounter a property that is also a generator :smile: Mind blown a bit!
I suppose the issues comes from the fact that when we parse a Yields section, we expect the parent to be a function and not an attribute. It should be easy to fix :slightly_smiling_face:


Add missing error type 'enum'

Change Summary
I just updated the documentation because the validation error (https://docs.pydantic.dev/latest/usage/validation_errors/) enum was missing there.
skip change file check
Related issue number
Fix https://github.com/pydantic/pydantic/issues/6439

Checklist

[x] Unit tests for the changes exist
[x] Documentation reflects the changes where applicable
[x] Pydantic tests pass with this pydantic-core (except for expected changes)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

Thanks @gamaleonardo
It needs some more work. I will open a new PR for this.


Did you use this toolkit for the Panda Paper?

Hi there,
Thanks for publishing the Panda Dataset and this toolkit! It's very much apreciated!
I have a few question regarding this Toolkit and your paper.

Did vou use the toolkit to calculate the results in the paper?
More precisely regarding Table 3, for the results on Panda-Image.  Do you use for AP an IoU of 0.5 or [0.5:0.95]?
I ask because in the Paper you write IoU = 0.5 however the eval script doesn't have it as default.

In the paper you write:

"Sub means subset of different target sizes, whereSmall, Middle, and Large indicate object size being<32×32,32×32−96×96,
and>96×96."

Which are the original Coco range. However in the DetEval Script your defaults are:
   parser.add_argument('--areaRng', type=list, help='[...] A = 4 object area ranges for evaluation',                     default=[0, 200, 400, 1e5])

Did you use NMS for merging the results?

In the merge script, it is activated.
In the demo script, it isn't.
There is no mention of it in the paper.

Thank you for your interest in our dataset!

In paper, we used AP with an IoU of 0.5 in Table 3.

About area ranges, we are sorry that we didn't make it clear in the paper. For our results in Table 3, for all scenes, firstly we reshape all images to 8000x4800, then we run detectors on frames and calculate COCO-like metric using area thresholds of 0, 32 ** 2, 96 ** 2, 1e5 ** 2. (The result of Table 3 in paper has nothing to do with the threshold in PANDA toolkit)

Yes, for our results in Table 3, we used NMS for merging the results.

Hi, thanks for your answers!
By "reshape to 8000x4800" do you mean crop oder resize?

Resize. Thanks!

I'm sorry I'm not sure I get it and would like to be sure, so I can compare our results correctly.
I feel I'm missing something.
In your paper Section 4.1 you write

Similarly, for evaluation, we resize the original image into multiple scales and use the sliding window approach to generate proper size blocks for the detector

So you resize to 8000x4800 and then extract crops/blocks. Which size are those blocks for the detectors input?
Or do you do the inference on 8000x4800? If so I'm confused. Which GPU Type do yo use for infer on such a size? And from which resolution would you extract these large blocks?
Also, do you plan to publish the annotations for the Image Test-Set or to offer an evaluation server?
Otherwise it will be difficult to benchmark approaches on your dataset.

Hello, I'm asking the co-author who was responsible for the detection baselines to verify the details of the experiment. We will verify and reply your questions as soon as possible.
About evaluation server, you can make a online submission on this platform:
Task 1: Object detection:
https://www.biendata.xyz/competition/gigavision/make-submission
Task 2: Multi-Object Tracking
https://www.biendata.xyz/competition/gigavision1/make-submission
And evaluation results will be list here:
Task 1: Object detection:
https://www.biendata.xyz/competition/gigavision/leaderboard
Task 2: Multi-Object Tracking
https://www.biendata.xyz/competition/gigavision1/leaderboard
About submission format and evaluation metrics, you can refer to:
http://www.panda-dataset.com/eccv-evals.html
Thanks!

@MickaelCormier Hello, here are some details of the detection baseline experiments:

For all video scenes, firstly we resized the source frame to (8000, 4800).
In order to solve the scale difference between the front and back scenes, we zoomed the bottom half of the image again to (5332, 1600). (Multiple scales processing we used).
Then we used a sliding window with the size of (1333, 800) with overlap (10%) as detectors input, after that NMS is used to merge results.
Finally, we projected results on the bottom half of the image return to (8000, 4800), and calculated COCO-like metric using area thresholds of 0, 32 ** 2, 96 ** 2, 1e5 ** 2.


Bug with props for styled components

This code has stopped working since 4.9.0
I use nextjs + typescript.
import React from 'react'
import { Button } from '@material-ui/core'
import { styled } from '@material-ui/core/styles'

const ContainedButton = styled(({ transparent, ...other }) => <Button {...other} />)({
  width: 150,
  height: 50,
  fontSize: 14,
  lineHeight: '17px',
  letterSpacing: '0.583333px',
  textTransform: 'uppercase',
  textAlign: 'center',
  borderRadius: 5,
  background: props => (props.transparent ? 'rgb(255, 250, 239, 0.12)' : '#FFFAEF'),
  boxShadow: 'none',
  '@media(min-width:1281px) and (max-width:1440px)': {
    width: 140,
    height: 48,
  },
  '&:not(:last-child)': {
    marginRight: 20,
    '@media(min-width:1025px) and (max-width:1440px)': {
      marginRight: 15,
    },
  },
  '&:hover': {
    background: props => (props.transparent ? 'rgb(255, 250, 239, 0.12)' : '#FFF7E5'),
  },
  '& .MuiButton-label': {
    fontSize: 16,
    lineHeight: '20px',
    letterSpacing: '0.369231px',
    color: '#FEC762',
  },
  '&.MuiButton-contained': {
    background: '#FEC762',
    boxShadow: '0px 6px 18px rgba(254, 199, 98, 0.4)',
    '& .MuiButton-label': {
      color: '#FFFFFF',
      fontSize: 16,
      lineHeight: '20px',
      letterSpacing: '0.369231px',
      textTransform: 'uppercase',
    },
    '&:hover': {
      background: '#FCBD48',
    },
  },
})
export default ContainedButton

https://github.com/mui-org/material-ui/blob/4a96d14dfbb0054775e914d5151ae28c0fbcc262/packages/material-ui-styles/src/styled/styled.d.ts#L15

Tech
Version

Material-UI
v4.9.1

@kodermax  Please provide a full reproduction test case. This would help a lot 👷 .
A live example would be perfect. This codesandbox.io template may be a good starting point. Thank you!

With #6115, I would propose we ignore the problem.

https://codesandbox.io/s/material-demo-xor6d
Do you have plans for migration to styled-components?

@kodermax You should add explicit types to your style callback. We can't support the any in styled(props: any) since this would slow down type checking.

I understand, but i think that the line has an error.
https://github.com/mui-org/material-ui/blob/4a96d14dfbb0054775e914d5151ae28c0fbcc262/packages/material-ui-styles/src/styled/styled.d.ts#L15
TS2339: Property 'transparent' does not exist on type '{}'.
There  should be like this Props extends {} = T

@kodermax You should add explicit types to your style callback. We can't support the any in styled(props: any) since this would slow down type checking.

What do you think about that error?


SignTool stop working in  23.0.12034.12580

Since this morning, our pipelines that build against the preview BC23 images have been receiving this error:
SignTool Error: This file format cannot be signed because it is not recognized.
The error began occurring after we started using artifact 23.0.12034.12580. When using the previous version (23.0.12034.12546), everything worked fine.

I can repro that - will investigate

The reason for this is that the NavSip.dll in the new version have these dependencies:
bcrypt.dll
CRYPT32.dll
KERNEL32.dll
VCRUNTIME140_1.dll
VCRUNTIME140.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
In the old version, it was:
bcrypt.dll
CRYPT32.dll
KERNEL32.dll
MSVCR120.dll
I guess some of these are not installed by default in the container, will check this out.

I would like to report the same problems on BC22.5 (sandbox artifacts for 22.5.59966.60701 were still okay but 22.5.59966.60734 is failing).

With the latest ContainerHelper preview - that should be fixed (it JIT installs the dependency)

Can confirm it is fixed.  Ran a couple of pipelines this afternoon using the "preview" version of bccontainerhelper and they completed successfully.

Will release to prod today or tomorrow

is this also causing prevalidation to flag app files to be unsigned when they are signed?
running Get-AuthenticodeSignature on host machine or container built with 22.5.59966.60728 or below returns status valid

I can also confirm this is fixed.
@freddydk Thank you for the fast assistance 👍

Install new dependencies needed for navsip.dll on the fly:
https://github.com/microsoft/navcontainerhelper/commit/64b064f57fe89eba2b30ef02efb06402656f9f55

is this also causing prevalidation to flag app files to be unsigned when they are signed?
running Get-AuthenticodeSignature on host machine or container built with 22.5.59966.60728 or below returns status valid

Yes - it is the navsip.dll that requires this prereq: https://aka.ms/vs/17/release/vc_redist.x64.exe

CI/CD working just fine again :-)

is this also causing prevalidation to flag app files to be unsigned when they are signed?
running Get-AuthenticodeSignature on host machine or container built with 22.5.59966.60728 or below returns status valid

Yes - it is the navsip.dll that requires this prereq: https://aka.ms/vs/17/release/vc_redist.x64.exe

Is this part still to be resolved? Prevalidation still failing due to this.

What do you mean by prevalidation?

sorry, Run-AlValidation

Got it - I guess one more fix is needed for this.

Got it - I guess one more fix is needed for this.
this is now works in preview build

Shipped in 6.0.5


chore: release 0.2.0

:robot: I have created a release *beep* *boop*
0.2.0 (2022-04-21)
Features

download resources during runtime (#63) (1de87fd)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ethersphere/bee-desktop/releases/tag/v0.2.0 :sunflower:


Test the cifar100 dataset with low natural accuracy and robust accuracy

Hi,
I use the training procedure to run the self-adaptive-training, however, during testing, the accuracy and robust_accuracy go down to about 0.2.
What I have done to pgd_attack.py is only change the load dataset of cifar-10 to cifar-100, the model is setting with 100-classes output.
I use the default run_sat.sh setting to train the adversarial defense model.
What is the root cause for the low accuracy, how to resolve it?
Thanks & Regards!
Momo

Hi,
Please note that the input range of main_adv.py and pgd_attack.py is [0, 1], which is different from main.py.
It seems that you used the scripts/cifar100/run_sat.sh for standard training to train the model and use pgd_attack.py to evaluate the model. Am I right? In such a case, I suggest you modify scripts/cifar10/run_trades_sat.sh for cifar100 and use main_adv.py  for adv training.

Hi,
Please note that the input range of main_adv.py and pgd_attack.py is [0, 1], which is different from main.py.
It seems that you used the scripts/cifar100/run_sat.sh for standard training to train the model and use pgd_attack.py to evaluate the model. Am I right? In such a case, I suggest you modify scripts/cifar10/run_trades_sat.sh for cifar100 and use main_adv.py  for adv training.

Hi,
I run a clean CIFAR100 with the self-adaptive-training. I use the default SelfAdaptiveTrainingCE Loss. However, as the epoch increased, the training loss dropped first and then rose, and the learning rate was set by default in the self-adaptive-training.
What is the root cause for this phenomenon, how to resolve it?

Hi,
I run a clean CIFAR100 with the self-adaptive-training. I use the default SelfAdaptiveTrainingCE Loss. However, as the epoch increased, the training loss dropped first and then rose, and the learning rate was set by default in the self-adaptive-training.
What is the root cause for this phenomenon, how to resolve it?

Hi @AiXia520,
The loss increases since the training targets are smoother at each epoch (by the EMA update). However, this phenomenon does not affect the performance of SAT. And you may calibrate it by sharpening the logits, e.g., temperature scaling on the logits.

Hi @AiXia520,
The loss increases since the training targets are smoother at each epoch (by the EMA update). However, this phenomenon does not affect the performance of SAT. And you may calibrate it by sharpening the logits, e.g., temperature scaling on the logits.


docs(migrate): replace => with ↦

Thanks @simon04, Could you please elaborate why?
It also looks like an arrow function for me :)

Sorry, sure: Use the power of Unicode for a nice typesetting of the arrows. I mean, => is no arrow, but equals sign followed by greater-than sign.


utilsd error

Hi,
I get the following error when running  !python -m physiopro.entry.train docs/configs/contiformer_mask_classification.yml --data.mask_ratio 0.3 --data.name Heartbeat :
Traceback (most recent call last):
File "/content/PhysioPro/utilsd/config/type_def.py", line 186, in load
t.validate(converted, ctx)
File "/content/PhysioPro/utilsd/config/type_def.py", line 135, in validate
typeguard.check_type(f'{converted} ({ctx.current_name})', converted, self.type)
TypeError: check_type() takes 2 positional arguments but 3 were given
Did a function in utilsd package change?
Thank you,
Richard

confused too, and now utilsd disappearred?Moreover, why i cannot downald the dataset. http://www.timeseriesclassification.com/aeon-toolkit/Archives/Multivariate2018_ts.zip is not accessible(403 forbidden). are there any other ways to downald the data or can you share with me?

Hi, thanks for asking and sorry for the late reply. check_type() take 2 positional arguments after python 3.10, while 3 arguments before python 3.10. One simple way to fix the issue is to create a new environment with python=3.8.

Hi,
I get the following error when running !python -m physiopro.entry.train docs/configs/contiformer_mask_classification.yml --data.mask_ratio 0.3 --data.name Heartbeat :
Traceback (most recent call last): File "/content/PhysioPro/utilsd/config/type_def.py", line 186, in load t.validate(converted, ctx) File "/content/PhysioPro/utilsd/config/type_def.py", line 135, in validate typeguard.check_type(f'{converted} ({ctx.current_name})', converted, self.type) TypeError: check_type() takes 2 positional arguments but 3 were given
Did a function in utilsd package change?
Thank you,
Richard

Hi, thanks for asking and sorry for the late reply. check_type() take 2 positional arguments after python 3.10, while 3 arguments before python 3.10. One simple way to fix the issue is to create a new environment with python=3.8.

confused too, and now utilsd disappearred?Moreover, why i cannot downald the dataset. http://www.timeseriesclassification.com/aeon-toolkit/Archives/Multivariate2018_ts.zip is not accessible(403 forbidden). are there any other ways to downald the data or can you share with me?

Thanks for your question. You can try to open VPN before downloading the dataset. utilsd can be simply downloaded with pip install utilsd==0.0.18.post0.


[VS Code] Joining workspace: Request was cancelled

<!--
For Visual Studio problems/feedback, please use the Report

@nikhilesh90 Did a join fail with an error about it being cancelled? Do you have any further information? Please attach your logs to this issue or email them to<EMAIL_ADDRESS>You can get your logs by running the "Live Share: Export Logs" command in VS Code.

Closing as dupe of #1329


Exporters should only inspect joinColumns for owning side in bi-directional OneToOne

After having run the YamlExporter in one of our projects there was a weird behavior when a bi-directional OneToOne association was defined.
I managed to replicate the behavior with adding an inversed bi-directional mapping to the test metadata:
Doctrine.Tests.ORM.Tools.Export.User.dcm.yml
#snip
  oneToOne:
    address:
      targetEntity: Doctrine\Tests\ORM\Tools\Export\Address
      joinColumn:
        name: address_id
        referencedColumnName: id
        onDelete: CASCADE
      cascade: [ persist ]
      inversedBy: user
      orphanRemoval: true
      fetch: EAGER
    cart:
      targetEntity: Doctrine\Tests\ORM\Tools\Export\Cart
      mappedBy: user
      cascade: [ remove ]
#snip

$ ./vendor/bin/phpunit -vv tests/Doctrine/Tests/ORM/Tools/Export/YamlClassMetadataExporterTest.php
PHPUnit 4.8.26-3-ga973e60 by Sebastian Bergmann and contributors.

Runtime:	PHP 5.6.22-1~dotdeb+7.1 with Xdebug 2.3.3
Configuration:	/vagrant/libs/doctrine2/phpunit.xml.dist

ESSSSSSSSSSSSSS

Time: 156 ms, Memory: 9.75MB

There was 1 error:

1) Doctrine\Tests\ORM\Tools\Export\YamlClassMetadataExporterTest::testExportDirectoryAndFilesAreCreated
Undefined index: joinColumns

/vagrant/libs/doctrine2/lib/Doctrine/ORM/Tools/Export/Driver/YamlExporter.php:166
/vagrant/libs/doctrine2/lib/Doctrine/ORM/Tools/Export/Driver/AbstractExporter.php:138
/vagrant/libs/doctrine2/tests/Doctrine/Tests/ORM/Tools/Export/AbstractClassMetadataExporterTest.php:121

So the problem is that the joinColumn array index is not set for the inversed side but will still be inspected. After applying the check for $associationMapping['isOwningSide'] === true ? $associationMapping['joinColumns'] : array(); the export works as expected.
Doctrine.Tests.ORM.Tools.Export.ExportedUser.dcm.yml
# snip
    oneToOne:
        address:
            targetEntity: Doctrine\Tests\ORM\Tools\Export\Address
            cascade:
                - remove
                - persist
            fetch: EAGER
            mappedBy: null
            inversedBy: user
            joinColumns:
                address_id:
                    referencedColumnName: id
                    onDelete: CASCADE
            orphanRemoval: true
        cart:
            targetEntity: Doctrine\Tests\ORM\Tools\Export\Cart
            cascade:
                - remove
            fetch: LAZY
            mappedBy: user
            inversedBy: null
            joinColumns: {  }
            orphanRemoval: false
# snip

EDIT
Same applies to the PhpExporter when duplicating the test case to the test metadata:
$ ./vendor/bin/phpunit -vv tests/Doctrine/Tests/ORM/Tools/Export
PHPUnit 4.8.26-3-ga973e60 by Sebastian Bergmann and contributors.

Runtime:	PHP 5.6.22-1~dotdeb+7.1 with Xdebug 2.3.3
Configuration:	/vagrant/libs/doctrine2/phpunit.xml.dist

......S.......SESSSSSSSSSSSSSS......................S........

Time: 410 ms, Memory: 13.00MB

There was 1 error:

1) Doctrine\Tests\ORM\Tools\Export\PhpClassMetadataExporterTest::testExportDirectoryAndFilesAreCreated
Undefined index: joinColumns

/vagrant/libs/doctrine2/lib/Doctrine/ORM/Tools/Export/Driver/PhpExporter.php:120
/vagrant/libs/doctrine2/lib/Doctrine/ORM/Tools/Export/Driver/AbstractExporter.php:138
/vagrant/libs/doctrine2/tests/Doctrine/Tests/ORM/Tools/Export/AbstractClassMetadataExporterTest.php:125

+1

+1

👍

@tPl0ch merged, thanks!
2.5: doctrine/doctrine2@0d93461e66142f295464dc0276ae1e47e8c474e8
master: doctrine/doctrine2@81fe6a82b3dff1aa4c4b2ca12b2abf4c5bd55c11

@Ocramius There are a few test failures that I cannot explain though: https://travis-ci.org/doctrine/doctrine2/builds/136120071

Yeah, they are unrelated to this change though. Will have to check them


Memcaches can be altered from retrieved instance

I got errormessages for pages I retrieved from cache and tried to serialize. As it turns out the pages where stored in the correct form in cache, but where able to be altered in cache after they where retrieved from said cache. This happens because the object retrieved from cache is not cloned, but the actual cached instance.
I'm not sure if this is intended behaviour, but I would not expect my cache to be able to be mutated except when explicitly asked to store an item, so this seems to be a bug to me.
Code to reproduce
$objOriginal = new \stdClass();
$objOriginal->changed = false;

// The ONLY set to cache with changed => false
\CacheLocal::set('test', 'key', $objOriginal);
$objOriginal->changed = true;

// The original has changed, but we request the version that was cached (which is unchanged)
$objFromCache = \CacheLocal::getEntry('test', 'key');
echo '$objFromCache (should be changed => false):';
var_dump($objFromCache);

// The copy is now changed, on another key for clarity reasons.
// This seems to alter the cache as well!
$objFromCache->changedAlso = true;

// The original is still changed but tdoes not have the sceond change; so this is correctly separated from cache
echo '$objOriginal (should be changed => true):';
var_dump($objOriginal);

// Requesting cache again reveals that the cache was changed
$objFromCacheToo = \CacheLocal::getEntry('test', 'key');
echo '$objFromCacheToo (should be changed => false and changedAlso => null):';
var_dump($objFromCacheToo);

Output form test:

$objFromCache (should be changed => false):
/var/www/packages/test/controller.php:13:
object(stdClass)[1426]
public 'changed' => boolean false
$objOriginal (should be changed => true):
/var/www/packages/test/controller.php:21:
object(stdClass)[1428]
public 'changed' => boolean true
$objFromCacheToo (should be changed => false and changedAlso => null):
/var/www/packages/test/controller.php:26:
object(stdClass)[1426]
public 'changed' => boolean false
public 'changedAlso' => boolean true

As you can see the cache must have changed because I write to the cache only once explicitly but at retrieval I get mutated objects. I found the location that is responsible for retrieving all cache, so a fix can be applied easily.
Retrieval from cache happens here:
https://github.com/concrete5/concrete5/blob/647e0a37c6663e7536108f48e997846bc4a27858/concrete/src/Cache/CacheLocal.php#L48
Possible fix (for objects only):
$return = $item->get();
if (is_object($return)) {
    return clone $return;
}
return $return;

@Ruud-Zuiderlicht I don't think we should fix this in CacheLocal as it's deprecated. I think we should fix this in the underlying (new) cache system.

@Remo, I was unaware the code is deprecated. However there are 40+ places that still uses CacheLocal, so then we would need to edit all those instances, instead of this small fix. For example:
https://github.com/Ruud-Zuiderlicht/concrete5/blob/develop/concrete/src/Page/Page.php#L114

I think it's been deprecated for a while: https://github.com/concrete5/concrete5/blob/647e0a37c6663e7536108f48e997846bc4a27858/concrete/src/Cache/CacheLocal.php#L7
CacheLocal uses the new cache system https://github.com/concrete5/concrete5/blob/647e0a37c6663e7536108f48e997846bc4a27858/concrete/src/Cache/CacheLocal.php#L43-L44
We only have to fix the new system and we'd fix the old CacheLocal too. If we just fix CacheLocal we'll still have the problem with every code using the new system directly. I'd would certainly be nice if the core itself wouldn't use that much deprecated code, but that's a different story.

The new system is from a 3rd party vendor (https://github.com/tedious/Stash). It does not clone objects in nor out. Do you suppose we raise the issue here first or write a wrapper?

Well, it's wrapped, we could change this method: https://github.com/concrete5/concrete5/blob/develop/concrete/src/Cache/Cache.php#L133-L143
But maybe it could be changed in Stash too, although I'm not really sure cloning is always wanted. While I see the drawback, it would also add a bit of overhead, wouldn't it?

It would be a bit of overhead, though cloning is used to store objects already anyway. Besides, clone is also is pretty fast (cloning a page, including controller obj, ran in 0.000021 sec. on a slow machine).

Still valid

Is this really an issue?  If you have special use cases can't you just clone the object yourself?


Score table merge update

There may be other changes required for this migration i'd imagine? I think I already got most of them in my previous PR though


right inlet of [select]

Is it going to be supported anytime soon?

No.
One day, maybe. But not "soon". A select is implemented implemented as a switch-case statement.


augmenting $route on ComponentCustomProperties

Reproduction
https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAbzgcwKYwMIFcpVQOxgEl8BnGAQ3wGNU4BfOAMyghDgHIA3LVDgKH5MsNGMAj44wUgDkIMAIL4AngAowrMAC445KMHzIAlInqC0mHHkIlyVWqqMBCAHQUwYDBJioAHjBdqCSZgZBdkABsIACMKCIAFTVRYYFRSFwASViwfF2EIhIoYAAt+AHoyuAABGFIAWj8wVGoYBtxoFHRsXAJiMkoaVEdXd09vPwCg-BCwyJi4xIgmlLTM7J9+aTlFFVULbus+u0Hhtw8vQgnA4NDwqNiEpJX0rIgc1CN+IA
Steps to reproduce the bug
See that getCurrentInstance()!.appContext.config.globalProperties.$route is typed as any.
Expected behavior
This type should be augmented.
Actual behavior
It is not.
Additional information
The reason this is occurring is that the type getCurrentInstance()!.appContext.config.globalProperties returns is based on the ComponentCustomProperties interface exposed from @vue/runtime-core, not the version exposed from vue. So augmenting vue's interface does not affect the type returned from getCurrentInstance.
This means that the documentation on https://vuejs.org/api/utility-types.html#componentcustomproperties is probably incorrect. (Or we need to modify the code in @vue/runtime-core to import an interface from vue.
resolves https://github.com/nuxt/nuxt/issues/28373

Closing for the moment as discussed with Daniel, the repro is missing importing from vue-router and that fixes it:
import { getCurrentInstance } from 'vue'
import {} from 'vue-router'

function isNotAny(prop: string) {}

getCurrentInstance()!.appContext.config.globalProperties.$route.fullPath
// @ts-expect-error getCurrentInstance()!.appContext.config.globalProperties.$route
isNotAny(getCurrentInstance()!.appContext.config.globalProperties.$route)```


New protocols

All is good, please just add a changelog entry for that :+1:

So we have the official wayland-protocols and the wlroots-protocols. Is there somewhere we can put qt/gtk/kde protocols that haven't been standardized yet or the xcursor-configuration protocol that is proposed for standardization in wayland-protocols?
In particular I'm interested in adding the xcursor-configuration protocol and the kwayland appmenu protocol.

Is there somewhere we can put qt/gtk/kde protocols that haven't been standardized yet

Are the KDE / Gnome protocols you speak of exposed somewhere publicly in a repo, like the wlr protocols? If so, we can integrate them the same way wlr protocols are integrated.
If not, I'd like to first be sure these protocols are indeed considered as public interfaces by their respective projects. If they are not, we would be subject to unexpected changes and incompatibilities between different versions of KDE / Gnome making them very painful to support.

or the xcursor-configuration protocol that is proposed for standardization in wayland-protocols?

Can't that simply wait for the protocol to be standardized? Tbh I didn't really follow its recent evolution.

Ok, we can wait on xcursor-configuration, and the appmenu protocol I can support in a different crate, requires some dbus too.

Alright, thanks!


Converter doesn't work properly with DOCX files

Hello!
I run Gotenberg 7.6.0 in k8s. I noticed that handling small DOCX files (~200-500KB) fails with status 503 and with following error message:
{"level":"error","ts":1663864359.1665294,"logger":"api","msg":"convert to PDF: unoconv PDF: context done: context deadline exceeded","trace":"16a6c3a6-61e9-4e42-bda6-94aa43d3f46f","remote_ip":"<IP_ADDRESS>","host":"localhost:3000","uri":"/forms/libreoffice/convert","method":"POST","path":"/forms/libreoffice/convert","referer":"","user_agent":"Apache-HttpClient/4.5.10 (Java/1.8.0_202)","status":503,"latency":600003005400,"latency_human":"10m0.0030054s","bytes_in":295267,"bytes_out":19}
I have also applied all suggestions from https://gotenberg.dev/docs/get-started/kubernetes. The combination of the following parameters doesn't help:

--uno-listener-start-timeout=60s
--uno-listener-restart-threshold=0

Finally, I created one single dummy Test.docx file and started gotenberg in docker on my local machine (CPU i9 + 16GB RAM) with the following command:
docker run --rm -p 3000:3000 gotenberg/gotenberg:7.6.0 gotenberg --api-disable-health-check-logging --uno-listener-restart-threshold=0 --api-timeout 1200s
With the "curl" I tried to convert my dummy file:
curl --noproxy '*' --request POST 'http://localhost:3000/forms/libreoffice/convert' --form<EMAIL_ADDRESS>-o Test.pdf
After 20 minutes, I didn't get my PDF file.
Why is it not able to convert the file, which is so small? Or maybe I'm doing something wrong?

Hello @ahmad2702,
LibreOffice does struggle to convert .docx file for reasons I don't know. It works relatively well for "small" size files, but it's another story when they become bigger.
Out of curiosity, could you try to convert your test file with the LibreOffice software directly?

@gulien, thank you for your comment.
I have tried to convert my test file using LibreOffice and... the same problem!
Can you give any tips on how to work around this problem?

@ahmad2702 alas, I do not have real workarounds. Still, you may try one of the following:

Downgrade to version 6 (which contains an earlier version of LibreOffice).
Convert your docx files to a odt.
Use the Chromium module, meaning converting your templates to HTML.
Switch to some paid services.

@senath999 please post your issue in https://github.com/yumauri/gotenberg-js-client.

Closing this as there is 0 known solution on my side.


Dependency finder raises SyntaxError when using sympy

The dependency finder seems to choke on (recent?) sympy versions, raising a !SyntaxError. I noticed that problem mainly because the Brian simulator imports sympy. I'm using sumatra 0.3.0 and sympy 0.7.2-git.
Sumatra seems to run fine after raising the error, however.
To reproduce:
{{{
$ hg init
$ smt init sympy_issue
$ echo "import sympy" > main.py
$ smt run -m main.py
}}}
The error trace shows:
{{{
File "/home/marcel/.local/lib/python2.7/site-packages/sympy/mpmath/libmp/exec_py3.py", line 1
exec_ = exec
^
SyntaxError: invalid syntax
}}}
Imported from Bitbucket issue 100,  created by apdavison on 09-20-2012 at 13:07, last modified: 05-15-2013 at 09:59

This seems to be a bug in mpmath (used by sympy) actually, not only affecting sumatra's dependency finder:
http://code.google.com/p/mpmath/issues/detail?id=204
Trac comment by anonymous on 10-01-2012 at 13:33

I don't get this error with sympy 0.6.7. Since Sumatra continues to run, I am going to push this back until the next release, in the hope mpmath makes a new release fixing the bug in the meantime.
Trac comment by apdavison on 10-15-2012 at 15:13

It seems as though commenting out the line exec_  = exec in mpmath/libmp/exec_py3.py should fix the problem. If this doesn't work, try commenting out from .exec_py3 import exec_ in mpmath/libmp/backend.py
Trac comment by apdavison on 03-11-2013 at 10:32

I think, this is a problem with the modulefinder Python module. It does not care about conditional imports like
if not python3:
from .exec_py2 import exec_
else:
from .exec_py3 import exec_
occuring in sympy. Modulefinder tries to compile both imported modules. One of these of course produces an syntax error which is not catched. I think, it should be catched and the module should be added to badmodules.
I opened an issue in the Python bug tracker containing a patch for modulefinder: http://bugs.python.org/issue17396
Trac comment by anonymous on 03-11-2013 at 12:12


Replace login flow with OAuth2.0 Authorization Code flow

Also did some refactoring, but didn't change other functionality.

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


missing diff & CurSearch highlights

Hello, seems like oxocarbon.nvim does not set up any highlighting groups for diffs. This results in ugly (default) highlights in various plugins like neogit and diffview.
Also, CurSearch highlight is used for highlighting search result under the cursor - at the moment such search result gets no highlight at all. It could be as simple as linking it to IncSearch.
Could you please add those as well?

Sure!

Added support for diff highlights, forgot about CurSearch. I'll add it


Project structure, API interface for CRUD, DatabaseTest unit test

Couchbase Lite Android/Java 2.x project structure
LiteCore as a submodule
Database and Document API interfaces (from spec, without implementatoin)
DatabaseTest unit test

I just noticed after merged that there is no .gitignore yet and .idea is also committed. Can you fix this?


Failed to install native modules with Node installed via Snap

I installed the node snap from channel 15/stable using the Ubuntu Software GUI. I have Python and the build-essential apt package installed, so I have a working setup for native modules in Node.js. Yet, the installation of native modules (for example, sharp and better-sqlite3) failed with no helpful error messages (not even in the log files); it just says that it failed to run the installation scripts.
I tried the deb packages and they worked, so it must have to do with the Snap.
What could be going on?

Maybe you could share your log messages and we can see? And also details on Linux distribution (plain Ubuntu?) and version would be informative.
There is a problem with snaps building addons in that the snap has its own toolchain and set of libraries, so when running node you're not using your standard system libraries, but those that are inside the snap isolation environment. This is just how snaps work and lets them be consistent across OSs and versions, but it leads to dynamic library issues if things don't line up quite right. Generally if you have a complex environment and want to do addons then you're probably better off not using the snap.

Maybe you could share your log messages and we can see? And also details on Linux distribution (plain Ubuntu?) and version would be informative.

Isn’t it annoying when people open an issue saying “it doesn’t work,” but don’t include the error message? :stuck_out_tongue:
I’m sorry about that. I didn’t include the error messages because I wasn’t in front of the Ubuntu machine when I opened the issue. Also, I don’t think the error messages are very helpful in this case.
Here’s what’s going on:
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.10
Release:	20.10
Codename:	groovy

$ uname -a
Linux leafac-ubuntu 5.8.0-44-generic #50-Ubuntu SMP Tue Feb 9 06:29:41 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

I have the build tools necessary to install native Node.js extensions (I installed the build-essential package with apt):
$ gcc --version
gcc (Homebrew GCC 5.5.0_7) 5.5.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ make --version
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ python3 --version
Python 3.8.6

I installed the Node.js snap with the Ubuntu Software application. I chose Source 15/stable.
If I try to install a package that has no native part, it works fine:
$ node --version
v15.11.0

$ npm --version
7.6.0

$ npm i @leafac/html

added 2 packages, and audited 3 packages in 3s

found 0 vulnerabilities

This proves that the installation succeeded. But then, if I try to install sharp, which is a native module:
$ npm i sharp
npm ERR! code 1
npm ERR! path /tmp/node-snap/node_modules/sharp
npm ERR! command failed
npm ERR! command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

npm ERR!  Extracting by manifest.
330 silly tarball no local data for color-string@https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz. Extracting by manifest.
331 timing reifyNode:node_modules/chownr Completed in 281ms
332 timing reifyNode:node_modules/ansi-regex Completed in 281ms
333 timing reifyNode:node_modules/number-is-nan Completed in 281ms
334 timing reifyNode:node_modules/code-point-at Completed in 281ms
335 timing reifyNode:node_modules/is-fullwidth-code-point Completed in 282ms
336 timing reifyNode:node_modules/process-nextick-args Completed in 281ms
337 timing reifyNode:node_modules/strip-json-comments Completed in 281ms
338 timing reifyNode:node_modules/ini Completed in 280ms
339 timing reifyNode:node_modules/wrappy Completed in 280ms
340 timing reifyNode:node_modules/once Completed in 281ms
341 timing reifyNode:node_modules/end-of-stream Completed in 281ms
342 timing reifyNode:node_modules/which-pm-runs Completed in 281ms
343 timing reifyNode:node_modules/mkdirp-classic Completed in 281ms
344 timing reifyNode:node_modules/wide-align Completed in 281ms
345 timing reifyNode:node_modules/strip-ansi Completed in 281ms
346 timing reifyNode:node_modules/object-assign Completed in 281ms
347 timing reifyNode:node_modules/has-unicode Completed in 282ms
348 timing reifyNode:node_modules/string-width Completed in 282ms
349 timing reifyNode:node_modules/aproba Completed in 282ms
350 timing reifyNode:node_modules/simple-swizzle Completed in 282ms
351 timing reifyNode:node_modules/prebuild-install/node_modules/simple-get Completed in 281ms
352 timing reifyNode:node_modules/fs-constants Completed in 288ms
353 timing reifyNode:node_modules/ieee754 Completed in 289ms
354 timing reifyNode:node_modules/mimic-response Completed in 288ms
355 timing reifyNode:node_modules/decompress-response Completed in 289ms
356 timing reifyNode:node_modules/lru-cache Completed in 289ms
357 timing reifyNode:node_modules/inherits Completed in 288ms
358 timing reifyNode:node_modules/set-blocking Completed in 286ms
359 timing reifyNode:node_modules/console-control-strings Completed in 287ms
360 timing reifyNode:node_modules/simple-get Completed in 287ms
361 timing reifyNode:node_modules/tunnel-agent Completed in 287ms
362 timing reifyNode:node_modules/prebuild-install/node_modules/mimic-response Completed in 286ms
363 timing reifyNode:node_modules/prebuild-install/node_modules/decompress-response Completed in 287ms
364 timing reifyNode:node_modules/color Completed in 287ms
365 timing reifyNode:node_modules/base64-js Completed in 294ms
366 timing reifyNode:node_modules/yallist Completed in 294ms
367 timing reifyNode:node_modules/util-deprecate Completed in 293ms
368 timing reifyNode:node_modules/expand-template Completed in 291ms
369 timing reifyNode:node_modules/signal-exit Completed in 292ms
370 timing reifyNode:node_modules/simple-concat Completed in 298ms
371 timing reifyNode:node_modules/string_decoder Completed in 297ms
372 timing reifyNode:node_modules/safe-buffer Completed in 297ms
373 timing reifyNode:node_modules/deep-extend Completed in 296ms
374 timing reifyNode:node_modules/pump Completed in 296ms
375 timing reifyNode:node_modules/napi-build-utils Completed in 296ms
376 timing reifyNode:node_modules/color-name Completed in 295ms
377 timing reifyNode:node_modules/npmlog Completed in 295ms
378 timing reifyNode:node_modules/is-arrayish Completed in 301ms
379 timing reifyNode:node_modules/isarray Completed in 300ms
380 timing reifyNode:node_modules/core-util-is Completed in 303ms
381 timing reifyNode:node_modules/delegates Completed in 301ms
382 timing reifyNode:node_modules/color-convert Completed in 301ms
383 timing reifyNode:node_modules/noop-logger Completed in 305ms
384 timing reifyNode:node_modules/detect-libc Completed in 303ms
385 timing reifyNode:node_modules/tar-stream Completed in 310ms
386 timing reifyNode:node_modules/node-abi/node_modules/semver Completed in 308ms
387 timing reifyNode:node_modules/are-we-there-yet Completed in 307ms
388 timing reifyNode:node_modules/buffer Completed in 315ms
389 timing reifyNode:node_modules/github-from-package Completed in 319ms
390 timing reifyNode:node_modules/rc Completed in 324ms
391 timing reifyNode:node_modules/bl Completed in 328ms
392 timing reifyNode:node_modules/array-flatten Completed in 323ms
393 timing reifyNode:node_modules/prebuild-install Completed in 328ms
394 http fetch GET 200 https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz 274ms
395 timing reifyNode:node_modules/color-string Completed in 335ms
396 timing reifyNode:node_modules/minimist Completed in 338ms
397 timing reifyNode:node_modules/gauge Completed in 337ms
398 http fetch GET 200 https://registry.npmjs.org/node-abi/-/node-abi-2.21.0.tgz 293ms
399 timing reifyNode:node_modules/node-abi Completed in 349ms
400 timing reifyNode:node_modules/readable-stream Completed in 353ms
401 timing reifyNode:node_modules/bl/node_modules/readable-stream Completed in 360ms
402 timing reifyNode:node_modules/tar-stream/node_modules/readable-stream Completed in 359ms
403 timing reifyNode:node_modules/tar-fs Completed in 359ms
404 timing reifyNode:node_modules/semver Completed in 363ms
405 timing reifyNode:node_modules/sharp Completed in 366ms
406 timing reifyNode:node_modules/node-addon-api Completed in 376ms
407 timing reify:unpack Completed in 382ms
408 timing reify:unretire Completed in 0ms
409 timing build:queue Completed in 4ms
410 timing build:link:node_modules/detect-libc Completed in 4ms
411 timing build:link:node_modules/node-abi/node_modules/semver Completed in 3ms
412 timing build:link:node_modules/prebuild-install Completed in 3ms
413 timing build:link:node_modules/rc Completed in 3ms
414 timing build:link:node_modules/semver Completed in 3ms
415 timing build:link Completed in 4ms
416 info run<EMAIL_ADDRESS>install node_modules/sharp (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
417 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 952ms
418 timing auditReport:getReport Completed in 953ms
419 timing auditReport:init Completed in 0ms
420 timing reify:audit Completed in 955ms
421 info run<EMAIL_ADDRESS>install { code: 1, signal: null }
422 timing reify:rollback:createSparse Completed in 108ms
423 timing reify:rollback:retireShallow Completed in 0ms
424 timing command:install Completed in 5917ms
425 verbose stack Error: command failed
425 verbose stack     at ChildProcess.<anonymous> (/home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/index.js:64:27)
425 verbose stack     at ChildProcess.emit (node:events:378:20)
425 verbose stack     at maybeClose (node:internal/child_process:1067:16)
425 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
426 verbose pkgid<EMAIL_ADDRESS>427 verbose cwd /tmp/node-snap
428 verbose Linux 5.8.0-44-generic
429 verbose argv "/snap/node/3836/bin/node" "/home/linuxbrew/.linuxbrew/bin/npm" "i" "sharp"
430 verbose node v15.11.0
431 verbose npm  v7.6.0
432 error code 1
433 error path /tmp/node-snap/node_modules/sharp
434 error command failed
435 error command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
436 verbose exit 1

I also tried to install Node.js via apt (https://github.com/nodesource/distributions/blob/master/README.md) and via nvm. Both worked. So the issue seems to be the snap.

There is a problem with snaps building addons in that the snap has its own toolchain and set of libraries, so when running node you're not using your standard system libraries, but those that are inside the snap isolation environment. This is just how snaps work and lets them be consistent across OSs and versions, but it leads to dynamic library issues if things don't line up quite right. Generally if you have a complex environment and want to do addons then you're probably better off not using the snap.

What do you consider to be a “complex environment”? Do you think that native extensions like sharp are complex? It’s completely understandable if that’s the case. But I’m not doing anything fancy over here: I just have a fresh Ubuntu installation and the Node.js snap installed via Ubuntu Software.

I ran into this problem myself today and this is how I ended up solving it:

Built a simple Docker container based on ubuntu18 (the Node snap is based on core18)
Added in the version of Node I was using from the NodeSource distributions (could also just grab a binary tarball from nodejs.org)
npm i -g node-gyp
Installed make gcc g++
Tagged the image

Then using that image:

docker run -ti --rm -v $(pwd):/opt <image> bash
cd /opt/ (or sub-path you want to rebuild)
node-gyp rebuild
exit

Then you end up with a binary that's based on the 18.04 toolchain which is good enough for newer systems.
Previously I've resorted to a non-Snap version of node to work around problems like this, but it kind of needs a better answer than that .. this is slightly better.
A thought I had while doing this is that offering some images via Docker Hub for doing this a bit more automatically might be nice. Perhaps an image that you can just docker run -ti --rm -v $(pwd):/opt node-core18-addon-rebuilder and it'll do a node-gyp rebuild in your current directory and exit. A Dockerfile for that should be pretty simple.

It seems I'm running into the same issue trying to install Haraka.
root@hperrin-ideapad:~# npm install -g Haraka
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm WARN deprecated<EMAIL_ADDRESS>This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm ERR! code 1
npm ERR! path /usr/local/lib/node_modules/Haraka/node_modules/iconv
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-09-28T21_56_29_894Z-debug.log

What do you consider to be a “complex environment”? Do you think that native extensions like sharp are complex?

Actually, to be honest, just a native extension raises the level of complexity enough that this gets annoying really quickly. The Node.js executable is running in a very specific environment, with its own libc and other pieces local to the Snap. Then your addons are built using intelligence garnered from the broader system environment, not properly taking into consideration the constrained environment of the Snap. That's where mismatches happen - the addon gets built assuming that the libraries on the system are 👌 but then Node.js tries to load the addon into its own constrained environment and borks.
A proper fix here is likely going to involve some gnarly work with https://github.com/nodejs/gyp-next and https://github.com/nodejs/node-gyp or maybe an alternative toolchain that can properly take into account the environment when building addons. This is not a simple problem, but I'm sure it's being solved for other platforms/systems that have this dual environment issue where library loading is involved.
Unfortunately I don't know who is going to solve this. Maybe out best bet is to try and loop in folks from the Snap team to see if they have ideas based on experience with other similar setups.
So, very sorry, but I've had to resort to local installs instead of Snap installs whenever I run into problems like this because it gets so messy very quickly when you step outside of vanilla Node.js usage.

@rvagg Thanks for the information 👍