No suitable servers found (serverSelectionTryOnce set)

I am trying to connect to monogo db on localhost,but its giving me this error.

No suitable servers found (`serverSelectionTryOnce` set): [TLS handshake failed: error:00000000:lib(0)
:func(0):reason(0) calling ismaster on 'localhost:27017']
 at C:\Users\admin\Desktop\test\test\vendor\mongodb\mongodb\src\Database.php: 338
    334|      */
    335|     public function listCollections(array $options = [])
    336|     {
    337|         $operation = new ListCollections($this->databaseName, $options);
  > 338|         $server = $this->manager->selectServer(new ReadPreference(ReadPreference::RP_PRIMARY));
    339|
    340|         return $operation->execute($server);
    341|     }
    342|

  Exception trace:

  1   MongoDB\Driver\Manager::selectServer(Object(MongoDB\Driver\ReadPreference))
      C:\Users\admin\Desktop\test\test\vendor\mongodb\mongodb\src\Database.php : 338

  2   MongoDB\Database::listCollections()
      C:\Users\admin\Desktop\test\test\vendor\jenssegers\mongodb\src\Jenssegers\Mongodb\Schema\Builder.php : 44

  Please use the argument -v to see more details.

My settings are as follows for localhost :
'mongodb' => [
            'driver' => 'mongodb',
            'host' => 'localhost',
            'port'     => env('DB_MONGO_PORT', 27017),
            'database' => env('DB_MONGO_DATABASE'),
            'username' => env('DB_MONGO_USERNAME'),
            'password' => env('DB_MONGO_PASSWORD'),
        ],

I tried this with mongo alas with following settings
**SETTING 01 : **
'mongodb' => [
           'driver' => 'mongodb',
           'host' => [
               'example-shard-00-00-zhvkn.mongodb.net:27017',
               'example-shard-00-01-zhvkn.mongodb.net:27017',
               'example-shard-00-02-zhvkn.mongodb.net:27017'
           ],
           'database' => 'exampleDB',
           'username' => 'example',
           'password' => 'example',
           'options' => [
               'replicaSet' => 'example-shard-0',
               'ssl' => 'true',
               'authSource' => 'admin'
           ]
       ],

***SETTING 02 ***

 'mongodb' => [
            'driver' => 'mongodb',
            'dsn'=>'mongodb://username:password@host1,host2/database?ssl=true&replicaSet=replicaSet&authSource=admin',
            'database' => 'exampleDB',
        ],

Can anyone please guide me how can i fix this issue.
PS: i can access to these database with mongodb compass and can work with at ease so, my guessing is the database is working fine. its just the sttings or something.
Thanks

Did you solve this? I'm in the same stage.

I have a same problem, but it's only happen in Laravel 5.6, in 5.5 and lower, it's don't happen

Ok, for me, the solution was removing the user/pass:
  'username' => 'example',
  'password' => 'example',

It seems there's no need for it.

I use the second setting and don't work, I tried downgrade the mongodb composer lib, but only downgrade the Laravel and laravel-mongodb lib work to me.
I dump the laravel-mongodb lib to get who sended to mongodb lib and was correct.

@libasoles Hi can you please share your complete settings :))
I hope that is ok. I still could not find the solution

Same problem here trying to connect to AWS DocumentDB - I believe the problem is the driver can't verify the cert vs a known PEM.  I have been trying to use the 'driver_options' => [ 'context' => stream_context_create([     'ssl' => [ block but this causes further issues for me stating the context isn't valid, though it really does appear to be.  Anyone have any further luck?

Please see if this helps - if it does, please let me know / comment on the PR, would love to get it merged.
GH-1751


Added valid mountain array

Description
Added the solution to the leetcode problem valid mountain array.
Fixes #1011
Type of change

[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Documentation Update

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have created a helpful and easy to understand README.md
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works

@Nikhita28 add the main function

@Amit366 done, please check.


Disable YCM completions for Python only if kited is available

How difficult would this be to do?
See https://github.com/kiteco/vim-plugin/issues/256.

The plugin has a function which detects whether kited is available.
Currently it is only used by the code which updates the status line.
Would it would make sense for the plugin to deactivate itself completely if kited is unavailable?

The ideal behavior would be to disable completions until Kite becomes available, at which point we could deactivate YCM (and others) and enable completions.
Would this be difficult with the current architecture?

Shouldn't be too hard.  I'll work on it.

Done in #284.


Oops; flutter has exited unexpectedly.  flutter.gradle' line: 450

Flutter crash report; please file at https://github.com/flutter/flutter/issues.
command
flutter build bundle --suppress-analytics --target /Users/jingjinggu/develope/longzhu/flutter/LongzhuFlutterAndroid/longzhuflutter/lib/main.dart --preview-dart-2 --target-platform android-arm64 --depfile /Users/jingjinggu/develope/longzhu/flutter/LongzhuFlutterAndroid/longzhuflutter/.android/Flutter/build/intermediates/flutter/debug/snapshot_blob.bin.d --asset-dir /Users/jingjinggu/develope/longzhu/flutter/LongzhuFlutterAndroid/longzhuflutter/.android/Flutter/build/intermediates/flutter/debug/flutter_assets --debug
exception
FileSystemException: FileSystemException: Cannot open file, path = 'build/app.dill' (OS Error: No such file or directory, errno = 2)
#0      _File.open.<anonymous closure> (dart:io/file_impl.dart:368:9)
#1      _rootRunUnary (dart:async/zone.dart:1132:38)
#2      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#3      _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#4      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642:45)
#5      Future._propagateToListeners (dart:async/future_impl.dart:671:32)
#6      Future._completeWithValue (dart:async/future_impl.dart:486:5)
#7      Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:516:7)
#8      _rootRun (dart:async/zone.dart:1124:13)
#9      _CustomZone.run (dart:async/zone.dart:1021:19)
#10     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#11     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#12     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#13     _runPendingImmediateCallback (dart:isolate/runtime/libisolate_patch.dart:114:13)
#14     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:170:5)

flutter doctor
[✓] Flutter (Channel master, v0.5.9-pre.30, on Mac OS X 10.13.5 17F77, locale zh-Hans-CN)
    • Flutter version 0.5.9-pre.30 at /Users/jingjinggu/develope/flutter/flutter
    • Framework revision 33c4cd0f39 (20 hours ago), 2018-08-13 23:43:49 -0700
    • Engine revision e54bc4ea18
    • Dart version 2.0.0-dev.69.5.flutter-eab492385c

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.0)
    • Android SDK at /Users/jingjinggu/Library/Android/sdk
    • Android NDK at /Users/jingjinggu/Library/Android/sdk/ndk-bundle
    • Platform android-28, build-tools 28.0.0
    • ANDROID_HOME = /Users/jingjinggu/Library/Android/sdk
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
    • All Android licenses accepted.

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

[✗] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).

[!] VS Code (version 1.26.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected devices (1 available)
    • HUAWEI NXT AL10 • 5LM0216122011219 • android-arm64 • Android 7.0 (API 24)

! Doctor found issues in 2 categories.

The title of your issue mentions a different error message than the one in the body of the issue.
Can you please clarify? Can you please post the full error output of the error this issue is about?


NativeAOT and C/C++ wrapper

That seems to be possible. And it's awesome.

It's dynamically linked now. Should be statically

🥳

Codecov Report

Merging #349 (2979c9a) into master (f7b9f8c) will decrease coverage by 0.16%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #349      +/-   ##
==========================================
- Coverage   80.35%   80.18%   -0.17%
==========================================
  Files         143      145       +2
  Lines       10649    10669      +20
  Branches     1614     1614
==========================================
- Hits         8557     8555       -2
- Misses       1610     1631      +21
- Partials      482      483       +1

Impacted Files
Coverage Δ

Sources/AngouriMath/CSharpWorkarounds.cs
0.00% <0.00%> (ø)

Sources/AngouriMath/Exports.cs
0.00% <0.00%> (ø)

...ouriMath/Functions/ExpressionNumerical.Equality.cs
90.90% <0.00%> (-9.10%)
:arrow_down:

Continue to review full report at Codecov.

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


link rel="canonical" and meta property="og:*" values

Dear Sebastian Schürmanns,
the  as well as the  and  tags partly present incorrect information:
https://typemill.net/:

https://typemill.net/typemill/use-cases:

What image should be displayed by og:image?
Kind regards
Harald Jenny

Yes, thank you for reporting, I have to clean it up a little bit. The theme is very new, so not everything is polished, yet. og:image should display the hero image or, if hero is not set, the first image in the article, or, if no image is found, should not appear.

What about the logo image, wouldn't that also be an option as a last resort for the og:image?

yes, good idea to use the logo as last option!

Thanks looking forward to the next release of your very nice program :-).

published with version 1.4.0


Create a SimulationController

Create a SimulationController dash app with the following features

[x] Initialises as an empty figure.
[x] Has an add model method that sets the model to be simulated (for now overwrite any previous model)
[x] Generates sliders for all parameters of the model
[x] Solves the model live for slider values (for now only allow SingleOutput models)
[x] Has an add data method that shows the creates a scatter representation of the data
[ ] Has a method to set the simulation time range
[ ] Has a method that starts the app.
[ ] Potentially: Has a method that returns a static plotly.Figure of some slider configuration, such that simulation may be presented with nbviewer.

Possible extensions:

Allow multiple outputs
Allow simulation of multiple models
Allow marking of current simulation, i.e. create a permanent trace of the current simulation, so outputs of multiple simulations may be more easily compared.

Further extensions:
Carousel: https://romanonatacha.github.io/dash_trich_components/
Bootstrap: https://dash-bootstrap-components.opensource.faculty.ai/docs/

calling the add_model method multiple times will currently raise an error


hello_xr: Export built-in NativeActivity

If exported attribute is true, the app can be launched by other apps on latest Android platform.
See https://developer.android.com/guide/topics/manifest/activity-element.

Hi @rpavlik , could you help to review this PR? Thanks.

Thanks!


Move the data_provider_participation_signature field to Requisition.

This makes the data_provider_entries field of Measurement actually immutable as documented.

This is for #2.


Add URLs to Article Serializer

The article serializer should have fields for its own detail URL and the URL of its parent category (if it exists).

Split issue since category serializer hasn't even been created yet. Added that issue as #13.


Unable to build iOS and Android apps since RN0.72 (AppCenter & Monorepo)

