Got "ERROR RUNNING BACKEND" in analysis phase

The command I'm using is:
infer --keep-going --no-xcpretty --debug --linters-ignore-clang-failures --skip-clang-analysis-in-path Pods -- xcodebuild -workspace $WORKSPACE -configuration $CONFIGURATION -scheme $SCHEME -sdk $SDK clean build

I got followling error:
ERROR RUNNING BACKEND: HTSVideoAudioSlider_range ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for HTSVideoAudioSlider_range in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/HTSVideoAudioSlider.m.5bb87210fc9b6644c04af326a4a52fa6/HTSVideoAudioSlider.m.cf45e3db2fd6b451e467a4fadf532d21.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.S.S............SS....
ERROR RUNNING BACKEND: HTSVideoAudioSlider_setTime: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for HTSVideoAudioSlider_setTime: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/HTSVideoAudioSlider.m.5bb87210fc9b6644c04af326a4a52fa6/HTSVideoAudioSlider.m.cf45e3db2fd6b451e467a4fadf532d21.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
S.........S............................................T.S..
ERROR RUNNING BACKEND: UIView_setAwe_top: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for UIView_setAwe_top: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/UIView+AWEAdditions.m.dda3b77b5c3ea27033670ef720472830/UIView+AWEAdditions.m.9f97aa0eebf5f95d17f407d02e60607e.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
....S..............................S.......S.S...Bad actual index 0 for callee __objc_anonymous_block___objc_anonymous_block_AWEUserDetailViewController__refreshUserData______2______3 with 0 actuals...Error: cannot load /Users/ci_ios/Aweme/Aweme/infer-out/captured/AWEUserDetailViewController.m.0dcfedde0a08d699f054030bf23b5118/AWEUserDetailViewController.m.8b96b23a91298ac197491d6c7b7ddb51.cg
S...........S.....S.
ERROR RUNNING BACKEND: AWECameraFilterConfiguration_reshapeLevel ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWECameraFilterConfiguration_reshapeLevel in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWECameraFilterConfiguration.m.fe26cc2ac5c05fc47c92a6ee3b771ee1/AWECameraFilterConfiguration.m.6931950b432fd14929fa0c7bcf0405c6.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.
ERROR RUNNING BACKEND: IESCamera_awe_applyReshapeLevel: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for IESCamera_awe_applyReshapeLevel: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/IESCamera+AWEVideoRecorderController.m.f312c8adcbb1fc34eb81b757dfba90bb/IESCamera+AWEVideoRecorderController.m.afeace236c7eb10ff18b96842242aa9f.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.
ERROR RUNNING BACKEND: AWECameraFilterConfiguration_smoothLevel ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWECameraFilterConfiguration_smoothLevel in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWECameraFilterConfiguration.m.fe26cc2ac5c05fc47c92a6ee3b771ee1/AWECameraFilterConfiguration.m.6931950b432fd14929fa0c7bcf0405c6.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.
ERROR RUNNING BACKEND: IESCamera_awe_applySmoothLevel: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for IESCamera_awe_applySmoothLevel: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/IESCamera+AWEVideoRecorderController.m.f312c8adcbb1fc34eb81b757dfba90bb/IESCamera+AWEVideoRecorderController.m.afeace236c7eb10ff18b96842242aa9f.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
..........
ERROR RUNNING BACKEND: HTSVideoAudioSlider_setMaxLength: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for HTSVideoAudioSlider_setMaxLength: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/HTSVideoAudioSlider.m.5bb87210fc9b6644c04af326a4a52fa6/HTSVideoAudioSlider.m.cf45e3db2fd6b451e467a4fadf532d21.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.
ERROR RUNNING BACKEND: HTSVideoAudioSlider_setCurrentLength: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for HTSVideoAudioSlider_setCurrentLength: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/HTSVideoAudioSlider.m.5bb87210fc9b6644c04af326a4a52fa6/HTSVideoAudioSlider.m.cf45e3db2fd6b451e467a4fadf532d21.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
....
ERROR RUNNING BACKEND: HTSVideoAudioSlider_setRangeStart: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for HTSVideoAudioSlider_setRangeStart: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/HTSVideoAudioSlider.m.5bb87210fc9b6644c04af326a4a52fa6/HTSVideoAudioSlider.m.cf45e3db2fd6b451e467a4fadf532d21.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
S....
ERROR RUNNING BACKEND: AWEFlashModeSwitchButton_getNextFlashModeForCameraMode: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWEFlashModeSwitchButton_getNextFlashModeForCameraMode: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWEFlashModeSwitchButton.m.8fb0ee25992524971bdeda93f400a83c/AWEFlashModeSwitchButton.m.e44c878fce4ca5cb5dc7bf2e956196d8.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.....
ERROR RUNNING BACKEND: AWERecordStickerViewController_showOnViewController: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWERecordStickerViewController_showOnViewController: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWERecordStickerViewController.m.4a2a9e467a045b0e1d0b63d715a23d65/AWERecordStickerViewController.m.3011feef09063573f7e7dbba14074a63.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
......S......
ERROR RUNNING BACKEND: AWEAudioWaveformView_setAsset:choosedStartLocation:endLocation: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWEAudioWaveformView_setAsset:choosedStartLocation:endLocation: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWEAudioWaveformView.m.3fb467cdc54b9782c8559134cd085ff4/AWEAudioWaveformView.m.701e1addfc482836ac5bc529cf377f52.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
..
ERROR RUNNING BACKEND: AWEAudioWaveformView_setPlayingLocation: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWEAudioWaveformView_setPlayingLocation: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWEAudioWaveformView.m.3fb467cdc54b9782c8559134cd085ff4/AWEAudioWaveformView.m.701e1addfc482836ac5bc529cf377f52.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
......................................
ERROR RUNNING BACKEND: AWESwitchRecordModeView_isPanned ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWESwitchRecordModeView_isPanned in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWESwitchRecordModeView.m.71ce2866761735144a15f97146caebf0/AWESwitchRecordModeView.m.8ec0bcfefd40fe6fbd752e70685f4f8f.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
...........S...
ERROR RUNNING BACKEND: AWECameraFilterConfiguration_setSmoothLevel: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWECameraFilterConfiguration_setSmoothLevel: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWECameraFilterConfiguration.m.fe26cc2ac5c05fc47c92a6ee3b771ee1/AWECameraFilterConfiguration.m.6931950b432fd14929fa0c7bcf0405c6.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
..
ERROR RUNNING BACKEND: AWECameraFilterConfiguration_setReshapeLevel: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWECameraFilterConfiguration_setReshapeLevel: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWECameraFilterConfiguration.m.fe26cc2ac5c05fc47c92a6ee3b771ee1/AWECameraFilterConfiguration.m.6931950b432fd14929fa0c7bcf0405c6.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
..........
ERROR RUNNING BACKEND: TTMonitor_trackService:status:extra: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for TTMonitor_trackService:status:extra: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/TTMonitor+Startup.m.345c9fd4f72a0ecae588e5b1bc4fd365/TTMonitor+Startup.m.f012a0a0135e2f4b2abb34c4689f9850.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.
ERROR RUNNING BACKEND: AWEProgressLoadingView_dismissAnimated: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWEProgressLoadingView_dismissAnimated: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWEProgressLoadingView.m.351daa4bcb2e86a51ec61c88c929f4a1/AWEProgressLoadingView.m.6c18afbafd63e62369a2d99addea1740.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
S.................Bad actual index 1 for callee __objc_anonymous_block___objc_anonymous_block___objc_anonymous_block_AWEVideoRecorderController_checkAuthority______63______64______65 with 0 actuals..Bad actual index 1 for callee __objc_anonymous_block___objc_anonymous_block___objc_anonymous_block_AWEVideoRecorderController_checkAuthority______59______60______61 with 0 actuals.........S.............S...............S.S................
ERROR RUNNING BACKEND: AWESwitchRecordModeView_selectItemAtIndex: ("InferModules__Die.InferInternalError(\"get_tenv: tenv not found for AWESwitchRecordModeView_selectItemAtIndex: in file '/Users/ci_ios/Aweme/Aweme/infer-out/captured/AWESwitchRecordModeView.m.71ce2866761735144a15f97146caebf0/AWESwitchRecordModeView.m.8ec0bcfefd40fe6fbd752e70685f4f8f.tenv'\")")

