[version 3.24] ThemeData's hintColor not working in TextField, which was working in version 3.22.x

Steps to reproduce
ThemeData(
hintColor: Colors.red,
Expected results
TextField's hint text color is read, as in previous version
Actual results
TextField's hint text color seems white
Code sample
Code sample
[Paste your code here]

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.24.0, on Microsoft Windows [Version 10.0.22631.3880], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[√] Chrome - develop for the web
[X] Visual Studio - develop Windows apps
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components
[√] Android Studio (version 2024.1)
[√] IntelliJ IDEA Community Edition (version 2024.2)
[√] VS Code, 64-bit edition (version 1.91.1)
[√] Connected device (4 available)
[√] Network resources

I can reproduce this with sample code below:

Sample code
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyApp(),
      theme: ThemeData(
        hintColor: Colors.red,
      ),
    ),
  );
}

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: TextField(
          decoration: InputDecoration(
            hintText: 'Enter your name',
          ),
        ),
      ),
    );
  }
}

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.24.0, on macOS 14.6 23G80 darwin-x64, locale en-VN)
    • Flutter version 3.24.0 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 80c2e84975 (7 days ago), 2024-07-30 23:06:49 +0700
    • Engine revision b8800d88be
    • Dart version 3.5.0
    • DevTools version 2.37.2

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

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode15.4.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2023.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
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.6 23G80 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 127.0.6533.89

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

• No issues found!

[!] Flutter (Channel master, 3.24.0-1.0.pre.545, on macOS 14.6 23G80 darwin-x64, locale en-VN)
    • Flutter version 3.24.0-1.0.pre.545 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current
      Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding
      /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter
      SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to
      the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18186df4b7 (27 hours ago), 2024-08-10 19:57:30 -0400
    • Engine revision d409dcdc9b
    • Dart version 3.6.0 (build 3.6.0-134.0.dev)
    • DevTools version 2.38.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update
      checks and upgrades.

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

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode15.4.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio Koala.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.11+0-17.0.11b1207.24-11852314)

[✓] Android Studio (version 2023.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
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.6 23G80 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 127.0.6533.100

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

! Doctor found issues in 1 category.

Additional info

This is reproduced on the latest Flutter stable and master channel 3.24 but doesn't appear on the previous stable release 3.22.3

3.24.0
3.22.3

Adding hintStyle with color from Theme.of(context).hintColor to TextField's decoration can work around this. I'm not quite sure if this is intentional or a bug.

From Flutter 3.24.0 release notes, this could be introduced by https://github.com/flutter/flutter/pull/148408

ThemeData.hintColor may be deprecated in the future: https://github.com/flutter/flutter/pull/116346, https://github.com/flutter/flutter/issues/91772

Keeping this issue open for other's input.

@peterweb2005 Thanks for reporting this issue.
@huycozy Thank for the repro and the links you found.
This is related to the change in https://github.com/flutter/flutter/pull/150278.
Previously the M3 defaults were ignored (ThemeData.hintColor was meant for M2 and its default are compliant with M3 specification).
I will try to figure out a way to use ThemeData.hintColor only if it is provided. But this is not straightforward because, if it is not provided, the value is initialized directly in the ThemeData factory (see https://github.com/flutter/flutter/blob/9b8470197f4205d05d8507850b65e6d9f2fda105/packages/flutter/lib/src/material/theme_data.dart#L448).
For the moment, the solution is to is to replace ThemeData.hintColor usage with ThemeData.InputDecortationTheme.hintStyle
Updated code sample

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: const MyApp(),
      theme: ThemeData(
        // hintColor: Colors.red,
        inputDecorationTheme: const InputDecorationTheme(hintStyle: TextStyle(color: Colors.red)),
      ),
    ),
  );
}

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: TextField(
          decoration: InputDecoration(
            hintText: 'Enter your name',
          ),
        ),
      ),
    );
  }
}

@justinmc @guidezpl
Do you think we should revert https://github.com/flutter/flutter/pull/150278 while figuring out if we can provide a way to use ThemeData.hintColor only if provided or, maybe, decide if we want to proceed with the deprecation initiated in https://github.com/flutter/flutter/pull/116346.

Since ThemeData.InputDecortationTheme.hintStyle is available, and hintColor is on its way out (https://github.com/flutter/flutter/issues/91772), I would recommend going forward with https://github.com/flutter/flutter/pull/116346 (or similar) cc @QuncCccccc

@bleroux thanks, but
sorry, i dont understand
so, the color is
onSurfaceVariant
or
hintColor ??= isDark ? Colors.white60 : Colors.black.withOpacity(0.6);
?
and so better use onSurfaceVariant or InputDecorationTheme? and any side effect?
thanks

so, the color is onSurfaceVariant or hintColor ??= isDark ? Colors.white60 : Colors.black.withOpacity(0.6); ?

Currently (Flutter 3.24), the default hint color is:

onSurfaceVariant for Material 3
hintColor ??= isDark ? Colors.white60 : Colors.black.withOpacity(0.6); for Material 2

For Material 3, the default color can be overriden globally using inputDecorationTheme:
      theme: ThemeData(
        // hintColor: Colors.red, // Material 2 only.
        inputDecorationTheme: const InputDecorationTheme(hintStyle: TextStyle(color: Colors.red)),
      ),

@bleroux thanks
and now trying to figure out if ThemeData's hintColor should be working, and said to compliant with M3 specification


--time option supports human readable suffix

Better to have computers do the unit conversion than humans.

Can you update the CLI reference page too?

Done.


chore(Analysis): rename closedUnitBall and closed_unit_ball to unit_closedBall

Since closedBall is a function name, it should appear as an unbroken token in the lemma name
Zulip poll

I think this needs reworking per the zulip conclusions

... which I have already done. Sorry however I did forget to update the PR title


Refactor Name::primer

Refactor Name::primer, including moving it to separate file
Fix most Rubocop offenses in Name

They are incidental changes which I don't want to lose from now-closed #398.

Coverage increased (+0.01%) to 90.614% when pulling dda9389da82d01731048744137a6166896ad1063 on JoeCohen:name_primer into 82e7356a14a532c0ddbe6688ee38b90ddbc75104 on MushroomObserver:master.


Install in .net 4.6.2 project

Why when i'm installing in .net 4.6.2. project, install everything of .net standard library?

Yes, that's because Q42.HueApi targets .Net Standard. It's recommended to have a dependency on the NetStandard Metapackage.
Also see: https://stackoverflow.com/questions/43995354/reducing-dependencies-for-a-net-standard-class-library

Ok thanks, @michielpost ! Is possibile to generate nuget package target framework without .net standard framework dependency and leave only Json?

No, I don't think so?

Ok, thank you anyway

@michielpost This issue is somewhat old, but this appears to be possible. Simply change
    <TargetFramework>netstandard2.0</TargetFramework>

in each .csproj to:
    <TargetFrameworks>netstandard2.0;net45</TargetFramework>

This is documented at https://docs.microsoft.com/en-us/dotnet/standard/frameworks#how-to-specify-target-frameworks. I'll submit a PR soon.

#178


add updatebot for jx-release-version to update jenkins-x/jenkins-x-builders

jenkins-x/jenkins-x-builders updates with updatebot

This change is not anymore is scope after migrating to jenkins-x.yaml pipeline.


2.0.0: FEATURE REQUEST: Implement some image styles

Look on this example: http://webdesignerwall.com/demo/css3-image-styles-part-2/ . It would be nice to have stuff like this in Bootstrap.

Did you saw the demo page?
http://twitter.github.com/bootstrap/components.html#thumbnails
:)

ACAR27, this is not the same thing. I'm talking about applying special effects onto the image.

As the demo link is CSS3 based, it should easy to embed the code!

ACAR27, yes, it is easy to embed that CSS (and a piece of JS) into any page. I think, that talented guys, who made Bootstrap, would improve these image styles, and embed them into Bootstrap.

I think this is outside of Bootstrap's scope.


Q. How can we get plain text in response, currently I'm getting json parse error

The readme has some instructions for how to change how the output is coerced. See https://github.com/dakrone/clj-http#output-coercion.


added string represented date/timestamp

Any thoughts about my comments ?

Hello @vc42-2, do you think a solution like #321 would satisfy your use case?

Yess, it will, thanks.


Not installing properly

Hi!
I was trying to install markdown.sile to play around with it. For some reason whenever luarocks tries to install this, it's unable to actually clone the directory and install it for some reason. The other packages work perfectly fine.
fatal: unable to connect to github.com:
github.com[0: <IP_ADDRESS>]: errno=Operation timed out

Error: Failed installing dependency: https://luarocks.org/dev/smartquotes.sile-dev-1.rockspec - Failed cloning git repository.