Description
Before contacting AppCenter for this.
Since RN 0.72, can't build iOS app on AppCenter.
This error appears:
iOS :
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /Users/runner/work/_temp/ae1183b6-2a5e-47f4-95d8-f5efb12ffd28.sh
Found index.js for ReactNative index.
node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module '/Users/runner/work/1/s/packages/project1/node_modules/react-native/local-cli/cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v18.17.0
##[error]Bash exited with code '1'.

Android:
> Task :app:createBundleReleaseJsAndAssets
warning: the transform cache was reset.
                Welcome to Metro v0.76.7
              Fast - Scalable - Integrated

Error: Unable to resolve module react-native from /Users/runner/work/1/s/packages/project1/index.js: react-native could not be found within the project or in these directories:
  node_modules
  ../../node_modules
  ../../../../node_modules
> 1 | import { AppRegistry } from 'react-native';
    |                              ^
  2 |
  3 | import App from '@mobile/core';
  4 |
Error: Unable to resolve module react-native from /Users/runner/work/1/s/packages/project1/index.js: react-native could not be found within the project or in these directories:
  node_modules
  ../../node_modules
  ../../../../node_modules
> 1 | import { AppRegistry } from 'react-native';
    |                              ^
  2 |
  3 | import App from '@mobile/core';
  4 |
    at ModuleResolver.resolveDependency (/Users/runner/work/1/s/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:139:15)
    at DependencyGraph.resolveDependency (/Users/runner/work/1/s/node_modules/metro/src/node-haste/DependencyGraph.js:277:43)
    at Object.resolve (/Users/runner/work/1/s/node_modules/metro/src/lib/transformHelpers.js:169:21)
    at Graph._resolveDependencies (/Users/runner/work/1/s/node_modules/metro/src/DeltaBundler/Graph.js:473:35)
    at Graph._processModule (/Users/runner/work/1/s/node_modules/metro/src/DeltaBundler/Graph.js:261:38)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Graph._traverseDependenciesForSingleFile (/Users/runner/work/1/s/node_modules/metro/src/DeltaBundler/Graph.js:249:5)
    at async Promise.all (index 0)
    at async Graph.initialTraverseDependencies (/Users/runner/work/1/s/node_modules/metro/src/DeltaBundler/Graph.js:233:5)
    at async DeltaCalculator._getChangedDependencies (/Users/runner/work/1/s/node_modules/metro/src/DeltaBundler/DeltaCalculator.js:229:25)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:createBundleReleaseJsAndAssets'.
> Process 'command 'node'' finished with non-zero exit value 1

React Native Version
0.72.3
Output of npx react-native info
From AppCenter
System:
  OS: macOS 13.4
  CPU: (4) x64 Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz
  Memory: 7.77 GB / 14.00 GB
  Shell:
    version: 3.2.57
    path: /bin/bash
Binaries:
  Node:
    version: 18.17.0
    path: ~/.nvm/versions/node/v18.17.0/bin/node
  Yarn:
    version: 3.6.1
    path: ~/.yarn/bin/yarn
  npm:
    version: 9.2.0
    path: ~/.nvm/versions/node/v18.17.0/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.12.1
    path: /usr/local/lib/ruby/gems/3.0.0/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 22.2
      - iOS 16.2
      - macOS 13.1
      - tvOS 16.1
      - watchOS 9.1
  Android SDK:
    API Levels:
      - "27"
      - "28"
      - "29"
      - "30"
      - "31"
      - "32"
      - "33"
      - "33"
      - "33"
      - "34"
    Build Tools:
      - 27.0.0
      - 27.0.1
      - 27.0.2
      - 27.0.3
      - 28.0.0
      - 28.0.1
      - 28.0.2
      - 28.0.3
      - 29.0.0
      - 29.0.1
      - 29.0.2
      - 29.0.3
      - 30.0.0
      - 30.0.1
      - 30.0.2
      - 30.0.3
      - 31.0.0
      - 32.0.0
      - 33.0.0
      - 33.0.1
      - 33.0.2
      - 34.0.0
    Android NDK: 25.2.9519653
IDEs:
  Android Studio: Not Found
  Xcode:
    version: 14.2/14C18
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.7
    path: /usr/bin/javac
  Ruby:
    version: 3.0.6
    path<EMAIL_ADDRESS>npmPackages:
  "@react-native-community/cli": Not Found
  react: Not Found
  react-native: Not Found
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: Not found
  newArchEnabled: Not found
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

Steps to reproduce

Init a monorepo
Init a project1 inside packages folder
Try to build iOS or Android app on AppCenter

Snack, screenshot, or link to a repository
https://github.com/TomCorvus/RNMonorepo

Try to build iOS or Android app on AppCenter

Have you reported this to AppCenter?

Hi @cortinico, thanks for your reply.
Yes, I discuss with AppCenter support since 2 weeks but for now, they don't find the problem.
There are quite a few changes with RN0.72 including the need to use NodeJS 18.
Their backend team takes over.
It was mainly to know if anyone had an idea about this problem. It seems there were similar issues in the past.

Great thanks for the context

It was mainly to know if anyone had an idea about this problem. It seems there were similar issues in the past.

I'll close this for now as this seems specific to AppCenter.
If someone has similar issue can comment over here.
Also I would suggest you to open a question on StackOverflow

@TomCorvus any update on this issue?
I am facing the same problem.

@fxamauri No, not now, I'm still in contact with AppCenter team to fix the problem. I'll tell you if I have news.


BigTable connector

Describe the solution you'd like
A database connector for BigTable
Describe alternatives you've considered
N/A - no connector exists

Hi @joshliberty. Thank you for opening the issue. I am looking into the best way to reflect the BigTable assets in OpenMetadata's data model. Can you provide a sample data set that demonstrates how you use BigTable?


VOTE: enable Tracking Protection

see #102 for the discussion, and make comments there, so its in one place.
This issue is just so I can get a handle on what people want. I will make a decision on when I get some reasonable numbers of votes.
Vote by adding a reaction to this post
Proposal
In this user.js, the master branch, (we will have a lite/relaxed branch in future), to enable TP (tracking protection).
Notes:

