Updated dependencies, added functionality, ...

Updated dependencies
Removed title so it can be set with browserWindowOverrides
Added filepicker
Directory button and dropdown default i18n ready
Add button thats sends on ipc channel
Add childBrowserWindowOverrides
Fix cut off scrollbar
Add ability to use own icons or none at all in sidebar

@tkambler what about this PR? I will look forward to see file field get merged..

@i997jn7 I don't know how, but I must have overlooked this PR for quite a while now. I've been starting to help maintaining the repo since the start of 2021.
Meanwhile a few of your initial improvements have been implemented, but still quite some that aren't.
If you still want these other improvements to be merged, you can definitely create a new PR which I'd be glad to review and merge. However I think this one has deviated a bit too much.
@jan-zajic FYI, the file selector has meanwhile been implemented and released.

This is why PRs should be discrete, feature-specific code changes, there's just too much here to separate at this point. I've pulled your code for the button into it's own PR.


Refine ProGuard rules

I see that the SDK includes consumer ProGuard rules (which is great), but they are too loose (if it makes sense). Specifically I’m talking about these ones:
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-keep class com.leanplum.** { *; }

Basically you are telling ProGuard to keep everything from the support library and this SDK which is actually equivalent to not doing ProGuard at all.

Done in #244


"PointerExited" event when ComboBox clicked to open Drop Down

Describe the bug
To set the context: We have a WinUI 3 based Crayons application for kids to select the colour and draw in Windows application. The control employed for selection is a WinUI ComboBox control.
We have modified the ComboBox template to suit our Crayons application design--- the Drop Down has been moved to the bottom of ComboBox control when "IsEditable" is FALSE. However, when it is clicked to open the Drop Down, we can notice that a PointerExited is fired.
This is noticeable because we have set PointerCursor of ComboBox as HAND and it turns to ARROW when clicked on the control.
We want to retain the mouse cursor as HAND.
Steps to reproduce the bug
CrayonsTestApp_v2.zip

Load the sample application provided.
Move cursor above ComboBox -> Notice cursor is HAND
Click the ComboBox -> Notice cursor becomes ARROW

Expected behavior
Cursor should remain HAND.
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.3.2: 1.3.230602002
Windows version
Windows 10 (21H2): Build 19044
Additional context
Please acknowledge if this is an issue with the WinUI control.
It would be great if any workarounds could be suggested.

PointerExited fires in Parent when child ComboBox opens
The pointer is always over the Grid but PointerExited fires
<Window ....>
    <Grid PointerExited="PointerExited" Background="DarkGreen">
            <ComboBox VerticalAlignment="Center" HorizontalAlignment="Center">
                <ComboBoxItem Content="1" />
                <ComboBoxItem Content="2" />
            </ComboBox>
    </Grid>
</Window>

It's because ComboBox is implemented with a Popup https://github.com/microsoft/microsoft-ui-xaml/blob/63671e055eadfd74806f9800382b8bd6c9999b4a/controls/dev/ComboBox/ComboBox_themeresources.xaml#L589
<Grid PointerExited="Grid_PointerExited" Background="DarkGreen" Loaded="Grid_Loaded">
    <Popup x:Name="MyPopup" Height="100" Width="100" >
        <Grid Background="Cyan" Width="100" Height="100"/>
    </Popup>
</Grid>


Crash when opening some remote folder via smb

Description
Files will crash when trying to open some remote folder via SMB. I first time noticed this when I tried to open the pictures folder by the home widget, it just getting not respond, and I could not even end it by task manager. Since I redirected my picture folder for this user to a remote folder, I tried to directly access that folder instead of using that widget, and it can just be accessible as usual. I also tried some other remote folders, and I found that sometimes some folders will cause the crashing of files, but sometimes they won't. The only one that can certainly reproduce is using that widget.
Additionally, as I said below when crashing by a remote folder, files CANNOT be ended by task manager. And if using windows explorer to access the same folder when files is crashed, windows explorer WILL ALSO CRASH.
Steps To Reproduce
The only way that can 100% reproduce is to set the picture folder of your user to a remote folder such as "\\NAS\Photo", then just click the picture bottom on the homepage.
But this is not the ONLY case that files may crash.
Steps to fix
Fix that crash.
Files Version
<IP_ADDRESS>
Windows Version
Windows 11 Pro N for workstation 22H2
Relevant Assets/Logs
No related log is recorded.