Good catch @arunvickram
A few of my other luarocks modules for SILE also had this small mistake (but weren't dependencies of the same packages).
My bad for the mess with the PR, I was on the wrong branch. Doh. Well, it should be fine now.


bolt: fix build failure due to GOROOT

Similar to most of build failures caused by GOROOT, this fix resolves
the following errors when sstate becomes invalid:
| DEBUG: Executing shell function do_compile
| go: cannot find GOROOT directory:
wr-core/build-helios/tmp/sysroots/x86_64-linux/usr/lib/x86_64-wrs-linux/go
Signed-off-by: Lans Zhang<EMAIL_ADDRESS>

This looks fine, I'll put it through a test cycle and merge after it passes.


JetBrains Generated File For adding the Institution

dcc.txt
Institution/School Name
{ Dhaka City College }
Instiution/School Website
{ https://dcc.netpoint.com.bd }
{ https://dhakacitycollege.edu.bd }
Email Server
{ dcc.netpoint.com.bd }
CSE Section URL
{ https://www.dhakacitycollege.edu.bd/index.php?request=dept&dept=CSE }
{ https://cse.dhakacitycollege.edu.bd }
Email Users
Please place an x between the square brackets if yes
[x] Students
[x] Academic/Teaching Staff
[ ] Other/Support Staff
[ ] Alumni
Education Levels
Please place an x between the square brackets if yes
[  ] Post-graduate research
[x] Graduate School
[x] College (University) or Undergraduate School or equivalent
[  ] Community College or equivalent
[  ] High School or equivalent
[  ] Elementary School or equivalent
Recognition Document

@NOCNP Thank you for the detailed request!
Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

Sorry For the previous document. Both of them are in the same location that's why it's misplaced.
The document attached below:

@NOCNP Thank you very much! I am sorry, the document was not shown to me at the first time for some reason. Now I see both copies. Pull request merged.

Thank you so much for your co-operation. I'm very much pleased.


Generated colors don't really match wallpaper

An accent color is generated for every wallpaper, but often it does not really seem to match. With many wallpapers I get a kind of blue-green, even though the wallpaper doesn't really contain any green at all; something likes this with lighter and darker variations:

(The window outline is the accent color; the rest of the wallpaper looks the same as in the snippet.)
For some wallpaper the generated color looks matching though.
Is there perhaps some color information from previous wallpapers somehow getting mixed in with the new wallpaper, or the picture not processed entirely? A cache issue on my end?
Or is this intended in order to provide contrast?

The accent color algorithm that I use is not very optimized. For the sake of simplicity I didn't use any specialized library for this purpose. The accent color is really the average of all colors and if you image contains significant amount of black then the whole thing will shift towards black. Though this should not happen with every wallpaper, at least ,on my machine I get right accent almost 90j percent of time.


Improve composer.json

PHP and extensions should be defined before dependencies
Use semantic rules for packagist dependencies

Sounds good to me


feat: Added document entity

Create a document
fetch document informantion

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (753c07b) 89.95% compared to head (9c40363) 90.23%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #392      +/-   ##
==========================================
+ Coverage   89.95%   90.23%   +0.27%
==========================================
  Files          27       28       +1
  Lines         906      911       +5
==========================================
+ Hits          815      822       +7
+ Misses         91       89       -2

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


Does not work on latest iojs in windows.

If you compile the hello-world example using pangyp in iojs 1.5.x on Windows it will compile successfully.
However if you then do node test you'll get the following console output:
C:\git-projects\node\test\addons\hello-world (master)
λ node test.js
module.js:339
  Module._extensions[extension](this, filename);
                               ^
Error: Module did not self-register.
    at Error (native)
    at Module.load (module.js:339:32)
    at Function.Module._load (module.js:294:12)
    at Module.require (module.js:349:17)
    at require (module.js:368:17)
    at Object.<anonymous> (C:\git-projects\node\test\addons\hello-world\test.js:2:15)
    at Module._compile (module.js:444:26)
    at Object.Module._extensions..js (module.js:462:10)
    at Module.load (module.js:339:32)
    at Function.Module._load (module.js:294:12)

C:\git-projects\node\test\addons\hello-world (master)
λ

I just spent an hour banging my head against the same problem. It literally works if you use iojs test instead of node test
No I am not joking, and yes they are the same binary... I have no idea how this works.

That is a known issue with io.js, which is recently fixed. See https://github.com/iojs/io.js/issues/751.
I think we should port the patch https://github.com/iojs/io.js/pull/1251 and https://github.com/iojs/io.js/pull/1266 to pangyp.
Note, this optional linker hook is good enough for most of the repos, but it is not the ultimate fix: it would not work if your DLL export data  (virtual inheritance etc.).

This is fixed in v2.2.0.


nil input causes predicate errors

I apologise if this has been covered elsewhere but:
In adding additional specs following the PR by @jodosha I've found the following errors coming through from dry-logic:
  1) Predicates: Excludes with required with nil input is successful
     Failure/Error: hash[name] = rule.(input)

     NoMethodError:
       undefined method `include?' for nil:NilClass
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicates.rb:155:in `block in <module:Predicates>'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:13:in `apply'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:9:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/composite.rb:42:in `call'
     # ./lib/dry/validation/schema.rb:229:in `block in rule_results'
     # ./lib/dry/validation/schema.rb:228:in `each'
     # ./lib/dry/validation/schema.rb:228:in `each_with_object'
     # ./lib/dry/validation/schema.rb:228:in `rule_results'
     # ./lib/dry/validation/schema.rb:212:in `apply'
     # ./lib/dry/validation/schema.rb:188:in `call'
     # ./spec/support/predicates_integration.rb:5:in `result'
     # ./spec/integration/form/predicates/excludes_spec.rb:29:in `block (4 levels) in <top (required)>'

  2) Predicates: Excludes as macro with required with value with nil input is successful
     Failure/Error: hash[name] = rule.(input)

     NoMethodError:
       undefined method `include?' for nil:NilClass
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicates.rb:155:in `block in <module:Predicates>'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:13:in `apply'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:9:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/composite.rb:42:in `call'
     # ./lib/dry/validation/schema.rb:229:in `block in rule_results'
     # ./lib/dry/validation/schema.rb:228:in `each'
     # ./lib/dry/validation/schema.rb:228:in `each_with_object'
     # ./lib/dry/validation/schema.rb:228:in `rule_results'
     # ./lib/dry/validation/schema.rb:212:in `apply'
     # ./lib/dry/validation/schema.rb:188:in `call'
     # ./spec/support/predicates_integration.rb:5:in `result'
     # ./spec/integration/form/predicates/excludes_spec.rb:143:in `block (6 levels) in <top (required)>'

  3) Predicates: Excludes as macro with optional with value with nil input is successful
     Failure/Error: hash[name] = rule.(input)

     NoMethodError:
       undefined method `include?' for nil:NilClass
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicates.rb:155:in `block in <module:Predicates>'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:13:in `apply'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:9:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/composite.rb:26:in `call'
     # ./lib/dry/validation/schema.rb:229:in `block in rule_results'
     # ./lib/dry/validation/schema.rb:228:in `each'
     # ./lib/dry/validation/schema.rb:228:in `each_with_object'
     # ./lib/dry/validation/schema.rb:228:in `rule_results'
     # ./lib/dry/validation/schema.rb:212:in `apply'
     # ./lib/dry/validation/schema.rb:188:in `call'
     # ./spec/support/predicates_integration.rb:5:in `result'
     # ./spec/integration/form/predicates/excludes_spec.rb:313:in `block (6 levels) in <top (required)>'

  4) Predicates: Excludes with optional with nil input is successful
     Failure/Error: hash[name] = rule.(input)

     NoMethodError:
       undefined method `include?' for nil:NilClass
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicates.rb:155:in `block in <module:Predicates>'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/predicate.rb:22:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:13:in `apply'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/value.rb:9:in `call'
     # /Users/francesworley/.rvm/gems/ruby-2.2.4/bundler/gems/dry-logic-e649fad58546/lib/dry/logic/rule/composite.rb:26:in `call'
     # ./lib/dry/validation/schema.rb:229:in `block in rule_results'
     # ./lib/dry/validation/schema.rb:228:in `each'
     # ./lib/dry/validation/schema.rb:228:in `each_with_object'
     # ./lib/dry/validation/schema.rb:228:in `rule_results'
     # ./lib/dry/validation/schema.rb:212:in `apply'
     # ./lib/dry/validation/schema.rb:188:in `call'
     # ./spec/support/predicates_integration.rb:5:in `result'
     # ./spec/integration/form/predicates/excludes_spec.rb:85:in `block (4 levels) in <top (required)>'

Happy to move this to dry-logic if necessary but is there a better way of handling predicates on nil in dry-validation?

It only happens because my schema only validates the excludes so the nil gets sent straight there.
I appreciate that you probably wouldn't do this but I don't think the error is the best way of handling it.
It is also more widespread than just this predicate as any predicate which applies something to the input would run into the same problem.
Dry::Validation.Form do
   required(:foo) { excludes?('1') }
end

Moved to dry-logic see https://github.com/dry-rb/dry-logic/issues/10


unable to refresh BAM token

having an issue with ESPN+ only. seems to be unable to get token.
here is a pastebin with relevant logs. https://pastebin.com/JX3U1Aay

Are you using a VPN?

Are you using a VPN?

no, I am on the same network locally. were you able to view logs? can I provide any additional info? Appreciate this by the way.

Try deleting the tokens.json file in your config folder and restarting the container.

ill give it a shot... but I have tried that once or twice already. could dns have anything to do with it?

so here's an update. I got it to work locally, mostly now. But my use case is to use it on my cloud vps that has channels dvr server installed to watch when I am out and about (my isp has terrible upload speed). no matter what it won't play ESPN+ streams and for that matter when trying to use TVE on channels, it tries to authorized any Disney owned channels like abc, ESPN, etc and gives an error message that it thinks I am out of the country... is it possible my VPS provider is blacklisted?

Yeah there is a pretty good chance that they have blocked large swathes of VPS IP ranges

I'm going to close this since it appears that your VPS is being IP blocked by ESPN


Use VOC data sets for training? Or use our own data sets for training? Not the coco dataset.

Has anyone changed yolov4.weights to .tf or .ckpt type suitable for tensorflow training?
When I want to train with VOC datasets, I can't use yolov4.weights.
Similarly, I can't use yolov4.weights when I want to train my own data. Because none of them have 80 kinds of objects like coco datasets.
The author of this code base is already very good, is there anyone who can improve this code? Make it applicable to any dataset. Because I am a rookie, so I do not have the ability to modify it.
Thank you to the author and everyone.

You can convert your own train dataset formatted VOC by using the 'scripts/voc/voc_convert.py' script.


Recipe: replace object.equals with Objects.equals

Using object.equals can lead to NPE. For example :

String a = null;
String b = "";

boolean equal = a.equals(b); // NPE

Objects.equals does not have this problem :

String a = null;
String b = "";

boolean equal = Objects.equals(a,b); // false

See : https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html#equals-java.lang.Object-java.lang.Object-

    /**
     * Returns {@code true} if the arguments are equal to each other
     * and {@code false} otherwise.
     * Consequently, if both arguments are {@code null}, {@code true}
     * is returned and if exactly one argument is {@code null}, {@code
     * false} is returned.  Otherwise, equality is determined by using
     * the {@link Object#equals equals} method of the first
     * argument.
     *
     * @param a an object
     * @param b an object to be compared with {@code a} for equality
     * @return {@code true} if the arguments are equal to each other
     * and {@code false} otherwise
     * @see Object#equals(Object)
     */
    public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }

