Unsupported use of UIKit API off the main thread: UIAccessibilityIsAssistiveTouchRunning

Hi all,
facing a strange issue; just implemented firebasex in my app. Android runs smoothly now, but when deploying on iOS i see the following in the console (and im not receiving any push notifications):
2019-10-15 18:03:07.913996+0200 appname.com[853:311138] GoogleService-Info.plist found, setup: [FIRApp configureWithOptions]
2019-10-15 18:03:07.915137+0200 appname.com[853:311431] [Assert] Unsupported use of UIKit API off the main thread: UIAccessibilityIsAssistiveTouchRunning()
2019-10-15 18:03:07.921315+0200 appname.com[853:311431] [Assert] Unsupported use of UIKit
...
2019-10-15 18:03:08.035616+0200  appname.com[853:311138] FCM direct channel = true
...
2019-10-15 18:03:08.902643+0200 appname[853:311436] [Fabric] failed to download settings Error Domain=FABNetworkError Code=-5 "(null)" UserInfo={status_code=403, type=2, request_id=4bf61af074865301708d066c65e9c46b, content_type=application/json; charset=utf-8}
it seems there is no fcm token registered and when i want to subscribe to different topics i get the same message from above:
019-10-15 18:04:02.724710+0200 appname.com[853:311522] [Assert] Unsupported use of UIKit API off the main thread: UIAccessibilityIsGuidedAccessEnabled()
2019-10-15 18:04:03.306782+0200 appname.com[853:311138] ++ (app.components) subscribe (topic: xyz)
package.json:
{
"name": "xxx",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "https://xyz.com",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^8.2.7",
"@angular/common": "^7.2.2",
"@angular/core": "^7.2.2",
"@angular/fire": "^5.2.1",
"@angular/forms": "^7.2.2",
"@angular/http": "^7.2.2",
"@angular/platform-browser": "^7.2.2",
"@angular/platform-browser-dynamic": "^7.2.2",
"@angular/router": "^7.2.2",
"@auth0/angular-jwt": "^2.1.2",
"@ionic-native/app-rate": "^5.14.0",
"@ionic-native/clipboard": "^5.14.0",
"@ionic-native/core": "^5.14.0",
"@ionic-native/device": "^5.14.0",
"@ionic-native/fcm": "^5.14.0",
"@ionic-native/file": "^5.14.0",
"@ionic-native/firebase-x": "^5.15.0",
"@ionic-native/in-app-browser": "^5.14.0",
"@ionic-native/ionic-webview": "^5.14.0",
"@ionic-native/local-notifications": "^5.14.0",
"@ionic-native/network": "^5.14.0",
"@ionic-native/screen-orientation": "^5.14.0",
"@ionic-native/secure-storage": "^5.14.0",
"@ionic-native/social-sharing": "^5.14.0",
"@ionic-native/splash-screen": "^5.15.0",
"@ionic-native/sqlite": "^5.14.0",
"@ionic-native/sqlite-porter": "^5.14.0",
"@ionic-native/status-bar": "^5.14.0",
"@ionic/angular": "^4.11.0",
"@ionic/lab": "^2.0.11",
"@ionic/storage": "^2.2.0",
"@logisticinfotech/ionic-timepicker": "^1.0.3",
"@logisticinfotech/ionic4-datepicker": "^1.4.3",
"angular-resize-event": "^1.1.0",
"call-number": "^1.0.1",
"cordova-android": "^8.1.0",
"cordova-clipboard": "^1.3.0",
"cordova-ios": "^5.0.1",
"cordova-plugin-androidx": "^1.0.2",
"cordova-plugin-androidx-adapter": "^1.1.0",
"cordova-plugin-apprate": "^1.4.0",
"cordova-plugin-badge": "^0.8.8",
"cordova-plugin-datepicker": "^0.9.3",
"cordova-plugin-dialogs": "^2.0.2",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-firebasex": "^6.1.0",
"cordova-plugin-globalization": "^1.11.0",
"cordova-plugin-inappbrowser": "^3.1.0",
"cordova-plugin-ionic-webview": "^4.1.1",
"cordova-plugin-local-notification": "^0.9.0-beta.2",
"cordova-plugin-nativestorage": "^2.3.2",
"cordova-plugin-network-information": "^2.0.2",
"cordova-plugin-screen-orientation": "^3.0.2",
"cordova-plugin-secure-storage": "^3.0.2",
"cordova-plugin-splashscreen": "^5.0.3",
"cordova-plugin-useragent": "^1.0.6",
"cordova-plugin-x-socialsharing": "^5.6.0",
"cordova-sqlite-storage": "^3.3.0",
"cordova-support-android-plugin": "^1.0.1",
"cordova-support-google-services": "^1.3.1",
"cordova-useragent": "git+https://github.com/LouisT/cordova-useragent.git",
"core-js": "^2.5.4",
"es6-promise-plugin": "^4.2.2",
"firebase": "^6.6.2",
"g": "^2.0.1",
"ion-refresh-native": "^1.0.5",
"ionic": "^5.3.0",
"ionic-image-loader": "^7.0.0-beta.2",
"moment": "^2.24.0",
"ng-lazyload-image": "^6.1.0",
"ng2-lazyload-image": "^2.4.0",
"phonegap-plugin-multidex": "^1.0.0",
"rxjs": "^6.5.3",
"tslib": "^1.9.0",
"uk.co.workingedge.cordova.plugin.sqliteporter": "^1.1.1",
"web-animations-js": "^2.3.2",
"zone.js": "~0.8.29"
},
"devDependencies": {
"@angular-devkit/architect": "~0.13.8",
"@angular-devkit/build-angular": "~0.13.8",
"@angular-devkit/core": "~7.3.8",
"@angular-devkit/schematics": "~7.3.8",
"@angular/cli": "7.3.9",
"@angular/compiler": "~7.2.2",
"@angular/compiler-cli": "~7.2.2",
"@angular/language-service": "~7.2.2",
"@ionic/angular-toolkit": "~1.5.1",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.7.5",
"codelyzer": "~4.5.0",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-whitelist": "^1.3.4",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "^2.1.0",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"ts-node": "~8.3.0",
"tslint": "~5.17.0",
"typescript": "~3.1.6"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-sqlite-storage": {},
"uk.co.workingedge.cordova.plugin.sqliteporter": {},
"cordova-plugin-whitelist": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-device": {},
"cordova-plugin-ionic-keyboard": {},
"cordova-plugin-network-information": {},
"cordova-plugin-x-socialsharing": {
"ANDROID_SUPPORT_V4_VERSION": "24.1.1+"
},
"cordova-plugin-secure-storage": {},
"cordova-plugin-file": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
},
"cordova-clipboard": {},
"cordova-plugin-screen-orientation": {},
"cordova-plugin-datepicker": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-firebasex": {},
"cordova-plugin-androidx": {},
"cordova-plugin-androidx-adapter": {}
},
"platforms": [
"ios",
"android"
]
}
}

ionic cordova plugin list
cordova.cmd plugin ls
cordova-clipboard 1.3.0 "Clipboard"
cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.0 "cordova-plugin-androidx-adapter"
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-firebasex 6.1.0 "Google Firebase Plugin"
cordova-plugin-inappbrowser 3.1.0 "InAppBrowser"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.1.1 "cordova-plugin-ionic-webview"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-screen-orientation 3.0.2 "Screen Orientation"
cordova-plugin-secure-storage 3.0.2 "SecureStorage"
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-plugin-x-socialsharing 5.6.0 "SocialSharing"
cordova-sqlite-storage 3.3.0 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
es6-promise-plugin 4.2.2 "Promise"
uk.co.workingedge.cordova.plugin.sqliteporter 1.1.1 "sqlite porter"

Any help would be appreciated!
Thanks

still exists, but i noticed that i have to trigger "grantPermission" first, after allowing push notifications to be received... everything works as expected.


refactor: remove expensive clones from verify_consistency_of_operations; convert API to slice

Issue being fixed or feature implemented
Remove unneeded cloning, and use slice
What was done?
There was never any need for this function to take in a &Vec; we should never do that. Instead take in a slice.
Additionally, we refactored some of the loop logic to use .take instead of a check on each iteration to see if we were at the end. We also combined two duplicate for loops into 1.
Finally, we significantly refactor the return type to avoid a lot of very expensive cloning. Previously, we were doing something on the magnitude of 9 clones (of expensive underlying objects including vectors) per input GroveDbOp. All of these have been removed. We instead return references to these values instead of clones of them. This does mean that the lifetime of the return value is tied to the underlying data the slice refers to; but especially as I cannot even find an instance where we use these return values, this feels like a very fair trade off.
How Has This Been Tested?
running cargo t locally
Breaking Changes
Well... It seems in actually usage it is none; however, if someone is using these return values currently; this probably could be breaking. Also it may require converting some stuff to a slice. Please let me know if I should mark this PR title with a !
Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added or updated relevant unit/integration/functional/e2e tests
[ ] I have made corresponding changes to the documentation

For repository code-owners and collaborators only

[ ] I have assigned this pull request to a milestone

Hahaha, the original code was 🙈.


Add Conway support, Replace Plutip with cardano-testnet [WIP - do not use]

Based on the work from https://github.com/Plutonomicon/cardano-transaction-lib/pull/1593
Closes https://github.com/Plutonomicon/cardano-transaction-lib/issues/1622
Closes https://github.com/Plutonomicon/cardano-transaction-lib/issues/1564

Bump cardano-serialization-lib-gc to v12.0.0-alpha.31
Bump purescript-cardano-serialization-lib to v1.0.0
Bump purescript-cardano-types to v2.0.0
Switch to cardano.nix for Ogmios and Kupo
Bump cardano-node to 8.11.0-pre
Bump Ogmios to v6.4.0
Bump Kupo to v2.8.0

[ ] Use Kupo from cardano-nix  as soon as a new version compatible with the latest cardano-node is released

Remove transaction serialization roundtrip tests - these tests are present in purescript-cardano-types
Replace Plutip with cardano-testnet

Breaking Changes

Upgrade getTxMetadata to getTxAuxiliaryData in QueryHandle
Do not add datums to witness set for mustPayTo* constraints

Datums now should be included explicitly using the mustIncludeDatum constraint

Examples (Ogmios + Kupo, SanchoNet, Manual Testing using Eternl beta and NuFi):

[x] AdditionalUtxos
[x] AlwaysMints
[x] AlwaysSucceeds