Can you please upload the debug.log file directly to GitHub (email attachments don't work) . You can get it in Files settings > About > Open log folder.

debug.log
here is the log. I got that issue around the night of 2022-12-21, and then I just switched back to windows explorer. I don't think any error messages have been logged at that time.

Is this still an issue in the preview version? https://files.community/download/preview

Yes, the issue still exists in the latest preview version. I have also noticed some new phenomena in the preview version. When the program freezes, I can hear the fan speed noticeably increase, and in the task manager, I can see that one core is being used at 100%. I'm not sure if this information is helpful to you.
Let me provide a detailed description of my issue. I have changed the directions for photos and videos in user folder to my NAS using the smb protocol (path format is \NAS...). When I click on the shortcuts for these folders on the start page of files, the program immediately becomes unresponsive, and even forcing end task in the task manager doesn't work. The only solution is to restart the computer. In this way can reproduce the issue 100%.
I have also found that even when I don't click on these shortcuts, there is still a chance of encountering the freezing issue when accessing files on the NAS. This happens randomly, but I personally feel that the probability is higher when attempting to re-access a path that has been accessed in this session.
I hope this information is helpful to you.
Sent with Proton Mail secure email.
------- Original Message -------
On Sunday, April 2nd, 2023 at 23:24, Yair @.***> wrote:

Is this still an issue in the preview version? https://files.community/download/preview
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

@mika-savijarvi thank you for checking, do you see anything useful in the log file?

I cleared all logs and tried to reproduce the issue. Nothing is recorded except a drive list and something related to update checking.
2023-04-03 00:53:10.3765|INFO|OnLaunched|App launched. Launch args type: LaunchActivatedEventArgs 2023-04-03 00:53:11.9587|INFO|GetDrivesAsync|Drive added: C:\, Fixed 2023-04-03 00:53:11.9795|INFO|UpdateDrivesAsync|Adding cloud provider "Creative Cloud Files" mapped to C:\Users\"USER NAME"\Creative Cloud Files 2023-04-03 00:53:11.9883|INFO|GetDrivesAsync|Drive added: D:\, Fixed 2023-04-03 00:53:12.0153|INFO|GetDrivesAsync|Drive added: E:\, Fixed 2023-04-03 00:53:12.0347|INFO|GetDrivesAsync|Drive added: F:\, Fixed 2023-04-03 00:53:12.0510|INFO|GetDrivesAsync|Drive added: G:\, Fixed 2023-04-03 00:53:12.0710|INFO|GetDrivesAsync|Drive added: I:\, Removable 2023-04-03 00:53:14.0238|INFO|CheckForUpdates|SIDELOAD: Checking for updates... 2023-04-03 00:53:14.9057|INFO|CheckForUpdates|SIDELOAD: Current Package Name: FilesPreview 2023-04-03 00:53:14.9141|INFO|CheckForUpdates|SIDELOAD: Remote Package Name: FilesPreview 2023-04-03 00:53:14.9212|INFO|CheckForUpdates|SIDELOAD: Current Version: <IP_ADDRESS> 2023-04-03 00:53:14.9277|INFO|CheckForUpdates|SIDELOAD: Remote Version: <IP_ADDRESS> 2023-04-03 00:53:14.9345|WARN|CheckForUpdates|SIDELOAD: Update not found.2023-04-21 16:10:01.4783|Information|App launched. Launch args type: LaunchActivatedEventArgs

@mika-savijarvi is this still an issue in v3.0.3? If it is, please upload the updated log file so we can take a closer look.


WebView2: Added release notes for SDK 0.9.579

Docs Build status updates of commit e9bd905:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 14e9f4f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 4675b6e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@liminzhu Do we need to mention WebView2 RT preview too?

@liminzhu Do we need to mention WebView2 RT preview too?

Yes, great callout, thanks for brining it up! We should announce the preview here too, and direct folks to https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#understand-the-webview2-runtime-and-installer-preview for more details.

Docs Build status updates of commit 2fbe4e5:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:warning:Warning

Details

microsoft-edge/webview2/releasenotes.md

Line 31, Column 0: [Warning-hard-coded-locale] Link 'https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#understand-the-webview2-runtime-and-installer-preview' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 53ea07d:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:warning:Warning

Details

microsoft-edge/webview2/releasenotes.md

Line 31, Column 0: [Warning-hard-coded-locale] Link 'https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#understand-the-webview2-runtime-and-installer-preview' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit c26cc3b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:warning:Warning

Details

microsoft-edge/webview2/releasenotes.md

Line 31, Column 95: [Warning-file-not-found] Invalid file link: './concepts/distribution'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit e4a843b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:warning:Warning

Details

microsoft-edge/webview2/releasenotes.md

Line 31, Column 95: [Warning-file-not-found] Invalid file link: './concepts/distribution'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 5ea5b21:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/webview2/releasenotes.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


locationd: disable falling device detector

looks like that test_locationd.py/test_device_fell(self) should be disabled too


Best place for password requirements text

How can I display the password requirements to my user before the first password failure? I want to show both the length requirement and the least strong password requirements (1 digit, 1 uppercase and 1 lowercase). I see these error message dialogs when I don't meet the requirements, but I'd prefer that the users know what is expected of them before they try to come up with a password (that doesn't work).
Thanks

what about using the placeholder?
alternatively you could wrap your custom template for the password field and a paragraph with your description: lets have a look at this

I guess you have enough information now...
Let me know!


AntlrPlugin now creates a non-consumable configuration

Fixes #21743

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

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


TWI Content used in released content.

This was owned by our TWI Soldier so Looking for assistance to get this released.
No Description, bad title etc..

[x] id:1861307746174ca5914713795d19ec7c Tile Layer - Monterey Bay Area of Operations
[x] id:8833db468b34457496a9f2b358417d09 Tile Layer - Cover
[x] id:773d718010da4a63b86dec6ee2cdeaa6 Tile Layer Drop_Zone_Analysis
[x] id:b9ef7590b9c9440c87ce17c448b38b53 Tile Layer HMMWV_CCM

is used in a web map but not released.

@jrweakland this is the complete list for TWI.

@lfunkhouser - ready for your review and release.
The service definitions are for these items are:
Area of Operations - id:b2ca6123b7194a53a2dd029f1cbc5ed3
Cover - id:37daf91d910a45acaf68c7dd25e3e01e
Cross-Country Movement (HMMWV) - id:bf6e7bee41bd497d90861d705c82393b
Drop Zones - id:5282f627f2ad47fdb30f162b9fb648f7

Items and service definitions released by Demo Military


Portal: Rendering of option for multi-valued code attributes

Multi-valued code attributes is now rendered as Closed instead of Executive Board

fixed with opencrx-4.2.0+


PDOException: SQLSTATE[HY000] [2002] No such file or directory

Codebase
Identical to another Drupal 7 install
Host OS
macOS Sierra
Docker info output
Containers: 10
 Running: 7
 Paused: 0
 Stopped: 3
Images: 25
Server Version: 17.03.1-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 155
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.27-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.952 GiB
Name: moby
ID: SAMR:3ABT:3G24:PBCI:UI26:P7XZ:ADPA:LLXW:XBA2:DWXV:NGNC:6O3H
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 76
 Goroutines: 78
 System Time: 2017-11-16T00:24:16.859123503Z
 EventsListeners: 2
No Proxy: *.local, 169.254/16
Username: mikeill
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Docker compose file
version: "2"
# https://docker4drupal.readthedocs.io/en/latest/
# drupal.docker.localhost:8000
services:
  mariadb:
    image: wodby/mariadb:10.1-2.3.5
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: drupal
      MYSQL_USER: drupal
      MYSQL_PASSWORD: drupal
    volumes:
      - ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
#      - /path/to/mariadb/data/on/host:/var/lib/mysql # I want to manage volumes manually.

  php:
# 1. Images with vanilla Drupal – wodby/drupal:[DRUPAL_VERSION]-[PHP_VERSION]-[STABILITY_TAG].
#    image: wodby/drupal:8-7.1-3.0.0
#    image: wodby/drupal:8-7.0-3.0.0
#    image: wodby/drupal:7-7.1-3.0.0
#    image: wodby/drupal:7-7.0-3.0.0
#    image: wodby/drupal:7-5.6-3.0.0
#    image: wodby/drupal:6-5.6-3.0.0
#    image: wodby/drupal:6-5.3-3.0.0
# 2. Images without Drupal – wodby/drupal-php:[PHP_VERSION]-[STABILITY_TAG].
#    image: wodby/drupal-php:7.1-3.0.0
#    image: wodby/drupal-php:7.0-3.0.0
    image: wodby/drupal-php:5.6-3.0.0
#    image: wodby/drupal-php:5.3-3.0.0
    environment:
      PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
      PHP_FPM_CLEAR_ENV: "no"
      DB_HOST: mariadb
      DB_USER: drupal
      DB_PASSWORD: drupal
      DB_NAME: drupal
      DB_DRIVER: mysql
    volumes:
#      - ./:/var/www/html:cached # User-guided caching
      - docker-sync:/var/www/html # Docker-sync

  apache:
    image: wodby/php-apache:2.4-2.0.0
    depends_on:
      - php
    environment:
      APACHE_LOG_LEVEL: debug
      APACHE_BACKEND_HOST: php
      APACHE_SERVER_ROOT: /var/www/html
    volumes:
 #     - ./:/var/www/html:cached # User-guided caching
      - docker-sync:/var/www/html # Docker-sync
## Options for macOS users (https://docker4drupal.readthedocs.io/en/latest/macos)
 #     - ./:/var/www/html:cached # User-guided caching
#      - docker-sync:/var/www/html # Docker-sync
    labels:
      - 'traefik.backend=apache'
      - 'traefik.port=80'
      - 'traefik.frontend.rule=Host:drupal.docker.localhost'

  mailhog:
    image: mailhog/mailhog
    labels:
      - 'traefik.backend=mailhog'
      - 'traefik.port=8025'
      - 'traefik.frontend.rule=Host:mailhog.drupal.docker.localhost'

  portainer:
    image: portainer/portainer
    command: --no-auth -H unix:///var/run/docker.sock
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - 'traefik.backend=portainer'
      - 'traefik.port=9000'
      - 'traefik.frontend.rule=Host:portainer.drupal.docker.localhost'

  traefik:
    image: traefik
    command: -c /dev/null --web --docker --logLevel=INFO
    ports:
      - '8000:80'
      - '8080:8080' # Dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
 # ./:
## Docker-sync for macOS users
  docker-sync:
    external: true
## For Xdebug profiler
#  files:

Logs output
mariadb_1    | MySQL init process done. Ready for start up.
mariadb_1    |
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] mysqld (mysqld 10.1.26-MariaDB) starting as process 1 ...
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Using mutexes to ref count buffer pool pages
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: The InnoDB memory heap is disabled
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Compressed tables use zlib 1.2.11
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Using Linux native AIO
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Using SSE crc32 instructions
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Initializing buffer pool, size = 1.0G
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Completed initialization of buffer pool
mariadb_1    | 2017-11-15 21:09:27<PHONE_NUMBER>07560 [Note] InnoDB: Highest supported file format is Barracuda.
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] InnoDB: 128 rollback segment(s) are active.
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] InnoDB: Waiting for purge to start
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.36-82.1 started; log sequence number 74808575
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>34760 [Note] InnoDB: Dumping buffer pool(s) not yet started
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] Plugin 'FEEDBACK' is disabled.
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] Server socket created on IP: '<IP_ADDRESS>'.
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Warning] 'proxies_priv' entry '@% root@f0d3e9d8dc81' ignored in --skip-name-resolve mode.
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] Reading of all Master_info entries succeded
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] Added new Master_info '' to hash table
mariadb_1    | 2017-11-15 21:09:28<PHONE_NUMBER>07560 [Note] mysqld: ready for connections.
mariadb_1    | Version: '10.1.26-MariaDB'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MariaDB Server
mariadb_1    | 2017-11-16  0:18:07<PHONE_NUMBER>15560 [Note] mysqld: Normal shutdown
mariadb_1    |
mariadb_1    | 2017-11-16  0:18:07<PHONE_NUMBER>15560 [Note] Event Scheduler: Purging the queue. 0 events
mariadb_1    | 2017-11-16  0:18:07<PHONE_NUMBER>11592 [Note] InnoDB: FTS optimize thread exiting.
mariadb_1    | 2017-11-16  0:18:07<PHONE_NUMBER>15560 [Note] InnoDB: Starting shutdown...
mariadb_1    | 2017-11-16  0:18:08<PHONE_NUMBER>15560 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
mariadb_1    | 2017-11-16  0:18:10<PHONE_NUMBER>15560 [Note] InnoDB: Shutdown completed; log sequence number 74808585
mariadb_1    | 2017-11-16  0:18:11<PHONE_NUMBER>15560 [Note] mysqld: Shutdown complete
mariadb_1    |

Getting the following error in the browser at drupal.docker.localhost:8000:
PDOException: SQLSTATE[HY000] [2002] No such file or directory in lock_may_be_available() (line 167 of /var/www/html/includes/lock.inc).
This address works: drupal.docker.localhost:8080

This is the Settings:
$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'drupal',
      'username' => 'drupal',
      'password' => 'drupal',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => 'dr_',
    ),
  ),
);

I have also tried 'port' => '3306',.
Mariadb service is running and the data is as expected:
MariaDB [drupal]> show tables;
+-------------------------------------------------+
| Tables_in_drupal                                |
+-------------------------------------------------+
| dr_accesslog                                    |
| dr_actions                                      |
| dr_advanced_help_index                          |
| dr_authmap                                      |
| dr_batch                                        |
| dr_block                                        |
| dr_block_custom                                 |
| dr_block_node_type

The struggle continues. One modification I made is to the docker-sync.yml file where I have the codebase in a subdirectory: src: './codebase' and as per docs I looped docker-sync stop, docker-sync clean, docker-sync start.
The index.php file comes up as expected and I have added some test code:
phpinfo(INFO_MODULES);

MySqli and MySql are enabled with zero persistent links and no default host. Is this normal?
$dbname = 'drupal';
$dbuser = 'drupal';
$dbpass = 'drupal';
$dbhost = 'localhost';
$link = mysqli_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");

Output:
Warning: mysqli_connect(): (HY000/2002): No such file or directory in /var/www/html/index.php on line 29
Unable to Connect to 'localhost'