I think this recipe would lead to A LOT of changes that are not desired. You would end up with a ton of cases where the left side of the object is known to be non-null.

I think this recipe would lead to A LOT of changes that are not desired. You would end up with a ton of cases where the left side of the object is known to be non-null.

What do you mean?
The idea of this recipe would be to avoid NPE in all situations and avoid an unnecessary null check

The correct answer is somewhere in the middle... The most "do-no-harm" approach initially would be to check if there is a potential null on the left side and replace with Objects.equals. We should be able to do a reasonable job of this with dataflow analysis soon.

The correct answer is somewhere in the middle... The most "do-no-harm" approach initially would be to check if there is a potential null on the left side and replace with Objects.equals. We should be able to do a reasonable job of this with dataflow analysis soon.

Just for my own understanding, under what conditions would this cause harm?

@yeikel an example would be a returned value from a non-null API. In that case, the transformation would not be necessary.

@yeikel an example would be a returned value from a non-null API. In that case, the transformation would not be necessary.

Thank you
Considering what the method does, it won't hurt but I understand your reasoning

I understand, thank you for explaining. Clearly the stream example would need to be refactored to remove the filter altogether

As a side note, the stream example would need to be refactored to remove the filter altogether
In this case, find may be null, so filtering nonNull may be important so that null == null does not return a true.

As a side note, the stream example would need to be refactored to remove the filter altogether

In this case, find may be null, so filtering nonNull may be important so that null == null does not return true.

That's true. I overlooked it


DeployNuGetPackage retry logic

Handling when lost connection during Start-DxpProgress
If connection is lost. Have logic to retry example 3 times with 5-10 sec wait between each try.

Good feature but have no indication that this is a big problem or needed. Will close this one.


Documentation on how to compile AViewer

Can you put some documentation in the readme.md file on how to compile AViewer and a description of what each file does?
So if someone wanted to help or extend AViwer they would know where to start and how the code is organized.

@jun325 any pointers? even if it's only something rough (about how you compile it, any dependencies needed, etc) I can rewrite/organise/structure it a bit and add it to the wiki https://github.com/ThePacielloGroup/aviewer/wiki


MapView.Circle onPress props did not work

MapView.Circle onPress props did not work, I find in the source code, the MapView.Circle receive the prop onPress func, but it did not work, this bug has already been fixed or not?

Closing in favour of #1409


[deps] Added additional socialaccount dependencies for django-allauth

Without the extra packages, the user wouldn't be able to use social account providers out of the box.
Checklist

[x] I have read the OpenWISP Contributing Guidelines.
[x] I have manually tested the changes proposed in this pull request.
[ ] I have written new test cases for new code and/or updated existing tests for changes to existing code.
[ ] I have updated the documentation.

coverage: 97.787%. remained the same
when pulling 47111a8a211138d9c95058bc801773e9280ce1af on fix-django-allauth-dep
into d86caad5d9430c0a5b13a75314869d979f1a6de9 on master.


Add dummy data for test

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


configure SPF for gmail for<EMAIL_ADDRESS>

Reticketing from https://github.com/gratipay/inside.gratipay.com/issues/234:

The error that the other server returned was:
550 <IP_ADDRESS> is not allowed to send mail from gratipay.com. Please see http://www.openspf.net/Why?scope=mfrom;identity=support@gratipay.com;ip=<IP_ADDRESS>

https://support.google.com/a/answer/178723

DNS updated. Waiting for propagation before closing.

Let me know if this is a problem on my end (entirely possible).

DNS has propagated.
@kyledrake I just sent you another message. Can you let us know whether that comes through?

All set! :)
https://gratipay.freshdesk.com/helpdesk/tickets/2297

Thanks, @kyledrake. :)


Make the unsealJob conditional to the vault application's existence

This way, if there is no vault application we just don't define this job
at all.
The problem with this approach is that it is quite opinionated on the
name of the application. So it will break if you call your app something
else than 'vault'. I kind of prefer this approach to adding yet another
variable though

@mbaldessari I agree that this will break if the name of the application is not vault.  As we discussed maybe using the path might be a better choice.

we'll probable address this with the new secrets backends


regex_error in V1.0.1

I've been trying to use AnchorWave on a unix server. I installed V1.0.1 using cmake ./; make and it installs without issues, but whenever I call any of the functions within AnchorWave I get an error:
[grego@fossa AnchorWave-1.0.1]$ ./anchorwave genoAli
terminate called after throwing an instance of 'std::regex_error'
  what():  regex_error
Aborted (core dumped)

Using the same install method on V1.0.0 works fine and when I call the same functions they do not produce an error.
I'm using gcc-5.4.0 and cmake 3.16.3, and here are the OS details:
NAME="AlmaLinux"
VERSION="8.6 (Sky Tiger)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.6 (Sky Tiger)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

Please try GNU GCC >=7.0

We removed the regular expression code, and tested it using GCC 6.0, and it worked.

Thanks for your help. I switched to the conda version and it works now without issue.


How to make it work with TkRuby?

Hello. It doesn't work for me with TkRuby.
Maybe someone knows how to make it work?
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x64-mingw-ucrt]
tk (0.5.0)
ocran (1.3.15)
My file test_tk.rb
require 'tk' root = TkRoot.new { title "Ex1" } TkLabel.new(root) {   text  'Hello, World!'   pack  { padx 55 ; pady 55; side 'left' } } Tk.mainloop
option 1
# ocran test_tk.rb --windows === Loading script to check dependencies === Attempting to trigger autoload of #<Class:Tk>::WinRegistry === Attempting to trigger autoload of #<Class:Tk>::ValidateConfigure === Attempting to trigger autoload of #<Class:Tk>::BinaryString === Attempting to trigger autoload of #<Class:Tk>::AUTO_PATH === Attempting to trigger autoload of #<Class:Tk>::Tile C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:2887:in _invoke': can't invoke "font" command: application has been destroyed (RuntimeError)
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:2887:in _invoke'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1932:in _ip_invoke_core'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1965:in _tk_call_core'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1988:in tk_call'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk/font.rb:126:in <class:TkFont>'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk/font.rb:9:in <top (required)>'
from internal:C:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb:86:in require'         from <internal:C:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in require'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tkextlib/tile.rb:293:in <module:Font>'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tkextlib/tile.rb:281:in module:Tile'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tkextlib/tile.rb:113:in <module:Tk>'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tkextlib/tile.rb:112:in <top (required)>'
from internal:C:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb:86:in require'         from <internal:C:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in require'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:518:in const_get'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:518:in block (3 levels) in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:514:in each'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:514:in block (2 levels) in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:512:in each'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:512:in block in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:506:in loop'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:506:in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:774:in build_exe'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:1307:in block in <top (required)>'`
option 2 (compiled done but not executed)
`# ocran test_tk.rb --windows --no-autoload
=== Loading script to check dependencies
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/error_highlight-0.5.1.gemspec for gem error_highlight-0.5.1
=== Detected gem error_highlight-0.5.1 (loaded, files)
===     0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/did_you_mean-1.6.3.gemspec for gem did_you_mean-1.6.3
=== Detected gem did_you_mean-1.6.3 (loaded, files)
===     0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/syntax_suggest-1.1.0.gemspec for gem syntax_suggest-1.1.0
=== Detected gem syntax_suggest-1.1.0 (loaded, files)
===     1 files, 111 bytes
=== Detected gem ocran-1.3.15 (loaded, files)
===     6 files, 284024 bytes
=== Detected gem tk-0.5.0 (loaded, files)
===     415 files, 2939900 bytes
=== Including 61 encoding support files (3775488 bytes, use --no-enc to exclude)
=== Building test_tk.exe
=== Adding user-supplied source files
=== Adding ruby executable rubyw.exe
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/libgmp-10.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/bin/tk86.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/bin/tcl86.dll
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/zlib1.dll
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/libffi-8.dll
=== Adding external manifest C:/Ruby32-x64/bin/ruby_builtin_dlls/ruby_builtin_dlls.manifest
=== Adding library files
=== Compressing 16729037 bytes
LZMA 22.01 (x86) : Igor Pavlov : Public domain : 2022-07-15
Input size:  16729037 (15 MiB)
Output size: 4445085 (4 MiB)
=== Finished building test_tk.exe (4492721 bytes)`
option 3
# ocran test_tk.rb --windows --no-autoload --debug === Loading script to check dependencies === Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/error_highlight-0.5.1.gemspec for gem error_highlight-0.5.1 === Detected gem error_highlight-0.5.1 (loaded, files) ===     0 files, 0 bytes === Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/did_you_mean-1.6.3.gemspec for gem did_you_mean-1.6.3 === Detected gem did_you_mean-1.6.3 (loaded, files) ===     0 files, 0 bytes === Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/syntax_suggest-1.1.0.gemspec for gem syntax_suggest-1.1.0 === Detected gem syntax_suggest-1.1.0 (loaded, files) ===     1 files, 111 bytes === Detected gem ocran-1.3.15 (loaded, files) ===     6 files, 284024 bytes === Detected gem tk-0.5.0 (loaded, files) ===     415 files, 2939900 bytes === Including 61 encoding support files (3775488 bytes, use --no-enc to exclude) C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:84:in +': no implicit conversion of nil into String (TypeError)
  @path = sub(/(\.[^.]*?|)$/) { s.to_s + $1 }
                                         ^^
    from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:84:in `block in append_to_filename!'
    from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:88:in `sub'
    from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:88:in `sub'
    from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:84:in `append_to_filename!'
    from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:921:in `build_exe'
    from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:1307:in `block in <top (required)>'`