Error: (OgmiosError { code: 3113, data: (Just {"providedScriptIntegrity":"15dd0a3ac1244430aacc7e95c2734b51f1a8cf2aaf05e5d6e8124cb78ab54cc9","computedScriptIntegrity":"5675d0b3607627653b48941ade5477ac756c58188547e7753be8b38243fb9fe4"})...
Fixed in https://github.com/Plutonomicon/cardano-transaction-lib/pull/1624/commits/41f96ec5e87c5fc7782f322c45135eb5dfbdd076
The underlying issue is not fixed, IncludeDatum example fails with the same error. Although the corresponding test against local testnet cluster succeeds.

[x] AlwaysSucceedsV2
[x] ApplyArgs
[x] ChangeGeneration1-1
[x] ChangeGeneration1-3
[x] ChangeGeneration3-1
[x] Cip30
[x] DropTokens
[x] MintsMultipleTokens
[x] NativeScriptMints
[x] OneShotMinting
[x] OneShotMintingV2
[x] PaysWithDatum
[x] Pkh2Pkh
[x] ReferenceInputs
[ ] ReferenceInputsAndScripts

Error: OgmiosError { code: 3113, data: (Just {"providedScriptIntegrity":"a238e08fe55c3ebb72d04c08d7622c02e07bfe93a06ae27244c27d6eb40b6025","computedScriptIntegrity":"5feb905325a9c6a378adf7c23fb11837486d550f8a2fb1a23db86ab221fa43fa"}...

[x] ECDSA
[ ] IncludeDatum

Error: OgmiosError { code: 3113, data: (Just {"providedScriptIntegrity":"0916f53e560760d110c0cfdd9626361129d9144cb0c1828525ce2698978ee969","computedScriptIntegrity":"ad869d3e9a101d1e9f3cfd146904aae1855beb3ffe323870eea9b0e5ae652707"}...

[x] Schnorr
[x] SendsToken
[x] SignData
[x] SignMultiple
[x] TxChaining
[ ] Utxos

Error: Script evaluation failure while trying to estimate ExUnits. ... ValidatorFailed { error: "An error has occurred:  User error:\nThe machine terminated because of an error, either from a built-in function or from an explicit use of 'error'.", traces: ["Utxo not consumed"] }

[x] Wallet

Pre-review checklist

[x] All code has been formatted using our config (make format)
[ ] Any new API features or modification of existing behavior are covered with tests
[x] The template (templates/ctl-scaffold) has been updated
[ ] The changelog has been updated under the ## Unreleased header, using the appropriate sub-headings (### Added, ### Changed, ### Removed, ### Fixed), and the links to the appropriate issues/PRs have been included

@errfrom if this #1618 was caused by the ogmios and node incompatibility, this PR can fix that.
Could you unskip the test and check if it works on this branch?


feat(core): add unsafe attribute definition CLI commands

Blocked by a few PRs being merged in on the platform side and the confirmation helper function in #213
Related to #208

This should be ready except for the confirmation CLI additions needed from #213


Separate tokens from config

The problem
I would like to standardize my configuration across machines and thus have $XDG_CONFIG_HOME/Psst/config.json read-only. That is however not possible with the tokens being written there.
Possible solution
If the tokens could be stored in a separate file such as $XDG_CONFIG_HOME/Psst/creds.json or similar.
Alternative solution(s)
I can work around things by using a launcher script that patches config.json but it's pretty ugly.
Additional context
This would also help people who like to keep their config directly in a git (or similar) repository.

Is there a standard way of doing this in other applications?

The problem isn't unique to psst. As an example, davmail allows specifying the path to the token file inside the configuration.
References:

https://github.com/mguessan/davmail/blob/2caed4b0664d28f69d572ad21979c24af0207fd9/src/etc/davmail.properties#L27-L28
https://github.com/mguessan/davmail/blob/master/RELEASE-NOTES.md#o365-4

Come to think of it - since many people store a lot of their dotfiles in a repository, if the path isn't configurable, it should probably be under $XDG_STATE_HOME and not $XDG_CONFIG_HOME.


Inconsistent style

Hello, I would like to report an inconsistent style.
In the editor, the highlight style is written inline:
text-decoration: underline; background-color: yellow;
However, when using basic.css to display the exported HTML in my page, the style has an extra entry padding: 2px 4px;, which is different from what we saw in the editor.
Could you please fix this?

basic.css has class md-inline-highlight to apply styles to highlight. You can always override the padding values with your own css.

Yes, but I just want to know why you decided to add padding to highlight in basic.css, rather than keeping both css identical.


Send password onConnect

Hi,
Thank you for this library.
Could you please give an example how to send password from onConnect handler?
Thank you.

I know this is two years later and you have probably already worked it out by now, but the normal flow here is that you would construct a UserRequest message (35=BE) for application logon.


Add Ports section to V3 upgrade guide conceptual changes

A short explanation of the proposed change:

Ports works differently enough in V3 compared to V2 that it probably warrants its own section in the docs, as some have found the migration confusing.  Hoping this clears it up.

cc @jpalermo


Generic flippability in TiledViews?

Hello there,
Would you entertain the idea of allowing public setters for the _xflipped and _yflipped booleans in PixelsView? (Or any TiledViews that support orientation?) Either that or add a couple of Orientation entries?
I am using PixelsView to make an F-K plot, which I would like to have with the non-existent orientation X1UP_X2RIGHT.
I would be willing to put this feature in if you agree to it.
Thanks!

My mind is too engaged elsewhere to think carefully about this.
Shall we propose a fork with other (more?) committers?
Less ambitious would be someone else simply handling this issue.

This can be a very simple tweak, so I imagine you could safely delegate responsibility for it...
The simplest and minimal impact change that would allow full customization, I think, would be to add protected accessor methods (for X and Y)
protected boolean getXFlipped()
and
protected void setXFlipped()
into PixelsView. These fields also exist in ContoursView, so it might make sense to do the same there. This change would allow subclasses of these views to do whatever they want in terms of plot orientation.
A different approach might be to implement the missing Orientations into any TiledView that supports Orientation, which would add BarsView, PointsView, and TensorsView to the list.

Here is a new version with an additional Orientation value of X1UP_X2RIGHT. Very simple addition, and no change to any piece of the API: 14ca8d9. Below are images of switching between X1DOWN_X2RIGHT and X1UP_X2RIGHT.

Here is a more complete version, with all 8 possible orientations. Also caught a mistake in updateBestProjectors() which was never used with your current Orientation options.
most recent commit: 801c246

Here are the four orientations with x1 on the horizontal axis. The other 4 look similar.


Error in running VILMA

Hi! I'm really eager to play around with VILMA! Thanks for writing an interesting paper!
I successfully installed VILMA following the README in python 3.10.2 and got errors in running VILMA. error messages: Error in `python': corrupted double-linked list:   and *** Error in `python': malloc(): smallbin double linked list corrupted:
I thought it was a python compile issue. I update python to 3.10.6 in my laptop and followed the README again to install and test VILMA. I was able to install VILMA again but still got issues as follows in running test.py:
python -m pytest vilma/tests/test.py
====================================================== test session starts =======================================================
platform darwin -- Python 3.10.6, pytest-7.1.3, pluggy-1.0.0
rootdir: /Users/username/project/PRS/vilma
collected 83 items

vilma/tests/test.py ............................................Fatal Python error: Aborted
... ...
Abort trap: 6

and try to run example.sh
bash example.sh
WARNING:root:0 out of 5 total variants are missing sumstats
WARNING:root:0 alleles have been flipped
WARNING:root:Missing LD info for 0 variants. They will be ignored during optimization.
WARNING:root:The alleles did not match for 0 variants. They were flipped
Python(92666,0x1103f0600) malloc: Incorrect checksum for freed object 0x7fb06e0429c0: probably modified after being freed.
Corrupt value: 0x1fffffffffffffff
Python(92666,0x1103f0600) malloc: *** set a breakpoint in malloc_error_break to debug
example.sh: line 46: 92666 Abort trap: 6

Looking forward to your suggestions.
Thanks a lot.

Thanks for the report!
I was able to reproduce this by updating to the latest numba and llvm suggesting that it's a bug in one of those (I will file a report).  For now, please downgrade to numba version 0.55.2, with
pip install numba==0.55.2
and let me know if you still get errors on running the unit tests.

Thanks a lot.
I can run the test.py with numba 0.55.2.


Split validation conditions into multiple conditions on variables.pkr.hcl

Some of the validations are stacked. they should be split for easier debugging

closed by 24b5b580074f3b778b86dc348bff7892c561f377


fix: panic when pull arm image

Does this pull request fix one issue?
Fixes #1559 1559

Codecov Report

Merging #1560 (ee4f842) into main (7875941) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1560   +/-   ##
=======================================
  Coverage   10.84%   10.84%
=======================================
  Files          88       88
  Lines        8033     8033
=======================================
  Hits          871      871
  Misses       7055     7055
  Partials      107      107

Continue to review full report at Codecov.

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


Deploy API docs to GH Pages

Generates and deploys Swagger UI to GitHub Pages, so that we can link to it from the docs rather than instructing users to view it from their own installs.

Codecov Report

Merging #554 (d1eab66) into main (3e9d2c5) will increase coverage by 0.06%.
The diff coverage is n/a.

:exclamation: Current head d1eab66 differs from pull request most recent head caee7b6. Consider uploading reports for the commit caee7b6 to get more accurate results

@@            Coverage Diff             @@
##             main     #554      +/-   ##
==========================================
+ Coverage   88.37%   88.43%   +0.06%
==========================================
  Files          63       63
  Lines        8273     8273
==========================================
+ Hits         7311     7316       +5
+ Misses        962      957       -5

Flag
Coverage Δ

resotocore
88.43% <ø> (+0.06%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

resotocore/core/web/content_renderer.py
93.75% <0.00%> (+3.47%)
:arrow_up:

Continue to review full report at Codecov.

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


Add MutationExecutorStandard#getNonBatchedStatementGroup

For Hibernate Reactive
Fix https://hibernate.atlassian.net/browse/HHH-16220

Merged in 6.2


The morphing grid of the sample code flickers...

I installed pycairo and morpholib and did a run of the test-code.
i see the morphing grid, but the whoole thing flickers in horizontal lines...
So i now think, what if my own animated calculations also flicker like this?

Could you provide the OS you're on and which version of Python you're using? That's always some helpful info.
In any case, to see if the problem is merely with the animation previewer, try running the following script in an empty directory:
import morpholib as mo
mo.importAll()

grid = mo.grid.mathgrid()
grid = mo.Actor(grid)
grid.newendkey(4, grid.first().fimage(lambda s: s**2/10))

mation = mo.Animation(grid)
mation.export("./test.png")

It should output 5 PNG images to the current working directory. Check if those images have any flickering artifacts. If they look okay, then the problem is likely just with the previewer and so the animation should look fine when rendered to MP4 or GIF. If you already have FFMPEG already installed, you can try running the following script to see if the outputted MP4 video is okay:
import morpholib as mo
mo.importAll()

grid = mo.grid.mathgrid()
grid = mo.Actor(grid)
grid.newendkey(30, grid.first().fimage(lambda s: s**2/10))

mation = mo.Animation(grid)
mation.endDelay(60)
mation.export("./test.mp4")

Another thing to test is to run the original sample animation morpho.sample.play() and try pausing the animation in the middle by clicking inside the animation window while it's playing. If it looks fine at a frozen frame and only has the flickering effect when in motion, that further suggests the issue is with the previewer and perhaps also how your machine handles graphics.
Let me know what you find!

My system: nitro 5 laptop, windows 11, python 3.11, morpholib 0.5.1
i added your export lines to a code, that i made, that creates a yellow kite-shape.
The png-export looks normal:

A screenshot from the run-window looks green stripe flickered:

and the mp4 export gives this error:

Traceback (most recent call last):
File "D:\Mods\Python\venv\Math_Animations\main.py", line 22, in
animation.export("./test.mp4")
File "C:\Users\maxi_\AppData\Roaming\Python\Python311\site-packages\morpholib\anim.py", line 2887, in export
sp.call(cmd)
File "D:\Program Files\Python311\Lib\subprocess.py", line 389, in call
with Popen(*popenargs, **kwargs) as p:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\Python311\Lib\subprocess.py", line 1022, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "D:\Program Files\Python311\Lib\subprocess.py", line 1491, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden

clicking in the test-animation stops the movement but the green stripes stay, just appear static then

All right, based on what you've said, it looks like the problem is only with the previewer and not with the exporter. The tool Morpho uses for animation previewing is pyglet, and after a little Googling, it looks like this might be a problem with certain graphics cards/drivers, and perhaps solvable by updating the driver. I'd recommend you take a look at this thread for more info.
As for the export error, have you installed FFmpeg onto your machine and added it to your PATH environment variable? If you're not sure, try typing ffmpeg in a terminal window. If it throws an error saying something like "ffmpeg is not recognized", then you don't have it part of your PATH. However, if you have the ffmpeg.exe executable somewhere on your machine but you don't want to add it to your PATH, Morpho can still use it if you add the following line after the import statement:
import morpholib as morpho
morpho.anim.ffmpeg = "your/path/to/ffmpeg.exe"

I downloaded ffmpeg.exe and added it to my project-path.
now i could export a mp4 video and it looks alright.
only a run preview window shows that flicker.

I downloaded ffmpeg.exe and added it to my project-path.
now i could export a mp4 video and it looks alright.
only a run preview window shows that flicker.
Now i installed a new graphic driver, but now my taskbar is broken...

Glad it's resolved! I'll go ahead and close the issue then.
To your follow up question: The j is Python's way of referring to the imaginary unit i, the square root of -1. Pretty much all 2D positional data in Morpho is expressed as a complex number x + y*1j, where the real part corresponds to the x-coordinate, and the imaginary part corresponds to the y-coordinate. For example, the point (3, 4) would be specified in Morpho as 3+4j or complex(3,4). So in your example, 31j and -51j refer to the positions (0, 31) and (0, -51) respectively. This is explained a little more near the beginning of the first guide.

Yesterday there came an update for windows 11, that changed the taskbar and other things really much
And it looks like the intel graphic driver update:
https://www.intel.com/content/www/us/en/download/19344/intel-graphics-windows-dch-drivers.html
is no longer compatible and broke my taskbar and windows settings app.
How can i now fix the issue again

I don't know. That issue seems more to do with Windows and graphics drivers in general, and less to do with Morpho directly, so I would advise searching elsewhere for a solution or posting this issue in a different forum.


updated index.rst authorization code

fixed some smaller errors in the example code for authorization

Hey! I am hosting a new master branch for this repo since the old creator has been MIA for 2 years. Hoping to get this repo back on it's feet and in good standing. I've been working on updating tests and adding all new functionality and have merged some of the PR's that I thought were sufficient for merging. If your PR didn't make it, resubmit it please.
Thanks!
https://github.com/Harrison97/spotipy

Fixed as part of https://github.com/plamere/spotipy/pull/414


Icon request: CyberPanel

URL for the brand / site / app
https://cyberpanel.net/
Logo resources for the icon
https://cyberpanel.net/wp-content/uploads/2021/10/cyberpanel-temp-logo.svg (logo symbol is embedded raster graphic)
Anything else?
2FA Reference: https://community.cyberpanel.net/docs?search=2fa&topic=130
Confirmation

[X] I have read and followed the issue guidelines.

Here you go!
https://github.com/aegis-icons/aegis-icons/blob/master/SVG/CyberPanel.svg

:question: How to add icon(s) to Aegis?
:star: Support this project by giving a star! Just adding like to this comment is also appreciated.


Architecture Documentation

As mentioned in #530

If new people are recruited to work with the plugin, this should get higher priority.


Problems in GUIslice touch with WaveShare TFT 4” 480x320 + TFT_eSPI + TTGO T8

Hi,
I’m looking for a way to get touch functionality in GUIslice working with ESP32 TTGO T8 + TFT_eSPI + WaveShare TFT 4” 480x320 (ILI9486, XPT2046 / SKU 13587 / https://www.waveshare.com/wiki/4inch_TFT_Touch_Shield). Display’s connections to TTGO are: MISO 12, MOSI 13, SCLK 14, CS 15, DC 19, touch CS 4 and RST to RST (-1).
As background, TFT_eSPI and its examples (both Bodmer and ImpulseAdventures’ fork) work nicely with #define RPI_DISPLAY_TYPE, #define RPI_ILI9486_DRIVER and #define SPI_FREQUENCY  20000000. Touch sketches behave ok as well with calibration and so on.
GUIslice’s box example without touch is also ok. But after calibration sketch (with TFT_eSPI’s internal XPT driver) is started touch is very unresponsive on first page. A normal click gets you nowhere but somewhat “violent swipe” is needed. Then on corner calibration page picking and holding the points seem to work normally (steady values are shown) but sometimes it takes ages before the program moves to next point. When not touched the screen shows x = 0,  y = 4095, and z value appears to be ADATOUCH_PRESS_MIN +1.
Calibration runs give an error message “ERROR: Missing corner segment (status=4)”. Status can sometimes be also 12. Program proceeds to the end but touch points are heavily off.
CALIB: Config defaults: XMin=3900 XMax=200 YMin=3880 YMax=280 RemapYX=0
Capture TL: X=1380 Y=4005 Cnt=858, Z=(11..11)
Capture TR: X=201 Y=3959 Cnt=776, Z=(11..11)
Capture BL: X=2830 Y=1188 Cnt=339, Z=(11..11)
Capture BR: X=241 Y=1404 Cnt=238, Z=(11..11)
I’ve tried to calibrate also with combinations of points remap, swap and flip but outcome is the same albeit recorded coordinates can be different. I’ve also experienced with values from 1 to “n” for GSLC_TOUCH_MAX_EVT with no major effect.
On the other hand, if an external XPT2046 driver (P.Stoffregen or ImpulseAdventure’s fork) is defined for GUIslice nothing works i.e. screen is also blank. When trying XPT2046 library’s example TouchTest.ino (without interrupts) it didn’t work until I placed SPI.begin(14, 12, 13) before ts.begin().
Sorry for a bit lengthy story but it there any ideas about how to get the touch working in my setup?

I had a similar experience with very similar hardware, I can't remember the exact details but check out this issue thread https://github.com/ImpulseAdventure/GUIslice/issues/272
I switched to DRV_TOUCH_XPT2046_PS driver and it all started working great. So for you it must just be a case of defining the correct pins in the xpt2046_ps settings

UPDATE:
When looking into GUIslice configs a bit more closely it turned out that the  display in question is actually directly supported... oops! So when selecting appropriate driver and adjusting the settings sketches started to work ok. Thanks anyway to ASMotionLab for commenting the initial issue which in this case remained unsolved - not that it should be solved in the first place!

Hi @1ecu --
As @ASMotionLab mentioned, we have often seen inconsistent touch response from the internal TFT_eSPI touch driver. In general, we recommend using the XPT2046_PS touch driver instead.
For future reference, can you let me know what config file you ended up using and what changes were required to the config for your Waveshare + TTGO T8?
Thank you for posting a followup, and glad to hear that it is working for you!

Hi @ImpulseAdventure,
when experimenting with TFT_eSPI I used the following libraries:
GUIslice v. 0.15.0
TFT_eSPI v. 2.2.23
XPT2046_Touchscreen-master (PS) v. 1.3.0
I've enclosed the config files. I'm sorry I wasn't that systematic so I didn't have all older config versions but reverted some changes to show settings' earlier states. That's why file save dates can be newer than my first posting.
As per pin configuration, TFT_eSPI's User_Setup.h shows also my present SPI settings (HSPI-->VSPI) which I actually needed in order to get GUIslice running at all with XPT2046_PS (#define USE_HSPI_PORT didn't help). But still touch wasn't working. Anyway at that time I discovered the "ready-made solution" so I didn't bother trying SPI with initial pins anymore. And just to note there's currently nothing else installed or connected to the TTGO.
Well, one combination still could perhaps be TFT_eSPI +  ImpulseAdventure XPT2046_Touchscreen. I've however understood this library fork is meant particularly to address compatibility with ESP8266. Or does it have something to do with ESP32?
And talking about the combinations, is there any general opinion about what would be the most future proof graphical solution if utmost performance is not a top priority? Adafruit GFX is common but old and they themselves say it's becoming more or less a mess. So which path to take?
Config.zip


anyone know how to play sound file from resource/raw folder in android?

Checklist

[X] I read the troubleshooting guide before raising this issue
[X] I made sure that the issue I am raising doesn't already exist

Current bug behaviour
DeviceFileSource("resource://raw/notification")

i try to use DeviceFileSource, but i get these errors:
AudioPlayers Exception: AudioPlayerException(
I/flutter (14045): 	DeviceFileSource(path: resource://raw/notification.mp3),
I/flutter (14045): 	PlatformException(MEDIA_ERROR_UNKNOWN {what:1}, MEDIA_ERROR_SYSTEM, null, null)

file:

Expected behaviour
play normal
Steps to reproduce

Execute flutter run on the code sample
...
...

Code sample

Code sample
DeviceFileSource("resource://raw/notification")

Affected platforms
Android
Platform details
No response
AudioPlayers Version
main
Build mode
debug
Audio Files/URLs/Sources
No response
Screenshots
No response
Logs

my relevant logs

Full Logs

my full logs or a link to a gist

Flutter doctor:
Output of: flutter doctor -v

Related issues / more information
No response
Working on PR
no way

anyone know? i stuck


Update Postgres DB Schema to match new MondoDB Schema

The Schema in this library seems to work with an older version of ltijs but crashes hard when paired with the latest version.
I found that it is a simple issue of the schema in Postgres not matching the MongoDB schema.
I have updated it to match and a simple authentication is working, haven't tested all features though.
This is certainly a step in the right direction.

Hello, thanks for working on this patch. I was already planning on updating this plugin to release it next week along with the new Ltijs version, this will definitely help a lot.


Override private base url not working

I am trying to import an openapi definition using 3scale toolbox, but I am getting the following error:
{
  "code": "E_INVALID_URL",
  "message": "invalid url: /api",
  "class": "ThreeScaleToolbox::InvalidUrlError"
}

The command I am using is:
 docker run -v $PWD/sample-openapi.json:/tmp/openapi.json toolbox 3scale import openapi -d oc --backend /tmp/openapi.json --override-private-base-url=http://real-url/api -k

The servers section of the openapi specification looks like this:
 "servers" : [ {
    "url" : "/api",
    "description" : "Relative path based on location of deployment"
  } ],

It seems that the problem is the fact that it is a relative url, as the use of --override-private-base-url seems to be completely ignored by the toolbox. If I try to change it to an absolute url (e.g. http://etc../api), it does work; however, the current format allows me to use swagger under multiple domains without having to hardcode a value for each one of them.
Is there anything that I can do or the toolbox requires a proper url to override it?

Hi, thanks for reporting.
Relative URLS in servers were never supported/tested. https://github.com/3scale/3scale_toolbox/pull/380 should do that


Work with us styles responsive designs

Ticket

i'm going to hold off on reviewing this until https://trello.com/c/2XXLfvum is merged in (updated Work with Us icons)

Looks like that icon update got merged in. Can you please merge in Master and I'll give it a review?
Thanks!

It looks like there’s an additional 24px of space between the work with us header and the icons section on mobile. Could you take a look there?

Thanks for the catch!

Wild, I didn't even catch that copy change! I just alternated their display to none depending on the screen size. Does that make sense?


Loading Llama model to a Google Cloud Run Ollama Container through a Dockerfile

What is the issue?
I have been trying to Dockerize Ollama and consequently load the Llama3.1 model into the Google Cloud Run deployment. While Ollama is running as expected in Cloud Run, the model is not loaded as expected since hitting v1/models returns a null result. I have a hacky solution with Compute Engine where I have an SSH connection to run the Dockerized image and consequently to pull and run the model. However, this solution will neither be cost-effective nor efficient in the long term. I want help figuring out how to load LLMs into Ollama through a single Dockerfile that will be deployed to Google Cloud Run if this is possible. Here is my current Dockerfile.
FROM ollama/ollama
WORKDIR /app
RUN apt-get update && apt-get install -y wget && apt-get install -y --no-install-recommends git curl
ENV DEBIAN_FRONTEND=noninteractive
ENV OLLAMA_KEEP_ALIVE=24h
EXPOSE 11434
VOLUME [ "./ollama/ollama:/root/.ollama" ]
ENTRYPOINT ["/bin/bash", "-c", "ollama serve & sleep 5 && ollama run llama3.1 && tail -f /dev/null"]

OS
Docker
GPU
No response
CPU
No response
Ollama version
No response

Are you trying to create an image that has embedded models?  If so, do you want the available models to be static or do you want to be able to add models after deployment?
Static is straightforward:
FROM ollama/ollama
ARG MODELS="nomic-embed-text:latest qwen2.5:0.5b-instruct"
ENV OLLAMA_KEEP_ALIVE=24h
RUN ollama serve & server=$! ; sleep 5 ; for m in $MODELS ; do ollama pull $m ; done ; kill $server
EXPOSE 11434

$ docker build -f Dockerfile -t ollama-models .
$ docker run --rm -d --name ollama-models ollama-models
$ docker exec -it ollama-models ollama list
NAME                       ID              SIZE      MODIFIED
qwen2.5:0.5b-instruct      a8b0c5157701    397 MB    3 minutes ago
nomic-embed-text:latest    0a109f422b47    274 MB    8 minutes ago
$ docker exec -it ollama-models ollama run qwen2.5:0.5b-instruct hello
Hello! How can I assist you today?

Since rebuilding the image pulls the models from the ollama library, you could archive models locally and copy them into the image and expand them during build, see https://github.com/ollama/ollama/issues/6037#issuecomment-2255540441
Dynamic is harder.  The VOLUME statement doesn't do what I think you are trying to do.  It doesn't create a mapping from the host directory of ./ollama/ollama to the container directory of /root/.ollama.  What it does is create a path /ollama/ollama:/root/.ollama inside the container that maps to the _data directory for the container in /var/lib/docker/volumes.  This directory doesn't survive a container restart, so even if you map the model directory correctly with VOLUME [ "/root/.ollama" ], any models added will vanish when the container is restarted.
The canonical way to create a persistent volume is with the --volume argument (or volumes stanza for compose).  The problem with that is that it "hides" the contents of the directory in the container, so --volume ./ollama/ollama:/root/.ollama results in the pre-loaded models vanishing.  So what you have to do is load the models in to a staging area and then copy them into the model directory after the external volume has been mounted.  Symlinks are used here to reduce disk usage, but it does mean that the host cannot access the pre-loaded models.
FROM ollama/ollama
ARG MODELS="nomic-embed-text:latest qwen2.5:0.5b-instruct"
ENV OLLAMA_KEEP_ALIVE=24h
RUN OLLAMA_MODELS=/root/models ollama serve & server=$! ; sleep 5 ; for m in $MODELS ; do ollama pull $m ; done ; kill $server
EXPOSE 11434
ENTRYPOINT [ "/bin/bash", "-c", "cp -as /root/models /root/.ollama ; exec /bin/ollama $0" ]
CMD [ "serve" ]

$ docker run --rm -d -v ./ollama:/root/.ollama  --name ollama-models ollama-models
$ docker exec -it ollama-models ollama list
NAME                   	ID          	SIZE  	MODIFIED
qwen2.5:0.5b-instruct  	a8b0c5157701	397 MB	7 minutes ago
nomic-embed-text:latest	0a109f422b47	274 MB	8 minutes ago
$ docker exec -it ollama-models ollama pull qwen:0.5b-text
$ docker exec -it ollama-models ollama list
NAME                   	ID          	SIZE  	MODIFIED
qwen:0.5b-text         	f92ac32068ca	394 MB	8 seconds ago
qwen2.5:0.5b-instruct  	a8b0c5157701	397 MB	8 minutes ago
nomic-embed-text:latest	0a109f422b47	274 MB	8 minutes ago
$ docker stop ollama-models
ollama-models
$ docker run --rm -d -v ./ollama:/root/.ollama  --name ollama-models ollama-models
1abe24f3067ba6b98bbdcaa869164866b0d4fe5d923162b67162cb263e043fa9
$ docker exec -it ollama-models ollama list
NAME                   	ID          	SIZE  	MODIFIED
qwen:0.5b-text         	f92ac32068ca	394 MB	27 seconds ago
qwen2.5:0.5b-instruct  	a8b0c5157701	397 MB	8 minutes ago
nomic-embed-text:latest	0a109f422b47	274 MB	9 minutes ago
$ docker stop ollama-models
ollama-models
$ sudo rm -rf ollama/
$ docker run --rm -d -v ./ollama:/root/.ollama  --name ollama-models ollama-models
bc3e9eb3e42ea2f694f79b86dc4d8833b0a921f1d6f7ed3ccfdf2941d3c7f846
$ docker exec -it ollama-models ollama list
NAME                   	ID          	SIZE  	MODIFIED
qwen2.5:0.5b-instruct  	a8b0c5157701	397 MB	16 minutes ago
nomic-embed-text:latest	0a109f422b47	274 MB	16 minutes ago

We're tracking this via #3369


read error: Input/output error

I created a juicefs file system. It is used for persistent storage of pods in k8s.
I encountered a strange problem:
When I directly mounted juicefs in VM (juicefs mount -d "mysql://juicefs@(172.x.x.x:3306)/juicefs" /mnt/k8sjfs), all files can be read normally.

However, when I mounted the same path to pod through pv, most of the files can be read normally, but some files cannot be read. When viewing the file, an error is reported: Input/output error

I tried a few possible solutions:

Delete and rebuild the mount pod, the problem still exists.

Start the pod on another node, and the problem still exists.

juicefs version is the same.

Change a pod image, the problem still exists.

In the same path, a new file can be read normally.

According to my attempts, I can solve this problem by rebuilding the problematic files. However, this is not a good solution. Because I don't know when this problem will occur again.
Moreover, the problematic file looks no different from other files in the VM.
I haven't found the same problem in the issues and discussions history, and I don't know how to solve this problem completely. I hope to get some troubleshooting ideas. Thank you.

input/output errror Usually occurs when the object storage fails to be read.
You can collect logs of the mount pod when the file fails to be read.

Thanks for your reply.
I checked the mount pod log and indeed found an error.
2024/08/22 09:07:34.738952 juicefs[38] <WARNING>: fail to read sliceId 493781 (off:0, size:3439, clen: 3439, inode: 614496): get chunks/0/493/493781_0_3439: status: 404, message: {"RetCode":-148654, "ErrMsg":"file not exist"} [reader.go:809]
2024/08/22 09:07:38.150505 juicefs[38] <WARNING>: GET chunks/0/493/493781_0_3439: status: 404, message: {"RetCode":-148654, "ErrMsg":"file not exist"}; retrying [cached_store.go:710]
2024/08/22 09:07:38.171880 juicefs[38] <WARNING>: fail to read sliceId 493781 (off:0, size:3439, clen: 3439, inode: 614496): get chunks/0/493/493781_0_3439: status: 404, message: {"RetCode":-148654, "ErrMsg":"file not exist"} [reader.go:809]
2024/08/22 09:07:42.020420 juicefs[38] <WARNING>: GET chunks/0/493/493781_0_3439: status: 404, message: {"RetCode":-148654, "ErrMsg":"file not exist"}; retrying [cached_store.go:710]
2024/08/22 09:07:42.024058 juicefs[38] <WARNING>: fail to read sliceId 493781 (off:0, size:3439, clen: 3439, inode: 614496): get chunks/0/493/493781_0_3439: status: 404, message: {"RetCode":-148654, "ErrMsg":"file not exist"} [reader.go:809]
2024/08/22 09:07:42.024106 juicefs[38] <ERROR>: read file 614496: input/output error [reader.go:123]

I have checked the path chunks/0/493/493781_0_3439 in object storage bucket. This file does not exist.
Why can it be read normally in VM?

You may have enabled the --writeback parameter.
There is a write cache on the machine on which the write is being written, but no other machine does not have the cache, and the block is not uploaded to the object store, so it cannot be read by other mount points
https://juicefs.com/docs/community/guide/cache/#client-write-cache

You may have enabled the --writeback parameter. There is a write cache on the machine on which the write is being written, but no other machine does not have the cache, and the block is not uploaded to the object store, so it cannot be read by other mount points https://juicefs.com/docs/community/guide/cache/#client-write-cache

You are right. I deleted the cache files in /var/jfsCache and then remounted juicefs. Then I read the file again, the same error as in the pod appeared.
Another question I have is why does this error occur? How can I avoid it as much as possible?

Write cache data by default is stored in /var/jfsCache//rawstaging/, do not delete files under this directory or data will be lost.
Read the documentation mentioned above for details


xiwi opening window too soon?

In another issue I mentioned "the black screen of death".  I have seen this often when I try to open a xiwi app, the app has a problem, a window opens, and the broken app doesn't put anything in the window.  I just realized now what is going on in general and I think maybe crouton (xiwi) could be enhanced to make this happen less.
I usually run an editor with the command xiwi atom.  I just issued the command xiwi atom --help by accident.  The app did nothing but print out help in the console and quit.  But a black window opened.
Is there any way that the actual opening of the window could be "lazy" and not open until the app tries to put something in?  Or maybe, just see if the app is actually running?

But the issue you pointed out a couple of days ago where the black screen is there as it thinks something may be an issue, as the user has no feedback of why the program isn't displaying. Since you're running a lot of graphical apps, it seems, you might want to install a DE like lxde or xfce, and you can still run a terminal or multiple terminals.
Also, for debugging, I like to keep a watch of what spits out in the crosh window where the enter-chroot or start* command was run. If you start with -b or close that terminal window, you will miss many status/error messages of your session, and may be unable to unmount cleanly from a new crosh/shell.
Also, xiwi can run things from outside the chroot, and bring a window and chroot up at the same time. Look for the -Xmethods or -X xiwi parameters that will just open your chroot with xiwi and/or xorg, if that switching method is still working. @DennisLfromGA would know, as I think he wrote part of that.

so I'm not sure this is a xiwi issue.

I was trying to say it would be an enhancement, not that it is an issue.  Believe it or not, I'm not bitching about anything this time.  (grin)  I know my workflow is not optimal and I can follow your advice, which I will, but it would be nice if the xiwi window didn't show until it knew something was going to be displayed.

that's how a Windows app would work

And a linux app.  I just tried xterm --help in the unity desktop and it did what I would expect.  It showed help and no window appeared.  In crouton, xiwi xterm --help showed a black window.  It would be a nice enhancement if it didn't.
Now I know that xiwi xterm --help makes no sense and is a mistake to type.  I'm just using that as an experiment to better understand how one might make the black windows appear less often.  It is just a UX issue.  Seeing black windows makes one think it is a xiwi problem.  I'm sure @dnschneid winces when he hears "black window of death".

Since you're running a lot of graphical apps, it seems, you might want to install a DE

Actually I'm not running a lot of gui.  I just run one editor a lot and a couple others infrequently.  I spend half my time in shells.  To me shells and one GUI editor is an ideal workflow.
Also, I love not having a desktop.  I can't tell you how liberating it is.  Dragging icons around, finding ways to accomplish something, looking through menus, having things happen magically in the background, etc. etc., are all pains I didn't know I was suffering.  Everyone should try it.

If you start with -b or close that terminal window

When I didn't run in the background I got screens of errors on each xiwi startup which annoyed me.  I wouldn't notice any errors coming from my app anyway.  Also I had to be very careful to not accidentally close the terminal and blow away my editor with changes unsaved.

Look for the -Xmethods or -X xiwi parameters

That sounds cool.  I didn't know about this.  I'll try it out right away.
P.S.  When I get all the glitches out of running without a desktop I'd like to try my hand at writing a wiki page about how to do it.  I wouldn't have even known it was possible if @dnschneid hadn't mentioned it in a throw-away comment.

We could definitely delay creating the browser window until after a window is created on the X11 side of things.  The trick is knowing when to give up and destroy the X server: currently crouton doesn't know the difference between xterm --help immediately exiting, and gvim forking off the GUI thread and exiting.  I don't have a good solution for that at the moment, which is why the user has to close the screen when appropriate to kill off the X server if the application forked and when no windows are left.

We could definitely delay creating the browser window until after a
window is created on the X11 side of things.

crouton doesn't know the difference between xterm --help immediately
exiting, and gvim forking

If --help (or a broken app) doesn't even begin to create an X11 window
and no browser window has been created then why would you need to know when
the process exited?  Are you saying xiwi would be waiting forever for the
X11 window?  If so I would think a long timeout would work.
I hope I'm not wasting everyone's time on this long discussion.

xiwi doesn't have any insight into what a program's intentions are.  They may or may not create an x11 window, and may or may not spontaneously fork and have the other process may or may not create an x11 window.  It may even fork a daemon process that never creates an X11 window, and xiwi can't know.
There's also software that for various reasons takes forever to launch, so you can't necessarily time out and give up without risking exiting prematurely.  Also, as long as you're waiting, the X server will show up in the extension even if you haven't displayed anything yet.
Really, it's the halting problem :)
On the other hand, we have the -f parameter to xiwi that is there to handle the cases where xiwi's heuristics fail, so a timeout that applies only when the "forked process" detection triggers may make sense.

@mark-hahn with a lightweight DE and something like terminator, you can have the best of both worlds, including a root terminal for the times when you really need it. Check it out.

I keep learning new things from you.  I'll check it out.
On Tue, May 19, 2015 at 10:31 PM, tedm<EMAIL_ADDRESS>wrote:

@mark-hahn https://github.com/mark-hahn with a lightweight DE and
something like terminator, you can have the best of both worlds, including
a root terminal for the times when you really need it. Check it out.
[image: image]
https://cloud.githubusercontent.com/assets/3884283/7719546/d1a1947e-fe76-11e4-9a0e-949dfe4ebee4.png
—
Reply to this email directly or view it on GitHub
https://github.com/dnschneid/crouton/issues/1768#issuecomment-103765564.

While trying to learn desktop options I ran into openbox.  Is openbox technically the equivalent of the chromebook window manager?  If so then running it in crouton would make no sense, right?  I have a x86 pc box than I'm running unity on right now and after getting used to running apps in xiwi windows without a desktop I thought maybe replacing unity with openbox would give me a similar environment.


Teach the worklog how to correct keyring memberships

If an invite or machine creation fails partway through, we can end up in
a state where the user/machine is created, but are not given access to
all keyrings, and the secrets therein.
Teach the worklog how to identify and resolve this problem.

Also needed for re-encoding users into keyrings in teh case of account recovery!


RFE Geolocate your position to map to your nearest region

Nice to have.

The list of regions already sorts by proximity. So it's easy for users to choose the closest. Are you suggesting auto-choosing the region for users, so they don't see the list? We wouldn't want to remove the ability to choose other regions.

auto choose as default with the option to change.


Resetting dropped connection results Bad file descriptor exception

Trying to port application to niquest and getting connection reset error on multiple trys, so not a temporary error.
Source:

https://github.com/Taxel/PlexTraktSync/pull/2081 at f7c6adb9 commit

Just in case, I've tried to disable all new features, like ipv6 and http2, http3, multiplexing, the problem remains
            multiplexed=False,
            disable_ipv6=True,
            disable_http2=True,
            disable_http3=True,
            happy_eyeballs=False,

Actual Result
The application is making request of 100 items to plex server and then many requests to https://api.trakt.tv and around the time plex items are processed and trakt api probably dropped connection by that time, and that cleanup seems to result unexpected exception.
2024-10-21 16:51:12,959 DEBUG[trakt.core]:get: https://api.trakt.tv/search/tmdb/116?type=movie
2024-10-21 16:51:12,960 DEBUG[trakt.core]:method, url :: get, https://api.trakt.tv/search/tmdb/116?type=movie
2024-10-21 16:51:12,961 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 16:51:12,963 ERROR[plextraktsync.cli]:('Connection aborted.', OSError(9, 'Bad file descriptor'))

Traceback (most recent call last):
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connectionpool.py", line 1598, in urlopen
    conn = self._get_conn(timeout=pool_timeout, heb_timeout=timeout_obj)
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connectionpool.py", line 675, in _get_conn
    conn.close()
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connection.py", line 310, in close
    super().close()
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/backend/hface.py", line 1672, in close
    self.sock.close()
  File<EMAIL_ADDRESS>line 501, in close
    self._real_close()
  File<EMAIL_ADDRESS>line 1334, in _real_close
    super()._real_close()
  File<EMAIL_ADDRESS>line 495, in _real_close
    _ss.close(self)
OSError: [Errno 9] Bad file descriptor

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "python-3.9/lib/python3.9/site-packages/niquests/adapters.py", line 941, in send
    resp_or_promise = conn.urlopen(  # type: ignore[call-overload,misc]
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connectionpool.py", line 1698, in urlopen
    retries = retries.increment(
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/util/retry.py", line 499, in increment
    raise reraise(type(error), error, _stacktrace)
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/util/util.py", line 38, in reraise
    raise value.with_traceback(tb)
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connectionpool.py", line 1598, in urlopen
    conn = self._get_conn(timeout=pool_timeout, heb_timeout=timeout_obj)
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connectionpool.py", line 675, in _get_conn
    conn.close()
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/connection.py", line 310, in close
    super().close()
  File "python-3.9/lib/python3.9/site-packages/urllib3_future/backend/hface.py", line 1672, in close
    self.sock.close()
  File<EMAIL_ADDRESS>line 501, in close
    self._real_close()
  File<EMAIL_ADDRESS>line 1334, in _real_close
    super()._real_close()
  File<EMAIL_ADDRESS>line 495, in _real_close
    _ss.close(self)
urllib3_future.exceptions.ProtocolError: ('Connection aborted.', OSError(9, 'Bad file descriptor'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "plextraktsync/cli.py", line 28, in wrap
    cmd(*args, **kwargs)
  File "plextraktsync/commands/sync.py", line 74, in sync
    run_async(runner, walker=w, dry_run=config.dry_run)
  File "python-3.9/lib/python3.9/site-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "plextraktsync/decorators/coro.py", line 15, in coro
    return asyncio.run(f(*args, **kwargs))
  File<EMAIL_ADDRESS>line 44, in run
    return loop.run_until_complete(main)
  File<EMAIL_ADDRESS>line 647, in run_until_complete
    return future.result()
  File "plextraktsync/commands/sync.py", line 13, in run_async
    await runner.sync(**kwargs)
  File "plextraktsync/sync/Sync.py", line 49, in sync
    async for movie in walker.find_movies():
  File "plextraktsync/plan/Walker.py", line 98, in find_movies
    movie = self.mf.resolve_any(plex)
  File "plextraktsync/media/MediaFactory.py", line 39, in resolve_any
    m = self.resolve_guid(guid, show)
  File "plextraktsync/media/MediaFactory.py", line 68, in resolve_guid
    tm = self.trakt.find_by_guid(guid)
  File "plextraktsync/trakt/TraktApi.py", line 259, in find_by_guid
    tm = self.search_by_id(guid.id, id_type=guid.provider, media_type=guid.type)
  File "python-3.9/lib/python3.9/site-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "plextraktsync/decorators/rate_limit.py", line 20, in rate_limit
    return fn(*args, **kwargs)
  File "python-3.9/lib/python3.9/site-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "plextraktsync/decorators/retry.py", line 26, in retry
    return fn(*args, **kwargs)
  File "plextraktsync/trakt/TraktApi.py", line 306, in search_by_id
    search = trakt.sync.search_by_id(media_id, id_type=id_type, media_type=media_type)
  File "python-3.9/lib/python3.9/site-packages/trakt/core.py", line 579, in inner
    json_data = self._handle_request('get', url)
  File "python-3.9/lib/python3.9/site-packages/trakt/core.py", line 544, in _handle_request
    response = session.request(method, url, headers=HEADERS,
  File "python-3.9/lib/python3.9/site-packages/requests_cache/session.py", line 183, in request
    return super().request(method, url, *args, headers=headers, **kwargs)  # type: ignore
  File "python-3.9/lib/python3.9/site-packages/niquests/sessions.py", line 563, in request
    resp = self.send(prep, **send_kwargs)
  File "python-3.9/lib/python3.9/site-packages/requests_cache/session.py", line 230, in send
    response = self._send_and_cache(request, actions, cached_response, **kwargs)
  File "python-3.9/lib/python3.9/site-packages/requests_cache/session.py", line 254, in _send_and_cache
    response = super().send(request, **kwargs)
  File "python-3.9/lib/python3.9/site-packages/niquests/sessions.py", line 1223, in send
    r = adapter.send(request, **kwargs)
  File "python-3.9/lib/python3.9/site-packages/niquests/adapters.py", line 978, in send
    raise ConnectionError(err, request=request)
niquests.exceptions.ConnectionError: ('Connection aborted.', OSError(9, 'Bad file descriptor'))

Reproduction Steps
Probably can make minimal reproducer, but maybe the details already here are sufficient.
System Information
$ python -m niquests.help

{
  "charset_normalizer": {
    "version": "3.4.0"
  },
  "http1": {
    "h11": "0.14.0"
  },
  "http2": {
    "jh2": "5.0.3"
  },
  "http3": {
    "enabled": true,
    "qh3": "1.2.1"
  },
  "idna": {
    "version": "3.10"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.9.20"
  },
  "niquests": {
    "version": "3.10.0"
  },
  "ocsp": {
    "enabled": true
  },
  "platform": {
    "release": "23.6.0",
    "system": "Darwin"
  },
  "system_ssl": {
    "version": "30300020"
  },
  "urllib3.future": {
    "cohabitation_version": null,
    "version": "2.11.900"
  },
  "wassima": {
    "certifi_fallback": false,
    "enabled": true,
    "version": "1.1.4"
  }
}

Probably can make minimal reproducer

I would like that. It would help.

it's not directly related to specific server, other connections get dropped too.
❯ grep 'Resetting dropped connection' plextraktsync.log
2024-10-21 16:51:12,961 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:01:12,069 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:02:35,902 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:02:59,686 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: redacted.plex.direct
2024-10-21 17:04:00,415 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:12:13,450 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:12:38,190 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: redacted.plex.direct
2024-10-21 17:34:41,580 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:36:18,270 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: redacted.plex.direct
2024-10-21 17:36:24,866 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: api.trakt.tv
2024-10-21 17:36:36,595 DEBUG[urllib3_future.connectionpool]:Resetting dropped connection: redacted.plex.direct

A simple reproducer of what I'm guessing is happening, is not working. i.e simple loop with while True and sleep in it
maybe it's better (easier) if I add debug prints somewhere?

We found the issue.
It is now fixed via linked PR.
regards,


[PoC] Use SYCL runtime wheel instead of PTDB and g++ or clang instead of dpc++ to compile the kernel launcher

Expected results:

Working prototype in the feature branch
Additional requirements if any for the SYCL runtime wheel
Detailed requirements for the CI integration

From what I've experienced - https://pypi.org/project/intel-sycl-rt/ is the same package as used in conda https://anaconda.org/conda-forge/intel-sycl-rt with the exception we need to set some environment variables to find libraries within python environment. In fact I was able to create POC dockerfile with support of https://github.com/IntelPython/dpctl and https://github.com/IntelPython/numba-dpex

The only thing that we need to ask release team to publish 2024.1.4 release of this package (the same that used in PTDB I guess)

There are multiple rt package to fit different purposes here listed here: https://github.com/conda-forge/intel-compiler-repack-feedstock/blob/main/recipe/meta.yaml and there should be corresponding package on pypi. We just need to ask release team to keep pypi in sync.
cc: @xaleryb

So, I was able to create triton runtime environment without PTDB/Oneapi toolkit:
Summary
I've used PTDB <IP_ADDRESS> to build upstream pytorch (main branch) and intel's triton (llvm-target branch) with some patches. I also did repack of intel-sycl-rt (2024.1.2) with sycl headers from PTDB <IP_ADDRESS> (compiler 2024.1.3).
Prebuild wheels
TODO
Building wheels
Pytorch
Version: upstream main branch
Patches:

https://github.com/pytorch/pytorch/pull/126456
https://github.com/pytorch/pytorch/pull/131738
131738 fix
Build options: static mkl linking

Triton
Version: upstream intel's triton
Patch: https://github.com/intel/intel-xpu-backend-for-triton/pull/1788
Patched sycl runtime
Version: 2024.1.2
Sycl headers version: 2024.1.3 (PTDB release)
wget https://files.pythonhosted.org/packages/cc/1e/d74e608f0c040e4f72dbfcd3b183f39570f054d08de39cc431f153220d90/intel_sycl_rt-2024.1.2-py2.py3-none-manylinux1_x86_64.whl
wheel unpack intel_sycl_rt-2024.1.2-py2.py3-none-manylinux1_x86_64.whl
mkdir -p ./intel_sycl_rt-2024.1.2/intel_sycl_rt-2024.1.2.data/data/include
cp -r /opt/intel/oneapi/compiler/2024.1/include/sycl ./intel_sycl_rt-2024.*/intel_sycl_rt-2024.*.data/data/include/
wheel pack intel_sycl_rt-2024.1.2 --build headers_patch

UPD:
with #1857 you only need LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$VIRTUAL_ENV/lib VERBOSE=1 python ./01-vector-add.py to run triton. LIBRARY_PATH and CPATH are set directly in the PR. However all other preparations are needed.

I wonder where ./torch-2.5.0a0+git7f58740-cp39-cp39-linux_x86_64.whl ./triton-3.0.0-cp39-cp39-linux_x86_64.whl come from?

You need to build it. I guess intel triton's nightly builds will work too.

I see that test-triton.sh already works with venv. I wonder if you plan integrating your scenario into the standard build script

pip says me,
ERROR: intel_sycl_rt-2024.1.2-headers_patch-py2.py3-none-manylinux1_x86_64.whl is not a valid wheel filename.

how did you overcome this?

I've just copied a new file on the top of the original file. I wonder if it is possible to keep a name with headers inside

I have most test passed locally with this approach (though I've modified it a bit).
#!/bin/sh

set -euvx

name=${1:-triton}

rm -rf intel-xpu-backend-for-triton/
git clone https://github.com/intel/intel-xpu-backend-for-triton -b lesh/remove-flag

set +uvx
. ~/.conda/etc/profile.d/conda.sh
#conda deactivate
conda env remove -n $name
conda env remove -n dpcpp
set -uvx
set -e

conda create -y -n triton python=3.9.*
conda env update -n $name -f intel-xpu-backend-for-triton/scripts/triton.yml
#conda env update -n $name -f intel-xpu-backend-for-triton/scripts/basekit.yml

python -m venv ./.venv
. ./.venv/bin/activate
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:$VIRTUAL_ENV/lib
export CPATH=${CPATH:-}:$VIRTUAL_ENV/include:$VIRTUAL_ENV/include/sycl

rm -rf intel_sycl_rt-2024.1.2*
wget https://files.pythonhosted.org/packages/cc/1e/d74e608f0c040e4f72dbfcd3b183f39570f054d08de39cc431f153220d90/intel_sycl_rt-2024.1.2-py2.py3-none-manylinux1_x86_64.whl
wheel unpack intel_sycl_rt-2024.1.2-py2.py3-none-manylinux1_x86_64.whl
mkdir -p ./intel_sycl_rt-2024.1.2/intel_sycl_rt-2024.1.2.data/data/include
cp -r /opt/intel/oneapi/compiler/2024.1/include/sycl ./intel_sycl_rt-2024.*/intel_sycl_rt-2024.*.data/data/include/
wheel pack intel_sycl_rt-2024.1.2 --build headers_patch

mv intel_sycl_rt-2024.1.2-headers_patch-py2.py3-none-manylinux1_x86_64.whl intel_sycl_rt-2024.1.2-py2.py3-none-manylinux1_x86_64.whl
pip install --force-reinstall ./intel_sycl_rt-2024.1.2-py2.py3-none-manylinux1_x86_64.whl
pip install dpcpp_cpp_rt==2024.1.2 numpy matplotlib pandas

find /opt/intel/oneapi/mkl/2025.0/lib/ \( -name '*.so' -or -name '*.so.*' \) -exec cp -n {} $HOME/.conda/envs/triton/lib \;
find /opt/intel/oneapi/compiler/2024.1/lib/ \( -name '*.so' -or -name '*.so.*' \) -exec cp -n {} $HOME/.conda/envs/triton/lib \;

export LD_LIBRARY_PATH=/home/jovyan/.conda/envs/triton/lib:${LD_LIBRARY_PATH:-}
ln -snf /usr/include/level_zero ~/.conda/envs/triton/bin/../x86_64-conda-linux-gnu/sysroot/usr/include/level_zero
find /usr -name libze_\* -exec ln -sf {} ~/.conda/envs/triton/lib/ \;

cd intel-xpu-backend-for-triton/
conda run --no-capture-output -n $name scripts/compile-triton.sh --triton 2>&1 | tee ../$name.log

conda run --no-capture-output -n $name bash -v -x scripts/test-triton.sh 2>&1 | tee -a ../$name.log

yes, there are differences; both conda and venv are used; I'm testing PR right now; https://github.com/intel/intel-xpu-backend-for-triton/pull/2000

conda can be removed; 2) I have no instruction how to compile mkl statically, thus I used the simple variant; 3) another difference is I need more compiler libraries; 4) it is still much smaller dependency set than the original basekit

@vlad-penkin what do you think about our strategic direction, should it be conda, venv or both?

I have no instruction how to compile mkl statically, thus I used the simple variant;

@leshikus these are probably just pip packages, according to the pytorch build script:
https://github.com/intel/intel-xpu-backend-for-triton/blob/776182afe3d6118db3db784a22636d8a33c68592/scripts/compile-pytorch-ipex.sh#L234


[feature] Read Start URL and Region via Environment Variables

Describe the solution you'd like
Read the start URL and region from environment variables
Additional context
I would like to read the needed variables / flags via environment variables, like
AWS_DEFAULT_SSO_START_URL="https://my-login.awsapps.com/start#/"
AWS_DEFAULT_SSO_REGION="eu-central-1"

The chain should be
1.) Saved Config
2.) Environment Variables
3.) CLI Flags
where the predecessor always gets overridden

And also aws profile to update :)


Problem with running plasticc benchmark using HDK

I am running plasticc benchmark from repo https://github.com/gshimansky/data-science-processing-workload. Eventually it always gets an exception like this:
Traceback (most recent call last):
  File "/home/gregory/work/data-science-processing-workload/launcher.py", line 205, in <module>
    main()
  File "/home/gregory/work/data-science-processing-workload/launcher.py", line 201, in main
    benchmark.run()
  File "/home/gregory/work/data-science-processing-workload/launcher.py", line 98, in run
    res = plasticc_run(*output_files)
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 268, in run
    cpu_loss, res["ML"] = measure(ml, train_final, test_final)
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 79, in measure
    res = func(*args, **kw)
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 233, in ml
    clf = xgb.train(
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/xgboost/core.py", line 620, in inner_f
    return func(**kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/xgboost/training.py", line 186, in train
    if cb_container.after_iteration(bst, i, dtrain, evals):
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/xgboost/callback.py", line 240, in after_iteration
    score: str = model.eval_set(evals, epoch, self.metric, self._output_margin)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/xgboost/core.py", line 2002, in eval_set
    feval_ret = feval(
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 131, in xgb_multi_weighted_logloss
    loss = multi_weighted_logloss(
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 122, in multi_weighted_logloss
    nb_pos = y_ohe.sum(axis=0).values.astype(float)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/pandas/dataframe.py", line 2226, in sum
    data._query_compiler.sum(
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 95, in method_wrapper
    return method(self, *args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 402, in sum
    return self._agg("sum", **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 95, in method_wrapper
    return method(self, *args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 454, in _agg
    new_frame = new_frame._set_index(
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py", line 1923, in _set_index
    self._execute()
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py", line 1685, in _execute
    new_partitions = self._partition_mgr_cls.run_exec_plan(
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/partitioning/partition_manager.py", line 280, in run_exec_plan
    calcite_json = CalciteSerializer().serialize(calcite_plan)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 72, in serialize
    return json.dumps({"rels": [self.serialize_item(node) for node in plan]})
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 72, in <listcomp>
    return json.dumps({"rels": [self.serialize_item(node) for node in plan]})
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 105, in serialize_item
    return self.serialize_node(item)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 142, in serialize_node
    return self.serialize_obj(node)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 168, in serialize_obj
    res[k] = self.serialize_item(v)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 111, in serialize_item
    return [self.serialize_item(v) for v in item]
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 111, in <listcomp>
    return [self.serialize_item(v) for v in item]
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 107, in serialize_item
    return self.serialize_expr(item)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 215, in serialize_expr
    return self.serialize_typed_obj(expr)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 189, in serialize_typed_obj
    res["type"] = self.serialize_dtype(obj._dtype)
  File "/home/gregory/work/miniconda3/envs/modin-0.18.0/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 331, in serialize_dtype
    return {"type": type(self).dtype_strings[dtype.name], "nullable": True}
KeyError: 'uint8'

The problem is very similar to what modin-hdk had some time ago and it is described in the bug https://github.com/modin-project/modin/issues/3368. But that bug is closed and is supposed to be fixed. It looks like a regression. Patch from comment https://github.com/modin-project/modin/issues/3368#issuecomment-916279557 helps to workaround this bug and with this patch benchmark completes successfully.

cc @AndreyPavlenko

Should be fixed by https://github.com/modin-project/modin/pull/5563

The fix has been merged to modin master.

Interesting but on version of modin-hdk 0.18.1 I can again reproduce the bug. I am running plasticc benchmark from my repo like this: python launcher.py -m plasticc --hdk and I am getting this exception:
Traceback (most recent call last):
  File "/home/gregory/work/data-science-processing-workload/launcher.py", line 247, in <module>
    main()
  File "/home/gregory/work/data-science-processing-workload/launcher.py", line 229, in main
    results, total_time = benchmark.run()
  File "/home/gregory/work/data-science-processing-workload/launcher.py", line 98, in run
    res = plasticc_run(*output_files)
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 269, in run
    cpu_loss, res["ML"] = measure(ml, train_final, test_final)
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 80, in measure
    res = func(*args, **kw)
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 234, in ml
    clf = xgb.train(
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/xgboost/core.py", line 620, in inner_f
    return func(**kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/xgboost/training.py", line 186, in train
    if cb_container.after_iteration(bst, i, dtrain, evals):
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/xgboost/callback.py", line 240, in after_iteration
    score: str = model.eval_set(evals, epoch, self.metric, self._output_margin)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/xgboost/core.py", line 2002, in eval_set
    feval_ret = feval(
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 132, in xgb_multi_weighted_logloss
    loss = multi_weighted_logloss(
  File "/home/gregory/work/data-science-processing-workload/benchmarks/plasticc.py", line 123, in multi_weighted_logloss
    nb_pos = y_ohe.sum(axis=0).values.astype(float)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/pandas/dataframe.py", line 2231, in sum
    data._query_compiler.sum(
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 95, in method_wrapper
    return method(self, *args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 402, in sum
    return self._agg("sum", **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 95, in method_wrapper
    return method(self, *args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/storage_formats/hdk/query_compiler.py", line 454, in _agg
    new_frame = new_frame._set_index(
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py", line 1923, in _set_index
    self._execute()
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py", line 1685, in _execute
    new_partitions = self._partition_mgr_cls.run_exec_plan(
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/logging/logger_decorator.py", line 128, in run_and_log
    return obj(*args, **kwargs)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/partitioning/partition_manager.py", line 280, in run_exec_plan
    calcite_json = CalciteSerializer().serialize(calcite_plan)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 72, in serialize
    return json.dumps({"rels": [self.serialize_item(node) for node in plan]})
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 72, in <listcomp>
    return json.dumps({"rels": [self.serialize_item(node) for node in plan]})
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 105, in serialize_item
    return self.serialize_node(item)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 142, in serialize_node
    return self.serialize_obj(node)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 168, in serialize_obj
    res[k] = self.serialize_item(v)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 111, in serialize_item
    return [self.serialize_item(v) for v in item]
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 111, in <listcomp>
    return [self.serialize_item(v) for v in item]
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 107, in serialize_item
    return self.serialize_expr(item)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 215, in serialize_expr
    return self.serialize_typed_obj(expr)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 189, in serialize_typed_obj
    res["type"] = self.serialize_dtype(obj._dtype)
  File "/home/gregory/work/miniconda3/envs/modin-conda-0.18.1/lib/python3.10/site-packages/modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py", line 331, in serialize_dtype
    return {"type": type(self).dtype_strings[dtype.name], "nullable": True}
KeyError: 'uint8'

@AndreyPavlenko @ienkovich @alexbaden - please fix this ASAP.

I'm unable to reproduce the failure on the latest modin master.
@gshimansky try this:
git clone https://github.com/modin-project/modin.git
cd modin
mamba create -f requirements/env_hdk.yml
mamba activate modin_on_hdk
export PYTHONPATH=$PWD:$PYTHONPATH

cd ../data-science-processing-workload
python launcher.py -m plasticc --hdk -np

@gshimansky does it work for you?


Use the file-url helper function from the frontend toolkit for background images

In some places, image paths use url() and in others image-url().
Would it be possible to use the url-helpers function from the frontend toolkit?
For example:
background-image: file-url('govuk-icn-close@2x.png');
This will output image-url for your project, but will allow other projects consuming this to override $path to specify the location of their image assets.

#36 fixes this.


Nodedock multiple projects

Any idea for multiple project inside a nodedock.

Nodedock
Project 1
Project 2

Can i run both projects on nodedock as laradock did?

Nodedock is based on Laradock, so we can, in theory, inherit any features Laradock has.
As an idea - you can specify different ports for different projects in env file / docker compose.
Nevertheless, can you point at laradock's multiple project support documentation/implementation? Maybe it's a 10 mins work to replicate it?

i have 2 nodejs project on 1 nodedock.
+nodedock
+project1
+project2
.env
APP_CODE_PATH_HOST=../
inside the nodedock->nginx->sites, i create 2 .conf files,
project1.conf
server_name project1.test;
root /var/www/project1;

and project2.conf
server_name project2.test;
root /var/www/project2;

/etc/hosts
<IP_ADDRESS> project1.test
<IP_ADDRESS> project2.test

after i run docker-compose up -d nginx and i check docker-compose ps
nodedock_nginx_1 state is exit 1
nodedock_node_1 state is exit 245
on logs error show like this
2020/05/12 15:53:09 [emerg] 1#1: host not found in upstream "node:9000" in /etc/nginx/conf.d/upstream.conf:1

I try on laradock
+laradock
+project1
+project2
just setup the laradock->nginx->sites
project1.conf
server_name project1.test;
root /var/www/project1/public;

project2.conf
server_name project2.test;
root /var/www/project2/public;

and running smoothly
i hope you can help

I also need help in multi-project setup with single nodedock .


Cannot parse "psycopg2>=2.7.4 --no-binary psycopg2"

It is recommended to use --no-binary in psycopg2 docs:
http://initd.org/psycopg/docs/install.html
However, requirements.parse() fails on line "psycopg2>=2.7.4 --no-binary psycopg2".
Please advise if this is a bug in requirements or if this shouldn't be supported.
If it's a bug, I would be glad to create a PR for this one.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 90, in __init__
    req = REQUIREMENT.parseString(requirement_string)
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/pyparsing.py", line 1654, in parseString
    raise exc
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/pyparsing.py", line 1644, in parseString
    loc, tokens = self._parse( instring, 0 )
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/pyparsing.py", line 3417, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/pyparsing.py", line 1406, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/pyparsing.py", line 3205, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pkg_resources._vendor.pyparsing.ParseException: Expected stringEnd (at char 16), (line:1, col:17)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2963, in __init__
    super(Requirement, self).__init__(requirement_string)
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 94, in __init__
    requirement_string[e.loc:e.loc + 8]))
pkg_resources.extern.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'--no-bin'"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File ".dev/bump-requirements.py", line 25, in <module>
    asyncio.run(generate_fresh_requirements(args.file))
  File ".dev/bump-requirements.py", line 20, in generate_fresh_requirements
    for req in requirements.parse(fd):
  File "/usr/local/lib/python3.7/site-packages/requirements/parser.py", line 50, in parse
    yield Requirement.parse(line)
  File "/usr/local/lib/python3.7/site-packages/requirements/requirement.py", line 220, in parse
    return cls.parse_line(line)
  File "/usr/local/lib/python3.7/site-packages/requirements/requirement.py", line 198, in parse_line
    pkg_req = Req.parse(line)
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3009, in parse
    req, = parse_requirements(s)
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2956, in parse_requirements
    yield Requirement(line)
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2965, in __init__
    raise RequirementParseError(str(e))
pkg_resources.RequirementParseError: Invalid requirement, parse error at "'--no-bin'"

Looks like it should be supported https://pip.pypa.io/en/stable/reference/pip_install/#install-no-binary  but I don't see examples in the documentation.


Help creating custom AutocompletePolicy

Hello
I am trying to create a custom policy where the popup appears after a keyword is typed in the EditText
Here's my current solution, but it isn't working 😕. Could you please check and tell me what's wrong with it? 🙏
public class KeywordPolicy implements AutocompletePolicy {
    @Override
    public boolean shouldShowPopup(Spannable text, int cursorPos) {
        return text.toString().startsWith("key");
    }

    @Override
    public boolean shouldDismissPopup(Spannable text, int cursorPos) {
        return text.toString().length() <= 0;
    }

    @Override
    public CharSequence getQuery(Spannable text) {
        return text.toString();
    }

    @Override
    public void onDismiss(Spannable text) {
    }
}

What is not working?

@natario1  I type key as it's the keyword, and the autocomplete popup just doesn't appear

Ah, then I don't know, it should work. Try with the default policy or CharPolicy and see if it works, you might have a different issue


Remove any discrepancies between bibitem encodings that impact relaton

Because we cannot have multiple schemas parsing the same references in a document (#35), all Relaton XML output from all relaton gems must align with the same schema. If I have to, I will use goddamn xs:any to get them parsing.
With a backlog of 75 issues, I don't have the time to do the analysis of what the discrepancies are between different flavours of relaton. @andrew2net, I ask that you go through the Relaton gems and grammars, and tell me what those discrepancies are; they need to be  eliminated where at all possible. I will decide which ones can be eliminated, and make the appropriate requests back to you.

So bibdata can be distinct for different flavours, for reasons of presentation, but bibdata is reduced to a common bibitem representation, which is universal. And converting flavour-specific bibdata to generic bibitem will become functionality necessary to relaton-cli, once we know what that those discrepancies are.

@andrew I will do the analysis, because this needs to be done before anything else in the relaton stack. I've removed it from your to-do list. You will have plenty to do in followup anyway.

@andrew2net This is the beginning of me refactoring bibitem. This will break things. I think you should wait until I finish before programming anything more in the relaton suite; several elements are going to change position. I will list all position changes here.

Change status from FormattedString to ( stage, substage?, iteration? ), which matches the modelling of ISO. There is no text child of status, it moves to status/stage.

@opoudjis: Not at the moment, but keep me in the loop in case we need to update anything there, thanks!

@opoudjis: Not at the moment, but keep me in the loop in case we need to update anything there, thanks!

It will definitely have impacts, but I will summarise the changes here, and let you know when they are finalised

All refactoring done in this ticket but for allparts, about which I will decide tomorrow whether it goes to bibitem or is only in bibdata. Although it is only relevant to GB and ISO, and part referencing is subsumed in bibitem into the identifier, I'm inclined to allow it in bibitem, since it is customised by language.

allparts modelled as extent[@type = 'part']/referenceFrom = all.
All discrepancies have been resolved.


How to get validation loss using mmdetection version 2.28.2?

Hii, I am new to mmdetection and want to get the validation loss. I found this #505.
I added workflow = [('train', 1), ('val', 1)] but then I get this error
File "tools/train.py", line 247, in <module>
    main()
  File "tools/train.py", line 226, in main
    'pipeline', cfg.data.train.dataset.get('pipeline'))
  File "/home/mm/miniconda3/envs/mmdet/lib/python3.8/site-packages/mmcv/utils/config.py", line 52, in __getattr__
    raise ex
AttributeError: 'ConfigDict' object has no attribute 'dataset'

I am also not sure how to set this "Also you need to modify the data_loaders in this line, your need to append your valset_loader at the end of data_loaders", because in version 2.28.2 the data_loaders looks different. In version 2.28.2 there is no _dist_train function, here it looks like this:
def train_detector(model,
                   dataset,
                   cfg,
                   distributed=False,
                   validate=False,
                   timestamp=None,
                   meta=None):

    cfg = compat_cfg(cfg)
    logger = get_root_logger(log_level=cfg.log_level)

    # prepare data loaders
    dataset = dataset if isinstance(dataset, (list, tuple)) else [dataset]

    runner_type = 'EpochBasedRunner' if 'runner' not in cfg else cfg.runner[
        'type']

    train_dataloader_default_args = dict(
        samples_per_gpu=2,
        workers_per_gpu=2,
        # `num_gpus` will be ignored if distributed
        num_gpus=len(cfg.gpu_ids),
        dist=distributed,
        seed=cfg.seed,
        runner_type=runner_type,
        persistent_workers=False)

    train_loader_cfg = {
        **train_dataloader_default_args,
        **cfg.data.get('train_dataloader', {})
    }

    data_loaders = [build_dataloader(ds, **train_loader_cfg) for ds in dataset]

Can somebody help me to get the validation loss in mmdetection version 2.28.2?

Solved: 1. add workflow = [('train', 1), ('val', 1)] in config 2. change line 225/226 in train.py to val_dataset.pipeline = cfg.data.train.get('pipeline', cfg.data.val.get('pipeline'))


koin upgrade to 3.2.2

With the current version, I get the following error message when I upgrade Gradle from 7.4.2 to 7.5.1 and then want to use the keycloak migration:
Caused by: java.lang.NoSuchMethodError: 'double kotlin.time.Duration.toDouble-impl(long, java.util.concurrent.TimeUnit)'
        at org.koin.core.time.MeasureKt.measureDuration(Measure.kt:32)
        at org.koin.core.KoinApplication.modules(KoinApplication.kt:59)
        at org.koin.core.KoinApplication.modules(KoinApplication.kt:42)
        at de.klg71.keycloakmigration.MainKt$migrate$1$1.invoke(Main.kt:68)
        at de.klg71.keycloakmigration.MainKt$migrate$1$1.invoke(Main.kt:66)
        at org.koin.core.context.GlobalContext.startKoin(GlobalContext.kt:64)
        at org.koin.core.context.DefaultContextExtKt.startKoin(DefaultContextExt.kt:31)
        at de.klg71.keycloakmigration.MainKt.migrate(Main.kt:66)
        at de.klg71.keycloakmigrationplugin.KeycloakMigrationTask.migrate(KeycloakMigrationTask.kt:55)
....

I checked out the plugin locally, pulled up the version and then tried it with that. The error then does not occur.

Hey mrclrchtr,
Thanks for your Merge Request :) It looks all fine. I will shortly release another version but I'm waiting for another MR. This shouldn't take longer than this week for the next release :)
Greetings From Germany :)

Released with 0.2.39


Module names in indexes always wrapped in quotes

Search terms
Index, Module, Name, Quotes
Expected Behavior
Module names in indexes should be displayed just like functions, classes, etc., with their respective, type-specific styles.
Actual Behavior
Module names are always wrapped in quotes.
Expected: [icon] foo/bar
Actual: [icon] "foo/bar"
Environment

Typedoc version: 0.19.2

Duplicate of #68 - this is being addressed as a part of the library mode work being tracked in #1364.


Visualizer has trouble rendering overlapping entities

Same word appears multiple times if it is included in overlapping entities.

Expected behaviour: All matching entity types appear at the end of the matched word

this is an interesting use case. actually I think MITIE would fail in this case. IIRC it doesn't support overlapping entities. But yes this should be fixed

@yulkes would something like this work?

see PR #47