The following two connections succeed in the index file:

# Fill our vars and run on cli
# $ php -f db-connect-test.php
$dbname = 'drupal';
$dbuser = 'drupal';
$dbpass = 'drupal';
$dbhost = 'mariadb';
$link = mysqli_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
mysqli_select_db($link, $dbname) or die("Could not open the db '$dbname'");
$test_query = "SHOW TABLES FROM $dbname";
$result = mysqli_query($link, $test_query);
$tblCnt = 0;
while($tbl = mysqli_fetch_array($result)) {
  $tblCnt++;
  #echo $tbl[0]."
\n";
}
if (!$tblCnt) {
  echo "There are no tables
\n";
} else {
  echo "There are $tblCnt tables
\n";
}

try{
	$dbh = new pdo( 'mysql:host=mariadb:3306;dbname=drupal',
					'drupal',
					'drupal',
					array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
	echo "
";
	print_r($dbh);
	echo "
";
	//die(json_encode(array('outcome' => true)));
}
catch(PDOException $ex){
	echo "
";
	print_r($ex);
	echo "
";
	die(json_encode(array('outcome' => false, 'message' => 'Unable to connect')));
}

But the following $databases array still gives the same error:
$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'drupal',
      'username' => 'drupal',
      'password' => 'drupal',
      'host' => 'mariadb',
      'port' => '3306',
      'driver' => 'mysql',
      'prefix' => 'dr_',
    ),
  ),
);

Further documentation on SO.

Did you actually install Drupal 7? perhaps you should visit http://drupal.docker.localhost:8080/install.php

You've set
      'host' => 'localhost',
In your settings.php.
This should be:
  'host' => 'mariadb',
Based on the defaults documented on https://wodby.com/stacks/drupal/docs/local/quick-start/

You've set
 'host' => 'localhost',
In your settings.php.
This should be:
 'host' => 'mariadb',
Based on the defaults documented on https://wodby.com/stacks/drupal/docs/local/quick-start/

I'm having the same issue but i'm trying to containerized an existing application with that uses mariadb locally but the host variable  in the settings,php use localhost instead of mariadb  .
The problem when i import my database with the - ./mariadb-init:/docker-entrypoint-initdb.d in my docker-compose file , the db initializes succefully by i get the same above error in this thread.
if i  change the host variable back to mariadb and i try to log into the db instance i get an error

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

How do i fix this , what host definition should i use in this case. I'm a newbie to all this :(

I've seen a similar problem, and addressed it by deleting the settings.php file and running a clean install


Bump Prow commit to include new UI changes

Bumping Prow commit to include new changes like Abort job button for Deck/Spyglass.
Examples:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Error 401: Wrong account or password -- again

I got an Error 401 same as #212 today.
https://github.com/skydiver/ewelink-api/issues/212
This error does not occur with sonoff devices but occurs with 4ch products that have the PSF-B04 module when using setDevicePowerState methods.
Is there anyone with the same symptoms?

Correction, sonoff devices also become errors.

I found a temporary workaround.
APP_ID: Uw83EKZFxdif7XFXEsrpduz5YyjP7nTl
APP_SECRET: mXLOjea0woSMvK9gw7Fjsy7YlFO4iSu6
works for me.
Thanks, LiorLindvor.
https://github.com/skydiver/ewelink-api/issues/212#issuecomment-1485629138

after registering your ewelink account and creating app, did your app_id and secret_id work normally?

I've had little problem finding correct directory under my portainer node-red install, found here: //data/node_modules/ewelink-api/src/data$ -if anyone has same problem. Using vi editor I have changed the credentials as above (or create your own under dev.ewelink.cc) and the auth problem solved now!

@antonioGabrielGomes , all,
I've created my own APP_ID & APP_SECRET  on dev.ewelink.cc, - standard role.
However this doens't fully work. I can get devices and events just fine,
but all other nodes just give me "wrong account or password".
With the above credentials from @nareso , I get full functionality.
At this point, should I assume the issue is with the role?

@karocavo
I did that but got the same error

It could be the type of account we're creating, maybe individual developer access doesn't have permissions.

@mduchain
It could be the type of account we're creating, maybe individual developer access doesn't have permissions.

Regarding authorization issues, accounts created by individual developers can only be redirected to the authorization page for login. So it cannot directly request the login interface to obtain a Token, the specific information is here: https://coolkit-technologies.github.io/eWeLink-API/#/en/OAuth2.0
The reason why the setDevicePowerState method returned an 403 error is that it is not actually applicable to devices with UIIDs other than 5 or 32.

Hi carl , thanks for your reply.
I do not understand the Create application procedure, but how should I describe it in the redirect URL field?
By the way, in my account,
I can login with https://dev.ewelink.cc/#/login, but with https://c2ccdn.coolkit.cc/oauth/index.html the login process does not proceed.

This is an example of eWeLink OAuth2.0 login：https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo

Hi carl, thank you very much for your kind explanation.
But, I can't find config.js in ewelink-api directory. Isn't your example for ewelink-api-next?
Please tell me the create application procedure when using ewelink-api.

The file to overwrite keys from previous comments is in directory path i’ve mentioned specifically in case of a portainer install (NAS)- keys from ewelink.cc supposedly do not work, as written above

Hi carl , thanks for your reply.
I do not understand the Create application procedure, but how should I describe it in the redirect URL field?
By the way, in my account, I can login with https://dev.ewelink.cc/#/login, but with https://c2ccdn.coolkit.cc/oauth/index.html the login process does not proceed.

same here.

Well, I've had problems with Error 401, now it's gone. I have not created API myself, but used keys from this post -
APP_ID: Uw83EKZFxdif7XFXEsrpduz5YyjP7nTl
APP_SECRET: mXLOjea0woSMvK9gw7Fjsy7YlFO4iSu6
/by nareso/
and changed these in settings.js file under command line in nodered container - attached pic for reference

Uw83EKZFxdif7XFXEsrpduz5YyjP7nTl 是一个不应该被使用的APPID，请忽视它。
Through personal developer methods, it is possible to integrate with devices. I will add an example of obtaining device information and controlling devices later, but the specific content needs to be configured based on your device.

Updated, feat: Add device examples to control the current login account
https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo

@coolkit-carl can we say at least that it is really messy ??
Why Ewelink is disabling v1 interface while v2 interface does not work for production ?
On my side, my own app_id and app_secret doesn't work but this app_id works : Uw83EKZFxdif7XFXEsrpduz5YyjP7nTl
Which is really weird.
Can you explain us how to easily use your ewelink-api-next to basically turn on/off a device please ?
Documentation here : https://coolkit-technologies.github.io/eWeLink-API/#/en/OAuth2.0
Or here : https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo
are clearly not understandable and seems to not be stable at all.

Can you give an example of why you feel unstable? The v2 interface has been running and maintained for 3 years, and there have been no significant changes to the interface.
We have stopped maintaining the v1 interface. Its security is not as high as the v2 interface, and its functionality is not as comprehensive as the v2 interface. Stopping is inevitable.
3 https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo <https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo > I updated the latest document for this project yesterday and wrote about the entire process.
ewelink-api-next actually has basic examples. In the next few days, it will be open source and provide additional documentation for all functions (in fact, if you use TypeStript, you will get a more perfect prompt, and its source code also has annotations).
Dep：产品部|解决方案工程师
Name：刘家乐
@.*** @.*** >
Tel：+86(0)755 26404901
Mob：+86<PHONE_NUMBER>7