require 'tk'
root = TkRoot.new { title "Ex1" }
TkLabel.new(root) { text  'Hello, World!'
pack  { padx 55 ; pady 55; side 'left' } }
Tk.mainloop unless defined?(Ocran)
Can you try this? I'm believe it attempts to open the TK window, but at this time ocran just exits.
Can you check the tk.rb in the samples folder. I need to look into this.

@shinokaro maybe In the second example something goes wrong at ocra.rb:84.

require 'tk' root = TkRoot.new { title "Ex1" } TkLabel.new(root) { text 'Hello, World!' pack { padx 55 ; pady 55; side 'left' } } Tk.mainloop unless defined?(Ocran)
Can you try this? I'm believe it attempts to open the TK window, but at this time ocran just exits. Can you check the tk.rb in the samples folder. I need to look into this.

ocran test_tk.rb --windows
=== Loading script to check dependencies
=== Attempting to trigger autoload of #Class:Tk::WinRegistry
=== Attempting to trigger autoload of #Class:Tk::ValidateConfigure
=== Attempting to trigger autoload of #Class:Tk::BinaryString
=== Attempting to trigger autoload of #Class:Tk::AUTO_PATH
=== Attempting to trigger autoload of #Class:Tk::Tile
=== Attempting to trigger autoload of #Class:Tk::Text
=== Attempting to trigger autoload of #Class:Tk::Grid
=== WARNING: #Class:Tk::Grid was defined autoloadable, but caused NameError
=== Attempting to trigger autoload of #Class:Tk::Pack
=== WARNING: #Class:Tk::Pack was defined autoloadable, but caused NameError
=== Attempting to trigger autoload of #Class:Tk::Place
=== WARNING: #Class:Tk::Place was defined autoloadable, but caused NameError
=== Attempting to trigger autoload of #Class:Tk::Button
=== Attempting to trigger autoload of #Class:Tk::Canvas
=== Attempting to trigger autoload of #Class:Tk::CheckButton
=== Attempting to trigger autoload of #Class:Tk::Entry
=== Attempting to trigger autoload of #Class:Tk::Frame
=== Attempting to trigger autoload of #Class:Tk::LabelFrame
=== Attempting to trigger autoload of #Class:Tk::Listbox
=== Attempting to trigger autoload of #Class:Tk::Menu
=== Attempting to trigger autoload of #Class:Tk::OptionMenBbutton
=== WARNING: #Class:Tk::OptionMenBbutton was defined autoloadable, but caused NameError
=== Attempting to trigger autoload of #Class:Tk::Message
=== Attempting to trigger autoload of #Class:Tk::PanedWindow
=== Attempting to trigger autoload of #Class:Tk::Scale
=== Attempting to trigger autoload of #Class:Tk::Scrollbar
=== Attempting to trigger autoload of #Class:Tk::Spinbox
=== Attempting to trigger autoload of #Class:Tk::Toplevel
=== Attempting to trigger autoload of #Class:Tk::Clock
=== Attempting to trigger autoload of #Class:Tk::OptionObj
=== Attempting to trigger autoload of #Class:Tk::Fontchooser
=== Attempting to trigger autoload of #Class:Tk::MacResource
C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1930:in _invoke': can't find package resource (RuntimeError)         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1930:in _ip_invoke_core'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1965:in _tk_call_core'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk.rb:1992:in tk_call_without_enc'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk/macpkg.rb:42:in <module:MacResource>'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk/macpkg.rb:31:in <top (required)>'
from internal:C:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb:86:in require'         from <internal:C:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in require'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:518:in const_get'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:518:in block (3 levels) in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:514:in each'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:514:in block (2 levels) in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:512:in each'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:512:in block in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:506:in loop'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:506:in attempt_load_autoload'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:774:in build_exe'         from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/ocran-1.3.15/bin/ocran:1307:in block in <top (required)>'

@shinokaro maybe In the second example something goes wrong at ocra.rb:84.

I've fixed this issue: https://github.com/Largo/ocran/commit/07895c759837f5592c9afbaf56f4c19a7539d1f0

from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/tk-0.5.0/lib/tk/macpkg.rb:42:in <top (required)>'

tk/macpkg" is a package for Macintosh. Will this work with the following command?
ocran test_tk.rb --windows --gem-spec=tk --no-autoload

Okay, thank you very much. I will gladly make a new release when we figure this out. Note: the newest TK libs don't work with the TK gem yet!
I'm planning to set up wine for this and also attempt to make some automated test. I'm currently working on ruby.wasm, but will get back to this soon!

ocran test_tk.rb --windows --gem-spec=tk --no-autoload

compiled done but not executed
ocran test_tk.rb --windows --gem-spec=tk --no-autoload
=== Loading script to check dependencies
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/error_highlight-0.5.1.gemspe
c for gem error_highlight-0.5.1
=== Detected gem error_highlight-0.5.1 (loaded, files)
===     0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/did_you_mean-1.6.3.gemspec f
or gem did_you_mean-1.6.3
=== Detected gem did_you_mean-1.6.3 (loaded, files)
===     0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/syntax_suggest-1.1.0.gemspec
for gem syntax_suggest-1.1.0
=== Detected gem syntax_suggest-1.1.0 (loaded, files)
===     1 files, 111 bytes
=== Detected gem ocran-1.3.15 (loaded, files)
===     6 files, 284024 bytes
=== Detected gem tk-0.5.0 (spec)
=== WARNING: ext/tk/extconf.rb was not found
=== WARNING: ext/tk/tkutil/extconf.rb was not found
===     0 files, 0 bytes
=== Including 61 encoding support files (3775488 bytes, use --no-enc to exclude)
=== Building test_tk.exe
=== Adding user-supplied source files
=== Adding ruby executable rubyw.exe
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/libgmp-10.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/bin/tk86.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/bin/tcl86.dll
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/zlib1.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/lib/reg1.3/tclreg13.dll
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/libffi-8.dll
=== Adding external manifest C:/Ruby32-x64/bin/ruby_builtin_dlls/ruby_builtin_dlls.manifest
=== Adding library files
=== Compressing 13508217 bytes
LZMA 22.01 (x86) : Igor Pavlov : Public domain : 2022-07-15
Input size:  13508217 (12 MiB)
Output size: 3640752 (3 MiB)
=== Finished building test_tk.exe (3688388 bytes)

@krepkiy Thanks for your patience. I confirmed that it works with the following command:
ocran tk.rb --windows --gem-full=tk --add-all-core --no-autoload
How to reproduce. See below or tk.rb in samples.
gem install tk

require 'tk'
root = TkRoot.new { title "Hello, World!" }
TkLabel.new(root) do
   text 'Hello, World!'
   pack { padx 15 ; pady 15; side 'left' }
end
Tk.mainloop unless defined?(Ocran)

@shinokaro

@Largo Thank you for trying to help me. But this option doesn't work for me either.

Sorry, I can't work on this today, but I would recommend to try the following:

Checkout this repository or download as zip.
checkout the tk example in the sample folder folder
try to run ocran according to the comment in that file. Make sure to use the newest ocran code instead of the installed gem ("ruby bin/ocran" instead of "ocran") and the parameters written in the file.

It's possible that the problem is elsewhere. Also make sure the antivirus is not interfering or try on a different machine.

@Largo

Sorry, I can't work on this today, but I would recommend to try the following:

Checkout this repository or download as zip.
checkout the tk example in the sample folder folder
try to run ocran according to the comment in that file. Make sure to use the newest ocran code instead of the installed gem ("ruby bin/ocran" instead of "ocran") and the parameters written in the file.

It's possible that the problem is elsewhere. Also make sure the antivirus is not interfering or try on a different machine.

I try on another machine but the result is the same. I don't understand one point about which you wrote.

Make sure to use the newest ocran code instead of the installed gem ("ruby bin/ocran" instead of "ocran")

I don't understand how to put the updated code ocran.
I put gem in the standard way gem install ocran
Sorry for my stupidity.

I downloaded the file ocran https://github.com/Largo/ocran/blob/master/bin/ocran
and copied it to the folder with the installed Ruby on my computer
c:\Ruby32-x64\lib\ruby\gems\3.2.0\gems\ocran-1.3.15\bin\
# ocran test_tk.rb --windows --gem-full=tk --add-all-core --no-autoload
=== Loading script to check dependencies
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/error_highlight-0.5.1.gemspec for gem error_highlight-0.5.1
=== Detected gem error_highlight-0.5.1 (loaded, files)
===     0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/did_you_mean-1.6.3.gemspec for gem did_you_mean-1.6.3
=== Detected gem did_you_mean-1.6.3 (loaded, files)
===     0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/syntax_suggest-1.1.0.gemspec for gem syntax_suggest-1.1.0
=== Detected gem syntax_suggest-1.1.0 (loaded, files)
===     1 files, 111 bytes
=== Detected gem ocran-1.3.15 (loaded, files)
===     7 files, 328819 bytes
=== Detected gem tk-0.5.0 (scripts, files, extras)
===     1060 files, 6597534 bytes
=== Including 61 encoding support files (3775488 bytes, use --no-enc to exclude)
=== Will include all ruby core libraries
=== Building test_tk.exe
=== Adding user-supplied source files
=== Adding ruby executable rubyw.exe
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/libgmp-10.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/bin/tcl86.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/bin/tk86.dll
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/zlib1.dll
=== Adding detected DLL C:/Ruby32-x64/msys64/ucrt64/lib/reg1.3/tclreg13.dll
=== Adding detected DLL C:/Ruby32-x64/bin/ruby_builtin_dlls/libffi-8.dll
=== Adding external manifest C:/Ruby32-x64/bin/ruby_builtin_dlls/ruby_builtin_dlls.manifest
=== Adding library files
=== Compressing 28788248 bytes
=== Finished building test_tk.exe (6879696 bytes)