We recommend in numerous places that we expect users to be using uBo, which has advantages (default all windows, more comprehensive options). Despite this, as a FALLBACK for users who do not read (and one of our/my aims is to make this more accessible to everyone) and for those who do not use uBo, we should be RESPONSIBLE and enable TP (we're already responsible eg warnings etc, but we should cover as many case scenarios as possible)
TP (at defaults) is only used in PB mode, whereas uBo is used by default on all windows. We should really MAKE people use uBo - right? - which we can still do with our warnings etc, but some people never read or are afraid of uBo etc.
TP uses the same list as uBo a list (note: there are two lists, simple+strict, default is simple and we would leave it at that but include the pref for info/enforcing strict)

UPDATE: uBo uses multiple lists in default mode and covers almost everything TP does (and more), but there are some items only TP does (rare). No-one has done a comparison.

TP (at defaults) and uBo do not clash in any way
There are no issues over TP re security, privacy, or hourly connections for checks, or downloads - but for uBo users, it's redundant, that's all. [Edit: there are no issues over fingerprinting thru HSTS]
The make up of what settings we use are irrelevant - this vote is about enabling it (either defaults, or enforcing to normal windows is irrelevant at this stage)
We could leave this for a lite/relaxed branch, which will happen

That's about it really. Either turn TP on in this branch (which is our default branch), or wait until a lite branch.
Note: this would require approx 4 prefs to be made inactive (and reset in about:config), plus one new pref (inactive), and some changes to the wiki and the user.js's readme, and the 0400 section header description. That's about it.
:+1:  =  don't disable TP (in other words end users are at default, prefs become inactive)
:-1:  =  hell no, leave TP disabled by the user.js

If enabled, leave it on the relaxed branch only.
Reason: Anti-fingerprinting.

We have uBlock Origin , uMatrix and soon full-fledged containers with "Always open in this conteiner".

@Thorin-Oakenpants I think the issue at hand that needs resolving is bigger than Tracking Protection.  The underlying issue you need to decide (or have the community decide if you prefer) is whether you consider uBO is an officially required addition to this user.js (rather than just a "nice to have".  If this projects considers uBO a baseline requirement, then there is no need to invest any time putting up safeguard for people who don't have uBO.
The TP decision is just a manifestation of the issue, but there could be others in the future.

I totally get that - i.e "officially required" - but to me it's not - 95% of the user.js does not require it and It is extremely easy to comment out or remove section 0400. It just sooooo easy. It's more a "uBo is officially required if you use 0400 section".
[If it stays as status quo] the user.js readme can be made even clearer - I don't even say uBo in that part (its explained slightly better in section 0400 itself). Both could do with better wording. I'm more concerned about SB being off than TP. Other than that I can see no other downsides.
Maybe I should also enforce app+extension update checks (checks only).
I will commit some changes in the meantime.

OK, I made some changes: readme.md, user.js, and wiki implementation page. uBo was never meant to be a nice to have (I didn't think it came across as that, but I am but one person, and probably tunnel blind/too knowledgable on the matter), it was always meant to be required (or something similar, IDK why I used that as nothing compares to uBo) if section 0400 was used. This is for THIS branch and only for this section. It's not intrinsic to the entire js. Hopefully this is now super clear.
@RoxKilly , thanks. Without these sorts of discussions, improvements wouldn't be made. Whatever we decide to do re TP (and there is SB, update checking to look at perhaps), the wording has certainly been made far far better. Exactly the wording we need in our "hardened" branch going forward (the master branch is the medium version). So thanks :)
When we get a lite branch going, "newbies" will be highly encourage to start with that, which should help mitigate any damage should someone refuse to comprehend/read (assuming Tp or SB etc stay the same as is)
RoxKilly => :beers: :heart: :beer:

I prefer it all disabled personally. uBlock Origin does a splendid job of handling tracking with on-the-fly control as well. There's too much of a grey area involving the companies and services that are supposed to prevent tracking. While I'm not 100% convinced that they are collecting and selling the very info that they protect us from I am certain I don't 100% trust any of them either.

I fail to see how using a local list (provided/updated from mozilla) is used against you for tracking. Clearly uBo is superior, the issue is actually about making the prefs inactive as a fallback for people who can't or don't read our warnings (I'm more concerned about SB for those people) - the other side to that is there are no clashes with uBo, so why not?. Looks like so far about a 2 to 1 in favor of, as RoxyKilly puts it, making uBo a required add-on for this branch and keeping the status quo.

Note: edited this bullet point from first post

TP uses the same list as uBo a list (note: there are two lists, simple+strict, default is simple and we would leave it at that but include the pref for info/enforcing strict)

UPDATE: uBo uses multiple lists in default mode and covers almost everything TP does (and more), but there are some items only TP does (rare). No-one has done a comparison.

uBlock manages more lists that can be activated or not.
https://github.com/chrisaljoudi/uBlock/issues/1406
https://github.com/pyllyukko/user.js/issues/16

Question.
Since TP is disabled by master switches:
privacy.trackingprotection.enabled
privacy.trackingprotection.pbmode.enabled
Is there really need to clear the following:
browser.safebrowsing.provider.mozilla.gethashURL
browser.safebrowsing.provider.mozilla.updateURL
?

 browser.safebrowsing.provider.mozilla.updateURL

Also used by the flash blocking lists.

 browser.safebrowsing.provider.mozilla.gethashURL

Not currently used by anything. Also, if you disable updates via updateURL, you will never get a gethash request.
So even if we were doing gethash calls, you wouldn't see any if the other pref is cleared.

Thank you @fmarier. Is browser.safebrowsing.provider.mozilla.gethashURL deprecated or will be used in the future?

It will be used in the future if we start serving lists that contain hash prefixes (they end in -shavar) instead of lists of hashes (which end in -digest256).

Just a heads up, I am going to enable TP and SB in all branches (i.e by making the prefs inactive, note I will leave the google real-time binary checking blocks in place). If you don't like it, feel free to modify YOUR own user.js (I will keep the info in the js, and we will keep it up to date for those who want to disable them). Essentially, RoxKilly and recent events have reinforced the fact that these CAN and DO increase privacy / security (over just uBo) - in fact, they cannot lessen it by their very nature. You cannot argue against that. Cogito ergo sum, they will be made inactive.

TP will be inactive so assume user is on defaults. TP default is PB Mode only (the user.js does not start in PB mode). TP default is simple list. There are zero issues over privacy, security, and FP'ing. Checking every 60 minutes - big deal. I feel a lot of people got the wrong idea about the "quiet" part of keeping FF quiet (from the early ghacks days, and from Wilders Security thread). There are items in TP that are not covered by default in uBo. Having TP on can only ever INCREASE privacy, it cannot lessen it. And for the ignorant who can't read (i.e they do not have uBo as we state a hundred times), then it's a fallback for them. But TP is MINOR, it's a tiny wee thing hardly worth an argument. :fist_oncoming:

SB - now THIS is worth an argument. SB is important. Tracking is not malicious per se, it's just trying to monetize you. But SB protects against a raft of nasties (ask Francois for details). What has pushed me over the edge, off the fence, and into the camp of turning it on (thru inactive prefs disabling it) is the gmail oAuth hack thingie. SB pushed a fix within 60 minutes. I do not care for any arguments that you could do this or that or wouldn't fall for it, blah blah. SB can only INCREASE security, not decrease it.

I'm not pissing around with either TP or SB on - it's the whole thing or nothing at all.

There is no reason why all the "USE UBO" warnings can't stay in the wiki, readme, user.js header and section description - we want to encourage people to use uBo etc - I will tweak the wording a smidgen.

It's getting messy dealing with all the URLs (shared between TP, SB, Flash and more, not to mention all the changes - I blame Francois) and quite frankly, blarg! I would be quite happy not dealing with them but (see next point)

We will still keep the info up to date in the user,js, and YOUR user.js, do what you like with it.

TP/SB and uBo do not "clash", they easily work together

In hindsight, this would not affect 12bytes config - TP and SB can only enhance, not lessen

So yes, uBo allows more lists, is customizable, etc (and we will PUSH the message on using it). And people like us who use uBo and NS and uM and other things, who understand web tech better than most, sure, do what we like - we have out own fallbacks like default-deny JS etc. But TP at defaults is simple list and PB Mode only - hardly a big deal. And SB, like TP does with privacy, can only ENHANCE security (plus you can allow an exception). Therefore, disabling them will be made inactive in the user.js.
Feel free to vent a little, but do it somewhere else if you're going to be abusive
NOTE: If you can prove that TP lessens privacy or SB lessens security, then contact Francois. Don't give me arguments that SB lessens privacy (google real time binary check), I did not ask that. I said TP = privacy and SB = security. Anyway, I will leave real time binary checks enabled, Francois will sleep soundly I am sure.
PS: Give me all the thumbs down you like. It won't change anything. Also, feel free to give me a hooray or thumbs up. Don't care :)

Just for to be sure.
TP will be PB enabled only, except when manually set the privacy.trackingprotection.enabled = true ?
SB will be non-PB and PB enabled?
I don't ask for changes, I am just asking for my personal setting: is there any real reason for PB surfing and not to enable TP on non-PB browsing?
Otherwise, bravo, you are my Queen and lon live the Queen. :)
Cheers

@crssi section 0400 TP+SB prefs will be made inactive .. i.e with // in front of them. The settings and descriptions will stay the same - i.e if you make them active, then their behavior will be to disable TP+SB.
So an end-user applying the user,.js will have whatever settings they set from the UI options - probably at Firefox defaults. TP default is PB Mode only. TP default is simple list (rather than strict). SB applies to all windows (normal & PB mode).
All the information is still in the user.js - so an end user can still change the setting to enforce TB on all windows. I will also add the pref for which list to use (strict vs simple).

OK. What in your short opinion (not related to user.js): to enable TP also in non-PB or not?
I am asking because I don't use PB. It has too many cons for me. ;)
Thanky you

I have weighed that up against the expertise of the voters

no need to insult us, thx
@crssi wrote:

I don't use PB. It has too many cons for me. ;)

Why did you initially vote against enabling TP and are now jumping ship? Just curious
@fmarier what stops the big G from creating something like a rainbow table with SB hashes for every site they crawl and use it to easily know exactly which sites someone just visited when they send the hash to google for SB lookup?

no need to insult us, thx

Umm, that was not the intent. We (with some expertise/knowledge) probably find TP/SB fairly minor. It's a small sample size of votes, and all of us here are not ignorant of the issues or mechanisms that we can use to protect any tracking and malware and phishing and so on. MOST people don't have that expertise. So I would have expected votes against TP in this regard. If anything, it was a compliment.

what stops the big G from creating something like a rainbow table...

The lists are LOCAL .. everyone gets the same list. Google doesn't have a clue what got blocked in your browser from these lists. The exception is binaries not in the local list which is checked in real time. Unless I misunderstood what you are talking about

Whenever you visit a "bad" page (thepiratebay for example, at least it used to be according to G) or a page that shares the same partial 32-bit hash as a bad page, google is contacted and will know approximately which pages you could have visited. If that was not a problem how do you explain this:

When requesting complete hashes for a 32-bit prefix, Firefox throws in a number of extra "noise" entries to obfuscate the original URL further.

The following suggests that FF only sends the 32-bit hash and retrieves all full hashes that start with the same hash. But afaik that's not the case or there would be no reason to "add noise".

In order resolve such conflicts, Firefox requests from the Safe Browsing server (browser.safebrowsing.provider.mozilla.gethashURL) all of the hashes that start with the affected 32-bit prefix and adds these full-length hashes to its local database.

And btw the URL also seems to be incorrect because @fmarier explicitly told us that this pref is not used atm. What it really seems to do is send the full url together with some "noise" urls. And you think G won't know which of those urls even match the hash and which ones are "noise"?
Maybe it's all completely safe and fine but I don't know that it really is and would just like to understand and confirm that it is.
And what about this:

Google explicitly states that the information collected as part of operating the Safe Browsing service "is only used to flag malicious activity and is never used anywhere else at Google" and that "Safe Browsing requests won't be associated with your Google Account".

hmmm, why the need to say something like that? "information collected" - yeah G is totally not interested in tracking users all across the internet - I totally take their word for it.

https://developers.google.com/safe-browsing/v4/lists

When using the Lookup API to check URLs, the client sends the actual URL in the request and Safe Browsing server converts the URL to a hash before performing the check

And btw the URL also seems to be incorrect because @fmarier explicitly told us that this pref is not used.

You're right, the pref name was wrong in my blog post. I've updated it. Thanks!

What it really seems to do is send the full url together with some "noise" urls. And you think G won't know which of those urls even match the hash and which ones are "noise"?

The input to the API for getting the full hashes is a list of prefixes. We never send the full hash. Also, the noise entries are real prefixes that are part of the list.

When using the Lookup API to check URLs, the client sends the actual URL in the request and Safe Browsing server converts the URL to a hash before performing the check

We're not using the Lookup API, we're using the Update API. Also, we're not yet using version 4 of the API, we're still on version 2.2 until Firefox 57 or 58.

@fmarier wrote

browser.safebrowsing.provider.mozilla.gethashURL
Not currently used by anything.

https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/

In order resolve such conflicts, Firefox requests from the Safe Browsing server (**browser.safebrowsing.provider.mozilla.gethashURL**) all of the hashes that start with the affected 32-bit prefix and adds these full-length hashes to its local database

Thx! that clarifies a few things.
Are all full length hashes from the response stored, including for the "noise"?
I hope the "real" hash is not always the 3rd from the top or so ;)

@Thorin-Oakenpants

Google doesn't have a clue what got blocked in your browser from these lists.

But here it says that

In addition, a very condensed version of the page's content may be sent to compare similarities between authentic and forged pages.

But here it says that

In addition, a very condensed version of the page's content may be sent to compare similarities between authentic and forged pages.

That's an ancient page talking about a long-gone version of Safe Browsing, back when it was a Firefox extension, not built into the browser.

@earthlng, I never hide that I am for enabling TP and SB (without G of course) and I waited a long time before voting against TP for one simple reason, this was about hardened version and relaxing setting would fit into light version.
Since I am very sure that @Thorin-Oakenpants invested a lot of time into investigating and thinking, and I do not question about his/hers expertise (I also do not question in yours and I really greatly admire you both and also others here), I changed the vote after @Thorin-Oakenpants decides to enable TP and SB (without G).
Anyway, whatever decision at the end I will take it gratefully with open hands, but will still have enabled TP and SB (without G) in my version of user.js.
But, please, do not fight too much (a little is always good), since you two are really a perfect team and you do complement each other perfectly.
Damn, expressing my self is hard and I hope you understood my answer in a good way, since it meant to be in a good way.

@Thorin-Oakenpants  thanks for taking the time to explain your decision so thoroughly. I don't think you need to be defensive about it though.

@crssi wrote:

OK. What in short is your opinion (not related to user.js): to enable TP also in non-PB or not?

I have Tracking Protection ON for all browsing modes (easy list) because I just don't see any downside to using it. It is only triggered if uBlock Origin fails to catch a tracker so it doesn't replace uBO in any way, and it has yet to break a site in a way I've noticed.

What exact entry do I need to reset to get these back? Been vacant for a very long time.

What exact entry do I need to reset to get these back? Been vacant for a very long time.

Probably these:

urlclassifier.trackingTable
urlclassifier.trackingWhitelistTable
browser.safebrowsing.provider.mozilla.lists.*

Thank you. All of my entries had been changed to blank values, resetting them did repopulate the Block Lists. Again, thanks very much.

Just to clarify: the user.js does not contain any settings for browser.safebrowsing.provider.mozilla.lists* - that would have had to have been done independently by an end user. The two lists are still shown in a vanilla FF with the curernt master user.js applied

@fmarier

You're right, the pref name was wrong in my blog post. I've updated it. Thanks!

I'm lost. Can you please tell me WHAT pref you are talking about. And do I now have incorrect info in the user.js - because the whole 0400 section was initially based on your blog post.
0410c = google
0410d = mozilla
^^ is the notation/description for these still correct? Does killing the google URLs negate the effectiveness of the mozilla URLs (since they can no longer be updated via google's master list?)
What is the diff in usage between mozilla URLs and google URLs as per code below?
/* 0410c: disable Google safebrowsing downloads, updates ***/
user_pref("browser.safebrowsing.provider.google.updateURL", ""); // update google lists
user_pref("browser.safebrowsing.provider.google.gethashURL", ""); // list hash check
user_pref("browser.safebrowsing.provider.google4.updateURL", ""); // (FF50+)
user_pref("browser.safebrowsing.provider.google4.gethashURL", ""); // (FF50+)
/* 0410d: disable Mozilla safebrowsing downloads, updates
 * [NOTE] These two prefs are also used for Tracking Protection (see 0420) ***/
user_pref("browser.safebrowsing.provider.mozilla.gethashURL", ""); // resolves hash conflicts
user_pref("browser.safebrowsing.provider.mozilla.updateURL", ""); // update FF lists

@fmarier
/* 0410a: disable "Block dangerous and deceptive content" (under Options>Security)
 * Until FF48 this was titled "Block reported web forgeries"
 * It covers deceptive sites such as phishing and social engineering ***/
   // user_pref("browser.safebrowsing.malware.enabled", false);
   // user_pref("browser.safebrowsing.phishing.enabled", false); // (FF50+)

Both these prefs must be true for the single checkbox in Options>Security to be ticked. Why are there two prefs for a single option?

@fmarier browser.safebrowsing.provider.google4.gethashURL (FF53) defaults to a blank string but browser.safebrowsing.provider.google4.updateURL does not. Is this the v4 Update API you're talking about? Both prefs were introduced in FF50.
Will the google.* be eventually replaced by the google4.* ?
/* 0410c: disable Google safebrowsing downloads, updates ***/
   // user_pref("browser.safebrowsing.provider.google.updateURL", ""); // update google lists
   // user_pref("browser.safebrowsing.provider.google.gethashURL", ""); // list hash check
   // user_pref("browser.safebrowsing.provider.google4.updateURL", ""); // (FF50+)
   // user_pref("browser.safebrowsing.provider.google4.gethashURL", ""); // (FF50+)

@RoxKilly

It is only triggered if uBlock Origin fails to catch a tracker so it doesn't replace uBO in any way, and it has yet to break a site in a way I've noticed

Isn't it oposite, the TP within FF acts first and then uBO?

@crssi - order is irrelevant if it exists in one but not the other

@Thorin-Oakenpants - I am aware of that, but what when it exists in both?

I am aware of that, but what when it exists in both?

Who cares? It's blocked

@fmarier Now my FF updates TP+SB, but comparing a nilla (and updated TP/SB) FF to mine, I notice I have these 15 persistent (they do not vanish on close) "cache" entries which the nilla FF never produces. Note I have sorted by date, and these "cache" items haven;t been updated since Nov-2016 / Jan-2017. Are these left-overs? [Note: I use a portable FF, so the update/unpacker from portableapps.com might not be cleaning up]

PS: The bottom un-highlighted 8 items that are still dated 19-11-2016, I compared their hashes to those in a nilla FF, the same.

@crssi wrote:

Isn't it oposite, the TP within FF acts first and then uBO?

This is definitely not the case. It's easy to check though.

Start a Private Browsing session
Disable uBO
Go to nytimes.com and you will see a Tracking Protection alert.
Exit browser and start a regular session with uBO enabled
Go back to nytimes.com and you will not see a Tracking Protection alert b/c uBO caught the trackers first.

Alternatively, you could look at this comment from  one of the original authors of TP:

[AdBlock Plus] and similar generally use nsIContentPolicy.shouldLoad to stop resources from loading. These content policy checks happen before the network channel is created, and before tracking protection checks. If you run ABP and tracking protection, it just means that ABP will most likely prevent many resources from loading before tracking protection sees them

Thank you @RoxKilly

I notice I have these 15 persistent (they do not vanish on close) "cache" entries which the nilla FF never produces.

The only leftover files are the test-forbid-simple.* ones. That's an old test list that's been removed from Firefox. If you delete it, it shouldn't come back. The reason for the old timestamps is that some of these lists change very infrequently (especially the test lists).
If you want to clean up old files, you can also just delete that Safe Browsing cache directory and restart your browser. The lists that are needed will be re-downloaded within 5 minutes of startup if they're not available on disk.

You're right, the pref name was wrong in my blog post. I've updated it. Thanks!
I'm lost. Can you please tell me WHAT pref you are talking about. And do I now have incorrect info in the user.js - because the whole 0400 section was initially based on your blog post.

My blog post was incorrectly referred to browser.safebrowsing.provider.mozilla.gethashurl  instead of browser.safebrowsing.provider.google.gethashurl when talking about Safe Browsing lists (from Google).

Does killing the google URLs negate the effectiveness of the mozilla URLs (since they can no longer be updated via google's master list?)
What is the diff in usage between mozilla URLs and google URLs as per code below?

The browser.safebrowsing.provider.mozilla.* prefs are only for the Mozilla lists (TP and flash blocking). The browser.safebrowsing.provider.google.* and browser.safebrowsing.provider.google4.* prefs are only for the Google Safe Browsing lists.
So if someone wants to disable Safe Browsing only, they shouldn't touch the mozilla prefs. Similarly, if someone only wants to disable TP, they shouldn't touch the google prefs.

browser.safebrowsing.provider.google4.gethashURL (FF53) defaults to a blank string but browser.safebrowsing.provider.google4.updateURL does not. Is this the v4 Update API you're
talking about? Both prefs were introduced in FF50.

Yes, we've never used the Lookup API and never will. That's true both on v2.2 and v4.

Will the google.* be eventually replaced by the google4.* ?

Yes, we're aiming to move from google (version 2.2 of the Safe Browsing API) to google4 (version 4 of the API) in the 57/58 timeframe. The details are on https://wiki.mozilla.org/Security/Safe_Browsing/V4_Implementation.

// user_pref("browser.safebrowsing.malware.enabled", false);
// user_pref("browser.safebrowsing.phishing.enabled", false); // (FF50+)

Both these prefs must be true for the single checkbox in Options>Security to be ticked. Why are there two prefs for a single option?

The two prefs control two different things (malware v. phishing). We have the ability to control both independently but we don't think it's worth the space in the UI, so we leave it in about:config for our power users.

@fmarier
I wondered about that, clearing the files. Deleted the lot, repopulated after 20 minutes .. zilla ones immediately, google ones 20 minutes later. Now I have 40 items, not 53 - cheers.
See commit above (and subsequent one) - fixed up that misconception about sharing urls between TP+Flash vs SB. Always thought that was strange, certainly made it messy to document.

0410's = google + SB only
0420's = mozilla + TP+Flash only

Much cleaner. Thanks for clearing that up.

@fmarier - are there any plans for SB to migrate from G to shavar Mozilla?

@Thorin-Oakenpants - just thinking out loud, not demandig or whining:
Some are really unhappy for the latest changes.
What about to split now into "lite" version and leave this one still "hard"?
It will please all audience and push-up morale.
It doesn't matter for me, since I am just fine to do some diffs for myself and I am not selfish.
The version I am using I do consider "light" and there are only about 20 changes to yours.
Hmmm... this might be for a new topic?
Love you all

are there any plans for SB to migrate from G to shavar Mozilla?

No plans. It's an incredibly expensive service to run, both from a network traffic point and list curation point of view. Given that the service is quite good, there are better uses of our money and engineers (e.g. working with Tor) IMHO.

@crssi "Some are really unhappy for the latest changes" - you mean making TP+SB disabling=> inactive. Well, a sample size of 13 votes from regulars and contributors has given some indication. I am aware of this. There is also the wider community and making this more accessible (to less-techy less-firefoxy people). It's not as if the options to do it have been removed.
As far as I am concerned, essentially leaving TP+SB alone (i.e most prefs to disable them are inactive) is hardening. (Already I have had one instance of TP blocking something that uBo did not.)
A lite version would not reverse this. "Lite" or "relaxed" in my definition means we only change (by commenting out) those prefs which cause some level of breakage - so 99% of users can grab the "lite" branch and never have a problem.
An "hardened" version would not reverse this either. It depends on your definition of "hard". To me it means breakage be damned. But it also means more clashes with security vs privacy.
--
Yes, this is best left for another topic. I would like to do these lite/hardened branches soon (before FF57 lands). The more we improve and refine the master branch, the less maintenance later. Not sure about a "hardened" version being necessary - the master branch pretty much there - might be easier for a "hardened" branch to simply be a sticky FYI of 10 prefs or so to flip.

FYI: pyllyukko's gone relaxed-branch.

^^ hmm: this one bothers me:
IndexedDB could be used for tracking purposes, but is required for some add-ons to work (notably uBlock), so is left enabled

It has been resolved.


test: Add tests for case sensitivity

This also includes changes to existing tests to deal with case-sensitivity issues that were revealed by temporarily hard-wiring PersonFactory to use an upper-case or mixed-case email address.
This testing was done while researching  #5929 and #6057. This testing didn't result in code changes outside of the test code, so it's not imperative that it be merged.

Closing this as OBE. We can come back to it as part of a future cleanup effort.


There seems to be no way to correctly generate a Skia.IImage object from a Uint8Array

Hi,
I'm trying to take an image Uint8Array and create a Skia.IImage from it using Skia.MakeImageFromEncoded() but my only options right now are Skia.Data.fromBytes(), Skia.Data.fromBase64(), and Skia.Data.fromURI().
It would be useful if I could take an existing Skia.IImage and overwrite the ArrayBuffer with new Uint8Array data.
A possible implementation could be like IImage.setBytes() much like IImage.fromBytes().

That won’t work :) it does not take pixels as it’s data - it takes a valid image with header, compressed pixels etc - in the format expected for the different file formats for images.
As an example, copy some valid data from this page: https://png-pixel.com/ - and see that it should work as expected.
closing this issue now - but feel free to add any comments you have.

One thing we could do is to add Uint8Array support for Data and add support for MakePicture as well as drawPicture. There are also encoding methods that may be available.
Could you tell us more about your use case? Where would be the picture data coming from? What kind of pictures are you trying to generate?

I create a PR to add support for creating Data from Uint8[] but as @chrfalch mentioned, we would like to understand where the data is coming from and how it is encoded. It sounds like you may want to draw an image from a pixel map?

Here is an example that might be relevant: https://fiddle.skia.org/c/@gpu8888diff

Here is an example that might be relevant: https://fiddle.skia.org/c/@gpu8888diff

Could you tell us more about your use case? Where would be the picture data coming from? What kind of images are you trying to generate?

Sure. We're actively taking image data from our offscreen surface as an uint8array so then can then it can be passed off to a neural network. After processing this results in a uint8array which needs to be merged back to the offscreen surface with any new image data it may have.
The 2x2 rgba example was just that, our production use is ~500x500 pixels in size.

The API that might be the best one for this would be the MakeImage (from bytes/pixels).
I think this is on our list to implement, we haven't just got around to do it yet. I'll change the title and tag on the issue for reference.

@Lemon-King in #203, we added support for creating SkData from uint8array and we added support fit MakeImage to get an Image from pixel data. Is that something you could test on your side? Would that fit your usecase?


Use common staged manager

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/hold

should not br merged before 21th september

/unhold


Patch around pandas ArrowStringArray pickling

The (experimental) pandas string[pyarrow] dtype has some major
performance benefits that we'd like to experiment with in dask. However,
currently pyarrow.StringArray objects have a bug in their pickle
implementation where a small slice of the array still serializes the
full (potentially very large) backing buffers (see
https://issues.apache.org/jira/browse/ARROW-10739). Hopefully this is
fixed upstream in pyarrow at some point, but for now we patch around it
by overriding the pickling implementation for ArrowStringArray in
pandas. This implementation is efficient, resulting in zero-copy
serialization in most cases.
There is still more work to do to fully support the string[pyarrow]
dtype, but I think this PR can go in as is for now.
Part of #8842.

cc @jorisvandenbossche - would it be worthwhile to upstream this patch to pandas, or should the real fix come at the pyarrow level? Either way we'll likely want to keep this in dask for a bit for backwards compatibility with older pandas/pyarrow,

Is there Dask user-code that this PR now enables? If so, can we add some corresponding tests?

There is not.


Generator output does not use data copies

Similarly to #128 , the very same problem holds for BeamformerTime and probably many other classes.
Using data copies as possible results in severe runtime and memory overhead for some of the classes (e.g. BeamformerTime). One solution would be to prohibit or at least discourage data consumers from converting the generator to a list without.

mentioned in commit 7d1cdcc3f452c660931c248360afc24044c69e69


get_coordinates() returns None

Hi, I have an issue when trying to use get_coordinate() as it returns None for some of the set of points that I use. To reproduce the problem, here is the code that I use
points = [(3.45, 3.66), (6.0, 4.54), (7.82, 5.35), (5.65, 3.09), (1.99, 4.66)]
The_grid = Polygon([
    (0, 0),
    (0, 6),
    (9, 0),
    (9, 6)
])
v = Voronoi(The_grid)
v.create_diagram(points=points, vis_steps=False, verbose=False, vis_result=True, vis_tree=True)
points = v.points
points[2].get_coordinates()

I don't understand why the first_edge attribute present a Nonetype object in next.
I am trying to get all the vertices for each polygon formed by the Voronoi tesselation
Thank you for your help.

Thank you very much for reporting this @alexdiab! Using your case, I was able to determine the problem. I added your case as a unit test to prevent future mistakes.
What went wrong?
During clipping, some of the edges fall outside of the bounding box. These need to be deleted, and the pointers need to be updated. It turns out that during this update process, some of the center points ended up pointing to the edges of other center points.


fix(meta): rename --license-key-file to --license-key-path

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
The new argument introduced in https://github.com/risingwavelabs/risingwave/pull/18768 was mistakenly named --license-key-file, while the env var and internal names are license_key_path. This PR unifies the naming.
See also:

https://github.com/risingwavelabs/risingwave/pull/18768#discussion_r1794983086
https://github.com/risingwavelabs/risingwave-operator/pull/732

Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#18838  👈
#18823
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @BugenZhao and the rest of your teammates on  Graphite

Merge activity

Oct 11, 12:47 AM EDT: A user started a stack merge that includes this pull request via Graphite.


Non-rectangular Diagram

Thank you for making this library!
Currently, the user can set the width and height of the diagram, forming a rectangular frame that acts as the outer boundary. I'm looking to use a Perlin Noise Loop (or any non-rectangular shape) to act as this outer boundary instead. Do you have any insights into how to bound your diagram in that fashion? This feature may not have justification to be added to the base library.

I would say the best way would be to use the non-rectangular shape you generate just as an alpha mask on top of the rectangular voronoi diagram produced by the library (https://p5js.org/reference/#/p5.Image/mask). For the dimensions of the rectangular background diagram you can calculate the bounding box of your shape and use its width and height.
Something like this (simple example without using bounding box):
Base diagram

Diagram with shape mask

Diagram cutout of shape

As for specifically placing voronoi points inside your shape your best bet would be to triangulate your shape (https://en.wikipedia.org/wiki/Polygon_triangulation) and then pick a random point inside a random triangle (https://stackoverflow.com/questions/19654251/random-point-inside-triangle-inside-java). Keep in mind for proper distribution of points it is important to consider the area of each triangle on selection.
Hope that helps.

I appreciate the quick reply! Thank you. This should work well within my application. I will close this issue and post a follow up reply with a code example once I work through it for anyone once who is interested.


Mocha killed

Prerequisites

[x] Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
[x] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend avoiding the use of globally installed Mocha.

Description
After deleting node_modules and re-installing mocha breaks and is killed every time it's run.
Steps to Reproduce
When I use the command node_modules/mocha/bin/mocha I get the output
[1]    22568 killed     node_modules/mocha/bin/mocha
or
killed: 9

Expected behavior: Start mocha command and start test
Actual behavior: mocha is killed and ends the test
Reproduces how often: 100%
Versions

The output of mocha --version and node node_modules/.bin/mocha --version: 5.0.5 but also updated to 5.2.0
The output of node --version: 8.11.0
The version and architecture of your operating system:
Your shell (bash, zsh, PowerShell, cmd, etc.): zsh
Your browser and version (if running browser tests): chrome 65 (latest)
Any other third party Mocha related modules (with versions):
The code transpiler being used: babel

Additional Information
The issue was removed when downgraded to mocha 4.0.1

Two thoughts you may want to try... Neither fixes your issue, but may provide some clues.
$ NODE_DEBUG='*' node_modules/mocha/bin/mocha script.js

$ strace node_modules/mocha/bin/mocha script.js

Uh, "script.js" was to be your Mocha test file, not the literal string.
Simple enough. Install the package first.
You didn't specify your OS above, so assuming CentOS/RedHat:
# yum install strace

@toien44, did you figure out the cause?
Can this issue be closed?

@toien44 @plroebuck I will close the issue, feel free to re-open if you need further assistant.


Lookup mapping does not include the name in the mapping result.

I have a query that allows me to retrieve the ID and Name of a lookup without needing to use LinkEntity in the QueryExpression
var query = new QueryExpression("lead")
{
    ColumnSet = new ColumnSet(
        "new_languageid"
    ),
    Criteria = new FilterExpression
    {
        FilterOperator = LogicalOperator.And,
        Conditions =
        {
            new ConditionExpression("leadid", ConditionOperator.Equal, id)
        },
    },
};

var primaryLanguageGuid = entity.Contains("new_languageid") ? entity.GetAttributeValue<EntityReference>("new_languageid")?.Id : null,
var primaryLanguageName = entity.Contains("new_languageid") ? entity.GetAttributeValue<EntityReference>("new_languageid")?.Name : null,

However, when I use the mapper package, it only provides the ID, and there’s no way to obtain the name without using LinkEntity
[CrmField("new_languageid",` Mapping = MappingType.Lookup, Target = "new_language")]
public` Guid? PrimaryLanguageId { get; set; }

Thank you @YonatanCohavi, It  worked.
I started using the package a week ago, and I’m really enjoying it. I do wish there was more detailed documentation available, though.
By the way, is there support for 1-N or N-N relationships?


Support to specify providers to execute convert action

Add a new flag --provider, in order to users to choose which concrete providers should be used when executing the 'print' command.
What type of PR is this?

/kind feature
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #45
Does this PR introduce a user-facing change?:

None

@levikobi Thanks for you review. I will submit a commit againt at today later.

/ok-to-test

Thanks @jeffyjf!
I see that you addressed everything. If you can resolve the comments it would be great.
/lgtm
/assign @LiorLieberman

@levikobi @LiorLieberman @Xunzhuo Hello, everyone. I need your help. I encountered a troubled issue when I refactor Test_constructProviders.  The package "github.com/kubernetes-sigs/ingress2gateway/pkg/i2gw/providers/ingressnginx" never be impoted when run UT. So the globale variable "i2gw.ProviderConstructorByName" always is null map. But, in order to simulate real scene, "i2gw.ProviderConstructorByName" should be filled someting. Moreover, I can't fill it by import "github.com/kubernetes-sigs/ingress2gateway/pkg/i2gw/providers/ingressnginx" in "pkg/i2gw/ingress2gateway_test.go", because that  will result in cycle import.
So, How can I resolve this issue? Have similar exemple in this or other project? Thank you very much.

I add a mock provider in pkg/i2gw in order to ensure ProviderConstructorByName is  not null. But, I can't sure this way whether is appropriate. Look forward to your comments.

I think the easiest way to tackle this problem will be to just initialize ProviderConstructorByName within your unit test. Simply add "ingress-nginx" and some other providers with a zero value ProviderConstructor implementation.
I do have to say I am not totally happy with this solution, but it's going to get the job done for now.
Maybe in the future we will shift away from the global  ProviderConstructorByName variable.
Please let me know if that makes sense to you @jeffyjf, and if you have any further questions

@levikobi Got it. Thanks very much.

Thanks @levikobi I will try to edit them and add more necessary informations. But, I am not good at english. If I have any mistake, please point out that.

Thanks @jeffyjf
/lgtm

Thanks for a great contribution @jeffyjf.
/approve

@jeffyjf can you open a PR to update the README.md file flag table with the new flag your contributed?

@LiorLieberman Sure, I'm pleasure.


runtime: make TestCgoCheckBytes less strict

I just got a "too slow" error from TestCgoCheckBytes.  Any chance we could make this test lest strict?
GOMAXPROCS=2 runtime -cpu=1,2,4
--- FAIL: TestCgoCheckBytes (0.04s)
crash_cgo_test.go:178: cgo check too slow: got 32.498982ms, expected at most 24.46407ms
FAIL
FAIL	runtime	31.021s
2016/02/26 03:59:26 Failed: exit status 1
2016/02/26 03:59:26 FAILED
@ianlancetaylor

Are you synced past 5c096cc092013331022c33c5e3d31228edd17dab?

SSA last pulled in tip at 7786f9790561ceda98e9883256ed50d26fa136d6, which looks to be 3 days ago now.


⚠ Bofrost.at has degraded performance

In b071273, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1780 ms

Resolved: Bofrost.at performance has improved in 33e13af.


"Variables" are empty

Hi there,
I tried this module, but I even lack basic variables like in the Tutorial-GIFs.

Edit: "create variables" does nothing btw.
How can I update this?

Hi ! "Variables" menu contains variable you do declare yourself. All variable related to Foundry can be found in Foundry category. Under it, you'll find some other subcategories. For instance, in "Foundry > Actor", you'll find "Get all tokens un current scene".
Is this what you are looking for ?

Hmm, no, not really. I really struggle with programming and all I want to do is this:

Send a certain text to chat
add a 2d6-roll

butso far I don't get anywhere ...

You can send a message as notification with "Show information notification" in "Foundry > Utils" category :

Under "Foundry > Chat", you'll find a "Send chat message" action : you just need to say what you want to send, to who, etc.

Finally, you can roll anything you want with "Roll 1d6" action in "Foundry > Roll" :

Last thing : combine brick using anchors. This preserve you from doing any mistakes ! If you're not sure about result, just give it a try : I tried to think to all possible use cases, and make it as "common sense" as possible. If nothing happens, then it's just not supported.
For instance, this simple will show a 1d6 roll result.

Okay, I see. But it can't do a roll like a /roll 2d6 in Chat? With this, I just get an infobanner on the top.
I miss an "and", which i can add beneath the send message-thing, but the "and" function I found can't be combined with the send message- and roll-options.

"and" is provide to test expression (like "is ma token selected ?" AND "is he alive ?" use case). I guess you want to chain action : if I'm right, please take your attention to top and bottom notches :

This allow you to chain bricks :

Everything will be executed from top to bottom.

Here is a full working sample of what you want to do :

I create a custom variable called "prompt" with default text. Then I append roll result to this variable. You can then display it in chat.

Awesome! Thanks a lot!


Incremental history search stopped working

Incremental history search stopped working at some point since the last time I updated Selectrum (I guess back in April). :(
Original discussion in ticket #49.

You need to provide more details what stopped working for you. You can use selectrum-select-from-history (bind to M-r) which is an improved version for history search.

Steps to reproduce (from a sandbox Emacs, only Selectrum is installed): start any command (M-x, C-x C-f), hit C-r or C-s to start incremental history search. This pops up an I-search prompt. Start typing, it says Text is read-only. Then hit C-g to try bailing, and it says Wrong type argument: isearch--state, nil.
selectrum-select-from-history looks nice and does what I want, but I think either C-r/C-s should be fixed, or (cheap simple workaround) just rebound to selectrum-select-from-history by default.
Update: After working with selectrum-select-from-history a bit: hitting C-g to bail out of it sticks a big old Quit on the entire completion display which takes a while to disappear. It should just immediately cancel the history selection and go back to whatever command I was in. Should I open a separate ticket for this?

start any command (M-x, C-x C-f), hit C-r or C-s to start incremental history search. This pops up an I-search prompt. Start typing, it says Text is read-only

I can't reproduce this in Emacs 26.3. C-r and C-s´ are bound to regular isearch commands and those work as expected for me. Maybe you have rebound them in the sandbox to previous/next-matching-history-element? previous-matching-history-elementis already remapped toselectrum-select-from-history (M-r` is the default key).

Update: After working with selectrum-select-from-history a bit: hitting C-g to bail out of it sticks a big old Quit on the entire completion display which takes a while to disappear.

This is a known issue and mentioned in the Caveats section of the README:

In Emacs 26 and earlier, the way that messages are displayed while the minibuffer is active is unworkably bad: they block out the entire minibuffer as long as they are displayed, and then mess up redisplay. This issue has been fixed in Emacs 27, and I suggest upgrading. I think the best solution for people running Emacs 26 would be the development of a small third-party package which backports the improvement from Emacs 27. That way all minibuffer-based packages can benefit from the improvement.

Fair enough on the messages display and Emacs 27.
With regard to incremental history search in Selectrum: of course the sandbox doesn't have any customizations, or anything other than selectrum installed. That's why it's a sandbox. Here's a screencast which shows me deleting the existing sandbox and installing from scratch and showing the error.

Steps to reproduce: open a file to seed find-file history, kill the buffer with the file, find-file, C-r to start reverse history search, start typing.

Okay, thanks now I can reproduce it. C-r does not do reverse history search it does isearch-backward. The behaviour you described only happens if the search proceeds before the position of the minibuffer input which I had not tried.

The problematic function is goto-history-element. It needs to be wrapped like selectrum-previous/next-history-element.

Wow. That's a pretty wild implementation of history Isearch. I guess adding an advice would be a reasonable solution, as that way we won't have to worry about other commands that happen to use it. But it does indeed seem like this is getting slightly out of hand, and if we can handle the minibuffer in such a way that functions like goto-history-element will work by default, that would be much better.

Should be fixed by #133

Looks good! Thank you.


[irods/irods_5669] Bump CMake extern to 3.21.4

this looks correct by inspection - please # when building/happy


Update Static check tool to latest version

The current version for golangci-lint in ceph-csi is v1.39.0, but we have new changes introduced in the latest releases of golangci-lint causing some static errors.
make go-lint
cephcsi image settings: quay.io/cephcsi/cephcsi version canary
sed "s/@@CEPH_VERSION@@/octopus/g" < scripts/golangci.yml.in > scripts/golangci.yml
./scripts/lint-go.sh
INFO [config_reader] Used config file scripts/golangci.yml
INFO [lintersdb] Active 62 linters: [asciicheck bodyclose cyclop deadcode depguard dogsled durationcheck errcheck errorlint exhaustive exportloopref forcetypeassert gocognit goconst gocritic gocyclo godot gofmt gofumpt goheader goimports golint gomnd gomodguard goprintffuncname gosec gosimple govet ifshort importas ineffassign interfacer lll makezero maligned misspell nakedret nestif nilerr nlreturn noctx nolintlint paralleltest predeclared promlinter revive rowserrcheck scopelint sqlclosecheck staticcheck structcheck stylecheck tagliatelle thelper tparallel typecheck unconvert unparam unused varcheck wastedassign whitespace]
INFO [loader] Using build tags: [octopus]
INFO [loader] Go packages loading at mode 575 (name|types_sizes|compiled_files|files|imports|deps|exports_file) took 40.304118615s
WARN [runner] The linter 'scopelint' is deprecated (since v1.39.0) due to: The repository of the linter has been deprecated by the owner.  Replaced by exportloopref.
WARN [runner] The linter 'interfacer' is deprecated (since v1.38.0) due to: The repository of the linter has been archived by the owner.
WARN [runner] The linter 'golint' is deprecated (since v1.41.0) due to: The repository of the linter has been archived by the owner.  Replaced by revive.
WARN [runner] The linter 'maligned' is deprecated (since v1.38.0) due to: The repository of the linter has been archived by the owner.  Replaced by govet 'fieldalignment'.
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 15.673235ms
INFO [linters context] importas settings found, but no aliases listed. List aliases under alias: key.
INFO [linters context/goanalysis] analyzers took 2m2.757778353s with top 10 stages: buildir: 1m34.393397352s, nilness: 10.722390761s, inspect: 2.251742895s, exhaustive: 1.649786667s, wastedassign: 1.619812166s, buildssa: 1.549797773s, ctrlflow: 1.199850895s, fact_deprecated: 1.161048899s, printf: 1.025297619s, fact_purity: 984.235493ms
INFO [runner/max_same_issues] 7/10 issues with text "cs.Driver undefined (type *ControllerServer has no field or method Driver)" were hidden, use --max-same-issues
INFO [runner] Issues before processing: 2183, after processing: 22
INFO [runner] Processors filtering stat (out/in): autogenerated_exclude: 2183/2183, identifier_marker: 2183/2183, nolint: 2111/2121, path_shortener: 22/22, cgo: 2183/2183, path_prettifier: 2183/2183, skip_files: 2183/2183, skip_dirs: 2183/2183, diff: 29/29, max_same_issues: 22/29, source_code: 22/22, sort_results: 22/22, path_prefixer: 22/22, exclude: 2183/2183, exclude-rules: 2121/2183, uniq_by_line: 29/2111, max_from_linter: 22/22, filename_unadjuster: 2183/2183, max_per_file_from_linter: 29/29, severity-rules: 22/22
INFO [runner] processing took 231.114783ms with stages: exclude-rules: 165.210541ms, identifier_marker: 48.337485ms, nolint: 14.52648ms, path_prettifier: 1.538343ms, autogenerated_exclude: 451.996µs, skip_dirs: 417.817µs, cgo: 172.852µs, source_code: 148.706µs, filename_unadjuster: 129.108µs, uniq_by_line: 118.497µs, max_same_issues: 44.736µs, path_shortener: 6.839µs, max_from_linter: 5.754µs, max_per_file_from_linter: 3.514µs, diff: 486ns, exclude: 446ns, severity-rules: 372ns, skip_files: 352ns, sort_results: 314ns, path_prefixer: 145ns
INFO [runner] linters took 37.506533483s with stages: goanalysis_metalinter: 37.275316685s
internal/cephfs/controllerserver.go:690:15: cs.Driver undefined (type *ControllerServer has no field or method Driver) (typecheck)
	if err := cs.Driver.ValidateControllerServiceRequest(
	             ^
internal/cephfs/controllerserver.go:713:15: cs.Driver undefined (type *ControllerServer has no field or method Driver) (typecheck)
	if err := cs.Driver.ValidateControllerServiceRequest(
	             ^
internal/cephfs/validator.go:31:15: cs.Driver undefined (type *ControllerServer has no field or method Driver) (typecheck)
	if err := cs.Driver.ValidateControllerServiceRequest(
	             ^
internal/kms/secretskms.go:268:59: mnd: Magic number: 32768, in <argument> detected (gomnd)
	key, err := scrypt.Key([]byte(passphrase), []byte(salt), 32768, 8, 1, 32)
	                                                         ^
internal/kms/vault_sa.go:323:54: mnd: Magic number: 0600, in <argument> detected (gomnd)
	err = ioutil.WriteFile(dir+"/token", []byte(token), 0600)
	                                                    ^
internal/util/log/log_utils.go:36:67: mnd: Magic number: 0o644, in <argument> detected (gomnd)
	gf, err := os.OpenFile(newExt, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0o644) // #nosec:G304,G302, file inclusion & perms
	                                                                 ^
internal/kms/vault_tokens.go:60:28: json(camel): got 'KMS_PROVIDER' want 'kmsProvider' (tagliatelle)
	KmsPROVIDER        string `json:"KMS_PROVIDER"`
	                          ^
internal/kms/vault_tokens.go:61:28: json(camel): got 'VAULT_ADDR' want 'vaultAddr' (tagliatelle)
	VaultADDR          string `json:"VAULT_ADDR"`
	                          ^
internal/kms/vault_tokens.go:62:28: json(camel): got 'VAULT_BACKEND' want 'vaultBackend' (tagliatelle)
	VaultBackend       string `json:"VAULT_BACKEND"`
	                          ^
internal/kms/vault_tokens.go:63:28: json(camel): got 'VAULT_BACKEND_PATH' want 'vaultBackendPath' (tagliatelle)
	VaultBackendPath   string `json:"VAULT_BACKEND_PATH"`
	                          ^
internal/kms/vault_tokens.go:64:28: json(camel): got 'VAULT_DESTROY_KEYS' want 'vaultDestroyKeys' (tagliatelle)
	VaultDestroyKeys   string `json:"VAULT_DESTROY_KEYS"`
	                          ^
internal/kms/vault_tokens.go:65:28: json(camel): got 'VAULT_CACERT' want 'vaultCacert' (tagliatelle)
	VaultCACert        string `json:"VAULT_CACERT"`
	                          ^
internal/kms/vault_tokens.go:66:28: json(camel): got 'VAULT_TLS_SERVER_NAME' want 'vaultTlsServerName' (tagliatelle)
	VaultTLSServerName string `json:"VAULT_TLS_SERVER_NAME"`
	                          ^
internal/kms/vault_tokens.go:67:28: json(camel): got 'VAULT_CLIENT_CERT' want 'vaultClientCert' (tagliatelle)
	VaultClientCert    string `json:"VAULT_CLIENT_CERT"`
	                          ^
internal/kms/vault_tokens.go:68:28: json(camel): got 'VAULT_CLIENT_KEY' want 'vaultClientKey' (tagliatelle)
	VaultClientKey     string `json:"VAULT_CLIENT_KEY"`
	                          ^
internal/kms/vault_tokens.go:69:28: json(camel): got 'VAULT_AUTH_NAMESPACE' want 'vaultAuthNamespace' (tagliatelle)
	VaultAuthNamespace string `json:"VAULT_AUTH_NAMESPACE"`
	                          ^
internal/kms/vault_tokens.go:70:28: json(camel): got 'VAULT_NAMESPACE' want 'vaultNamespace' (tagliatelle)
	VaultNamespace     string `json:"VAULT_NAMESPACE"`
	                          ^
internal/kms/vault_tokens.go:71:28: json(camel): got 'VAULT_SKIP_VERIFY' want 'vaultSkipVerify' (tagliatelle)
	VaultSkipVerify    string `json:"VAULT_SKIP_VERIFY"`
	                          ^
internal/kms/vault_tokens.go:75:38: json(camel): got 'encryptionKMSType' want 'encryptionKmsType' (tagliatelle)
	EncryptionKMSType            string `json:"encryptionKMSType"`
	                                    ^
internal/kms/vault_tokens.go:80:38: json(camel): got 'vaultCAFromSecret' want 'vaultCaFromSecret' (tagliatelle)
	VaultCAFromSecret            string `json:"vaultCAFromSecret"`
	                                    ^
internal/kms/vault_tokens.go:81:38: json(camel): got 'vaultTLSServerName' want 'vaultTlsServerName' (tagliatelle)
	VaultTLSServerName           string `json:"vaultTLSServerName"`
	                                    ^
internal/kms/vault_tokens.go:86:38: json(camel): got 'vaultCAVerify' want 'vaultCaVerify' (tagliatelle)
	VaultCAVerify                string `json:"vaultCAVerify"`
	                                    ^
INFO File cache stats: 26 entries of total size 173.2KiB
INFO Memory: 711 samples, avg is 590.3MB, max is 1759.6MB
INFO Execution took 1m17.831115075s
make: *** [Makefile:116: go-lint] Error 1

#2808 should update the golangci-lint. currently below linters are disabled. we can reuse this GitHub issue to fix it
    - contextcheck
    - gomnd
    - ireturn
    - tagliatelle
    - varnamelen
    - nilnil


Adding Infineon SVDs

Hey,
I've farmed the packages from the ARM CMSIS site, for Infineon.
The new supported devices include:

IMC300A
IMM100A
TLE984x Family
TLE985x Family
TLE986x Family
TLE987x Family
TLE9868
XMC1100
XMC1200
XMC1300
XMC1400
XMC4100
XMC4200
XMC4300
XMC4400
XMC4500
XMC4700
XMC4800

There were conflicts with the TLE985x Family, I've chosen the biggest file, diffed it against the rest and it basically included more fields.
Version number was identical though, sadly.

Thank you @AltayAkkus


Further general optimizations.

Be careful about how arguments is accessed, and ensure that the ES.* helpers are treated as constant functions which can be inlined.

I've cherry-picked in one of these commits - a rebase should result in only the one commit left on top


version number

Just removed the text regarding version semantic in https://github.com/raybellwaves/xskillscore/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc
f01a2d8 (#127)
I thought for the next version (probably tonight) i'll keep it at 0.0.X (17). I always intending to keep it at 0.0.X but given the amount of activity recently we could use something more interpretable. I'm open to copying the version number approach as the semantic above or keep the version number parallel to climpred (where appropriate). I've also happy to keep it 0.0.X. I have no preference here. Welcome to share thoughts.

intake-esm uses dates for their versioning. I am totally fine with 0.0.X

I am totally fine with 0.0.X

Does make life easier without having to think about when to make it a major version etc. I'll close in 48 hours unless any objections.

Will close via https://github.com/raybellwaves/xskillscore/pull/142


Fix  _local_docs end-point

Overview
This is a second attempt to fix _local_docs end-point. The previous one didn't work on big enough btree_local, because local btree doesn't have reduction fun, so reuse of couch_db_updater:btree_by_id_reduce/2 was crashing on a bad match as soon as btree_local was getting kp_node. Also using full fold to calculate total_rows value turned out to be resource expensive when a database have significant number of local documents.
This fix avoids calculating of total_rows and offset instead always setting them to null and also setting to null update_seq when requested, since it doesn't have meaning in context of local documents.
A fabric module fabric_view_all_docs.erl was copied and modified as fabric_view_local_docs.erl, because re-using it for processing of both types of the documents was getting rather convoluted.
Testing recommendations
Unit tests for all invoked dependencies could be run as make eunit apps=chttpd,fabric,couch_mrview. There are updated suite couch_mrview_local_docs_tests in couch_mrview.
From HTTP perspective end-point /{db}/_local_docs supports all the query parameters of /{db}/_all_docs with the difference that offset, 'total_rowsandupdate_seqalways returnnull`.
JIRA issue number
COUCHDB-3337
Checklist

[x] Code is written and works correctly;
[x] Changes are covered by tests;
[ ] Documentation reflects the changes;

@davisp sorry, I totally forgot about this PR!
I tried modifying fabric_view_all_docs initially and then went with new module for three reasons:

code got somehow confusing for first-time readers with usage of all null, numbers for offset and total and nil for exclusion of update_seq.
code around that spawned process for getting doc count in go/5 for POST with keys was rather ugly and running the whole thing as it is and then just throwing away the result felt like a waste.
shared config parameters and error log messages saying _all_docs were going to be confusing in production

I agree there are lot of repetition, but it felt more cleaner to separate this functionality. If you think it's excessive I can amend fabric_view_all_docs instead.

@davisp So I went ahead, reverted the new module and modified fabric_view_all_docs.erl instead. Does it looks better to you?

+1
Squerge away!

Squerged.
But also see a badarith exception when testing _local_docs endpoint by hand:
did a few:
http  post 'http://adm:pass@localhost:15984/d' x=1 _id=_local/1
{
    "id": "_local/1",
    "ok": true,
    "rev": "0-1"
}

Then see the exception with:
http get 'http://adm:pass@localhost:15984/d/_local_docs'
HTTP/1.1 500 Internal Server Error
{
    "error": "unknown_error",
    "reason": "badarith",
    "ref":<PHONE_NUMBER>
}

Logs show:
2017-07-17T18:25:22.809235Z<EMAIL_ADDRESS><0.12977.0> e7fdbd92ef req_err(2604624769) unknown_error : badarith
    [<<"fabric_view_all_docs:handle_message/3 L157">>,<<"rexi_utils:process_mailbox/6 L55">>,<<"fabric_view_all_docs:go/6 L123">>,<<"fabric_view_all_docs:go/5 L32">>,<<"chttpd_db:all_docs_view/4 L644">>,<<"chttpd:process_request/1 L295">>,<<"chttpd:handle_request_int/1 L231">>,<<"mochiweb_http:headers/6 L122">>]

Will have to track this down

Huh. guessing that's in the totals or offset handling.

It looks like in fabic rpc view_cb/2 meta comes back with total=null, offset=null but sometimes as total=null, offset=0. Since offset=0 is a number we attempt to add to null in in the handle_message callback when we aggregate numbers: https://github.com/apache/couchdb/pull/526/files#diff-9d6b535641fc74e993a6c0a246313619R157 (there Offset0 is a number).

@davisp Take another look when you get a chance.
The reason for badarith was that couch_db:enum_docs was returning a 0 offset for _local docs if there were no docs in the shard range. If there were docs then it was correctly returning null. The coordinator ended up adding getting a mix of 0s and nulls and was trying to add them together.

+1
Good catch!


Fix level 4 definition + tweak db script

Note: I'm struggling a bit with the DB definition aspect.
Especially the type. It's now a string, but ideally we'd want that to be a FK to a reference table listing all the possible (valid) types. So that the player needs to make sure to insert valid values, and has to look for them first.

but ideally we'd want that to be a FK to a reference table listing all the possible (valid) types. So that the player needs to make sure to insert valid values, and has to look for them first.

Could we define it as an enum on the model instead?

but ideally we'd want that to be a FK to a reference table listing all the possible (valid) types. So that the player needs to make sure to insert valid values, and has to look for them first.

Could we define it as an enum on the model instead?

Probably. Do you know how to do it?


Reverting to using PAC CLI for canvas unpack / pack

Hi @mikefactorial,
Why include pac in the repo rather than download the nuget?
The Install-pac.yml is still called from the export-solution.yml template.
I think would be better to stick with downloading the latest with option to specificy version via pacVersion pipeline parameter.


Add documentation page to Beam website

We should have general advice for using RunInference, along with examples that show what is/isn't supported.
Imported from Jira BEAM-14046. Original Jira may contain additional context.
Reported by: yeandy.
Subtask of issue #21435

What is remaining here?

This is done

.close-issue


Better Input box

Some sort of validation would be nice. The finder silently fails when a wrongly formatted input is entered, or if the course doesn't exist.
Maybe dynamically adding one-liner text forms as the user enter more courses instead of one large text box would look nicer.

Oh rolf wrong project.


Fix sensu_plugin version insync? check

Pull Request Checklist

Description

The previous logic of insync? for sensu_plugin version property was not capable of upgrades or downgrades when the new value for version was something other than latest.
I ran the acceptance tests with new changes but not updating insync? and the upgrade and downgrade tests failed because nothing actually happened.

Tests will likely fail until #1146 is merged.


removing carriage return from base formatting

I suggest to just add newlines (\n) to the base formatting because the added carriage return adds unnecessary noise on Linux consoles (extra newline). If running on Windows and needed it can still be added by overloading the format() function but it is impossible to remove it this way.

@faburem 👍
Thank you for contribution


WIP: Add syntax highlighting configuration guide.

Need to update the link after we add proper documentation on the Babel's website.

@mareksuscak Looks like this is still waiting for the additions to the Babel website. Is there an issue / pull request somewhere that tracks those changes?

@fson Yup.
https://github.com/facebookincubator/create-react-app/issues/804
https://github.com/babel/babel.github.io/issues/930

What are waiting for at the moment? Where can people contribute?

@gaearon For babel docs. PR is linked in my last comment above.

I see a link to a Babel issue about reorganizing content, but not an actual PR. Are we waiting for somebody to create a PR addressing it?

Well, I'd do it myself but there doesn't seem to be a final decision on how to reorganize it so I guess that's why it's stuck. Syntax highlighting doesn't fit into any category ATM.

From what I saw in the issue it looked like @hzoo was waiting for somebody to make a PR first and then finalize instead of trying to decide beforehand.

Updated the link. I have reorganized the Babel's docs after discussing with Henry on slack. Need to add the Editors page content, still. I think I'll add Atom, Sublime and Visual Studio Code and we can ask the community to contribute other editors. What do you think?
I'm sorry it took so long.

Merged https://github.com/babel/babel.github.io/pull/1041 - https://twitter.com/left_pad/status/806217618705313792

Looks good to me!


why not use jackson json to speed up performance?

why not use jackson json to speed up performance?

Is someone working on this? I might be able to take it if not

@bobbyhubbard No, nobody is working on this currently, you can pick it up if you wish. Since it's kind of a big change it'd be nice to hear your rough attack plan beforehand or to see your progress on small increments to give early feedback :).

Sure. I'll take a little deeper look

I took a look at what would be required to replace Gson with ObjectMapper last night and it looks like the changes will be significant.  In particular, JsonObject can be found almost throughout the code base, including a lot of manual mapping type code.
I would be willing to help get this moving, but the way things stand, it would be very hard to produce a super clean migration path.  In the best case, perhaps a version to step through where the JsonObject was generic could be done, with the old commands moved to a new module.  This would probably also necessitate use of Java8, to abstract things like testing for errors in the parsed body in JestResult.
@kramer Would the project be willing to take a change like this?  I could workup a PR for the search API, but I don't want to put in a ton of effort and end up forking your library.

@bobbyhubbard did your investigation into using Jackson with Jest produce any results?

@ctrimble At this point I'm conflicted about this switch considering pros & cons. I don't consider "speed" as a deciding factor because (i) after all each json operation is paired up with a network operation which is much more "expensive" than doing (de)serialization and (ii) a simple google search forms the opinion that recently gson caught up with jackson in speed for most use cases. Then we are left with some parse case pros for jackson like: better (?) annotation support, partial doc/class support and maybe better handling of cases like the one @daniilyar mentioned; and the biggest con is the huge breaking change for the public api and the actual effort needed to do the switch. If those are all we have and we are discussing complete switch to jackson then that is where I'm conflicted: is it really worth it?. If there was a way to keep gson and have jackson in addition then I'd be all for it.
I am very much open to discussion on this.
p.s.:

necessitate use of Java8

I don't think android module would like that.

@kramer for me, and I would assume others, this has nothing to do with performance.  If performance was that big of a deal, it would be worth purpose building something.
What I am after is clean call sites.  The way things stand, I end up with lots of JsonObject based code in my project.  It is getting to the point that I am ready to fork Jest, just to get that worked out.  I would much rather start contributing here and help everyone.
I am sure that some kind of step through version could be produced, allowing people to half upgrade.  I know I would need that.  I have way too much code at this point to make that lift in one shot.
As for Java8, that would not be a necessity, but some strategies will be needed to make a reasonably smooth transition.  Lambdas just make that kind of code a non issue.
Nirvana would be a client api that looked more like this:
SearchResult result = client.execute(action);
if( !result.isSucceeded() ) {
  // fail
}
List<MyType<SubType>> hits = result.hits().as(GenericType<MyType<SubType>>(){});

step through version

Could you explain that in more detail please? My train of thought on this: it's not like we have constant critical updates; so people can just continue using the old version until they are ready to make the change.

I have lots of code on my hands, so I would want an upgrade to go something like this:

update maven dependency version.
bulk update all package Jest related package names.
upgrade/add some code against the updated API.

At the same time, I would probably be willing to do a bulk port in this situation.  It really depends on where the refactoring lands.  More than half of my code dealing with Jest is wrangling JsonObject.  The code is ugly and error prone.  It would be worth the effort.
Would you be willing to look at a throw away PR for the search API?  I could knock something like that together without too much effort, just to give us something concrete to talk about.

Would you be willing to look at a throw away PR for the search API?

@ctrimble Yes, of course.

+1 for injecting an own serializer through an interface.
I switched to Jest from the official ES client, where the serialization is left to the user. Using the ES client, I created my (annotated) Objects to fit an ObjectMapper / Jackson. Now moving to Jest (with built-in Gson) would mean to change the Objects, which is not possible.
For compatibility with all projects, you could provide a method like JestResponse#getSource(): JsonElement or even JestResponse#getSource(): String.
I'm doing the following workaround at the moment:
JsonObject source = response.getSourceAsObject(JsonObject.class);
source.remove(JestResult.ES_METADATA_ID); // optional
MyClass result = objectMapper.readValue(source.toString(), MyClass.class);

Although it's not very efficient, it works.

I got swamped while working on an example PR for this and I don't think I will have time to get back to it soon.

I looked into the code; it makes heavy use of Gson's JsonObject / JsonElement / JsonArray class. Replacing Gson would be a major refactoring. Nevertheless, I created a PR (see #249 ) which adds a method to get the result as a plain string, such that developers can parse it themselves with any preferred mapper. In my opinion a missing feature.

@ctrimble can you push the work you did? I can attempt to complete the remaining parts.
Most frameworks out there use jackson for parsing json (in my case play framework), and it really annoys me that you end up importing different libraries into a project designed to do the same thing. For example, I now have POJO's with jackson and gson annotations. It might just be me, but I don't find that ok.

@raunak it isn't in a compiling state, but here you go.  https://github.com/ctrimble/Jest/tree/experiment_object-mapper

+1 @raunak
It is not just the performance factor. I have Jackson annotations on POJOs (e.g. @JsonManagedReference) which help me a lot for the internal REST API which I am providing. Such functionality is only difficult to maintain using Gson (own serializer, etc.)
And importing multiple JSON libraries is really not the idea of any project.

+1 I also need to use Jackson since we use getter/setter to de/serialize and Gson supports only property de/serialization. I tried following:
        for (SearchResult.Hit<String, Void> hit : topHits.getHits(String.class)) {           Student obj = mapper.readValue(hit.source, Student.class);           res.add(obj);         } but JestResult.createSourceObject(...) will fill source only if object has fields and will return null. So there is no obvious way to extract source as String. Would be nice if getHits(String.class) or getHits(null) will fill source with json String.

+1 for providing a configurable interface for deserialization.
A real world use case for my company is adding results of a large computation producing a very large POJO with many nested objects, serialized with Jackson. When attempting to deserialize the json result of _source, enum deserialization fails because of different serialization / deserialization strategies. In my case, Gson failed silently with a duplicate key exception from deserializing an enum to null, and attempting to add these null keys to a map, returning a null value for my POJO. Being able to supply a Jackson object mapper rather than using the default Gson implementation will allow much greater flexibility.
For the time being, I've worked around this issue by extracting the JsonObject _source directly from the hits array with the json methods provided by Gson, then mapping each source to the POJO it represents.

Looks like this has stalled for now. Seems GSON does not work well with Lombok either when deserialising something with an @Data annotation. Jackson just works but cant be plugged into Jest.


Zondicons no preview

Describe the bug
Zondicons are not enerated
To Reproduce
Steps to reproduce the behavior:

Go to https://www.zondicons.com/icons.html
Download icons, unzip the archive
Add to Icon Shelf
No preview generates

Expected behavior
Guess preview of each icon should be displayed
Screenshots

Thank you for reporting this. I'll check it out.

I've fixed this, please download the latest version from https://github.com/Icon-Shelf/icon-shelf/releases and try.


Building RPMs for RHEL 8.x

We've noticed there isn't RPMs built for RHEL8 since Aug 2021. Do you plan to build on RHEL8 in the future? Do you also plan to build for RHEL9?

Merging to https://github.com/microsoft/vscode/issues/144969