发件人：thomas350 @.>
发送时间：2023年8月16日(星期三) 19:48
收件人：skydiver/ewelink-api @.>
抄　送：刘家乐 @.>; Mention @.>
主　题：Re: [skydiver/ewelink-api] Error 401: Wrong account or password -- again (Issue #220)
@coolkit-carl <https://github.com/coolkit-carl > can we say at least that it is really messy ??
Why Ewelink is disabling v1 interface while v2 interface does not work for production ?
On my side, my own app_id and app_secret doesn't work but this app_id works : Uw83EKZFxdif7XFXEsrpduz5YyjP7nTl
Which is really weird.
Can you explain us how to easily use your ewelink-api-next to basically turn on/off a device please ?
Documentation here : https://coolkit-technologies.github.io/eWeLink-API/#/en/OAuth2.0 <https://coolkit-technologies.github.io/eWeLink-API/#/en/OAuth2.0 >
Or here : https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo <https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo >
are clearly not understandable and seems to not be stable at all.
—
Reply to this email directly, view it on GitHub <https://github.com/skydiver/ewelink-api/issues/220#issuecomment-1680456963 >, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AMDDIXVSHSAIYH2XMKDTXDTXVSXRZANCNFSM6AAAAAA3K5OG2Q >.
You are receiving this because you were mentioned.Message ID: @.***>

For 4ch devices, the control instructions are different and the method is the same. Change {"switch": "on"} to {"switches": [{"switch": "off", "outlet": 0}, {"switch": "off", "outlet": 1}, {"switch": "off", "outlet": 2}, {"switch": "off", "outlet": 3}]} to complete this section https://coolkit-technologies.github.io/eWeLink-API/#/en/UIIDProtocol It is stated in the document.

It supports real-time control of devices, whether through interfaces or websockets.

No, the action for controlling the device have not changed. We have only changed the interface domain name, path, and parameter transfer method.

The change from V1 object {"switch":"off"} to V2 object {"switch":{"switch":"off"}} is a very big change for me.
To which of the described changes  does such a change apply?

There is no change, {"switch": {"switch": "off"}} is incorrect.

Here is my environment and results.
Nod-red version : v3.0.2
node-red-contrib-ewelink version : 2.0.0
node: ewelink-generic-device
input : {"method":"getDevice"}
Using V1 API
output  path of "off" is msg.payload.params.switch: "off"
Using V2 API
output  path of "off" is msg.payload.params.switch.switch: "off"
please confirm.

@coolkit-carl
Can you explain us how to easily use your ewelink-api-next to basically turn on/off a device please ?
Documentation here : https://coolkit-technologies.github.io/eWeLink-API/#/en/OAuth2.0
Or here : https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo
are clearly not understandable and doesn't have example.
Thank you.

Ok I have this working for my hallway 2 channel light switch. I can turn them on and off right now.
in plain English:

Learn what OAuth is... or follow the instructions at https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo to run a local web server and login - after that you will be redirected back to your redirectUrl and a token.json will be saved with your authentication tokens. Keep this safe!

run controlDeviceDemo.js - this listed all my devices... that was good, but the code to toggle the first device as a demo did not work for me... but having the list of devices showed that I was authenticated correctly.

By trial and error I worked out then that I could pass the following code

await client.device.setThingStatus({
          type: 1,
          id: '10007bc171', // not my real id, but I used my real id here
          params:
            {
              "switches": [
                {"switch": "on", "outlet": 0},
                {"switch": "on", "outlet": 1}
              ]
            }
        })

AND MY LIGHTS TURNED ON....

with some playing I was able to dump the actual HTTP request that was being made, which simply looks like

Send request:  {
  url: '/v2/device/thing/status',
  method: 'post',
  baseURL: 'https://eu-apia.coolkit.cc',
  headers: AxiosHeaders {
    Accept: 'application/json, text/plain, */*',
    'Content-Type': 'application/json',
    Authorization: 'Bearer aa0dbbf06cd1NOTMYREALKEY8e84f9a09ffe536d62',
    'X-CK-Nonce': '4s3p08wn',
    Date: '1692398015055'
  },
  params: undefined,
  data: '{"type":1,"id":"10007bc171","params":{"switches":[{"switch":"off","outlet":0},{"switch":"off","outlet":1}]}}'
}

So now I have a proof of concept working in Javascript, I can switch back to PHP and write real HTTP requests, that consume the OAuth Endpoint, which gives me a token to store, and then I can then just use any HTTP client (mine will continue to be PHP) to make http requests
The above all works in real life in my house today. Im not @coolkit-carl, Im a PHP dev with API experience :)