when i run the file test_tk.exe I get the following error

Hi, friends!
I downloaded the repository as zip
and unzipped to c:\Ruby32-x64\lib\ruby\gems\3.2.0\gems\ocran-master
Execute the following commands in this folder:
# gem build ocran.gemspec
   Successfully built RubyGem
   Name: ocran
   Version: 1.3.15
   File: ocran-1.3.15.gem

# gem install ocran-1.3.15.gem
Successfully installed ocran-1.3.15
Parsing documentation for ocran-1.3.15
Installing ri documentation for ocran-1.3.15
Done installing documentation for ocran after 0 seconds
1 gem installed

Then in the C:\Ruby32-x64\bin folder
ran the command:
# ocran tk.rb --windows --gem-full=tk --add-all-core --no-autoload
=== Loading script to check dependencies
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/error_highlight-0.5.1.gemspec for gem error_highlight-0.5.1
=== Detected gem error_highlight-0.5.1 (loaded, files)
=== 0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/did_you_mean-1.6.3.gemspec for gem did_you_mean-1.6.3
=== Detected gem did_you_mean-1.6.3 (loaded, files)
=== 0 files, 0 bytes
=== Using default specification C:/Ruby32-x64/lib/ruby/gems/3.2.0/specifications/default/syntax_suggest-1.1.0.gemspec for gem syntax_suggest-1.1.0
=== Detected gem syntax_suggest-1.1.0 (loaded, files)
=== 1 files, 111 bytes
=== Detected gem ocran-1.3.15 (loaded, files)
=== 3 files, 167675 bytes
=== Detected gem tk-0.5.0 (scripts, files, extras)
=== 1060 files, 6597534 bytes
=== Including 61 encoding support files (3775488 bytes, use --no-enc to exclude)
=== Will include all ruby core libraries
=== Building tk.exe
ERROR: Stub image not available

I received the error ERROR: Stub image not available
What does this error mean? And how to fix it?
Thank you!

Hey @krepkiy
It means that the stub.exe file wasn't built inside the gem...  It should be built automatically when you do what you did there.
However, have you tried Ocran 1.3.14?

I tried version 1.3.14
It compiled done but also not executed
Could you build a new version of gem 1.3.16 with all the changes?

Sorry, seems like tk doesn't work with ocran 1.3.16
if you know the path of init.tcl maybe it helps if you include it in the command
\tk.exe
C:/Users/Andre/AppData/Local/Temp/ocran1D15E4118731/lib/ruby/gems/3.3.0/gems/tk-0.5.0/lib/tk.rb:32:in `initialize': Can't find a usable init.tcl in the following directories:  (RuntimeError)
    C:/Users/Andre/AppData/Local/Temp/ocran1D15E4118731/msys64/ucrt64/lib/tcl8.6 C:/Users/Andre/AppData/Local/Temp/ocran1D15E4118731/lib/tcl8.6 C:/Users/Andre/AppData/Local/Temp/lib/tcl8.6 C:/Users/Andre/
This probably means that Tcl wasn't installed properly.

Largo
Thanks for the help, but I've never been able to get it to work


fix(db): make upgrade work on postgresql

Fixes Issue
When running the upgrade script on Postgres (I use version 16) it will print the following error at the end:
psql:/tmp/upgrade_5.4.sql:43: ERROR:  syntax error at or near "`"
LINE 1: UPDATE Properties SET `value`='5.5' WHERE ID='version';

Getting rid of these ` symbols resolves the issue. Rerunning it looked like this:
psql:/tmp/upgrade_5.4.sql:1: ERROR:  column "v4version" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:2: ERROR:  column "v4attackvector" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:3: ERROR:  column "v4attackcomplexity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:4: ERROR:  column "v4attackrequirements" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:5: ERROR:  column "v4privilegesrequired" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:6: ERROR:  column "v4userinteraction" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:7: ERROR:  column "v4vulnconfidentialityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:8: ERROR:  column "v4vulnintegrityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:9: ERROR:  column "v4vulnavailabilityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:10: ERROR:  column "v4subconfidentialityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:11: ERROR:  column "v4subintegrityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:12: ERROR:  column "v4subavailabilityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:13: ERROR:  column "v4exploitmaturity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:14: ERROR:  column "v4confidentialityrequirement" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:15: ERROR:  column "v4integrityrequirement" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:16: ERROR:  column "v4availabilityrequirement" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:17: ERROR:  column "v4modifiedattackvector" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:18: ERROR:  column "v4modifiedattackcomplexity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:19: ERROR:  column "v4modifiedattackrequirements" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:20: ERROR:  column "v4modifiedprivilegesrequired" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:21: ERROR:  column "v4modifieduserinteraction" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:22: ERROR:  column "v4modifiedvulnconfidentialityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:23: ERROR:  column "v4modifiedvulnintegrityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:24: ERROR:  column "v4modifiedvulnavailabilityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:25: ERROR:  column "v4modifiedsubconfidentialityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:26: ERROR:  column "v4modifiedsubintegrityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:27: ERROR:  column "v4modifiedsubavailabilityimpact" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:28: ERROR:  column "v4safety" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:29: ERROR:  column "v4automatable" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:30: ERROR:  column "v4recovery" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:31: ERROR:  column "v4valuedensity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:32: ERROR:  column "v4vulnerabilityresponseeffort" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:33: ERROR:  column "v4providerurgency" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:34: ERROR:  column "v4basescore" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:35: ERROR:  column "v4baseseverity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:36: ERROR:  column "v4threatscore" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:37: ERROR:  column "v4threatseverity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:38: ERROR:  column "v4environmentalscore" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:39: ERROR:  column "v4environmentalseverity" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:40: ERROR:  column "v4source" of relation "vulnerability" already exists
psql:/tmp/upgrade_5.4.sql:41: ERROR:  column "v4type" of relation "vulnerability" already exists
UPDATE 1

I accidentally approved this. The upgrade scripts are only for the internal H2 database. We have not produced or maintained upgrade scripts for the external databases. I know that might be inconvenient. There are more changes for postgres then just adding the columns. There are also changes to a stored procedure.

Oh, sorry for that. I realized it later in the process and I ended up with reinitialization of the DB to make it work on Postgres with the latest schema.


[DRAFT] Backup verification

Codecov Report
Attention: Patch coverage is 0% with 43 lines in your changes are missing coverage. Please review.

Project coverage is 18.16%. Comparing base (4a4ee68) to head (d32f93d).

Files
Patch %
Lines

...com/github/ambry/cloud/BackupIntegrityMonitor.java
0.00%
20 Missing :warning:

...n/java/com/github/ambry/cloud/RecoveryManager.java
0.00%
8 Missing :warning:

...m/github/ambry/replication/ReplicationManager.java
0.00%
8 Missing :warning:

...main/java/com/github/ambry/server/AmbryServer.java
0.00%
7 Missing :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             master    #2743       +/-   ##
=============================================
- Coverage     70.65%   18.16%   -52.49%
+ Complexity    11584     2811     -8773
=============================================
  Files           833      834        +1
  Lines         71007    71035       +28
  Branches       8532     8530        -2
=============================================
- Hits          50171    12905    -37266
- Misses        18208    56929    +38721
+ Partials       2628     1201     -1427

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


Custom topic naming strategy implementation based on custom event (Record) field with JSONPath expression

What is your idea?
Implement a custom topic naming strategy based on a specified event (Record) field.
For example, given the following Kafka Record value (JSON-encoded):
{
  "order_id": "123456789",
  "customer_name": "John Doe",
  "customer_email"<EMAIL_ADDRESS>  "order_date": "2024-04-02T10:00:00",
  "items": [
    {
      "item_id": "SKU123",
      "item_name": "Example Product 1",
      "quantity": 2,
      "unit_price": 25.99
    },
    {
      "item_id": "SKU456",
      "item_name": "Example Product 2",
      "quantity": 1,
      "unit_price": 39.99
    }
  ],
  "total_amount": 91.97,
  "payment_method": "Credit Card",
  "shipping_address": {
    "street": "123 Main St",
    "city": "Anytown",
    "state": "CA",
    "postal_code": "12345",
    "country": "USA"
  }
}

A user could specify the JSONPath expression $.payment_method to use the payment_method field (key) value in the outgoing EventBridge event detail-type field.
This functionality is useful in Kafka environments, where different events (Records) are written to the same Kafka topic. Currently, all these events would use the same topic name (or hardcoded string in the configuration) in the detail-type field. Allowing more fine-grained behavior enables flexible rule pattern matching and advanced IAM policies based on detail-type filter criteria, see https://twitter.com/embano1/status/1734260552640143817
Would you be willing to make the change?
No, but @maschnetwork was interested in doing it.
Additional context

Follow-up from #27
#110 uses JSONPath

To be discussed:

[ ] allow JSONPath on Kafka Record key as well
[ ] handle cases where specified JSONPath is not defined/null/empty (String)
[ ] align with S3 offloading implementation e.g., disallow certain JSONPath expressions such as array indexes

cc/ @agebhar1


Release v0.9.0

[x] I agree to follow the project's code of conduct.
[ ] ~I added an entry to rstar/CHANGELOG.md if knowledge of this change could be valuable to users.~

Added checklist to release new version of rstar.
Add reference to PR #40 that fixes fp numerical issues

Please let me know if this looks good, and I'll publish a version to crates.io.

closes #53 , #71

I guess I should have done bors command; merged it by clicking the button below.  Will close the referred issues manually.


The chapter "How SSH key authentication works" has wrong content

The content is based on misunderstanding.

Authentication keys are not for encryption/decryption. They are for signing/verifying the digital signature created through the authentication process.
Authentication keys have no effect on message encryption.  Even without authentication keys, e.g. even with password authentication, messages between server and client are encrypted.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 64e85ff9-9add-d15c-e92f-02d7dd05e0f2
Version Independent ID: 0cbd7427-6acd-3cfc-1a3b-8bf5ca60f3bd
Content: Connect to your Git repos with SSH - Azure Repos
Content Source: docs/repos/git/use-ssh-keys-to-authenticate.md
Product: devops
Technology: devops-code-git
GitHub Login: @apawast
Microsoft Alias: sdanie

Working on this now


IT-2752: Need service-user instead of service-account

The previous attempt (#773, #774) created a user, a role and the permission for the user to assume the role. For Redash, the permissions need to be directly on the user. This PR uses the service-user.yaml template which does just that...

Yes that's it, the doc says the permissions are on the user itself...


LRN rewrite to bias/activation

After an initial investigation, the LRN cannot be rewritten in the same way we did for the batch normalization. For this issue, we will untag it to a specific release. If someone complains about it in the future, we will revisit it.

Maybe we can add a parallel reduce operator, then we can rewrite this operator and achieve some performance improvement.

Looked into the algorithm for LRN again, the following is the formula:
a) square_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2), where max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2)).

b) Y[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta

A few thoughts:

LRN does the reduce of elements along the c axis as in equation a), and all elements with the same c index share the same reduce value, but different c indices need different reduce ops. That means, we need "C" number of reduces before we can do the computation in equation b).
The reduce algorithm we implemented works well for reduction along the last dimension, but the c dim here is not the last, and the performance is not expected to be good. The reason is reduction along non-last dim will cause additional useless memory load.
Of course, we can wrote a kernel to do all reduces, then do equation b).

Will not fix.


Behavior when insertText is empty

Checkhealth
Put result of :checkhealth compe.
health#compe#check
========================================================================
## compe:snippet
  - OK: snippet engine detected.

## compe:mapping
  - OK: `compe#complete` is mapped: (`i  <C-Space>   * compe#complete('<C-Space>')`)
  - OK: `compe#confirm` is mapped: (`i  <CR>        * compe#confirm('<CR>')`)
  - OK: `compe#close` is mapped: (`i  <C-E>       * pumvisible() ? compe#close('<C-E>') : "\<end>"`)
  - OK: `compe#scroll` is mapped: (`i  <M-k>       * compe#scroll({ 'delta': -4 })`)