BACK TRACE
Raised at file "base/Die.ml" (inlined), line 27, characters 6-36
Called from file "base/Logging.ml", line 281, characters 58-80
Called from file "backend/callbacks.ml", line 62, characters 13-47
Called from file "backend/ondemand.ml", line 150, characters 51-92
.Bad actual index 0 for callee __objc_anonymous_block___objc_anonymous_block_AWEVideoRecorderController_camera:willFocusAtPoint:______76______77 with 0 actuals...S.............S.S.Bad actual index 1 for callee __objc_anonymous_block___objc_anonymous_block_AWEVideoRecorderController_addCameraStatusObserver______70______71 with 0 actuals..Error: cannot load /Users/ci_ios/Aweme/Aweme/infer-out/captured/AWEVideoRecorderController.m.84cb8038b7f58b5b8e52c5f41cef2430/AWEVideoRecorderController.m.d78637ac77cdcf92a72bb712d07c31b8.cg
make: *** /Users/ci_ios/Aweme/Aweme/infer-out/multicore: No such file or directory.  Stop.
exited with code 2
Error backtrace:
Raised at file "src/import0.ml" (inlined), line 237, characters 22-32
Called from file "src/error.ml" (inlined), line 9, characters 14-30
Called from file "src/or_error.ml" (inlined), line 72, characters 17-32
Called from file "integration/Driver.ml", line 185, characters 2-46
Called from file "integration/Driver.ml" (inlined), line 412, characters 30-60
Called from file "backend/infer.ml", line 24, characters 2-47
Called from file "backend/infer.ml", line 112, characters 6-52
Uncaught error: (Unix.Exit_or_signal (Exit_non_zero 2))```

So what's wrong going on? Thanks.

My bad, start 2 infer process in the same project directory.


Adding Assignment 2

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
adding solutions to assignment 2
What did you learn from the changes you have made?
how to work with models
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
How were these changes tested?
by running the code
A reference to a related issue in your repository (if applicable)
Checklist

[+] I can confirm that my changes are working as intended

A2: Complete
Q3: There is an error code. I would suggest clairfying which numeric predictors you want to use in the linear model

Q4: Correct RSME is 3.18, in order to get that I would suggest using "mean_squared_error" as opposed to "np.mean"


Design Cards starter pages

We now have all the components need to build the Cards starter page — https://techne.yaas.io/starterpages/start.html
Please include responsive behaviors

@xak


Using cuser with an started project

When a project has data, the migration process raises a:
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration wagtaildocs.0001_initial is applied before its dependency cuser.0001_initial on database 'default'.
I'm reading that django docs don't recommend to change the user model once started the project.  Should it be possible with django-username-email?

django-username-email is the same as django.contrib.auth in this regard. Here is Django's documentation on how to handle this:
https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#changing-to-a-custom-user-model-mid-project


Feature request actor.calcluateDamage

After the call to dnd5e.preCalculateDamage, damage.active is force set to {} / {active: "Immunity", multiplier: 0).
In midi-qol I have occasion to want to configure some of the actives during the preCalculateDamage hook, so that multipliers can be applied prior to damage modification.
Would it be possible to have damage.active initialised to {} prior to the call to dnd5e.preCalculateDamage?

Hmm, what is your intention here exactly? Do you want us to not squash any changes made to active during preCalculateDamage? If you set active.multiplier to 2 during preCalculateDamage, are you thinking we'll then modify that value (so if you doubled during pre-calc and then halved during our modification it would end up as 1)?

The exact change I would like is that if in calculate damage damage.active is already defined don't initialise it to {}.
The specific example I have is computing damage when the target has saved. According to at least one rules interpretation the correct order of damage calc should be saves -> modifications -> resistance/immunity. Currently if I pass options.multiplier the order will be modifications/resistance/saves.
There is also an interpretation that says what is currently being done is correct, so I also have the case of simply setting the multiplier in options during precalculate damage (thanks for the change to make that possible by the way).
So I'm looking to implement the changes due to saves in the preCalculateDamage hook.
I have code to set the multiplier/actual damage for each damage item according to the save, but the multiplier per damage item get overwritten (and the active.saves that I set), however the calculated damage is correct.

@tposney Let me know if this does what you need: https://github.com/foundryvtt/dnd5e/pull/3491

Looks like exactly what I wanted - many thanks.


@babel/polyfill 7.4.0+ has been deprecated

warning ember-cli-babel ><EMAIL_ADDRESS>🚨 As of Babel 7.4.0, this
package has been deprecated in favor of directly
including core-js/stable (to polyfill ECMAScript
features) and regenerator-runtime/runtime
(needed to use transpiled generator functions):

  > import "core-js/stable";
  > import "regenerator-runtime/runtime";

Thanks for reporting. Definitely need to get this fixed.

@rwjblue I've also just been hit by this issue in our app. Object.fromEntries is not polyfilled by @babel/polyfill. This is because @babel/polyfill (now deprecated) ships with core-js 2.x (2.x is deprecated) and Object.fromEntries only ships from 3.x.
I'm happy to try and put together a PR if it's just a matter of switching out dependendencies, and tweaking the build pipeline?

@patocallaghan - I haven't really dug into this so I'm not sure if that is all that we need to do, but it seems reasonable to me and help (even just researching) is absolutely welcome.

Okay thanks, I'll see if I can dig in at some stage this week

Logged https://github.com/babel/broccoli-babel-transpiler/issues/197 as @babel/polyfill is used by ember-cli-babel and broccoli-babel-transpiler

Logged https://github.com/babel/broccoli-babel-transpiler/issues/197 as @babel/polyfill is used by ember-cli-babel and broccoli-babel-transpiler

https://github.com/babel/broccoli-babel-transpiler/pull/191 removed the polyfill from broccoli-babel-transpiler already, just hasn't been released yet (it'll be 8.0.0).

https://github.com/babel/broccoli-babel-transpiler/pull/191 removed the polyfill from broccoli-babel-transpiler already, just hasn't been released yet (it'll be 8.0.0).

great news @rwjblue! sorry for churn, didn't check latest master

great news @rwjblue! sorry for churn, didn't check latest master

Now this is being blocked by babel/broccoli-babel-transpiler#200

Checking in here, it looks like the blocker has been merged now 🥳

What was the outcome of this? How do we restore the Object.fromEntries polyfill?

Going to close this as polyfill support was removed in v8.


Openthread build and usage example

Can someone help with building zephyr for the nrf52840 including openthread.
I'm using cmake -GNinja -DBOARD=nrf52840_pca10056 -DCONF_FILE=overlay-ot.conf ..  in the zephyr/samples/net/echo_client sample but it seems to build identically if I specify the conf or not. Is there something else I need to specify in order to build with openthread support or is it already in zephyr_prebuilt?
It may be working but I can't get access to the cli or any evidence that its actually running. If its working should I be able to type in commands through the serial connection?

Ok, Found i was using that wrong.
Using cmake -GNinja -DBOARD=nrf52840_pca10056 -DOVERLAY_CONFIG=overlay-ot.conf ..
I get warning: NET_L2_OPENTHREAD (defined at subsys/net/l2/openthread/Kconfig:12) was assigned the value 'y' but got the value 'n'. You can check symbol information (including dependencies) in the 'menuconfig' interface (see the Application Development Primer section of the manual), or in the Kconfig reference at http://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_NET_L2_OPENTHREAD.html (which is updated regularly from the master branch). See the 'Setting configuration values' section of the Board Porting Guide as well.
I get this similar warning for a lot of config values. Any idea what I'm doing wrong?
The compiled hex file is also identical in size so I'm guessing openthread wasn't added unless its part of the prebuilt anyways.

Hi,
I've just tried cmake -GNinja -DBOARD=nrf52840_pca10056 -DOVERLAY_CONFIG=overlay-ot.conf .. and it worked just fine.
Perhaps you didn't clear you build directory after unsuccessfull cmake run?

If its working should I be able to type in commands through the serial connection?

Sorry I missed that part - yes, OT shell is exposed to the user, just connect to you board with a terminal, and you should be able to use it.
To activate OT shell type select ot, and then type cmd help to list supported OT commands. Note that you need to prefix every OT command with cmd, so for example to get OT version, use cmd version command.

Ok, yes that worked. Thank you


Bug Fixes

Code reviewed and signed off

Hi @kusumamurthy, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Kusuma Srinivasa Murthy). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

Looks good ... will only work with new bits.  Wait for next release to merge.


Remove ExportTraceServiceRequest record type as Data Prepper supported internal data type.

Is your feature request related to a problem? Please describe.
Data Prepper trace ingestion is now supporting record_type:event which uses Event as data model and flow unit processed by trace ingestion plugins. The classic data unit record_type:otlp which indicates ExportTraceServiceRequest as data model will be removed in 2.0.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered (Optional)
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

The current documentation states the new approach to configuring a pipeline: https://opensearch.org/docs/latest/clients/data-prepper/pipelines/#event-record-type
It suggests:
source:
    otel_trace_source:
      ssl: false
      record_type: event

If we keep the record_type such that it has only one option: event, then a pipeline author can configure a pipeline in 1.5 and have it work in 2.0 without having to make changes to the pipeline. This provides a nice migration path.

Thoughts on keeping record_type versus removing it entirely?

I lean towards removing it entirely as it provides no additional value for user. But I agree we should document that thoroughly in https://github.com/opensearch-project/documentation-website

documentation update PR: https://github.com/opensearch-project/documentation-website/pull/1306

Closed via the PR merged above


Travis osx fails a lot

I'm getting a lot of false negatives in my PRs. This false negatives are always related with the osx workers. The log is like this:

adding /Users/travis/.gradle/caches to cache
creating directory /Users/travis/.gradle/caches
adding /Users/travis/.gradle/wrapper to cache
creating directory /Users/travis/.gradle/wrapper
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated

This is kind of a pain for not maintainers because we can't rerun them. Any idea about how can we fix this?

Unfortunately CI is sometimes flakey. Some issues are easier than others to fix (or we need to wait on Travis/AppVeyor to correct a problem in their environment). Hopefully this will be addressed soon.
Though you may not be able to restart builds or jobs, it helps if you're able to point out in a comment if you suspect a build failed because of something unrelated to the PR.

Though you may not be able to restart builds or jobs, it helps if you're able to point out in a comment if you suspect a build failed because of something unrelated to the PR.

Good to know, I will
Yeah, this seems a problem in travis more than in detekt. I was just wondering if we could do something to reduce/workaround them. Or if someone has a link to the issue in travis so we know the insides and we can find that workaround (I did a quick research in Google and couldn't find it).

@3flex it feels a bit overkill to have also 3 builds for osx. There should't be too many differences in the jdks of Linux and OSX. Maybe lets just test the recent Java version on osx (12 for now untill Gradle supports 13)?

I'd test version 8 and 12 for now.


Build a Chimoney Payment Plugin for WordPress

Develop a WordPress plugin that integrates Chimoney payment functionality, allowing website owners to accept payments using Chimoney on their WordPress sites.
Idea Flow:

[ ] The plugin should allow website owners to receive payments into their Chimoney generated wallets.
[ ] It should  support various types of transactions, such as product purchases, donations, or subscriptions.
[ ] The plugin should include clear setup instructions and configuration options to make it user-friendly for both beginners and experienced users.

@phyleria can I give it a try??

Hi @partik03
Sure, go ahead.

@phyleria I'll love to give this a try
@partik03 how are things coming on your end?

@phyleria No feedback on this
@partik03 how is it going


Support Debugger API for Webview

I see Chrome have Debugger API, it's very useful to interact with webview without remote debugging protocol.
I hope Electronjs have this feature.
Thanks.

Closing since there is a way to get WebContents of webview.


Another Spanner integration test fix

Updating another spot responsible for randomization of test database IDs.
Previous attempt to fix this:
https://github.com/GoogleCloudPlatform/google-cloud-java/pull/1621
/cc @vkedia

Changes Unknown when pulling a4fe18bad4e919257b4f443911676b74cb11ce5d on garrettjonesgoogle:master into ** on GoogleCloudPlatform:master**.


SonarQube: Weak Cryptography in generateRandomToken

I am currently running node-oauth2-server through sonarqube.
I know this part of the code was touched in #38.
Sonarqube shows for generateRandomToken following Security Hotspot
Cryptographic hash algorithms such as MD2, MD4, MD5, MD6, HAVAL-128, HMAC-MD5, DSA (which uses SHA-1), RIPEMD, RIPEMD-128, RIPEMD-160, HMACRIPEMD160 and SHA-1 are no longer considered secure, because it is possible to have collisions (little computational effort is enough to find two or more different inputs that produce the same hash).
We actually just want to create a random token. So this finding is not a security issue anyway.
But when I read the code it makes for me no sense, why the output of randomBytes, which outputs a cryptographical secure random value should be hashed again with sha256. We could replace this by simply doing
  generateRandomToken: function() {
    return Promise.resolve(crypto.randomBytes(32).toString('hex'));
  }

and all tests would pass. SonarQube would also not remark this as potential security issue.

@Uzlopak which branch did sonarqube actually scan? The master branch was older and still had sha1, we just merged the latest updates into master after we published release 4.1.0

Can you please rescan targeting development which is always our latest state of code?

I did this in the first place with the development branch. Actually this is no real issue. It is just wasted cycles for the generateRandomToken, as it does not make any technical change, if I use randomBytes or if I use randomBytes and hash it with sha256. random is random and hasing from random is still random.

Actually, we can do it much simpler...
According to https://datatracker.ietf.org/doc/html/rfc6749#appendix-A.17 refresh_token should be of format VSCHAR.
We could do something like this. By this, we would have some bigger range tokens.
	const result = [];
	while (result.length < length) {
		const tmp = randomBytes(1).toString("binary");
		if (vschar(tmp)) { result.push(tmp) };
	}
	return result.join("");

By this we use the full range of valid characters and not only /0-9a-f/

According to https://datatracker.ietf.org/doc/html/rfc6749#section-10.10
10.10.  Credentials-Guessing Attacks

   The authorization server MUST prevent attackers from guessing access
   tokens, authorization codes, refresh tokens, resource owner
   passwords, and client credentials.

   The probability of an attacker guessing generated tokens (and other
   credentials not intended for handling by end-users) MUST be less than
   or equal to 2^(-128) and SHOULD be less than or equal to 2^(-160).

   The authorization server MUST utilize other means to protect
   credentials intended for end-user usage.

It is now very late, but I think with using the reduced ascii range (256-32=242 characters) and a length of 64 (like sha256) you would have a magnitude higher security.
Current probability to guess the token: 16^64. (= 2 ^ 256, 16 characters with a length of 64)
With this: 242^64 (~ 2^499, 242 characters and with a length of 64)
So we could use still 64 characters but have it practically uncrackable. Even Bitcoin privatekeys are easier to hack (despite they are also practically uncrackable).
To have about 2^256 strength, with this method you would need "just" a new token with a length of 33 characters.

Question is, if clients / implemenations will be able to handle data different from /0-9a-f/ so this might be breaking, right?

Could be. But usually generateAccessToken and generateRefreshToken is implemented in the model and generateRandomToken is just fallback. I think it would still make sense to implement it in a major version.
A former employer uses oauth2-server and the tokens are alphanumerical and they decided to make the accessTokens suuuuper huge. I think it was 512 characters for accessToken and 2048 characters for the refreshToken. So with every call they send 0,5kb (assuming the header can only handle ascii) for validation. Then they lookup in the mongodb if this token is valid or not etc.. By implementing it this way, and documenting, that this is already very save, an implementor could use it as a reference and just store it a small string instead of thinking, that they have to increase the length of the accessToken to an arbitrary very long length.

Hi,
tested the performance of the above implementation. It is quite slow. About 13.000 valid tokens per second in my fastify implementation. (I do a password grant against my in memory model).
So this is my high performance implementation, which gets about 165k /s valid tokens. I guess there is the fastify overhead, but I guess, if you run this in a benchmark, it will be also 10x faster than the above implementation.
In best case szenario it iterates over the values and checks if it is valid and if we reach the requested length it slices that Buffer and turns it into the necessary string. If we are unlucky we fill the invalid positions with fields at the back of the buffer.  And if we are very unlucky, we do the whole procedure again.
It is written in typescript but this shouldnt be an issue.
import { randomBytes } from "crypto";

/**
 * 10.10.  Credentials-Guessing Attacks
 *
 * The authorization server MUST prevent attackers from guessing access
 * tokens, authorization codes, refresh tokens, resource owner
 * passwords, and client credentials.
 *
 * The probability of an attacker guessing generated tokens (and other
 * credentials not intended for handling by end-users) MUST be less than
 * or equal to 2^(-128) and SHOULD be less than or equal to 2^(-160).
 *
 * The authorization server MUST utilize other means to protect
 * credentials intended for end-user usage.
 */
export function generateRandomToken(length = 33): string {
	let tmp: Buffer;
	let valid = false;
	while (!valid) {
		let pos = 0;
		let endPos = (length * 4) - 1;
		tmp = randomBytes(length * 4);
		while (pos < length) {
			if (
				tmp[pos] < 0x20 ||
				tmp[pos] > 0x7E
			) {
				tmp[pos] = tmp[endPos];
				endPos--;
				if (endPos < pos) {
					break;
				}
			} else {
				pos++;
			}
			if (pos === length) {
				valid = true;
			}
		}
	}
	return tmp!.slice(0, length).toString("binary");
}

export default generateRandomToken;

And this the corresponding unit test
describe(
	"generateRandomToken",
	() => {
		it(
			"should return a 64 character long token",
			() => {
				expect(generateRandomToken(64)).to.have.lengthOf(64);
			}
		);

		it(
			"should return a valid token",
			() => {
				expect(vschar(generateRandomToken(64))).to.be.equal(true);
			}
		);

		it(
			"check if generateRandomToken creates valid vschar tokens by generating 100000 tokens",
			() => {
				for (let i = 0, il = 100000; i < il; i++) {
					expect(vschar(generateRandomToken(64))).to.be.equal(true);
				}
			}
		)
	}
);

@Uzlopak would you mind opening a PR for this, so we can leverage GitHub actions for code quality assurance and the review function for better reasoning about the code?


GoogleNewsScraper.-Extracting news articles from Google News

Google News Scraper is a python notebook that aims at extracting news articles from Google News. Whether you are interested in collecting the latest headlines or reading topic-based news, this scraper will assist you in the automation process of article collection for either analytical purposes or personal usage.
features:
Scrape Latest News: Auto headline and article scraping from Google News.
Keyword-Based Search: Fine-tune the scraper with specific subjects or keywords on which to focus.
Article Information: Find relevant facts, such as; date of publication, author, and sources.
Export Data: Exports the scraped data to formats like CSV or JSON for better analysis.

@UppuluriKalyani assign me this project idea :)


DREAMM: Afterlife (1996)

Game
https://store.steampowered.com/app/557240/
Engine
DREAMM
Linux Distribution
Nobara
Luxtorpeda Version
66.1.0
Bug description
Doesn't launch.
Steps To Reproduce
Try to launch
Expected Behavior
Should launch
Additional Context
Currently the DREAMM executable is installed in ~/.local/share/Steam/steamapps/common/Afterlife/DOSBOX/. This won't work since the game executable is in the Afterlife folder above and not in the DOSBOX folder. Either DREAMM needs to be launched with a command line parameter specifying the correct path, which is: ~/.local/share/Steam/steamapps/common/Afterlife/ or dream needs to be installed and launched directly from there. See documentation: https://aarongiles.com/dreamm/docs/v21/#install-standalone
With this fix the Steam version works fine with DREAMM, and it can be added as a default engine.
Relevant log output
No response

What is the command that you used for that? The document dosen't specify from what  I can tell.

Both of these work: ./dreamm "$HOME/.local/share/Steam/steamapps/common/Afterlife/" or  ./dreamm "../"

Ok thanks, I've added it in a recent commit, let me know if that works

It doesn't work yet, there is no run-dreamm-one-up.sh file

Ah whoops :) I forgot to commit the file, it should work now. Let me know how it goes.

Now it works


borgmatic: 1.7.15 -> 1.8.1

Description of changes

Bump version from 1.7.15 to 1.8.1, change log can be found at

https://projects.torsion.org/borgmatic-collective/borgmatic/releases/tag/1.8.0
https://projects.torsion.org/borgmatic-collective/borgmatic/releases/tag/1.8.1

move source_directories and repositories out of location scope, or else there is a warning from borgmatic, see https://projects.torsion.org/borgmatic-collective/borgmatic/issues/721

/etc/borgmatic.d/a.yaml: Configuration sections (like location: and storage:) are deprecated and support will be removed from a future release. To prepare for this, move your options out of sections to the global scope.

make repositories to a list of key/value pairs, or else there is a warning from borgmatic, see https://projects.torsion.org/borgmatic-collective/borgmatic/issues/635

/etc/borgmatic.d/a.yaml: The repositories option now expects a list of key/value pairs. Lists of strings for this option are deprecated and support will be removed from a future release.

add a warning if users are still using location section, old config for example

services.borgmatic = {
  enable = true;
  configurations = {
    filebrowser = {
      location = {
        source_directories = [
          "/path/to/filebrowser"
        ];
        repositories = [
<EMAIL_ADDRESS>        ];
      };
    };
  };
}

should be upgraded to
services.borgmatic = {
  enable = true;
  configurations = {
    filebrowser = {
      source_directories = [
        "/persist/docker/filebrowser"
      ];
      repositories = [
        {<EMAIL_ADDRESS>label="borgbase"; }
      ];
    };
  };
}

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[x] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@imlonghao would you like to fix the conflict?


Install issue?

I just tried using this today and the install went ok, but it does not boot up successfully. It either gets stuck on the Grub menu and does not boot, or it boots and then fails shortly afterwards. It's a bit hard to tell using LISH with it being set to a 24x80 configuration. Any more info I can provide, please let me know.
I'm at a bit of a loss as I had had a server hacked recently, rebuilt it cleanly with Ubuntu Xenial, ensured no root login over ssh, enforced ssh key authentication only, installed docker, launched shipyard, and an email container. All the shipyard ports (and I think ssh?) should have only been accessible via my home IP (or my other Linode VPSes over the private network) with iptables rules that I turned on before installing Docker. I'm not sure how much more secure I can get than that, outside of switching distros, which is why I'm specifically interested in RancherOS.

Nasty, a hack like that 😞. One thing I would recommend looking into is IPv6: with IPv6 support by cloud providers getting pretty common, Linux distros automatically configuring IPv6 addresses, and services automatically listening on IPv6 as well, many people forget to lock down (or disable) IPv6. Sometimes very strict rules are set in iptables, not realizing their ip6tables is wide open!
As for the RancherOS install: I'll try to look into it and try some installs myself. Perhaps a recent release of RancherOS won't install using this method anymore, or maybe I need to make some changes to the install script.
I'll get back to you...

Actually I think the first time around I had an error in my cloud-config.yml file; after rerunning the setup steps a second time I was able to get things working. One thing that is worthy of note is that Linode support recommended using Glish to connect instead of Lish; they noted that it's better at working with unsupported distros compared to Lish.
I think you're right about IPv6, I think I didn't factor that in and the shipyard setup configures docker-engine access on a TCP port, so that's probably what the issue was; people had carte blanche to launch containers of any configuration over IPv6. I'll definitely have to keep that in mind moving forward, shame on me for not thinking about it in advance. Thanks for mentioning that.


Meta issue: editor integrations

Creating a parent issue to track and document the state of ruff's editor integrations.

We should support and document integration with VS Code and PyCharm at the very least. I know there was some prior work + discussion in #118.

Part of the work here could be making @harupy's VS Code extension publicly available. I'm happy to take that on if needed.

I've been playing around with the microsoft lsp as a way of making ruff available to a wider number of editors (particularly vscode and coc-nvim). The major blocker for me is that the main function for linting ruff::linter::lint_path only accepts a Path for the source. There's currently no public interface for linting from contents, or lower level access to the checking functions (i.e. check_path is private and check_ast requires autofix::fixer::Mode but autofix is private)

I haven’t had time to dig in on this, but is the solution to exposure lint_path and then have the LSP use the ruff crate as a library? Or do we need to expose that functionality as a binary / CLI? I’m happy to do whichever’s necessary.

In other words: if I added a lint_path function that was publicly exposed (with public args etc.), would that unblock this?

Ok cool, very doable. Will put something together.

(I added some documentation for PyCharm.)

@charliermarsh
Comenting on your question from https://github.com/charliermarsh/ruff/pull/289#issuecomment-1263866024 here since it's a more relevant thread.

What does it take to enable others to use the LSP from VS Code and elsewhere?

Alternatively most python language servers are expected to be able to installed as a python package itself. So just distributing the language server as a python package using maturin would be enough.
Once that is done, the editors that support lsp would start developing clients to interact with the ruff language server.
Although personally I would like to have a general purpose language server to enable completions and use ruff as just an additional checker either as a separate binary or as an extension. Because the existing language servers for python are implemented in python and extremely slow or implemented in JS/TS (pyright) which I don't like.
Now that you have shown what we can do with Rust for python ecosystem hopefully in the future we can build an entire language server from the ground up in Rust for Python and have ruff as a checker extension for it. Like how Rust Analyzer is for Rust.

👍 This makes sense! I want to spend some time exploring this soon (maybe this coming week), and putting together some official extensions. I use PyCharm, not VS Code, so I’m less familiar with the ecosystem (I need to understand the relationship between the LSP implementation, Ruff as a library, and then the actual editor extensions or actions and how those are distributed). But I do want Ruff to have the best possible editor support for VS Code given its popularity :)

Yep. As long as you have good language server support following the protocol. The people working on the editors will automatically start working on a client if the server is good/popular enough.
For instance, the moment we have a language server for ruff, I will try to contribute a client to Emacs https://github.com/emacs-lsp/lsp-mode so that I will be able to use it in Emacs. Similar would happen to all editors I am sure.
So the question basically becomes should the language server be a separate implementation? Or should it be somehow integrated into the same Repo (different crate) like how Rust-Analyzer does it for example.
I know @Seamooo had an inital prototype implementation here https://github.com/Seamooo/ruffd it is a good POC for what a language server will look like in general.

The LSP specification https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/ is actually very readable unlike most specifications if you want a reference
Additionally something to consider is that all language servers will have different capabilities that they supports. A hypothetical ruff-language-server will support formatting related capabilities such as codeActionProvider and diagnosticsProvider.
But it won't support static checking and completion capabilities like completionProvider declarationProvider (goto declaration) etc.
A language server like Rust-Analyzer basically supports everything since it integrates, formatting, diagnostics, completion etc. all in one.
I know that linting itself is a huge task that you are taking on, but it might be useful if things like the parsing, AST/CST logic etc. can be well defined and reusable enough that in the future we can think of adding completion and type checking related capabilities as well for an all in one rust based python language server.

Awesome. I'd like it to be in the same repo, if possible. We can use @Seamooo's implementation as a starting point (or would it ever make sense to build atop something like tower-lsp? I have to do some research here).
You're exactly right that it'd be good to design this with future capabilities in mind. Ruff already supports auto-fix, but auto-formatting is another good example of a capability that would be interesting to explore within the scope of the project.

(Let's keep using this issue to discuss for now, and I'll open something else specific to the LSP if / when I have work ready for review / feedback.)

Oh, I didn't know about tower-lsp before. It seems like a pretty useful abstraction. The protocal itself is not that hard to implement as can be seen from the prototype implementation https://github.com/Seamooo/ruffd
But having something like tower-lsp will definitely make it easier and maybe more easily maintainable (hopefully).

Are there any plans for neovim integration?

Definitely like the look of tower-lsp, and would be a big step for maintianability. Only reservervations would be having to dig into how it does scheduling as request ordering is important in the case of mutations.
If we're looking to create a code action provider for fixes, the api exposing Check, rather than Message, and making Fix a public type should enable everything.

@beatslikeahelix https://github.com/Seamooo/ruffd works with coc.nvim admittedly there isn't a release candidate right now as it's  very POC. To get it to work you can add below to your coc-settings.json
"ruffd": {
	"command": "/path/to/ruffd",
	"filetypes": ["python"],
}

I'm going to try building a VS Code extension atop ruffd.

coc-pyright has added ruff support, only lint for now.

@fannheyward - That's awesome! Thank you for doing that. I'll plug it in the Ruff docs.

For those who are using neovim, you could integrate ruff directly with efm just add the following lines to your config file

coc-pyright has added ruff fix support.

Thanks @fannheyward!

@charliermarsh
I have started to develop the Pycharm plugin ruff
I will come back with more information.
https://github.com/koxudaxi/ruff-pycharm-plugin

I implemented the three features on the ruff pycharm plugin.

Run ruff --fix as an action
Integrate Reformat Code with ruff --fix
Run ruff --fix for a file when the file is saved

And, We can install the plugin on PyCharm settings from JetBrains marketplace
The version invokes ruff command and give the python code to stdin.
@charliermarsh
As the next step, I would try to support ruffd (LSP).
I can't find the current status of the ruffd
Do you have the roadmap for supporting LSP?
If we need the time. I will skip the task now. And I will take another task.

@koxudaxi - Awesome! I'll give it a try today.
I'm still figuring out the roadmap for ruffd. Right now, I'm slightly more interested in using the LSP from https://github.com/charliermarsh/vscode-ruff and seeing if I can leverage it outside of VS Code (e.g., in Sublime Text).

The most relevant stuff in vscode-ruff is here -- the bundled Python server running on pygls. You can see the supported actions in the @LSP_SERVER.feature decorators.

(I know you asked about ruffd, but right now vscode-ruff is more familiar to me.)

@koxudaxi - Does the extension surface errors in the editor? Or is it meant to be invoked with the "Run Ruff" action?

This version runs ruff --fix, and it doesn't show any message, including an error from the command.
I will expect to show the message in the message window like console window or/and highlight the code with the error message on the editor in future versions.
If ruff can inspect the code quickly, we can run the ruff by every user action(changing code).
Or, Can ruff partial inspection with cache?

Run ruff --fix for a file when the file is saved

I did ruff linting in coc-pyright, also provided fix code action to pick and use.
But for ruff --fix on save, I don't have a strong desire to add. Apply fixes on save may change the whole file that bring unpredictable changes.
This is my OWN opinion, what do you think for this feature?

If ruff can inspect the code quickly, we can run the ruff by every user action(changing code).

The Ruff VS Code plugin just runs constantly on the open file, I think it's fast enough to do it on-user-change.

Are there any plans for helix-editor integration?

For instance, the moment we have a language server for ruff, I will try to contribute a client to Emacs https://github.com/emacs-lsp/lsp-mode so that I will be able to use it in Emacs. Similar would happen to all editors I am sure.

Any progress on this, @vikigenius ? Anything special I need to do to get this working in emacs?

@charliermarsh
I have published version v0.0.3 of the ruff pycharm plugin.
I added the feature inspection and quick fix
Could you please try it? you can download it marketplace
If you feel good, I want to put the link on the ruff documents.

https://github.com/koxudaxi/ruff-pycharm-plugin

@tsugumi-sys - I bet that https://github.com/charliermarsh/ruff-lsp would work with Helix, it's just a matter of configuring it.
Same for Emacs @cole-jacobs.
I can try to figure out how to integrate with those editors and add instructions to the ruff-lsp docs -- there are already a few examples, for Neovim and Sublime Text -- but would also love PRs to that effect.

Done, thanks @koxudaxi!

I'm going to close this for now since we have a good thing going with the LSP, VS Code extension, and so on. I'll file some issues on the LSP repo to figure out integrations with Emacs and Helix.

coc.nvim + ruff-lsp https://github.com/neoclide/coc.nvim/wiki/Language-servers#using-ruff-lsp
"languageserver": {
  "ruff-lsp": {
    "command": "ruff-lsp",
    "filetypes": ["python"]
  }
}

Amazing, thanks @fannheyward, I'll add those to the docs.

Added Helix docs in https://github.com/charliermarsh/ruff-lsp/pull/20 @tsugumi-sys.

@charliermarsh
I can use ruff in my project now and Omg, ruff is so first and I love it! Thank you very much:)

Yay, thanks so much for the kind words!

This is awesome!

I spent a little bit of time installing lsp-mode with Emacs but couldn't figure out how to get ruff-lsp to work with it, just too unfamiliar with Emacs. If anyone is able to set it up, and wants to contribute instructions, it would be hugely appreciated.
See: https://github.com/charliermarsh/ruff-lsp/issues/19.

@koxudaxi - Just wanted to say thanks again for building and maintaining the PyCharm plugin! I was playing with it today, and I love that you're surfacing the fix messages etc. in the UI.

@charliermarsh
Last week, I added ruff to my project https://github.com/koxudaxi/datamodel-code-generator
After using ruff in the actual project, I am excited about ruff and the PyCharm integration.
I will continue to maintain and add features to the PyCharm plugin.
Thanks for the feedback and your fantastic project.
PS. After knowing your commit history on ruff. I contribute to OSS every day 😸


parentMessageId can't track the conversation with gpt-3.5-turbo

Verify latest release

[X] I verified that the issue exists in the latest chatgpt release

Verify webapp is working

[X] I verify that the ChatGPT webapp is working properly for this account.

Environment details
v18.12.1
Describe the Bug
You have to send the previous message back，only parentMessageId can't track the conversation
some code like this
  const conversationId = crypto.randomBytes(16).toString('hex')
  const key = `conversation:${conversationId}`
  const cache = await redisClient.get(key)
  const messages = cache
    ? JSON.parse(cache)
    : [{ role: 'system', content: 'You are ChatGPT, a large language model trained by OpenAI.' }]

  messages.push({
    role: 'user',
    content: question,
  })

  const response = await chatService.openai.createChatCompletion({
    model: 'gpt-3.5-turbo',
    messages,
    temperature: 0.8,
  })
  const message = response.data.choices[0].message
  messages.push(message)

  await redisClient.set(key, JSON.stringify(messages), 'EX', 24 * 60 * 60)

looks like my problem

The problem is messageStore is not persistent，in nodejs cluster mode messageStore can't share with others

There are multiple workarounds

only new ChatGPTAPI in cluster master
use a persistent store such as redis


Allow dependency injection with GoRoute generator

As far as I've tried it today, the go router generator, only recognize injected params that should be part of the url, that is you cannot inject anything else like into your route.
Something more lenient around the lines of this could be used:

@TypedRoute()
class ProductsRoute extends GoRoute {
   final ServiceContainer services;
   final AppRouteFactory routeFactory;

   @override
   final String path = '/products';

   ProductsRoute(this.services);

   @override
   Widget build(BuildContext context) => Container();

   @override
   void redirect() => services.authentication.isUserAuthenticated ? null : routeFactory.login();
}

@TypedRoute(params: {'id': int })
class ProductDetailsRoute extends GoRoute {
   final ServiceContainer services;
   @override
   final String path = '/products/:id';

   ProductDetailsRoute(this.services);

   @override
   Widget build(BuildContext context) => Container();
}

The generator is not even required here, it's just to auto generate a go function, which can be hand written in most cases.

class ProductsRoute extends GoRoute {
   final ServiceContainer services;
   final AppRouteFactory routeFactory;

   @override
   final String path = '/products';

   ProductDetailsRoute(this.services);

   @override
   Widget build(BuildContext context) => Container();

   Future<void> go(BuildContext context) => context.go(path);

   @override
   void redirect() => services.authentication.isUserAuthenticated ? null : routeFactory.login();
}

class ProductDetailsRoute extends GoRoute {
   final ServiceContainer services;
   @override
   final String path = '/products/:id';

   ProductsRoute(this.services);

   @override
   Widget build(BuildContext context) => Container();

   Future<void> go(BuildContext context, int id) => context.go(path.replace(':id', id.toString()));
}

To know which route is part of the stack this is just a function of the path really. /products/:id contains 2 screens in the stack because the URL says so. Which is how a directory structure works, which conveniently, is also what an url is (supposed) to be, ie a path. There are other alternatives if that's not to everyone taste.

Hello @cedvdb. Thank you for filing this request. Labelling for further insights from the team.


Running restic check on a repo generated by rustic fails

Checking a repository generated by rustic (or a restic repository where rustic saved some snapshots) with the command restic check gives the following error message:
error for tree dd454271:apshots...
  Unquote: invalid syntax
[0:40] 100.00%  311 / 311 snapshots...
Fatal: repository contains errors
Command exited with non-zero status 1

A rustic check however does not complain about the repository.

Maybe this is a bug in restic, see https://github.com/restic/restic/issues/3808

I thought about how to fix this. In general one goal of rustic is to stay compatible with the restic repository format. So this would mean to re-implement what restic is doing here (and also keep the inconsistency with links https://github.com/restic/restic/pull/3802 until there is a solution in restic).
Now, restic does the following:

quote using strconv.Quote
remove the quotation marks at the beginning and end

And here comes my trouble: The strconv.Quote does roughly explain how it quotes and refers to strconv.IsPrint for what is quoted:  letters, numbers, punctuation, symbols and ASCII space.
So maybe just try to reimplement using (hopefully) suitable methods from char? Honestly, I don't like this as with this a bit vaguely definition, how can we be sure to encode identically to go?

Seems like I have to re-open this issue.
With #116, rustic now escapes literally everything which is non-ascii plus \n, \t, " and '.
Now, turned out that restic refuses to read and de-escape a the string \' :sob:


Bumping go version to 1.19

TL;DR
Bumping the go version to 1.19 to fix pull request checks.
Type

[ ] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
^^^
Tracking Issue
NA
Follow-up issue
NA

closing because these changes were included in https://github.com/flyteorg/flytepropeller/pull/516


Require -f for new install commands (again)

We previously changed the new install commands (e.g. pip install jax[tpu]) to use URLs directly to the required wheels hosted in GCS buckets. However, this doesn't work when installing jax from pypi because:
ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI.
This PR contains two commits which revert to using -f https://storage.googleapis.com/jax-releases/jax_releases.html instead:

Revert "Improve support for pip install jax[cuda111]"
This reverts commit dfcaf0feb81db0d2594b9a78154e8679b0366533.

Fix pip install jax[tpu]

Updates jax_releases.html index to include libtpu wheels
Change [tpu] extras to specify libtpu-nightly instead of wheel URL

The full install command will now be:
pip install jax[tpu] -f https://storage.googleapis.com/jax-releases/jax_releases.html
(similar to the cuda install commands)
I've already pushed an updated jax_releases.html to the jax-releases GCS bucket.

Thanks for quick review!

I tested for curiosity this and noticed that if jax is already installed then this works. It's only when jax and jaxlib are installed at the same time that this won't work...
maybe this could be exploited for a workaround?
➜ pip install 'jax[cuda111]==0.2.15' --no-cache --force-reinstall
Collecting jax[cuda111]==0.2.15
  Downloading jax-0.2.15.tar.gz (681 kB)
     |████████████████████████████████| 681 kB 6.6 MB/s
ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI.
jax depends on jaxlib@ https://storage.googleapis.com/jax-releases/cuda111/jaxlib-0.1.67+cuda111-cp38-none-manylinux2010_x86_64.whl

➜ pip install 'jax==0.2.15' --no-cache --force-reinstall
Collecting jax==0.2.15
  Downloading jax-0.2.15.tar.gz (681 kB)
     |████████████████████████████████| 681 kB 6.2 MB/s
Collecting numpy>=1.17
...
➜ pip install 'jax[cuda111]==0.2.15' --no-cache
Requirement already satisfied: jax[cuda111]==0.2.15 in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (0.2.15)
Collecting jaxlib@ https://storage.googleapis.com/jax-releases/cuda111/jaxlib-0.1.67+cuda111-cp38-none-manylinux2010_x86_64.whl
  Downloading https://storage.googleapis.com/jax-releases/cuda111/jaxlib-0.1.67+cuda111-cp38-none-manylinux2010_x86_64.whl (194.6 MB)
     |████████████████████████████████| 194.6 MB 10.3 MB/s
Requirement already satisfied: absl-py in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (from jax[cuda111]==0.2.15) (0.13.0)
Requirement already satisfied: numpy>=1.17 in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (from jax[cuda111]==0.2.15) (1.21.0)
Requirement already satisfied: opt-einsum in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (from jax[cuda111]==0.2.15) (3.3.0)
Requirement already satisfied: scipy in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (from jaxlib@ https://storage.googleapis.com/jax-releases/cuda111/jaxlib-0.1.67+cuda111-cp38-none-manylinux2010_x86_64.whl->jax[cuda111]==0.2.15) (1.6.1)
Requirement already satisfied: flatbuffers<3.0,>=1.12 in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (from jaxlib@ https://storage.googleapis.com/jax-releases/cuda111/jaxlib-0.1.67+cuda111-cp38-none-manylinux2010_x86_64.whl->jax[cuda111]==0.2.15) (1.12)
Requirement already satisfied: six in /home/filippovicentini/Documents/pythonenvs/netket_env/lib/python3.8/site-packages (from absl-py->jax[cuda111]==0.2.15) (1.16.0)

Ha, amazing! I spent way too much time yesterday learning about the intricacies of pip + pypi, but didn't run into this edge case.  I think the long-term solution is to have the libtpu package hosted on pypi, so we don't need to think about any of this ever again :P


Remove unnecessary refresh listeners from NRTReplicationReaderManager.

Description
This change removes RefreshListeners used by IndexShard & InternalEngine to provide waitFor functionality from NRT replicas. These listeners were previously registered onto NRT replicas only to be force released on the next scheduled refresh cycle without actually refreshing the reader.
This change also removes the unnecessary blocking refresh from NRTReaderManager because we no longer have conflicting refresh invocations from scheduledRefresh, resolving the deadlock in #8858.
Added test to ensure refreshListeners are not registered.  This is also covered by existing tests testDropPrimaryDuringReplication and testPrimaryRelocation.
Related Issues
Resolves #8858
Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

https://github.com/opensearch-project/OpenSearch/issues/7556


Layout issue on "/allcontributors" page if there are no search results

Good job @SubxX
Congrats 🎉, your PR got merged. To be eligible for the swags from ClueLess. Follow this steps.
Note that this repo is excluded from Hacktoberfest but this PR is still eligible for ClueLess Swags.

Star this repository. ⭐

SignIn / SignUp in [ClueLess Website](https://www.clueless.tech/) .

Go to profile section from the top right hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard !
And don’t forget to share your achievement with your friends.


Enforce maximum column limits for classes in SQLite

Overview:
This pull request addresses the issue of exceeding maximum column limits for classes in SQLite when running the SELECT * query. Currently, querying more columns is possible than allowed, which can lead to failures.
Changes Made:
Introduced schema import level checks to verify that no class exceeds the maximum column limit(increased from 2000 to 2200) across all tables.

/azp run imodel-native


ServerListener now has a configurable shutdown grace period

ServerListener now has a configurable shutdown grace period, default remains 500ms.
Solves (https://github.com/helidon-io/helidon/issues/6649)

Closing, as this was fixed by team PR. Thanks for the provided information, but we cannot merge contributions from users that have not signed OCA....


CFD was closed with old commit transaction

CFD was closed with different commit transaction .

  {
    "order_id": "c5f10940-ee7c-4e4e-a81f-3c1db3ed117e",
    "initial_price": "44138.01",
    "accumulated_fees": -0.00004467,
    "leverage": 2,
    "trading_pair": "BtcUsd",
    "position": "Short",
    "liquidation_price": "21000000",
    "quantity_usd": "300",
    "margin": 0.00679686,
    "margin_counterparty": 0.00339843,
    "role": "Maker",
    "profit_btc": -0.00020527,
    "profit_percent": "-3.02",
    "payout": 0.00659159,
    "closing_price": "45781",
    "state": "OpenCommitted",
    "actions": [],
    "details": {
      "tx_url_list": [
        {
          "label": "Lock",
          "url": "https://mempool.space/tx/09461e198381d9582fbb01d9f7f321db803c1502b93364b106472548b7f7b49b:0"
        },
        {
          "label": "Commit",
          "url": "https://mempool.space/tx/bcc173fef4175e19792e7a81bbf6505227943b5d4e7532f4a53b2f5a3945275a"
        },
        {
          "label": "Cet",
          "url": "https://mempool.space/tx/07d472cefee15de0168cc4f7ed411bb7cac2fc04363c9652d8cac2e2108cb6f1:0"
        }
      ]
    },
    "expiry_timestamp":<PHONE_NUMBER>,
    "counterparty": "f10142ad845f2b894df8fee088d1951e7da61cb75f142aca3e5fe77de1c8054a",
    "pending_settlement_proposal_price": null
  }

Duplicated to #1634


feat: switch stats.jenkins.io to the new website

This PR switches stats.jenkins.io subdomain to the new website, and the old one served from GitHub Pages to old.stats.jenkins.io.
Ref:

https://github.com/jenkins-infra/helpdesk/issues/4265#issuecomment-2338844499

For info: as per today's Infra SIG meeting, this PR will be deployed tomorrow, Wednesday 11 at 08:00am UTC.

For info: as per https://github.com/jenkins-infra/helpdesk/issues/4265#issuecomment-2342985525 this PR failed with the following missing elements:

TTL of the old CNAME (pointing to github pages) was still 300 instead of 60. Some users might have to wait 600s (deletion + creation) before having the change on their DNSes
Deleting and creating in the same operation is not an atomic operation. Next time we have to use a moved {} terraform block so the record is not deleted but updated instead.


Remove CMakeForceCompiler

CMakeForceCompiler is deprecated.
libtuv-DCO-1.0-Signed-off-by: Sanggyu Lee<EMAIL_ADDRESS>

LGTM


convertDeltaToHtml wont work when there is a formula

Hi
If the delta has a formula, the convertDeltaToHtml wont work.
var deltaWithFormulaExample = { "ops": [{ "insert": { formula: "$$\small{4 \div 0.25 \ =}$$ _____ $$\small{\times 4}$$" } }] };

Hi @haojia321 . Thank you for submitting this. I'll take a look at this later today.

@haojia321 Thank you for your patience.
Background
Quill requires an additional package (KaTeX) to be loaded into the browser in order to render formulas. KaTeX converts the TeX/LaTeX markup to HTML/CSS.
Issue
Currently node-quill-converter does not load KaTeX into the JSDOM instance. Therefore formulas do not render into HTML. This is likely what you are experiencing.
Possible solution(s)
I can open up a new issue as an enhancement request and look at adding an option to import the KaTeX library.

@joelcolucci Thank you for your response. You are right, this is exactly the issue we are facing now. Just wondering when will this be fixed?

@haojia321 I will take a look today/tomorrow at extending the API to import KaTex. I'll keep you updated.

@haojia321 Can you provide an example of correct input and expected output?
Below is the current test case I'm using. The output includes a KaTeX error. I'm working to confirm if this is due to a bad Delta, code, or test framework.
Input
let deltaWithKatex = { ops: [{ insert: { formula: "$$\small{4 \div 0.25 \ =}$$ _____ $$\small{\times 4}$$" } }] };

Output

    $$small{4 div 0.25  =}$$ _____ $$small{  imes 4}$$

Hi @joelcolucci ,
Sorry I gave invalid data in my previous comment. Below 2 are valid deltaWithKatex;

let deltaWithKatex = { ops: [{ insert: { formula: "\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }" } }] };

let deltaWithKatex = { ops: [{ insert: { formula: "e=mc^2" } }] };

@haojia321 Thanks. I'm continuing to work on this. There are inconsistencies in the output at the moment. I'll keep you updated.


Sorting is failed when the nodelist has no length

Tested with jQuery plugin.
Make a simple selection for something non-existing, like
$('body .none').tsort()

The code fails at
applyToDOM()

saying that parentNode is undefined

fixed for v2.2.4


TEST: reformat all nix files with nixpkgs-fmt

DO NOT MERGE
Testing https://github.com/NixOS/nixpkgs/issues/120832 with:
find . -name "*.nix" -exec $(nix-build -A nixpkgs-fmt)/bin/nixpkgs-fmt {} \;

Thanks for starting this. Let us know if you need some help or some build power to test something.

The commit message for the main commit here is crucial documentation that can't be changed afterwards; it is therefore critical to get this right. I'd propose something like:

treewide: format with nixpkgs-fmt
If you are seeing this in git blame, you have not set up .git-blame-ignore-revs properly. To do this, you need to run the following command once:
git config blame.ignoreRevsFile .git-blame-ignore-revs

This should work with all local tools.
For more information see [INFO URL].

The info URL is so we can give more information in the future.

I like the general idea of doing this.
However, there are some things I don't like about the current formatting:

I don't think comments should be reformatted; they sometimes contain nix expressions, which are now flattened by the formatter (or it should be more intelligent, but I think not formatting is better)
I saw something where multiple values were listed like below, and the formatting got weird

packageA,
comment
packageB,
comment

I agree it should leave comments alone. A good example is these docs:

  /* Specialized `assertMsg` for checking if val is one of the elements
     of a list. Useful for checking enums.
    of a list. Useful for checking enums.
     Example:
       let sslLibrary = "libressl"
       in assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ]
       => false
       stderr> trace: sslLibrary must be one of "openssl", "bearssl", but is: "libressl"
    Example:
    let sslLibrary = "libressl"
    in assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ]
    => false
    stderr> trace: sslLibrary must be one of "openssl", "bearssl", but is: "libressl"
     Type:
       assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool
    Type:
    assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool
  */

the flattening here is unfortunate.

I like the general idea of doing this.
However, there are some things I don't like about the current formatting:

I don't think comments should be reformatted; they sometimes contain nix expressions, which are now flattened by the formatter (or it should be more intelligent, but I think not formatting is better)
I saw something where multiple values were listed like below, and the formatting got weird

packageA,
comment
packageB,
comment
It was formatted to this:
packageA
, # comment
packageB
, # comment
The comments are really not great, the second thing is less of an issue, but I'd never manually format it like that.
(This was just with a brief look, haven't looked very long at this)

That looks like https://github.com/nix-community/nixpkgs-fmt/issues/243

I wanted to open this to test that whole nixpkgs/NixOS still evals. Unfortunately master moves quite fast and conflicts arise as soon as something is merged. Is there a way to run the whole eval suite locally?

Built nixpkgs-fmt from master and ran find . -name "*.nix" -exec /nix/store/askqcqa4mrblhpgyks60hxiph8c61haj-nixpkgs-fmt-1.2.0/bin/nixpkgs-fmt {} \; on fresh master.

This still doesn't look quite right:
https://github.com/NixOS/nixpkgs/pull/121490/files#diff-9a742acd363e7062932805c87186c92a025bef9d215fda52b8d46631691bbe9bR54-R62
But maybe that's intended, I'm not sure. It's not something I'd do by hand though.
But overall this looks a lot better to me!

Comma at the end of at the beginning is a debate I'd like to avoid here and what's important is that we can have either as that is a lossless conversion.
Other things anyone can notice? Otherwise it seems like nixpkgs-fmt formats all files and eval checks pass. I've also tested that running it twice doesn't make any new modifications :popcorn:

Does anybody have a smart idea what tool to use for a review? :sweat_smile: git show in a less seems quite painful already ^^
AFAICS also automagically created files are touched. Shouldn't we exclude these? (or fix the upstream tools)
According to the labels this would cause a full stdenv rebuild (and from the changes I've seen in pkgs/stdenv this seems correct). Given that this is likely a candidate for staging, are we sure that this will be ready on time before the branchoff (which is on friday IIRC, cc @NixOS/release-engineers )

AFAICS also automagically created files are touched. Shouldn't we exclude these? (or fix the upstream tools)

One auto-generated file looks like it is responsible for the majority of the diff.
 pkgs/development/haskell-modules/hackage-packages.nix
 1 file changed, 505371 insertions(+), 249022 deletions(-)

Comma at the end of at the beginning is a debate I'd like to avoid here and what's important is that we can have either way as that is a lossless conversion.

@domenkozar
This would look better IMO:
{
  foo
  # comments about bar
, bar
}

I think it would be valid too? Not sure how feasible or easy though.


fix: move contract types to /src

This moves the autogenerated types into the /src directory to fix the service build. (Autodeploy was previously failing as the types were outside of the built dist.)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-11.9%) to 82.216%

Totals

Change from base Build<PHONE_NUMBER>:
-11.9%

Covered Lines:
491

Relevant Lines:
596

💛  - Coveralls


feat: could get userToken by using GetUserToken() in SDK anywhere in casbin-oa-android project

Implement through sharedPreferences

@Kininaru


Added level for as default parameter when creating the client

Adds the possibility to specify log level when creating the client (by sending in logging.INFO/WARNING etc)

Sorry, I'm running out of time.
I restart the travis build. It should get rid of whatever issue there was before


Add Rchain Rhoc

as per MetaMask/metamask-extension#4008

@bdresser where is the PR or information for this?

@estebanmino I just moved an open issue on the extension to this repo. I believe @kumavis originally filed it to add the RHOC token to our list (https://etherscan.io/token/0x168296bb09e24a88805cb9c33356536b980d3fc5)

Ok, I couldn't find the token in the list so I'll create a PR

Done, waiting for review.


A lot of values

Well, I have a problem with the Chart which I can't solve, the thing is that I make a query and with the results I fill my chart. Sometimes that query's reach the 150 rows and I put it into my Chart, but this 150 records in the x axis doesn't appear it only paints maybe 50 in a random way, how can I fix that?

@hectorcapulin do you have a fiddle that shows the issue you are seeing?

https://jsfiddle.net/Hector_Capulin/p9vq0p9x/

https://jsfiddle.net/Hector_Capulin/kL0s9oLo/

@hectorcapulin there are only 3 data points in the data array hence why there are only a few bars

I can't put my query, would be to much and I'm kinda  noob with jsfiddle so I adapt it, if you notice there's some elements of the x axis that doesn't appear.

The labels are being hidden because they would overlap. Disabling the auto skip will show them all.

Disabling the auto skip in which option? Ticks or xAxes?

In the ticks config for the x axis
options: {
  scales: {
    xAxes: [{
      ticks: {
        autoSkip: false,
      }
    }
  }
}

You're right thanks a lot, the last question how can I make the font smaller  in the xAxes?

@hectorcapulin set the fontSize: property inside of ticks in the config


[release-2.5] Triggering image rebuild

Related issue: https://github.com/stolostron/backlog/issues/22158
Signed-off-by: dislbenn<EMAIL_ADDRESS>

/retest

/retest


LUCENE-10603: Migrate remaining SSDV iteration to use docValueCount in production code

This migrates the remaining production code iteration to use SSDV#docValueCount for iteration, getting us closer to removing support for NO_MORE_ORDS in SSDV#nextOrd. Test-related code still needs to get updated.

Merging as I've addressed the outstanding feedback and the change is otherwise straight-forward. Thanks @jpountz for the suggestions and review!


Make Debugging Masterclass Dynamic

TLDR: Masterclasses have an amazing amount of details documented within them. This information is also outdated, unmaintained, and doesn't reach our customers. This PR helps to transfer all that information out of masterclasses and attempts to dynamically generate masterclasses from the main docs.
JF: https://jel.ly.fish/improvement-rethink-masterclasses-32f2254

This PR currently soft-depends on

https://github.com/balena-os/balena-engine/pull/324
https://github.com/balena-os/balena-supervisor/pull/2085
https://github.com/balena-io-modules/device-diagnostics/pull/316

When and if these PRs are merged. We can pull docs related to these components just like we always do. At the moment, I have committed them all to the repository instead of unblocking the PR.


Allow slots to be initialized with different shapes + values than primary var in Keras optimizer

System information

TensorFlow version (you are using): 2.2.0
Are you willing to contribute it (Yes/No): probably not

Describe the feature and the current behavior/state.
Currently the add_slot method in the optimizer class (link) only allows you to create slots which are the same shape as the original var, and you cannot set it to a custom value (i.e. it forces you to use an initializer).
Will this change the current api? How?
Either add_slot should be modified to include this functionality, or there should be a tf.keras equivalent to the old _get_or_make_slots method which gives the developer the option to pass in a value for the slot to be initialized with (which may be a different shape than the var).
Who will benefit with this feature?
Anyone implementing custom optimizers which require slots which may be custom values or shapes (i.e. the SM3 optimizer creates accumulators which are differently shaped than their corresponding vars).
Any Other info.
This feature seems to be present in the base optimizer class via _get_or_make_slot which calls create_slot(), which allows you to pass in an initial value.

Maybe you can use hyper parameters, check this question.

duplicate of https://github.com/tensorflow/tensorflow/issues/19457 (opened May 2018...)

@mathemakitten Since it was opened long time back, I would like to know whether there is any actionable items like raising PR? If this is still an issue and want to contribute, please feel free to open this issue in keras-team/keras repo.
Please note that Keras development moved to another repository to focus entirely on only keras. Could you please repost this issue on keras-team/keras repo.. Thanks!


Advanced pickit

To use the advanced itemfilter an ID-Tome needs to be in the inventory.
Added an advanced itemfilter for magic, rare and uniques.
the specified itemproperties are documented here:
"\botty\config\advanced_pickit.yaml"
The bot decides if the advanced picket is used or the standard pickit.ini (ui_manager._keep_item)
if the advanced pickit the ui_manager.identify_item is called and items are identified
The itemstats are compared with the items listed in the yaml-file. If all properties for one matchin item is matched, the stash routine is going to be called.
Added a routine for checking if ID_TOME is empty in ui_manager.has_ids.
The function is going to be called in bot.on_end_game and bot.on_end_run
Added several item properties (still in progress)
Routine for White, gray items stays the same.

GJ on the effort. I am having a few conceptional issues with it though. There is already an "id items at cain" feature. Imho this is a lot more "safe" and reliable. We all know the issues we can face when doing stuff in the inventory...
Also I am not a big fan of the yml file which adds yet another layer of pickit info to a different place in a different format. Why cant we add these values just like we do with the socket info or etheral info in the pickit.ini?

Havent mentioned the "id @ Cain" feature. I will give it a try and implement the routine instead of the ID-Tome.
Just need to implement some logic while picking up items if an identification "@Cain" ist needed.
Ill try to make the attributes availible in the pickit.ini file so we dont need a separate file. Hope it wont get to messy :)

Integrated yaml informationen into pickit.ini. No yaml file needed.
Integrated routine to check if identification is activated else the include for magic, rare, sets and uniques are disabled.
Only donwside: no nested attributation in pickit.ini possible

I will wait with merging for next release because I would see this PR as super nice, but also somewhat risky to have unexpected behaviours. So the course of actions would be, do a new release, merge this and test it properly on master and get ready for the next one.

Totally agree. Im also working on a gambling option. Right now an alpha version is running but needs some small improvements before i can start another PR.

Some small changes made to make unittests comftable. Unittests added, small adjustment regarding pickit

@RB-Development In an attempt to solve the merge conflict on the github GUI I think I broke sth maybe? Can you check? Otherwise I'd fine merging.

Looks like you killed the function in config.py to read the nested filters
`def parse_item_config_string(self, key: str = None) -> ItemProps:
string = self._select_val("items", key).upper()
return self.string_to_item_prop (string)
def string_to_item_prop (self, string: str) -> ItemProps:
    item_props = ItemProps()
    brk_on = 0
    brk_off = 0
    section = 0
    counter = 0
    start_section = 0
    start_item = 0
    include_list = []
    exclude_list = []
    for char in string:
        new_section = False
        counter+=1
        if char == "(":
            brk_on +=1
        elif char == ")":
            brk_off += 1
        if ((char == "," and brk_on==brk_off)):
            new_section = True
            if  (counter == len (string)):
                string_section = string [start_section:counter]
            else:
                string_section = string [start_section:counter-1]
            if section == 0:
                item_props.pickit_type = int (string_section)
            section +=1
            start_section = counter
        if ((char == "," and (brk_on==brk_off+1)) or new_section or counter == len (string)):
            if new_section:
                section -=1
            if start_item ==0:
                start_item = start_section
            if  (counter == len (string)):
                item = string [start_item:counter]
            else:
                item = string [start_item:counter-1]
            if section == 0 and counter == len (string):
                item_props.pickit_type = int (item)
                pass
            if section ==1:
                include_list.append (item)
                start_item = counter +1
            elif section ==2:
                exclude_list.append (item)
                start_item = counter +1
            if new_section:
                section +=1
    if (len (include_list)>0 and (len (include_list[0]) >=6)):
        if ("AND" in include_list[0][0: 6] and not ")" in include_list[0]):
            item_props.include_type = "AND"
        else:
            item_props.include_type = "OR"
    if (len (exclude_list)>0 and (len (exclude_list[0]) >=6)):
        if ("AND" in exclude_list[0][0:6] and not ")" in include_list[0]):
            item_props.exclude_type = "AND"
        else:
            item_props.exclude_type = "OR"
    for i in range (len(include_list)):
        include_list[i]  = include_list[i].replace (" ","").replace ("OR(","").replace ("AND(", "").replace ("(", "").replace (")","")
        include_list[i]  = include_list[i].split (",")
    for l in range (len (exclude_list)):
        exclude_list[l] = exclude_list[l].replace (" ","").replace ("OR(","").replace ("AND(", "").replace ("(", "").replace (")","")
        exclude_list[l] = exclude_list[l].split (",")
    item_props.include = include_list
    item_props.exclude = exclude_list
    return item_props`

I added those missing function in config.py and made some bugfixing regarding to changing function to static_methods in config.py
Should be fine now.

Hey @aeon0 anymore changes need to be done for merging?

Using this PR. Working well. Great job.

@mgleed added documentary in pickit.ini and changed the inital comment regarding the PR. Hope that matches your expectation :)

Looks pretty good, and I tested and it works nicely. I think this could potentially be merged and enjoyed by the masses for the next "who knows how long" while we wait for OCR item filtering. I'd better leave it to @aeon0 to decide now because he's back.

Even with ocr this could be a benefit because you are able to use nested filters. We can throw away the assets part but the Rest should work even with ocr

@mgleed Totally fine to keep gold options to default.


How to prevent master thread from being scheduled?

enkiTS is an excellent library to serve my project, which is running multiple OpenGL contexts on multiple GPUs.
In my design, master thread is running light-weighted workloads, which means it should never be scheduled to run any ITaskSet tasks.
Is it possible?

Yes this is possible.
Only the threads created by enkiTS will run tasks by themselves. The thread
which initializes enkiTS can tasks using the WaitforTask() call but you can
use the priority system to prevent certain tasks from running when this is
called.
There also exists a pinned task system for explicitly running tasks on
certain threads.
In your case I recommend the master thread initializes enkiTS and you
should then be able to schedule tasks to be run which will then not run on
the master thread.
On Sun, 15 Sep 2019, 17:01 Vinjn Zhang<EMAIL_ADDRESS>wrote:

enkiTS is an excellent library to serve my project, which is running
multiple OpenGL contexts on multiple GPUs.
In my design, master thread is running light-weighted workloads, which
means it should never be scheduled to run ITaskSet tasks.
Is it possible?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dougbinks/enkiTS/issues/38?email_source=notifications&email_token=AAGVD4WA26KBHNINJZR3SILQJZE6NA5CNFSM4IW25QCKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HLOAE4Q,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGVD4TFF4GIGCZUEB5P7XLQJZE6NANCNFSM4IW25QCA
.

Thanks @dougbinks

you can use the priority system to prevent certain tasks from running when this is called.

Can you give more details? It seems I need to use WaitforTask and ICompletable::m_Priority to achieve it. But how?

You only need to run WaitforTask if you need to wait for the task.
Alternatively you can poll for the task to complete and continue running.
If you want to wait for a task to complete, but not run other tasks, you
can give that task a high priority, other tasks lower priorities and when
you wait for the high priority task you specify to only run high priority
tasks whilst waiting. See the readme and priorities example for code.
On Sun, 15 Sep 2019, 17:45 Vinjn Zhang<EMAIL_ADDRESS>wrote:

Thanks @dougbinks https://github.com/dougbinks
you can use the priority system to prevent certain tasks from running when
this is called.
Can you give more details? It seems I need to use WaitforTask and
ICompletable::m_Priority to achieve it. But how?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dougbinks/enkiTS/issues/38?email_source=notifications&email_token=AAGVD4VAJ2EKSJJELIZKMJ3QJZJ75A5CNFSM4IW25QCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6XTLMI#issuecomment-531576241,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGVD4VOSDV734GZZVVHP4TQJZJ75ANCNFSM4IW25QCA
.

I think this question is now answered, so I'm going to close it unless there are any further questions or issues on this topic.


Added config parameter to initialize the editor on the first click

If you use many instances of the Ckeditor on one page the loading time gets quite long.
To solve this problem i added an config parameter. The editor gets initialized when you click inside the textarea.
I replaced the textarea with a editable div so that the styled text from the editor ist viewed correctly.
It would be nice if you could accept this changes.

I had the problem that if I don´t initialize the editor the text is´t viewed formatted in the textarea. In the div it is viewed correctly. Maybe it would be better to have two objects with an ngIf. A hidden textarea which gets replaced by the Ckeditor and a div which is shown as long as the editor is not initialized.
I added the styles so the div looks like an text input box. I could remove them and let the developer style it.

Have you try the divarea plugin? That should solve your problems with:

I had the problem that if I don´t initialize the editor the text is´t viewed formatted in the textarea. In the div it is viewed correctly.

  ngOnInit() {
    this.ckeConfig = {
      extraPlugins: 'divarea'
    };

The plugin works similar:

I think that text formatting and initialization have nothing to do with each other. I disagree with your proposal. Or did I miss something?


User-defined generators and models in tests

Feature description
If a test is a parametrized one and @InstancioSource is applied, sets of data will be provided as parameters for the test, generated randomly. The problem is that you cannot bring your own models or generators. The only remaining option is to resort to generating data manually, which is:

Cumbersome, as it brings no practical value to the test—merely explodes the "set-up part" of tests.
Does not report what was supplied as arguments.
Obfuscates the true nature of parametrized tests, as it's no longer a @ParametrizedTest but a @Test. (Even if marked as parametrized, without any parameters, it remains just as obscure.)

Perhaps I'm being overzealous in pushing this so hard and some points may be over-exaggerated. Still, I think this would be great to have an option to hide the data generation and not do it directly in tests.
As for possible implementation, we already have @WithSettings where you could assign custom generators for types. However, this is rather inflexible, and in my specific case it wouldn't be enough to bind one type to one generator.
We can have semi-qualifier annotations like @PersonRandom or @PersonRandom.Adult and associate that with Generators/GeneratorSpecs. This approach will admittedly still lack the flexibility of programmatic solutions, but it's closest we can get with Java of 2024.
@ExtendWith(InstancioExtension.class)
class PutOrderTest {

    @WithSettings
    final Settings settings = Settings.create()
        .generator(OrderRandom.class, orderRandom -> { ... })
        .generator(PersonRandom.class, personRandom -> { ... });

    @ParameterizedTest
    @InstancioSource
    void putOrderMinor(@OrderRandom(adultOriented = true)
                       Order order,
                       @PersonRandom(age = PersonRandom.Age.ADULT)
                       Person person)
    { /* ... */ }
}

Still, I think this would be great to have an option to hide the data generation and not do it directly in tests.

Thanks for the suggestion. If I understood correctly, the goal is to move setup logic outside the test method.

The problem is that you cannot bring your own models or generators. The only remaining option is to resort to generating data manually

You can declare a model as a field or return it from a method, e.g.
@ExtendWith(InstancioExtension.class)
class PutOrderTest {

    private final Model<Person> adultModel = Instancio.of(Person.class)
            .generate(field(Person::getAge), gen -> gen.ints().min(18))
            .toModel();

    private final Model<Order> orderModel = Instancio.of(Order.class)
            // ...
            .toModel();

    @Test
    void putOrderMinor() {
        Person adult = Instancio.create(adultModel);
        Order order = Instancio.create(orderModel);
         // ...
    }
}

Another option is to use instancio-quickcheck. Here's an example that mimics your code sample.
class PutOrderTest {

    @Property(samples = 100)
    void putOrderMinor(@ForAll("adultOrders") Order order,
                       @ForAll("adults") Person adult) {

        assertThat(adult.getAge()).isGreaterThanOrEqualTo(18);
        // etc...
    }

    private Arbitrary<Person> adults() {
        return Arbitrary.fromStream(
                Instancio.of(Person.class)
                        .generate(field(Person::getAge), gen -> gen.ints().min(18))
                        .stream());
    }

    private Arbitrary<Order> adultOrders() {
        return Arbitrary.fromStream(Stream.empty()); // TODO generate orders
    }
}

Quickcheck is a new module, introduced in version 3.6.0, and is currently labeled as an experimental feature.

@foaw I'll close the issue. Feel free to add a comment if the above didn't work for you.

Frankly, I haven't yet had the opportunity to modify the tests where I needed this.

This doesn't seem very flexible, not as much as annotations. For every set of options in an annotation, this approach needs a new method. Is this correct, am I missing something?
How do you reference a supplier from another class, say an outer class or a designated class for just suppliers. Or do you duplicate them as needed for better "locality" and looser coupling?

@foaw I'm not fully sure what you're trying to accomplish. Maybe another example might help?
Regarding custom annotations, it's not clear how @PersonRandom(age = PersonRandom.Age.ADULT) can be mapped to a generator, e.g. ints().range(18, ??).

So, I have tests for different scenarios with POJOs specialised in some way. For example, in the context of a store recommendation algorithm, given an underage user and a list of products, some of which are only for adults, the minors shouldn't be recommended the adult products.
In my business domain, I have maybe around ten such conditions. Instead of having a method for each set of possible combinations, I'd rather write an annotation and an interpreter for it, which knows how to transform an annotation into a generator, or how to populate generator settings from an annotation.
This implies that there will always be a new generator for each test. Just like when you do it manually: create the generator, configure it for your needs, generate a value. The proposal is basically to take the configuration part out of test code.

Thanks for the additional info. Let me start with the last question. The use case for models is to create a predefined template for generating objects, that can be reused and customised as needed. I described this in more detail in this article. Generators are typically for value types, though you could define them for POJOs as well. E.g. you could define a Generator<Customer> that can be used as follows:
supply(all(Customer.class), customer().adult().status(ACTIVE))
You can also a combination of custom generators and models. I can't say what the best approach is without knowing the domain classes and test case requirements. I do recall the discussion post where you mentioned that using models didn't meet your requirements because the class had several interdependent fields. My response to that is that it might be easier to construct the objects manually for such cases.
To circle back to the annotations:
    @ParameterizedTest
    @InstancioSource
    void putOrderMinor(@OrderRandom(adultOriented = true)
                       Order order,
                       @PersonRandom(age = PersonRandom.Age.ADULT)
                       Person person)

Since these annotations are specific to your domain, I don't see how the library would be aware of the custom annotation attributes? You can probably achieve this by implementing a JUnit 5 extension that inspects the annotations and its attributes, and creates an object based on those values. I'm not sure if that's worth the effort though :) If you create a sample project with your domain classes, I could look into this a bit more.