I will also just note that the OAuth 2.0 process they are using is crazy and non-standard. If it were standard OAuth then tools like PostMan would be able to get access tokens automatically.
The Authorisation parameters are simply wrong for standard OAuth - https://coolkit-technologies.github.io/eWeLink-API/#/en/OAuth2.0?id=v2-interface-list (eg client_id is right clientId is wrong etc.)
The PostMan Collection/Environment provided as an example (https://coolkit-technologies.github.io/eWeLink-API/#/en/APICenterV2?id=postman-example), doesnt even support auto Oauth2.0 to get a bearer token :( so at the moment the only way to get/refresh your token is with the demo app that was provided as an example  https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo

Thank you for your detailed explanation.
Now, when the V1 interface is deprecated, I would like an alternative environment for ewelink-api, but if anyone knows a recommended environment, please let me know.
Development candidate that can control ewelink device with low code

node-red-contrib-ewelink-cube
In my testing, it's still unstable.
Homeassiatant Add-on eWeLink Smart Home

Thank you for your detailed explanation.
Now, when the V1 interface is deprecated, I would like an alternative environment for ewelink-api, but if anyone knows a recommended environment, please let me know.
Development candidates that can control ewelink device with low code are

node-red-contrib-ewelink-cube
In my testing, it's still unstable.
Homeassiatant Add-on eWeLink Smart Home
Does this use the V2 interface?
homebridge-ewelink
Does this use the V2 interface?
other candidates

Any comments would be appreciated.

@coolkit-carl Can you show an example of token refresh?

... and a few minutes ago V1 started working again ...

@coolkit-carl您能展示一个令牌刷新的有效示例吗？
https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo/blob/main/controlDeviceDemo.js

@coolkit-carl您能展示一个令牌刷新的有效示例吗？
https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo/blob/main/controlDeviceDemo.js

@coolkit-carl . I have registered and received my APPID and APPsecret, used both to update ewelink api in node-red on the rpi. I receive all info on my own devices on NodeRed.
However, I do not receive any info on devices shared with me from other ewelink users.
HOW can I set to also receive  info on devices shared with me by others ?
( Note: on Home Assistant I am receiving  info from both my own sonoff devices, and from sonoff devices shared with me by other users. BUT, it does not work the same in NodeRed)

@coolkit-carl您能展示一个令牌刷新的有效示例吗？
https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo/blob/main/controlDeviceDemo.js

@coolkit-carl . I have registered and received my APPID and APPsecret, used both to update ewelink api in node-red on the rpi. I receive all info on my own devices on NodeRed. IT WORKS !!!
Problem: However, in NodeRed I do not receive any info on devices shared with me from other ewelink users.
HOW can I set to also receive info on devices shared with me by others ?
( Note: on Home Assistant I am receiving info from both my own sonoff devices, and from sonoff devices shared with me by other users. BUT, it does not work the same in NodeRed)

Please provide me with a shared device ID, and I will check the device status for you. In theory, this situation can only occur on the device shared with you, and its brand is not included in the free authorization list of eWeLink.

@coolkit-carl, I confirm the same behavior reported by @AndreFvdMerwe.
I use two accounts, and only account 1 has the devices. Account 1 has shared all devices with account 2 via android app ewelink. On the android app, all devices are visibile when using account 2.
Yet, the nodered node "devices" returns an empty array when using account 2. Using account 1, I get the full list of devices.

my own device: 10017c1e94
shared with me device: 10017c198a

my own device: 10017c1e94 shared with me device: 10017c198a

10017c1e94 SONOFF UIID181, switch control command: {"switch": "on"} or {"switch": "off"}
10017c198a is also the same, theoretically no problem.
I think it is still necessary to check the code and return to ensure that all devices have been obtained (please refer to my code example: https://github.com/coolkit-carl/ewelink-api-next/blob/main/src/web/apis/device/getAllThings.ts ). I am sure that under normal parameter transmission, this device information will definitely be returned

@coolkit-carl, I confirm the same behavior reported by @AndreFvdMerwe. I use two accounts, and only account 1 has the devices. Account 1 has shared all devices with account 2 via android app ewelink. On the android app, all devices are visibile when using account 2. Yet, the nodered node "devices" returns an empty array when using account 2. Using account 1, I get the full list of devices. device id: 1000a4f037

1000a4f037

1000a4f037 SONOFF UIID1 a socket, The same as my previous answer, we do not restrict the return of information on this device (its brand is licensed to you for free)

@coolkit-carl, I confirm the same behavior reported by @AndreFvdMerwe. I use two accounts, and only account 1 has the devices. Account 1 has shared all devices with account 2 via android app ewelink. On the android app, all devices are visibile when using account 2. Yet, the nodered node "devices" returns an empty array when using account 2. Using account 1, I get the full list of devices. device id: 1000a4f037

1000a4f037

1000a4f037 SONOFF UIID1 a socket, The same as my previous answer, we do not restrict the return of information on this device (its brand is licensed to you for free)

Good afternon, ive been following this chat and I am very curious if there is a way to toggle ewelink smart switches directly via internal network using curl.  I do not see why a simple toggle needs to be done via third party apis
Also has anyone figured out a way to do all of the above via curl since so that switch can be attached to node red since after to going over the thread, I still don't have a clear idea on how to do this with node red.
Thanks

I was using ewelink node red module for a couple of years to control my solar system.
3 weeks ago fails and I followed the instructions to change api stuff on constants file.
Now get devices node is working but SET state or GET state nodes are not working and show:
error: 401
msg: "Wrong account or password"
There are any "how to" to solve it because I'm not a developer and I don't understand very well what is the issue
Thanks in advance

Ok I have this working for my hallway 2 channel light switch. I can turn them on and off right now.
in plain English:

Learn what OAuth is... or follow the instructions at https://github.com/coolkit-carl/eWeLinkOAuthLoginDemo to run a local web server and login - after that you will be redirected back to your redirectUrl and a token.json will be saved with your authentication tokens. Keep this safe!
run controlDeviceDemo.js - this listed all my devices... that was good, but the code to toggle the first device as a demo did not work for me... but having the list of devices showed that I was authenticated correctly.
By trial and error I worked out then that I could pass the following code

await client.device.setThingStatus({
          type: 1,
          id: '10007bc171', // not my real id, but I used my real id here
          params:
            {
              "switches": [
                {"switch": "on", "outlet": 0},
                {"switch": "on", "outlet": 1}
              ]
            }
        })

AND MY LIGHTS TURNED ON....

with some playing I was able to dump the actual HTTP request that was being made, which simply looks like  (This is not code that you can copy and paste from this comment to make it work, this is a dump of the request for you to look at, and to compile your own HTTP Request that looks like this - any decent developer should be able to make a HTTP request in their programming language of choice)

Send request:  {
  url: '/v2/device/thing/status',
  method: 'post',
  baseURL: 'https://eu-apia.coolkit.cc',
  headers: AxiosHeaders {
    Accept: 'application/json, text/plain, */*',
    'Content-Type': 'application/json',
    Authorization: 'Bearer aa0dbbf06cd1NOTMYREALKEY8e84f9a09ffe536d62',
    'X-CK-Nonce': '4s3p08wn',
    Date: '1692398015055'
  },
  params: undefined,
  data: '{"type":1,"id":"10007bc171","params":{"switches":[{"switch":"off","outlet":0},{"switch":"off","outlet":1}]}}'
}

So now I have a proof of concept working in Javascript, I can switch back to PHP and write real HTTP requests, that consume the OAuth Endpoint, which gives me a token to store, and then I can then just use any HTTP client (mine will continue to be PHP) to make http requests
Once you have an access token from OAuth you can call any of the APIs - here is a scaled down request, made by standard curl command
curl --location 'https://eu-apia.coolkit.cc/v2/device/thing/status' \
--header 'X-CK-Nonce: 9e3NOTREALwR7' \
--header 'Authorization: Bearer 90e4e9c7de5NOTMYREALTOKENd36154e3bbc2' \
--header 'Content-Type: application/json' \
--data '{
    "type": 1,
    "id": "10007bc171",
    "params": {
        "switches": [
                {"switch": "on", "outlet": 1}
              ]
    }
}'

The above all works in real life in my house today. Im not @coolkit-carl, Im a PHP dev with API experience :)
If you are looking for a non-technical project where you can just input your username and password to a config file, and magically control your devices, then you can no longer do that. But if you are willing to learn basic development (like OAuth which is pretty much industry standard for authenticating and authorising external services nowadays) then that can be "easily" done.
The old ewelink-api project should be considered deprecated and no longer used.
This work for me , but in short time I have this error; {"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}}

There are a procces to renew token and I used it, but only work for me in a short time after get token, then when I try to refesh token I get this:
{
status: 200,
responseTime: 300,
error: 405,
msg: "can't find the account with this rt!",
data: {}
}
any ideas?

Explanation on rt invalidation: If you use the same APPID, account, request login, refresh token, reset password, or other interfaces or behaviors, it will return a new at, rt, and cause the previous login credentials to become invalid.

Explanation on rt invalidation: If you use the same APPID, account, request login, refresh token, reset password, or other interfaces or behaviors, it will return a new at, rt, and cause the previous login credentials to become invalid.

Then , what can I do to refresh token when the token are expired or before expired? Because in short time i received this:
{"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}}
Thanks

Explanation on rt invalidation: If you use the same APPID, account, request login, refresh token, reset password, or other interfaces or behaviors, it will return a new at, rt, and cause the previous login credentials to become invalid.

Then , what can I do to refresh token when the token are expired or before expired? Because in short time i received this: {"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}} Thanks

You can tell me your account and I will check your login records for you. 2. When you receive this message, you can request to refresh the token interface and use rt to obtain new at and rt. If rt also fails, it proves that you have indeed reset it elsewhere.

Explanation on rt invalidation: If you use the same APPID, account, request login, refresh token, reset password, or other interfaces or behaviors, it will return a new at, rt, and cause the previous login credentials to become invalid.

Then , what can I do to refresh token when the token are expired or before expired? Because in short time i received this: {"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}} Thanks

Then , what can I do to refresh token when the token are expired or before expired? Because in short time i received this: {"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}} Thanks

You can tell me your account and I will check your login records for you. 2. When you receive this message, you can request to refresh the token interface and use rt to obtain new at and rt. If rt also fails, it proves that you have indeed reset it elsewhere.
<
Ok this is the case, Mi application login with oauth demo, I login manually and obtain the token. then all work correcty on mi application, after some time I received this mensage when the application try to control some device: :

{"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}}
I call the function refreshToken like that:
console.log('Token expired, refreshing token')
const refreshStatus = await client.user.refreshToken({
rt: LoggedInfo.data?.refreshToken,
})
And I get always the same error
{
status: 200,
responseTime: 380,
error: 405,
msg: "can't find the account with this rt!",
data: {}
}
then when you say that I have to reset it , is that I have to login again? Because this happend after short time..
Thanks!

Ok this is the case, Mi application login with oauth demo, I login manually and obtain the token. then all work correcty on mi application, after some time I received this mensage when the application try to control some device: :
{"status":200,"responseTime":257,"error":401,"msg":"cannot found access token info","data":{}}
I call the function refreshToken like that:
console.log('Token expired, refreshing token')
const refreshStatus = await client.user.refreshToken({
rt: LoggedInfo.data?.refreshToken,
})
And I get always the same error
{
status: 200,
responseTime: 380,
error: 405,
msg: "can't find the account with this rt!",
data: {}
}
then when you say that I have to reset it , is that I have to login again? Because this happend after short time..
Thanks!

It looks like it has been reset. You need to log in again. It is recommended to check the code to see if there are any other places that will refresh this token, as each refresh will reset at and rt.

Hi this is the code...
import { client } from '../../config.js'
import {refreshToken} from './refresh.token.js';
import * as fs from 'fs'
export async function  SonoffChangeState (ctx) {
if (!fs.existsSync('./token.json')) {
throw new Error('token.json not found, please run login.js first')
}
  // get token
  let LoggedInfo = JSON.parse(fs.readFileSync('./token.json', 'utf-8'))
  // console.info(LoggedInfo)
  client.at = LoggedInfo.data?.accessToken
  client.region = LoggedInfo?.region || 'eu'
  client.setUrl(LoggedInfo?.region || 'eu')
  // Check if the token has expired, and refresh the token if it has expired
  if (
    LoggedInfo.data?.atExpiredTime < Date.now() &&
    LoggedInfo.data?.rtExpiredTime > Date.now()
  ) {
    console.log('Token expired, refreshing token')
    const refreshStatus = await client.user.refreshToken({
      rt: LoggedInfo.data?.refreshToken,
    })
    console.log(refreshStatus)
    if (refreshStatus.error === 0) {
      // You can also use built-in storage
      // client.storage.set('token', {...})
      fs.writeFileSync(
        './token.json',
        JSON.stringify({
          status: 200,
          responseTime: 0,
          error: 0,
          msg: '',
          data: {
            accessToken: refreshStatus?.data?.at,
            atExpiredTime: Date.now() +<PHONE_NUMBER>,
            refreshToken: refreshStatus?.data?.rt,
            rtExpiredTime: Date.now() +<PHONE_NUMBER>,
          },
          region: client.region,
        })
      )
      LoggedInfo = JSON.parse(fs.readFileSync('./token.json', 'utf-8'))
    }
  }

  if (LoggedInfo.data?.rtExpiredTime < Date.now()) {
    console.log('Failed to refresh token, need to log in again to obtain token')
    return
  }

const body = ctx.request.body
const deviceId = body.deviceId;
const channel = body.channel;
const channels= body.channels;
const state = body.state;
if(deviceId !=undefined && state !=undefined  && channel!=undefined && channels==undefined ){
let nchannels=parseFloat(channel)
let nchannel=--nchannels
console.log(`se va a cambiar el estado del dispositivo ${deviceId}  a ${state} canal ${nchannel} `)

try {
    let status = await client.device.setThingStatus({
      type: 1,
      id: deviceId,
      params: {
        switches: [
           { switch: state, outlet: nchannel },

        ],
      },
      //params: {
      //  switch: state, // Specific control instructions: https://coolkit-technologies.github.io/eWeLink-API/#/en/UIIDProtocol

      //},

    })
    console.log(status)
    if(status.error==401 || status.error==4002){
      refreshToken();
    }
    //res.send({DeviceStateChangueTo: status});
    ctx.body =status;

}catch(error){
    console.log(error)
   // res.send({DeviceStateChangueError: error});
   //ctx.body({status: error});
   ctx.body =error;
   //ctx.body(error);

  }
}else{
  console.log(`se va a cambiar el estado del dispositivo de doble canal ${deviceId}  a ${state} canal ${channel} `)
  let nchannel=parseFloat(channel)
  try {
      let status = await client.device.setThingStatus({
        type: 1,
        id: deviceId,
        params: {
          switches: [
             { switch: state, outlet: nchannel },

          ],
        },
      })
      console.log(status)
      //res.send({DeviceStateChangueTo: status});
      ctx.body =status;
  }catch(error){
      console.log(error)
     // res.send({DeviceStateChangueError: error});
     //ctx.body({status: error});
     ctx.body =error;
     //ctx.body(error);

    }
}

}

HI, I think that is not error on my application, I have another application that connect to websocket with the same APP_ID AND APP_SECRET with the old api ewelink-api. ¿may be? I need to created another app en https://dev.ewelink.cc/ , but there is not possible..

HI, I think that is not error on my application, I have another application that connect to websocket with the same APP_ID AND APP_SECRET with the old api ewelink-api. ¿may be? I need to created another app en https://dev.ewelink.cc/ , but there is not possible..

It is recommended to share a token or split the devices into two accounts and share them with another account.

HI, I think that is not error on my application, I have another application that connect to websocket with the same APP_ID AND APP_SECRET with the old api ewelink-api. ¿may be? I need to created another app en https://dev.ewelink.cc/ , but there is not possible..

It is recommended to share a token or split the devices into two accounts and share them with another account.

Yes, i will do it thanks

I managed to patch this repo in my fork. It works for my Sonoff S31 plug, but I haven't on other devices. I haven't patched every function, so I don't expect it to work well on other devices.
I only patched these:

login
getDevice
getDevices
getDevicePowerState
setDevicePowerState
getDevicePowerUsage

https://github.com/baugp/ewelink-api/commit/0a3f9e0d92759ab80c6581f8939b78d690d11c6c

I managed to patch this repo in my fork. It works on my Sonoff S31 plug, but I haven't tested on other devices. I only spent a few hours as I needed to get it to work asap. Therefore, I haven't patched every function, don't expect it to work well on other devices. The changes between v1 and v2 API are minimal. I only patched these:
* login

* getDevice

* getDevices

* getDevicePowerState

* setDevicePowerState

* getDevicePowerUsage

If you look at the diff, it's not that much. I belive this project can be patched to migrate to v2 API entirely with minimal effort. baugp@2f4d1b0

Hello!
Can you tell me how you made the transition from v1 to v2?
It is possible to give example code, etc.
Do I understand correctly that changes were made to node-red-contrib-ewelink?
or did they transfer everything to HTTP requests?
I managed to get the token, I would like to continue using node-red-contrib-ewelink


Add installers for compiled programs

Currently using llama.cpp and btop. Install to /usr/local. Ensure can uninstall cleanly.

Should be a gist.

Reopening for btop.


Create Wheel of Fortune.go.tmpl

Please describe the changes this PR makes and why it should be merged:
Status

[x] Code changes have been tested on an instance of YAGPDB, or there are no code changes
[x] I have read and followed the contribution guide

Thanks!


[코테] Letter Combinations of a Phone Number

[아마존 인터뷰 문제]
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Example 1:
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Example 2:
Input: digits = ""
Output: []
Example 3:
Input: digits = "2"
Output: ["a","b","c"]
Constraints:
0 <= digits.length <= 4
digits[i] is a digit in the range ['2', '9'].
Accepted
1,418,281
Submissions
2,546,547
https://leetcode.com/problems/letter-combinations-of-a-phone-number/

@JungHanLeee https://www.youtube.com/watch?v=vzdNOK2oB2E


fix tests, list of allowed commands have changed (redis 3.0.6)

Detected in Fedora QA, broken since redis 3.0.6
See https://apps.fedoraproject.org/koschei/package/php-nrk-Predis
 There were 2 failures:
 1) Predis\Command\PubSubSubscribeByPatternTest::testCannotSendOtherCommandsAfterPsubscribe
 Failed asserting that exception message 'ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context' contains 'ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in this context'.
 2) Predis\Command\PubSubSubscribeTest::testCannotSendOtherCommandsAfterSubscribe
 Failed asserting that exception message 'ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context' contains 'ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in this context'.
 FAILURES!

In build history (https://apps.fedoraproject.org/koschei/package/php-nrk-Predis) you will notice build failure since redis 3.0.6 (2015-12-19 02:23:40), and back to normal since this patch is applied (2015-12-28 09:44:30)

Mhh, why was this merged into v1.0 and not v1.1?


bin file missing on OS High Sierra

On Mac OS High Sierra (10.13) the bin directory is missing. I downloaded version 2.14 to 2.17 of cmdstan but the error is the same for all versions.
Summary:
Bin file not downloaded on mac 10.13
Description:
On Mac OS High Sierra (10.13) the bin directory is missing. I downloaded version 2.14 to 2.17 of cmdstan but the error is the same for all versions.
Reproducible Steps:
I downloaded the zip or tar versions, unzipped them into my matlab folder, renamed to cmdstan-home.
Current Output:
When running a test script I get this as first error message:
Error using StanModel/set.stan_home (line 315)
Does not look like a proper stan setup
Function around line 315:
if fa.directory
if exist(fullfile(fa.Name,'makefile'),'file') ...
&& exist(fullfile(fa.Name,'bin'),'dir')
self.stan_home = fa.Name;
else
% TODO make this message more informative
error('StanModel:stan_home:InputFormat',...
'Does not look like a proper stan setup');
end
Looking into the finder, the folder cmdstan_home does not have any file or folder called 'bin'
Expected Output:
Describe what you expect the output to be. Knowing the correct behavior is also very useful.
Additional Information:
Provide any additional information here.
Current Version:
v2.17.0

Hi @Artemissy,
There isn't a binary distributed with CmdStan. What you want to do is first unzip the zip file and from within the CmdStan directory, run this command:
make build

That will generate bin/stanc and bin/stansummary for you. If those don't build, then your toolchain isn't configured correctly, which you'll need for any new Stan program anyway.
Please let me know if that works. Also, what language is the test script in?

Dear Daniel,
thank you very much. With this command everything worked. I had never compiled a code from source and I just didn't understand from the manual how to do it. I thought downloading and unzipping is enough. Sorry for bothering but thank you very much for your help. The test file was written in matlab.
Kind regards,
Diana Hoffmann

Von: Daniel Lee<EMAIL_ADDRESS>Gesendet: Mittwoch, 11. Oktober 2017 03:14
An: stan-dev/cmdstan
Cc: Hoffmann, Diana; Mention
Betreff: Re: [stan-dev/cmdstan] bin file missing on OS High Sierra (#575)
Hi @Artemissyhttps://github.com/artemissy,
There isn't a binary distributed with CmdStan. What you want to do is first unzip the zip file and from within the CmdStan directory, run this command:
make build
That will generate bin/stanc and bin/stansummary for you. If those don't build, then your toolchain isn't configured correctly, which you'll need for any new Stan program anyway.
Please let me know if that works. Also, what language is the test script in?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/stan-dev/cmdstan/issues/575#issuecomment-335652584, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AITIEMCumEd9x1b0cm4JXGY22GoDbw4Aks5srBaQgaJpZM4PyoQi.

@Artemissy, you're welcome! (Sorry... I didn't realize I didn't respond earlier.)


SLI requires SPD preconditioner

The stationary linear iteration solver, i.e., fixed-point iteration, requires an SPD preconditioner because it prints the residual/checks stopping tolerance in the preconditioned norm, $$\langle B\mathbf{r},\mathbf{r}\rangle$$. If $$\langle B\mathbf{r},\mathbf{r}\rangle < 0$$, the iteration stops immediately. This is the simplest/most general iterative method though and should not have such a constraint.
Also, in SLI and CG (maybe others too, haven't checked), each iteration prints the current residual/error in inner-product form, which is the norm squared. Because stopping tolerance is usually based on the norm (not squared), I think this is misleading and suggest changing to printing $$|\mathbf{r}|_B$$ as opposed to $$\langle B\mathbf{r},\mathbf{r}\rangle$$ (or in the case of SLI, either $$|\mathbf{r}|$$ or $$|B\mathbf{r}|$$.
I'm happy to make these changes and submit PRs, but want to check w/ MFEM team first.

I generally agree, and have also found the squared tolerances to be a source of confusion in the past (e.g. how the PCG wrapper function sets the tolerances to be the square root of the values that are passed in).
It seems reasonable that the SLI solver should measure convergence in something like the 2-norm of the residual vector.

Also, in SLI and CG (maybe others too, haven't checked), each iteration prints the current residual/error in inner-product form, which is the norm squared. Because stopping tolerance is usually based on the norm (not squared), I think this is misleading and suggest changing to printing $$|\mathbf{r}|_B$$ as opposed to $$\langle B\mathbf{r},\mathbf{r}\rangle$$ (or in the case of SLI, either $$|\mathbf{r}|$$ or $$|B\mathbf{r}|$$.

I generally agree with this, I'm just concerned that users may forget to update all their tolerances.

The stationary linear iteration solver, i.e., fixed-point iteration, requires an SPD preconditioner because it prints the residual/checks stopping tolerance in the preconditioned norm, $$\langle B\mathbf{r},\mathbf{r}\rangle$$. If $$\langle B\mathbf{r},\mathbf{r}\rangle < 0$$, the iteration stops immediately. This is the simplest/most general iterative method though and should not have such a constraint.

What does hypre do? The SPD checks can be useful for debugging, but I agree that SLI should be general.

Made PR here: https://github.com/mfem/mfem/pull/1303


danger sense

danger sense is not taking effect despite being of a status tested

this was working, now the log displays the adv|dis rolls


Edit saving function

Save the videos with audio
You have to install moviepy (pip install moviepy)

I solve error #25

#25 I thought that You mentioned about this problem was generating from current OpenCV Library. Does fix this issue means instead of using OpenCV did you used another library? I expect it was same
@kdh0324

I think I confirmed all the changed commits that you wrote I will merge to the master thanks for your effort. Check my comment


input "cache" is not defined in action "actions/setup-python@v2"

actionlint fails checking my workflow with error:

input "cache" is not defined in action "actions/setup-python@v2". available inputs are "architecture", "python-version", "token" [action]

but ... this input is valid and well declared on https://github.com/actions/setup-python/blob/main/action.yml#L9
Did I miss something?

understood the root cause is current version of actionlint is missing https://github.com/rhysd/actionlint/commit/f21cdb8c37e4b2fda20648faba85c0537de1fa07


[ListItem] button=true does not get font-family of button in theme

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

I'm using a theme as follows:
export const muiTheme = createMuiTheme({
  ...
  typography: {
    ...
    button: {
      fontFamily: '"Gotham SSm", Arial, sand-serif'
    }
  }
});

When using ListItem with button=true I expect it to use the button font from the theme:
<Button>Burger</Button> // works, rendered with "Gotham SSm" font
<ListItem button>Pizza</ListItem> // I expect the ListItem button to be rendered with the "Gotham SSm" font

Current Behavior

When using ListItem with button=true it does not apply the font:
<Button>Burger</Button> // works, rendered with "Gotham SSm" font
<ListItem button>Pizza</ListItem> // rendered with regular font, "Gotham SSm" is not applied

Steps to Reproduce

Link:
https://codesandbox.io/s/00qxxzv9kw

Add MuiThemeProvider to app
Add theme with typography.button.fontFamily = "Some font"
Render <ListItem button> within the ThemeProvider context

Context

I would like buttons in my app drawer to look like the rest of my buttons. They are rendered with ListItems with button=true.
Your Environment

Tech
Version

Material-UI
@material-ui/core 3.3.1

React
16.5.2

Browser
Chrome 70

TypeScript
Not applicable

etc.

@woutervh- The actual behavior is already the expected one. The ListItem doesn't handle typography.
import React from "react";
import Button from "@material-ui/core/Button";
import ListItem from "@material-ui/core/ListItem";
import Typography from "@material-ui/core/Typography";

export default class IndexPage extends React.Component {
  render() {
    return (
      <React.Fragment>
        <Button>Normal button</Button>
        <ListItem button>
          <Typography variant="button">ListItem button</Typography>
        </ListItem>
      </React.Fragment>
    );
  }
}


Add community showcases of egui_dock

It's pretty hard for people to understand what exactly they can make with egui_dock. Maybe uncustomizable toy library or a very flexible builder for any kind of application like engine editors or desktop applications?
Showcase in Markdown (for example, SHOWCASE.md) or like in imgui with every release add showcases. Anyway, I think that we should make it, it inspires and people immidietly understand what they can make, and, of course, for the other people, it's possible to show their work.

I think this is more appropriate to be maintained by egui.


Connecting on my machine but not on others.

I have been running OpenVPN with your script and it has been running perfectly for me, but nobody apart from me can connect to the server. I make a new .ovpn with the script, move it to another computer via USB drive, and install it with Tunnelblick as the client. It gets stuck on "Waiting for server response." If i use the .ovpn on my computer, it works perfectly. Both clients are on the same network.
Other info:
I am using Ubuntu 14.04 on Digitalocean.
I am using SSH keys to authenticate myself to the server.
No changes are made to the server. I create it, SSH in to root, and install your script while in root user.
Are there any logs I can provide to help diagnose the issue?

Are you 100 % sure that you generated new certificates for each client?
If so, and considering that clients are sharing the same network, it is pretty obvious where the problem is ;)
Please, provide the client connection log (Tunnelblick) and let's see if there is anything helpful there.
Closing since the issue doesn't seem to be a problem with the script itself.


Introduction

Dear Olga,
Kindly please check my introduction section and approve once is okay,

Thank you Katya,
great changes!


MQTT Broker Adress

Hello,
im pretty new in home Automation and i want to set up my first sonoff device via homebridge.
I saw in the config file that i need to put in the "url": "mqtt://MQTT–BROKER-ADDRESS",  where do i get this Adress from ?
Sorry for the noob question.
Thanks!

is it the ip adress of the homebridge rasberry pi?

You need to run an MQTT–BROKER on your Pi like Mosquitto or you use a service on the internet. In my case the Broker ip was the same as my ubuntu server.

If you're just starting out with a few son off devices then I'd suggest you try the HTTP version and leave MQTT for later. MQTT provides more robust network but adds extra complexity in a dependency on a third running system (MQTT message broker like Mosquito).


validation: title-missing-fixes-5

Docs Build status updates of commit 8619e8d:
:warning: Validation status: warnings

File
Status
Preview URL
Details

Skype/UCWA/EventsLibrary.md
:warning:Warning

Details

Skype/UCWA/contactPrivacyRelationship_ref.md
:warning:Warning

Details

Skype/UCWA/contactSupportedModalities_ref.md
:warning:Warning

Details

Skype/UCWA/eject_ref.md
:warning:Warning

Details

Skype/UCWA/mediaPolicies_ref.md
:warning:Warning

Details

Skype/AppSDK/ConversationHelperCodeList.md
:bulb:Suggestion

Details

Skype/UCWA/AccessLevel_ref.md
:bulb:Suggestion

Details

Skype/UCWA/ErrorsAndInformationalMessages.md
:bulb:Suggestion

Details

Skype/UCWA/conversationExtensionResult_ref.md
:bulb:Suggestion

Details

Skype/UCWA/myOnlineMeeting_ref.md
:bulb:Suggestion

Details

Skype/UCWA/EventsLibrary.md

Line 39, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 123, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/contactPrivacyRelationship_ref.md

Line 50, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/contactSupportedModalities_ref.md

Line 50, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 62, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/eject_ref.md

Line 44, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/mediaPolicies_ref.md

Line 72, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/AppSDK/ConversationHelperCodeList.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/AccessLevel_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/ErrorsAndInformationalMessages.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/conversationExtensionResult_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/myOnlineMeeting_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@lindalu-MSFT
The Content & Learning team is fixing build validation errors on docs.microsoft.com for the rest of H2. This will eliminate potential accessibility, security, and usability issues. This PR includes only build validation fixes and does not change other content. Please review within five business days and merge or comment in the PR with any changes you’d like to see. Thank you!

Docs Build status updates of commit 2090efb:
:warning: Validation status: warnings

File
Status
Preview URL
Details

Skype/UCWA/EventsLibrary.md
:warning:Warning

Details

Skype/UCWA/contactPrivacyRelationship_ref.md
:warning:Warning

Details

Skype/UCWA/contactSupportedModalities_ref.md
:warning:Warning

Details

Skype/UCWA/eject_ref.md
:warning:Warning

Details

Skype/UCWA/mediaPolicies_ref.md
:warning:Warning

Details

Skype/AppSDK/ConversationHelperCodeList.md
:bulb:Suggestion

Details

Skype/UCWA/AccessLevel_ref.md
:bulb:Suggestion

Details

Skype/UCWA/ErrorsAndInformationalMessages.md
:bulb:Suggestion

Details

Skype/UCWA/conversationExtensionResult_ref.md
:bulb:Suggestion

Details

Skype/UCWA/myOnlineMeeting_ref.md
:bulb:Suggestion

Details

Skype/UCWA/EventsLibrary.md

Line 39, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 123, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/contactPrivacyRelationship_ref.md

Line 50, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/contactSupportedModalities_ref.md

Line 50, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 62, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/eject_ref.md

Line 44, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/mediaPolicies_ref.md

Line 72, Column 1: [Warning: table-syntax-invalid - See documentation] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/AppSDK/ConversationHelperCodeList.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/AccessLevel_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/ErrorsAndInformationalMessages.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/conversationExtensionResult_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/myOnlineMeeting_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


docs(ts): fix api url of Provider class

Fix broken link of Provider class

I need @chalin to validate that we should change _cache by hand or not.

@Foxandxss Yap! plz check to need change _cache by hand :)

Could you please remove the changes to the _cache file? Thank you.

@Foxandxss rollback _cached file!


Display options in the sample modal

What changes are proposed in this pull request?
Initial changes to the filtering controls for the sample modal. The underlying motivation is to be consistent with the UI components and design patterns displayed to the user. An obvious benefit is it reduces the number of controls a user has to learn.
Any field that is not a list is handled somewhat differently than in the image grid display options, as displaying an aggregate value does not make sense. There is only one value. Instead, a checkmark or "x" is used to indicate existence. Or the value itself, if it is a scalar field.

TODOs:

[ ] test
[ ] display label value for fo.Classification if the value exists
[ ] fix regression in image grid sticky nav. it does not always stick at the moment

How is this patch tested? If it is not, in a single sentence please explain why.
No App test framework. Still needs more human testing.
Release Notes
Display Options have been added to the sample modal, including the new confidence and label filters.
Is this a user-facing change?

[ ] No. You can skip the rest of this section.
[x] Yes. Give a description of this change to be included in the release
notes for FiftyOne users.

Display options have been added to the sample modal, including the new confidence and label filters.
What areas of FiftyOne does this PR affect?

[x] App: FiftyOne application changes
[ ] Build: Build and test infrastructure changes
[ ] Core: Core fiftyone Python library changes
[ ] Documentation: FiftyOne documentation changes
[ ] Other

Should this PR be mentioned in the release notes? If so, please choose on category:

[ ] breaking-change - The PR will be mentioned in the "Breaking Changes"
section
[x] feature - A new user-facing feature worth mentioning in the release
notes
[ ] bug-fix - A user-facing bug fix worth mentioning in the release notes
[ ] documentation - A user-facing documentation change worth mentioning
in the release notes

@lethosor I think I addressed everything. Heading off to the view bar. Definitely looking forward to cleaning this up when the time is right.


Some comments explaining some of the constants in the code.

Thanks, Greg. I've been doing a review of libsecp256k1 in my free time. Comments like these and the one in pull request #205 are a huge help. :)

There are several copies of p and n in different places of the code. Maybe it's useful to only explain them once, and just put references in other places ("see the definition of secp256k1_scalar_const_order in file X").

ACK


Update to VSCJDBC 10.0.1 and fix vulnerabilities

org.yaml:snakeyaml:jar:1.29 in test

CVE-2022-25857, severity CWE-400: Uncontrolled Resource Consumption ('Resource Exhaustion') (7.5)
CVE-2022-38749, severity CWE-787: Out-of-bounds Write (6.5)
CVE-2022-38751, severity CWE-787: Out-of-bounds Write (6.5)
CVE-2022-38752, severity CWE-787: Out-of-bounds Write (6.5)
CVE-2022-38750, severity CWE-787: Out-of-bounds Write (5.5)

updated  virtual-schema-common-jdbc version 10.0.1


Search and all mappings options not working: error 500

Hi
Please find logs bellow.
Is this problem known?
Kind Regards
Nuno
::ffff:<IP_ADDRESS> - - [2020-02-19 21:12:08] "POST /collection-counts HTTP/1.0" 500 445 0.001687
ERROR:web:Exception on /search_es [GET]
Traceback (most recent call last):
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "/data/web/views.py", line 505, in search_es
search_form = construct_search_form(es=True)
File "/data/web/views.py", line 815, in construct_search_form
search_form.oses.choices = [(pair, pair) for pair in fetch_os_releases()]
File "/data/web/views.py", line 829, in fetch_os_releases
return query_db(os_releases_query)
File "/data/web/views.py", line 1224, in query_db
client = ArangoClient(protocol='http', host='dbms')
TypeError: init() got an unexpected keyword argument 'protocol'
::ffff:<IP_ADDRESS> - - [2020-02-19 21:12:18] "GET /search_es HTTP/1.0" 500 459 0.002182
::ffff:<IP_ADDRESS> - - [2020-02-19 21:12:26] "GET /matchmaker HTTP/1.0" 200 15699 0.012075
::ffff:<IP_ADDRESS> - - [2020-02-19 21:12:26] "GET /static/cui-1.2.2-official/fonts/CiscoSans/CiscoSansTTLightOblique.woff2 HTTP/1.0" 304 202 0.001336
::ffff:<IP_ADDRESS> - - [2020-02-19 21:12:28] "GET /datapath/direct HTTP/1.0" 200 8412 0.001894
ERROR:web:Exception on /datapath/matches [GET]
Traceback (most recent call last):
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/root/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "/data/web/views.py", line 36, in datapath_matches
dml_matches=fetch_all_matches()
File "/data/web/views.py", line 55, in fetch_all_matches
return query_db(all_matches_query)
File "/data/web/views.py", line 1224, in query_db
client = ArangoClient(protocol='http', host='dbms')
TypeError: init() got an unexpected keyword argument 'protocol'

It seems a lot of upstream libraries have been changed since this was last updated.  I had to add several packages to the pip file to get it to install.
I believe this error is related to a major change to version 5+ of the Arango client.
from arango import ArangoClient.
OLD
client = ArangoClient(protocol='http', host='localhost', port=8529)
NEW (single host)
client = ArangoClient(hosts='http://localhost:8529')


Update the Add Controller doc and fix some line numbers

Hi @ryanbrandenburg, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

@ryanbrandenburg  I'm right in the middle of updating this. Maybe it's better if I take you changes in.

I took all your changes. I'm getting rid of all line numbers - so updated it my markup to show routes to the following: Thanks for these nice improvements.
.. literalinclude:: start-mvc/sample2/src/MvcMovie/Startup.cs
:language: c#
:start-after: app.UseIdentity();
:end-before:  SeedData.Initialize(app.ApplicationServices);
:dedent: 12
:emphasize-lines: 5


fix: add variable declaration to import.meta.globEager (close #154)

Description 📖, Background 📜, The Fix 🔨
Fixes #154. It adds variable declaration to import.meta.globEager, as it seems that Vite.js doesn't support import.meta.globEager calls without saving them somewhere.

Thanks!

@ElMassimo, do you mean that there is another way to fix that line? I tried putting semicolons around but they didn't help :D


Feat/ci scheduled tests

Description
Closes #244
How has this been tested?
Pushing experiments in my fork.
Checklist

[x] I have followed the Contribution Guidelines and Code of Conduct
[x] I have commented my code following the OpenMined Styleguide
[x] I have labeled this PR with the relevant Type labels
[x] My changes are covered by tests

Currently when our CI tests run , if one of the runners fails, other passed, we would have to run re-run all jobs which re runs all the runners , including the one which passed before in that particular workflow file.This is a long standing issue in github runners,where we can't restart a single runner in a workflow if it fails.
One solution we split PR workflow as ubuntu-tests.yml mac-os-test.yml  , so we can run the specific runner if it fails,instead running as a whole. @gmuraru Shall we do it like this?

Currently when our CI tests run , if one of the runners fails, others passed, we would have to run re-run all jobs which re runs all the runners , including the one which passed before in that particular workflow file.This is a long standing issue in github runners,where we can't restart a single runner in a workflow if it fails.
One solution we split PR workflow as ubuntu-tests.yml mac-os-test.yml , so we can run the specific runner if it fails,instead running as a whole. @gmuraru Shall we do it like this?

Hmmm...I do not think if we want this for the night tests (to rerun them if they fail). If they fail we should investigate what failed and create tickets to consolidate the codebase such that they won't fail anymore.

Currently when our CI tests run , if one of the runners fails, others passed, we would have to run re-run all jobs which re runs all the runners , including the one which passed before in that particular workflow file.This is a long standing issue in github runners,where we can't restart a single runner in a workflow if it fails.
One solution we split PR workflow as ubuntu-tests.yml mac-os-test.yml , so we can run the specific runner if it fails,instead running as a whole. @gmuraru Shall we do it like this?

Hmmm...I do not think if we want this for the night tests (to rerun them if they fail). If they fail we should investigate what failed and create tickets to consolidate the codebase such that they won't fail anymore.

Yeah george for the nightly tests,we could keep  as it, so we can rectify the error, I meant for the PR CI tests, where we rerun the whole workflow many times if one fails.

Currently when our CI tests run , if one of the runners fails, others passed, we would have to run re-run all jobs which re runs all the runners , including the one which passed before in that particular workflow file.This is a long standing issue in github runners,where we can't restart a single runner in a workflow if it fails.
One solution we split PR workflow as ubuntu-tests.yml mac-os-test.yml , so we can run the specific runner if it fails,instead running as a whole. @gmuraru Shall we do it like this?

Hmmm...I do not think if we want this for the night tests (to rerun them if they fail). If they fail we should investigate what failed and create tickets to consolidate the codebase such that they won't fail anymore.

Yeah george for the nightly tests,we could keep as it, so we can rectify the error, I meant for the PR CI tests, where we rerun the whole workflow many times if one fails.

Hmm...even for the other I would tend to keep them together only that we don't diverge at one point - add some options on Linux on forgetting to add them on OSX. I think that it might be better to start fixing the flaky tests than split those up at the moment - also the tests should fail pretty fast and we can rerun them if there is any problem.


Broken reference link for CTDBETA700, CTDBBP700, and CTDBETA650_124

SOCCOM link to Boss, E.B. and N. Haëntjens, 2016 has changed.
new link: https://soccom.princeton.edu/sites/g/files/toruqf5341/files/documents/SOCCOM_2016-1_Bio-optics-primer.pdf

Wish they would stick that publication on zenodo or something so it would be permanently someplace.


change: Improve markdown page rendering

Addresses:

Syntax highlighting for code blocks does not appear to be working as of yet.
The content div is left-aligned, wheras it should instead be either full-width or centered with a border on either side.

from

#815

For the syntax highlighting, there were a few themes to pick from (you can see them here.
I tried a few and went with the one that made my eyes bleed the least


Support for cpe data and a more lenient approch to invalid downloadLocation issues

I added the code needed to import cpe data from CycloneDX file.
I also (to get it working with my files) changed a fatal exception on an invalid downloadLocation URL to just being a warning (and ignoring the data).
I have the code in my local system.
Changes are minimal and isolated to CycloneSpdxConverter.java.
I am not a Github expert so putting things into a fork is somewhat beyond me.
CycloneSpdxConverter.java.tar.gz

Thanks @flemminglau - since you don't have a signed-off pull request for this, could you just add a comment to this issue that you are providing the code changes under the Apache-2.0 open source license?
Once I have that, I can create  a pull request for review.

Actually I later did a pull request with a slightly later version. So this version could be discarded if I got the pull request thing right.
In any case yes. The Apache-2.0 license is fine for covering my submission.

@flemminglau - I didn't see a pull request on this repo - you may want to check to make sure the upstream PR is this repo - it should show up in the pull requests.
Let me know if you have any questions or would like any assistance on the PR.
I can also create a PR from your attached file.

Hereby under Apache-2.0 license:
CycloneSpdxConverter.zip
I just did a fork and then raised a PR.
I did wonder how this would end up with the original repo.
Is there a button in Github I can press to set it up correctly or is that a git command?

@flemminglau I suspect you may have raised a PR in the forked repo rather than the upstream (this) repo.
The simplest way to create the PR would be to fork the repo, make the change in your forked repo, push back the changes to the forked repo then raise the PR.  When you visit Github for your forked repo, you should see a button at the top to create a PR with your changes.  If you push that button, on the left side is a drop down on the base - make sure that points to this repo - it should be in the dropdown list.
I'll go ahead and create a PR with your latest uploaded file.

Fixed by #33


Update tutorial.md

New changes added in tutorial page, More coming when I will be available

thanks @vsfarooqkhan