Describe the bug
When the insertText attribute of an LSP completion item is empty (''), compe doesn't use the label field as I believe it should according to the LSP documentation:
	/**
	 * A string that should be inserted into a document when selecting
	 * this completion. When `falsy` the label is used as the insert text
	 * for this item.
	 * [...]
	 */
	insertText?: string;

I found this bug while working on a Godot (GDScript) project. Godot sometimes returns an empty insertText. For instance, if I type event.dev<cursor> and choose to complete device, compe deletes the dev part, so the text is back to event.<cursor>.
The completion item returned by the language server is this:
{'label': 'device', 'data': {'textDocument': {'uri': 'file://...'}, 'position': {'charac
ter': 10, 'line': 9}}, 'deprecated': v:false, 'detail': '', 'preselect': v:false, 'insertText': '', 'sortText': '',
 'documentation': {'kind': 'markdown', 'value': '^Ivar InputEvent.device: int^@^@The event''s device ID.^@^@**Note:
** This device ID will always be `-1` for emulated mouse input from a touchscreen. This can be used to distinguish
emulated mouse input from physical mouse input.^@^@'}, 'command': {'title': '', 'command': ''}, 'kind': 10, 'filter
Text': ''}

To Reproduce
Steps to reproduce the behavior with the minimal config:

Enable the GDScript language server
Open a project in Godot
Open a GDScript file from the same project
Try completing a property of some object. The code below may serve as an example:

func _input(event):
	event.dev

Actual behavior
When a completion item has an empty insertText (and isn't a textEdit), compe inserts an empty string instead of completing with the selected completion item.
Expected behavior
I believe compe should insert the value of label when there is no text in insertText, because an empty string should still be considered 'falsy'.
Screenshots (optional)
Additional context (optional)

Thank you for your report. I've fixed it.

Thanks for looking into this. I'm still experiencing the wrong behavior though.
It looks like compe is still using the empty insertText for completion:
https://github.com/hrsh7th/nvim-compe/blob/d35f5fcece6dc44d28646dbb9c6184eaeec82c8f/autoload/vital/_compe/VS/LSP/CompletionItem.vim#L158-L166
I tried the patch below and it worked for me:
diff --git a/autoload/vital/_compe/VS/LSP/CompletionItem.vim b/autoload/vital/_compe/VS/LSP/CompletionItem.vim
index 8414c2f..9dfd022 100644
--- a/autoload/vital/_compe/VS/LSP/CompletionItem.vim
+++ b/autoload/vital/_compe/VS/LSP/CompletionItem.vim
@@ -155,7 +155,10 @@ function! s:_get_expansion(args) abort
     endif
   else
     let l:inserted = strcharpart(l:current_line, l:suggest_position.character, l:current_position.character - l:suggest_position.character)
-    let l:new_text = get(l:completion_item, 'insertText', l:completion_item.label)
+    let l:new_text = get(l:completion_item, 'insertText', '')
+    if !l:new_text
+        let l:new_text = l:completion_item.label
+    endif
     if s:_trim_tabstop(l:new_text) !=# l:inserted
       return {
       \   'overflow_before': l:request_position.character - l:suggest_position.character,

I can send it as a pull request if needed.

It works now. Thank you once again!


Change colour of cursor in live code editor (problem in Linux Ubuntu 18.4 Chromium 75.037****)

the cursor disappears on empty lines and sometimes on other lines.
I've now also noticed it to happen sometimes in the model coding window (editor2).

Different themes for the CodeMirror editors seems to mitigate this problem


error to run android

Hi,
When I run "ionic run android" I get the error below:
Running 'run:before' gulp task before run
[09:15:02] Starting 'clean'...
[09:15:02] Finished 'clean' after 43 ms
[09:15:02] Starting 'build'...
[09:15:02] Starting 'sass'...
[09:15:02] Starting 'html'...
[09:15:02] Starting 'fonts'...
[09:15:02] Starting 'scripts'...
[09:15:02] Finished 'scripts' after 54 ms
[09:15:02] Finished 'html' after 61 ms
[09:15:02] Finished 'fonts' after 64 ms
[09:15:03] Finished 'sass' after 974 ms
[09:15:16] Finished 'build' after 15 s
[09:15:16] Starting 'run:before'...
[09:15:16] Finished 'run:before' after 6.53 μs
Running command: /home/emory/Ionic-projects/RankingSGV-v2/hooks/after_prepare/010_add_platform_class.js /home/emory/Ionic-projects/RankingSGV-v2
add to body class: platform-android
ANDROID_HOME=/home/emory/Android/Sdk
JAVA_HOME=/usr/lib/jvm/java-8-oracle
ERROR running one or more of the platforms: Error: adb: Command failed with exit code 1 Error output:
error: could not install smartsocket listener: Address already in use
ADB server didn't ACK

failed to start daemon *
error: cannot connect to daemon
You may not have the required environment or OS to run this project

ionic info:
Your system information:
Cordova CLI: 6.0.0
Ionic Framework Version: 2.0.0-beta.6
Ionic CLI Version: 2.0.0-beta.29
Ionic App Lib Version: 2.0.0-beta.16
OS: Distributor ID:	Ubuntu Description:	Ubuntu 16.04 LTS
Node Version: v5.6.0
Did I missing something?
THanks in advanced

Hello, thanks for opening an issue with us! Could you post the output of ionic info here please? Thanks for using Ionic!

Hi, it is the first message:
ionic info:
Your system information:
Cordova CLI: 6.0.0
Ionic Framework Version: 2.0.0-beta.6
Ionic CLI Version: 2.0.0-beta.29
Ionic App Lib Version: 2.0.0-beta.16
OS: Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS
Node Version: v5.6.0
Anyway, thanks for the prompt message


Backport Scan Server File refs table from elasticity to 3.1

This change moves scan server refs to a separate table from metadata in order to improve performance. The prefix was dropped as nothing else is stored in the table anymore.
This is a backport of the change in elasticity that was done in #4650 into 3.1
When this is merged into main, we need to do a "git merge -s" into elasticity with this commit only as the changes already exist in elasticity.

Sunny ITs passed for me locally, I just kicked off a full IT build as well

Will the deleting of the scan server refs from the metadata table as part of the 3.1 upgrade be done in a separate issue / PR?

Will the deleting of the scan server refs from the metadata table as part of the 3.1 upgrade be done in a separate issue / PR?

I figured that would make the most sense, to just do that as another PR.

Will the deleting of the scan server refs from the metadata table as part of the 3.1 upgrade be done in a separate issue / PR?

I figured that would make the most sense, to just do that as another PR.

I forgot I already created an issue for this https://github.com/apache/accumulo/issues/4652

I'm hoping everything is correct now, there were a few test failures from the full IT run that showed that a couple of extra fixes/changes needed to be back ported as well such as excluding all Accumulo namespace tables from scans by a scan server and also from the memory detection check. I will keep an eye on the full IT build and check back if all the failures are now resolved.

Everything looks good in main now, full IT build passed.


Make images in readme cooler

Find the coolest images in index.html and use them

What defines cool? Showing off the depth in the images like in 00302_f_6a821e8f414b4090_2021-09-27--17-45-10_16_381.png?


Awesome books: with ES6

General requirements

[ ] Make sure that there are no linter errors.
[ ] Make sure that you used correct GitHub Flow.
[ ] Make sure that you documented your work in a professional way.

HTML/CSS requirements

Follow our list of the best practices for HTML & CSS.
JavaScript requirements
Follow our list of best practices for JavaScript.

Project requirements

Setup your project:

Create a new directory and initialize it with git.

Use npm init -y command to create package.json file.

Create the entry point for your JavaScript code called index.js

Create index.css file for your styles.

Create the main index.html file. Link your index.js and index.css files there.

Create a directory called modules.

Re-create your Awesome books app following the rules:

Use ES6 syntax.

Divide your code into modules.

Create a separate file for each module in the modules directory.

Import modules into the index.js file. (Tip: the more modules the better!)

Keep all funcionalities of the app without errors.

Refactor your functions to arrow functions.

Use let and const in the correct way.

Display the current date below the navigation bar.

For this requirement you should use a library Luxon
Download the library into your project using npm.
Import it as a module.
See the article Get the current date and time. Your task here is to use a new tool effectively with little externally curated support. Exactly as you will do in your future job.

Hi, dear Code reiewer!
I have this eslint error, I tried a lot to solve it but it is still there. Can you help me with that?


What about implementing a default offline search input?

Does an offline search input feature exist? Or should it be implemented? I've seen that many of SSGs or Static documentation generators have this function. One example is Vuepress. Let's say I'm making an app that works offline using PWA or real app with Docus. What the user does to search? Uses page by page manual checking? In my opinion it is the most hardest way to do it.
You can look up the Vuepress repo for the logic. Both Docus and Vuepress uses Vue(or Nuxt).
EDIT: What about using DocSearch? I already know I can use Algolia. But it needs internet.

I'm guessing this is a duplicate of https://github.com/nuxt-themes/docus/issues/682 ?
Nextra uses Flexsearch.
For Docusaurus, there are some plugins that use Lunr.

This is related to #682


[Feature Request] 富文本组件

Checklist

[X] I searched exising issues and no one else requests similar feature.
[X] I think that 25%+ users are positive towards this feature.

Describe the feature
https://github.com/FXMisc/RichTextFX#styledtextarea
Additional context
No response

当有textarea需求时再添加


Issue with change detection?

Problem
I've encountered some strange behavior i'm assuming a bug in yew where elements after updating context not having the correct content, i assume there is some problem with change detection.
In my scenario you have a page where you are able to navigate (blue action button "A") or filter the current view (yellow filter button "F"). After filtering, you can go back (blue button "B").
Actually, after filtering using "F" and navigating back using "B" you will see Buttons action "A" and back "b" instead of filter "F".
Steps To Reproduce
Reproduction
Expected behavior
When using "F" to filter and using "B" to go back after, you see action "A" and filter "F" again.
Screenshots
Initial:

Click "F":

Click "B":

Environment:

Yew version: 0.21
Rust version: rustc 1.79.0-nightly (c9f8f3438 2024-03-27)
Build tool, if relevant: Trunk (i guess it doesn't matter)
OS, if relevant: Linux  (i guess it doesn't matter)
Browser and version, if relevant: Chromium, Firefox

Questionnaire

[x] I'm interested in fixing this myself but don't know where to start
[ ] I would like to fix and I have a solution
[ ] I don't have time to fix this right now, but maybe later

I did some further research and found out that the behaviour changed in 0.19 (and i followed this downwards to 0.14.0), where the behavior changed but was also wrong:

One last discovery: when changing the button to function component, it is working as intended.

Not a bug. The renderer re-uses an existing instance of your <Button /> component with updated properties. Yet, you "precompute" its icon and class (and onclick) only in the component's create. This leads to a wrong and outdated icon being rendered for a component has correctly updated props. Move that logic from create to the view to fix it.

Alright, i wasn't aware that this would be considered as property change, thanks for explaining this.


scripts: pkg: build-pkgs.sh: Use RPM file dependency for shadow tools

Different RPM distributions use different packages to collect the
various tools from the 'shadow' package so we could use the path
from one of these tools in order to allow the rkt package to be used
in more RPM distributions.

Oh, good catch.


appInsights Javascript usage documentation error

The usage of the Javascript appInsights library is incorrect and inconsistent with other docs in this page. The track event function is invoked this way appInsights.trackEvent({name: "incrementCount"});, not this way appInsights.trackEvent("ExpandDetailTab", {DetailTab: tabName}); as noted in this page. The latter results in a not_specified event in the events in Application insights.

The proper usage of the function is documented correctly here: https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-custom-events-metrics#trackevent

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: edce8383-4e3b-425b-5f01-02f54385b7a4
Version Independent ID: bf51eb39-0bb9-262a-d4be-51b1bcb977f0
Content: Usage analysis with Application Insights - Azure Monitor
Content Source: articles/azure-monitor/app/usage-overview.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @AaronMaxwell
Microsoft Alias: aaronmax

Thanks for bringing this to our attention. We will investigate it further and update you shortly.

@thomasgauvin - Thanks again for bringing this to our attention. We have updated the Doc and it will be live once its merged.  We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Unable to use set_icon with newer versions

In older versions, like 0.6, it was possible to set the window icon with:
wnd.set_icon(&PngImage::from_data(&icon).unwrap());
But now I get the error message:
expected enum std::option::Option, found &fltk::image::PngImage
help: try using a variant of the expected enum: Some(&PngImage::from_data(&icon).unwrap())
When I try to set the icon with:
wnd.set_icon(Some(&PngImage::from_data(&icon).unwrap()));
I get the error message:
the trait fltk::ImageExt is not implemented for &fltk::image::PngImage

Hi
This was changed to be able to unset an icon using the same method.
You would have to use:
wnd.set_icon(Some(PngImage::from_data(&icon).unwrap)); // without the &


Performance benchmark for drv-parts/dream2nix compared to bare derivations

Ping @DavHau, let's have this in an issue instead of the Matrix channel
https://github.com/nix-community/dream2nix/tree/main/misc/benchmarks

Here's the message @DavHau shared on Matrix that I think is valuable enough to be more persistent:

DISCLAIMER: This is just an experiment
I made this fork of nixpkgs, which uses the module system for all mkDerivation based packages. All changes are contained in the latest commit.
Done:

in make-derivation.nix replace call to builtins.derivation with lib.evalModules
declare interface using the module system
its based on Robert Hensing (roberth) 's WIP record type for performance reasons (submodule+freeform was quite slow)
the defined options are incomplete -> unknown fields default to types.raw
added modules argument to mkDerivation allowing user to pass extra modules (cool, but still requires calling overrideAttrs which is weird)
pass through .mix function for each derivation, that allows passing a single module to extend the derivation.

Example usage:
Overriding
overriding before:
firefox.overrideAttrs (old: {buildInputs = old.buildInputs or [] ++ [hello];})

overriding after:
firefox.mix {derivation.buildInputs = [hello];}

no need to pass function
no need to handle previous value
no need to handle default
no need to implement merge

Type Checking
nix-repl> firefox.mix {derivation.buildInputs = {};}
error:
[...]
       error: A definition for option `derivation.buildInputs' is not of type `list of (null or package or path)'.
       [...]

Performance
(None of these findings are thoroughly tested or statistically sound)

Overhead on packages with small closure is little (~10% for pkgs.hello)
Overhead on packages with large closure is high: (~100% for pkgs.firefox)
Overhead when evaluating all packages is between 100 to 200%

Other findings:

Increasing the number of type checked fields didn't seem to increase the overhead significantly

My main question is: What are the next steps? Is there something useful to make out of this?
Some Ideas:

deliver this as an overlay to allow experimentation on any nixpkgs version
finish the interface declaration and make a CI job for nixpkgs that does type checking for all packages (we did notice that some packages pass weird types to some fields, like a list of lists for build inputs. It just doesn't end up being a problem because of how stuff gets converted to strings in derivation)
do some more sophisticated benchmarks that can be reproduced and used to optimize the module system.


User deprecated function: ?[33mCalling deprecated API:

I am brand new to the square module for drupal commerce, and i am getting the following php debug message with both charges and refunds and was looking for some pointers on finding the source of the problem. These are the full errors:
User deprecated function: Calling deprecated API: TransactionsApi.charge in SquareConnect\Api\TransactionsApi->charge() (line 191 of /*/*/*/code/sites/all/libraries/square/lib/Api/TransactionsApi.php).
User deprecated function: Calling deprecated API: TransactionsApi.createRefund in SquareConnect\Api\TransactionsApi->createRefund() (line 300 of /*/*/*/code/sites/all/libraries/square/lib/Api/TransactionsApi.php).

Transactions API is deprecated, so it's letting you know. If you wish to suppress these errors, then you'll need to add the following line to your code (before you call Transactions API), I believe:
error_reporting(E_ALL & ~E_USER_DEPRECATED);

@StephenJosey thanks. So that means those messages don't indicate that anything is wrong in the installation then? Also, Is this latest release library what I should be using then?

Correct - it's just letting you know the API is deprecated. Transactions API has been replaced with the Payments API, so eventually, it would no longer work (I think the date is September 1st, 2021 so you still have awhile). So, yes, this is the latest SDK release, but there's just a different API (Payments API) that you should be moving to. This SDK has both built in; Payments API can be seen here https://github.com/square/connect-php-sdk/blob/master/docs/Api/PaymentsApi.md


Implement CRUD endpoints for activities

// object id is omitted but necessary

interface IActivity {
    name: string;
    price: number;
    isArchived: boolean;
}

Endpoints
GET

Returns all activities
Return an activity by id

POST

Create new activity

PUT

Update specific activity data by id

DELETE

Delete specific activity by id

nice


Traefik v2 integration

Proposed Changes

K3s upgrade via watch over file change of static file and manifest and triggers helm-controller for change. It seems reasonable and also suggested to only allow upgrade Traefik v1->v2 when there is no existing custom Traefik HelmChartConfig in the cluster to avoid the incompatibility of the configurations.
Here also separate the CRDs and put them into a different chart to support CRD upgrades.
Types of Changes

New Feature
Verification

Upgrade with existing custom traefik HelmChartConfig. After upgrade, traefik remains in v1.
1.1 When wish to upgrade traefik after cluster upgrade, remove HelmChartConfig and restart k3s, this triggers for traefik upgrade.
Upgrade with no existing custom traefik HelmChartConfig. After upgrade, traefik upgrade to v2.
Upgrade v2 to v2n+1 should succeed. However, this would depend on the upstream approach for the upgrade handling for different CRD API version.
Fresh install should work.

Linked Issues

https://github.com/k3s-io/k3s/issues/1141
Further Comments

Upcoming issue:
After upgrade to the current latest traefik charts (9.12.3, crd-v1alpha1), and wish to upgrade to CRD API v1 using version hits crashloop due to the multiple version used in conversion webhooks in the upgrade,
Error: UPGRADE FAILED: error validating "": error validating data: [ValidationError(CustomResourceDefinition.spec): unknown field "version" in io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec, ValidationError(CustomResourceDefinition.spec): missing required field "versions" in io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec]

Relate to:

https://github.com/traefik/traefik/issues/5473
https://github.com/traefik/traefik-helm-chart/pull/334

@innobead thanks for the review, I've addressed all comments.

@innobead thanks for the review, I've addressed all comments.

Hey folks 👋
Should I take some 👀 or test as well?

Hey folks 👋
Should I take some 👀 or test as well?

Hey folks 👋
Should I take some 👀 or test as well?
Please do. We'd love an extra set of eyes on this.

Hey folks 👋
Should I take some 👀 or test as well?
Please do. We'd love an extra set of eyes on this.

alright will do. If Im assignable, that would be awesome so I dont loose track :=)

alright will do. If Im assignable, that would be awesome so I dont loose track :=)

Hey @ricky-sb, @c3y1huang,
Id love to give it some tests (code looks good to me) but I currently dont see how, as im on mac. Do you know, if I can set k3d to use my specifically build version of k3s somehow?

Hey @ricky-sb, @c3y1huang,
Id love to give it some tests (code looks good to me) but I currently dont see how, as im on mac. Do you know, if I can set k3d to use my specifically build version of k3s somehow?

@erikwilson is taking a look at this effort. May adapt all or parts of this PR to move this forward.
Erik here is what I recall based on the various conversations we have had:
Upgrades
Fundamentally, what is the right thing to do? Automatically upgrade everyone or keep existing deployments on v1. I believe @ibuildthecloud had the opinion at some point that we should just auto-upgrade. This needs validated. Is it feasible?
If we don't want to auto-upgrade, I think we had some concerns about how this PR approached that.
Challenges around CRDs
Managing CRDs through a chart is apparently challenging. The Rancher2 team has gone through the effort of separating CRDs out into their own charts for anything they support. But according to @ibuildthecloud, the real challenge is when your chart also needs to create/manage a CR for an installed CRD. Since we should not have to create an CRs at all, maybe we don't have a problem here.
Discussion with Traefik folks
@SantoDE has been interested in this PR and is volunteering to help however he can. Whether it is via github comments or a slack convo, would be good to have a convo with him around the ins-and-outs of this and see what he (and anyone else available on the traefik side) thinks.

@erikwilson is taking a look at this effort. May adapt all or parts of this PR to move this forward.
Erik here is what I recall based on the various conversations we have had:
Upgrades
Fundamentally, what is the right thing to do? Automatically upgrade everyone or keep existing deployments on v1. I believe @ibuildthecloud had the opinion at some point that we should just auto-upgrade. This needs validated. Is it feasible?
If we don't want to auto-upgrade, I think we had some concerns about how this PR approached that.
Challenges around CRDs
Managing CRDs through a chart is apparently challenging. The Rancher2 team has gone through the effort of separating CRDs out into their own charts for anything they support. But according to @ibuildthecloud, the real challenge is when your chart also needs to create/manage a CR for an installed CRD. Since we should not have to create an CRs at all, maybe we don't have a problem here.
Discussion with Traefik folks
@SantoDE has been interested in this PR and is volunteering to help however he can. Whether it is via github comments or a slack convo, would be good to have a convo with him around the ins-and-outs of this and see what he (and anyone else available on the traefik side) thinks.

To make the above clear, I don't have a strong requirement for the upgrade behavior. We can choose to auto-upgrade everyone, not auto-upgrade anyone, or anything in between. Decision should be guided by what is best for the users to ensure we dont break clusters.
I do have a requirement that the default for new clusters ultimately becomes v2. How we get there (like it being experimental and opt-in for awhile first) is also negotiable.

To make the above clear, I don't have a strong requirement for the upgrade behavior. We can choose to auto-upgrade everyone, not auto-upgrade anyone, or anything in between. Decision should be guided by what is best for the users to ensure we dont break clusters.
I do have a requirement that the default for new clusters ultimately becomes v2. How we get there (like it being experimental and opt-in for awhile first) is also negotiable.

Im happy to discuss here (or also on Slack?). Just ping me there. Im available on e.g. #rancher on the k8s Slack.
For general purpose: Id still very much like an experimental image to test out things, if possible.

Im happy to discuss here (or also on Slack?). Just ping me there. Im available on e.g. #rancher on the k8s Slack.
For general purpose: Id still very much like an experimental image to test out things, if possible.

If it helps the binaries of PRs are stored for a short period of time for testing purposes. This is done by using the INSTALL_K3S_COMMIT environment variable with the install script. For example, installing the current commit of this PR would be something like:
curl -sfL https://get.k3s.io | INSTALL_K3S_COMMIT=355eb1d7644bd6e0b41db2ba747a57be43a7cdf2 sh -

If it helps the binaries of PRs are stored for a short period of time for testing purposes. This is done by using the INSTALL_K3S_COMMIT environment variable with the install script. For example, installing the current commit of this PR would be something like:
curl -sfL https://get.k3s.io | INSTALL_K3S_COMMIT=355eb1d7644bd6e0b41db2ba747a57be43a7cdf2 sh -

Alright. Ill try to get it going. :) I thought maybe an image with the k3s version would be available somewhere as well. Thanks @erikwilson

Alright. Ill try to get it going. :) I thought maybe an image with the k3s version would be available somewhere as well. Thanks @erikwilson

Yah, sorry we use the images for testing in CI but don't publish those until a release. If you are able to checkout this PR and run make hopefully that should produce a local image for you.
But we should probably ensure that both bare-metal upgrades and upgrades by adding new virtual nodes work as intended.

Yah, sorry we use the images for testing in CI but don't publish those until a release. If you are able to checkout this PR and run make hopefully that should produce a local image for you.
But we should probably ensure that both bare-metal upgrades and upgrades by adding new virtual nodes work as intended.

Yeah, problem with that is, the makefile seems to be linked to linux usage. At least, I dont get it to work on my mac. Do I do something wrong? @erikwilson

Yeah, problem with that is, the makefile seems to be linked to linux usage. At least, I dont get it to work on my mac. Do I do something wrong? @erikwilson

@SantoDE I don't think it can be built directly on a Mac, no. Most of us that have Macs do our development on a Linux VM.

@SantoDE I don't think it can be built directly on a Mac, no. Most of us that have Macs do our development on a Linux VM.

@erikwilson helped me out! Thanks for checking in @brandond

@erikwilson helped me out! Thanks for checking in @brandond

We were able to talk through Slack and get it to build, make on a Mac with docker will work @brandond , maybe not with the newer M1 tho.
Somewhere in the build process will be a message like Successfully tagged rancher/k3s:v1.20.0-k3s-355eb1d7-amd64

We were able to talk through Slack and get it to build, make on a Mac with docker will work @brandond , maybe not with the newer M1 tho.
Somewhere in the build process will be a message like Successfully tagged rancher/k3s:v1.20.0-k3s-355eb1d7-amd64

Thank you very much for this PR @c3y1huang ! A modified version of this was merged with #2910


fix jsx package index

Hi, thank you for the PR.
I'll check the compatibility with latest dgeni updates (it has been rewritten in TS) and get back to you.


Build version 4.0.4?

Hello, would you consider publishing a package for wxpython 4.0.4? 4.0.3 seems to have some nasty bugs that cause problems for some of my apps, and packages of previous releases are not available for Python 3.7, which I am using. I would very much appreciate your effort!

Done in #26

Awesome, thank you!


Cannot create a sitemap for www.forthea.com, my app just freezes

Do you want to request a feature or report a bug?
BUG
What is the current behavior?
I am building a small console Node app. I successfully managed to create sitemaps for several thousands websites using this package. However, when I try to use it for www.forthea.com my app just hangs forever (even when I use it inside a promise with a timeout timer to force it to stop and even despite its own built-in timeout value of 30000 ms). My app just freezes but does not crash and there is no any errors.
If the current behavior is a bug, please provide the steps to reproduce.
const sitemapGenerator = require('sitemap-generator');
const generator = sitemapGenerator('http://www.forthea.com', {
stripQuerystring: false
});
generator.start(); // Loops forever, no errors, no sitemap, even when used with a timer.
What is the expected behavior?
The package must be capable of building a sitemap for www.forthea.com (or at least generate some error).

Seems like the package blocks the main event loop altogether when parsing www.forthea.com so that even timers set via setTimeout stop working. I fixed my problem by running my sitemap generation code inside a separate child process and killing it after a predetermined amount of time, as I originally needed. This way it works alright and I can kill the child process even if it hangs.

that is weird, I've never experienced this infinite loop error. Are you setting the crawler to respect robots.txt? @Chamomile11