Is it possible to create multi layer large model using onnxscript?

Hi guys
I want to use onnxscript to create a transformer-like model which contains multi-blocks, each block has same structure. so i implement using onnxscript like this
@script()
def block(x):
    x = op.MatMul(x, w)
    x = op.ReLU(x)
    x = op.MatMul(x, w)
    return x

# here I use for loop to create multi-layers of block
layers=2
@script(default_opset=opset15)
def model(x):
    for i in range(layers):
        x = block(x)
    return x

I want to get a model structure like this:

But it seems not work. it convert for-loop into a layer with loop body is a block function, and can't be running in onnxruntime, raise segment fault.

Is it possible to unroll this for loop, directly call into the block? just like the torch module.

cc @gramalingam an interesting use case here

(i) Agree that being able to unroll loops would be a useful feature.
(ii) Why ORT crashes is another issue: looks like a bug that should be fixed.

With the recent trace_ok feature, onnxscript has the ability to have traced (static) and not-traced (dynamic) function implementation.
I wonder if we could extend this further and provide a mix and match static and dynamic implementations, similar to how we can mix torch.jit.script and torch.jit.trace. Refer to https://pytorch.org/docs/stable/jit.html#mixing-tracing-and-scripting for the core idea
That is, we can have some static functions that wrap dynamic functions and/or vice-versa. On @kailums issue, he could have an traced function with the loop and the body of the loop would call a dynamic onnx function.

have an traced function with the loop and the body of the loop would call a dynamic onnx function.

this should work!


Tool support for browser backend

Tools are now rolling out to Plus users, so I took a quick look at how hard it would be to integrate them into the browser backend.
This is the basics:
--- a/chatgpt_wrapper/backends/browser/backend.py
+++ b/chatgpt_wrapper/backends/browser/backend.py
@@ -494,6 +494,9 @@ class BrowserBackend(Backend):
             "conversation_id": self.conversation_id,
             "parent_message_id": self.parent_message_id,
             "action": "next",
+            "plugin_ids": [
+                "plugin-d1d6eb04-3375-40aa-940a-c2fc57ce0f51"
+            ],
         }

         code = (
diff --git a/chatgpt_wrapper/plugins/provider_chatgpt_browser.py b/chatgpt_wrapper/plugins/provider_chatgpt_browser.py
index 4002952..2ac32d5 100644
--- a/chatgpt_wrapper/plugins/provider_chatgpt_browser.py
+++ b/chatgpt_wrapper/plugins/provider_chatgpt_browser.py
@@ -94,6 +94,8 @@ class ProviderChatgptBrowser(Provider):
                 },
                 'gpt-4': {
                 },
+                'gpt-4-plugins': {
+                },
             }
         }

So there's a new model type gpt-4-plugins, and a new parameter plugin_ids that gets passed a list of plugin IDs, and that will activate the tool for the request.
The streaming output looked a tad funky, but the final output is actually quite nice:
gpt-4-plugins 2> /chat
User:

how far is it from the sun to the earth?

Assistant:

{ "input": "distance from sun to earth" }

Tool:

Query: "distance from sun to earth"

Assumption: Assuming "sun" is referring to stars To use as a word set assumption=*C.sun-_*EnglishWord-

Input interpretation: Sun | distance from Earth

Current result: 1.01 au (astronomical units)

Unit conversions: 1.511×10^8 km (kilometers)

1.511×10^11 meters

93.92 million miles

Comparisons as distance: ≈ ( 0.011 ≈ 1/87 ) × smallest distance from the Sun to the heliosheath ( 79 to 100 au )

≈ 1.01 × mean Earth-Sun distance ( 1.0000010178 au )

Corresponding quantities: Light travel time t in vacuum from t = x/c: | 8.4 minutes

Light travel time t in an optical fiber t = 1.48x/c: | 12 minutes

Solar radiation pressure from P = L_☉/(c4πr^2): | 4.4 μPa (micropascals) | (assuming solar constant ≈ 1.36 kW/m^2)

Wolfram|Alpha website result for "distance from sun to earth": https://www.wolframalpha.com/input?i=distance+from+sun+to+earth

Assistant:

The average distance from the Sun to the Earth is approximately:

 • 1.01 astronomical units (AU)
 • 1.511×10^8 kilometers
 • 93.92 million miles

This distance is also equivalent to the light travel time of about 8.4 minutes in a vacuum.

It would be trivial to add a new browser.plugins config option, which could take a list of plugin IDs. Kind of a pain to have to look up the plugin IDs manually, though. Plus there would be no mechanism to enable/disable plugins on the fly. It would take some investigation to make the solution more elegant.

Can anyone else confirm their Wolfram Alpha plugin has the following plugin ID? plugin-d1d6eb04-3375-40aa-940a-c2fc57ce0f51
You can look in the network requests to see the initial post request for the conversation, it will be listed under the plugin_ids key.
I think an initial low-level implementation of dropping the plugin IDs into the config would be a reasonable start, it would at least allow people to leverage plugins right away. However, I want to make sure the plugin IDs are consistent across users before I take that step.

OK, this doesn't look too hard:
There's an endpoint to pull all the plugin info: https://chat.openai.com/backend-api/aip/p?offset=0&limit=250&statuses=approved
With entries like this:
{
  "items": [
    {
      "id": "plugin-e5159e19-a6dd-4536-9cad-6a23b82e426e",
      "domain": "voxscript.awt.icu",
      "namespace": "VoxScript",
      "status": "approved",
      "manifest": {
        "schema_version": "v1",
        "name_for_model": "VoxScript",
        "name_for_human": "VoxScript",
        "description_for_model": "Plugin for searching through varius data sources.",
        "description_for_human": "Enables searching of YouTube transcripts, financial data sources, and Google Search results, and more!",
        "auth": {
          "type": "service_http",
          "instructions": "",
          "authorization_type": "bearer",
          "verification_tokens": {
            "openai": "ffc5226d1af346c08a98dee7deec9f76"
          }
        },
        "api": {
          "type": "openapi",
          "url": "https://voxscript.awt.icu/swagger/v1/swagger.yaml"
        },
        "logo_url": "https://voxscript.awt.icu/images/VoxScript_logo_32x32.png",
        "contact_email"<EMAIL_ADDRESS>        "legal_info_url": "https://voxscript.awt.icu/legal/"
      },
      "oauth_client_id": null,
      "user_settings": {
        "is_installed": false,
        "is_authenticated": true
      },
      "categories": [
        {
          "id": "newly_added",
          "title": "New"
        }
      ]
    },
  ],
}

So the plan would be to implement a /plugin command that could display a list of plugins and their description to a user. The user would then take the plugin ID of whatever plugin they wanted to enable, and add that to browser.plugins. That would inject a plugin_ids attribute when a plugin-enabled model (at this point just gpt-4-plugins), and from there, things should just work.

Implemented and released in 0.10.0


Support a default cookie name for token auth with SSR

I'd like to move this code that copies JWT tokens from a cookie inside the XHR zone here: https://github.com/donejs/done-ssr/blob/master/lib/zones/xhr.js#L10.  And support a couple of default cookie names like feathers-jwt and ssr-cookie for something more generic.
This gives Feathers a little bit of special treatment, having feathers-jwt as a hard coded option.  It simplifies setup for Feathers users and makes for much shorter tutorials.

How does it simplify setup? Don't you just have to install/use feathers-done-ssr?

@matthewp, this makes it so you don't have to setup an express server just to use feathers-done-ssr.  Also, if you are developing your DoneJS app separate from your Feathers API, this makes it so you can just run donejs develop and you'll still get JWT authorization support.
I'm still testing, but it looks like all we have to do is replace https://github.com/donejs/done-ssr/blob/master/lib/zones/xhr.js#L10-L13 with these lines:
// Copy the jwt from a cookie to the request headers.
var jwtCookie = RegExp("(feathers-jwt|ssr-authorization)[^;]+").exec(cookie);
if(jwtCookie && !this.getRequestHeader('authorization')){
  this.setRequestHeader('authorization', jwtCookie.toString());
}

I'd prefer a more generic solution to the problem. The problem is that you need to set the Authorization header on outgoing (XHR) requests, right?

@matthewp I think we might need to add a way to specify which domains should include the header.  If the server makes two requests, one to my Feathers server and another to some third-party server, I think the way it's set up now that token will get sent to the third-party server, which would be very bad.

var options = {
  authCookie: "feathers-jwt",
  authDomains: "bitovi.com, canjs.com"
};

done-serve --auth-cookie feathers-jwt --auth-domains bitovi.com,canjs.com

Then we'd have to check the domain before appending the header to the XHR.

If that looks good to you, I'll implement it.

How about:
var options = {
  auth: {
    cookie: 'foo-bar',
    domains: ['foo.com', 'bar.com']
  }
};

Use an array for the JS API, comma separated makes sense for done-serve though.

Fixed in https://github.com/donejs/done-ssr/pull/186


Cannot update extensions:  permissions issue?

VSCode Version: Code - Insiders 1.16.0-insider (baa6fbece9035e3d20cbcb776d73ebc6c4ddde26, 2017-08-15T05:08:02.380Z)
OS Version: Darwin x64 16.7.0
Extensions:

Extension
Author (truncated)
Version

ng-template
Ang
0.1.4

code-settings-sync
Sha
2.8.2

sort-lines
Tyr
1.3.0

html-snippets
abu
0.1.0

Bookmarks
ale
0.15.2

project-manager
ale
0.19.0

path-intellisense
chr
1.4.2

vscode-eslint
dba
1.2.11

tslint
eg2
0.17.0

auto-rename-tag
for
0.0.14

Angular2
joh
2.4.0

ecdc
mit
0.10.3

HTMLHint
mka
0.3.3

vscode-autoprefixer
mrm
2.1.2

vscode-stylefmt
mrm
2.5.0

angular2-inline
nat
0.0.17

stylelint
shi
0.28.0

ayu
tea
0.4.0

change-case
wma
1.0.0

(4 theme extensions excluded)

Steps to Reproduce:

Last week I got a new Macbook Pro.  To preserve my extensions and themes, I copied the .vscode-insiders folder from my old home folder to my new one.  I've been using code without incident.
Today, I was prompted to update an extension, a theme called Ayu.
I click the update button, but get this dialog:

The console has this message:
messageService.ts:125 EACCES: permission denied, mkdir '/Users/st016lo/.vscode-insiders/extensions/teabyii.ayu-0.5.0': Error: EACCES: permission denied, mkdir '/Users/st016lo/.vscode-insiders/extensions/teabyii.ayu-0.5.0'

Never mind, found the ownership issue.


Fix Facebook login error

There was a javascript error that caused FacebookUtils.authenticate to crash and made login with Facebook impossible since v1.6.0.
Fixes https://developers.facebook.com/bugs/882121675197813/

Thanks for catching this


"Local variable 'reply' referenced before assignment" on debugger exit

Description of your problem
What steps will reproduce the problem?

a program im debugging runs to completion and exits normally
crash

What is the expected output? What do you see instead?
Internal console:
Traceback (most recent call last):
File "C:\Users\Rob Buckley\Anaconda2\lib\site-packages\qtconsole\base_frontend_mixin.py", line 163, in _dispatch
handler(msg)
File "C:\Users\Rob Buckley\Anaconda2\lib\site-packages\spyder\widgets\ipythonconsole\debugging.py", line 136, in _handle_stream
self._input_reply = reply
UnboundLocalError: local variable 'reply' referenced before assignment
Please provide any additional information below
As  temporary hack i changed debugger.py line 136
from
self._input_reply = reply
to
self._input_reply = None
Versions and main components

Spyder Version: 3.0.0 (via conda)
Python Version: 2.7.12
Operating system: Windows 10

Dependencies
Please go to the menu entry Help > Optional Dependencies (or
Help > Dependencies), press the button Copy to clipboard
and paste the contents below:
jedi >=0.8.1     :  0.9.0 (OK)
matplotlib >=1.0 :  1.5.3 (OK)
nbconvert >=4.0  :  4.2.0 (OK)
numpy >=1.7      :  1.11.1 (OK)
pandas >=0.13.1  :  0.18.1 (OK)
pep8 >=0.6       :  1.7.0 (OK)
pyflakes >=0.5.0 :  1.3.0 (OK)
pygments >=2.0   :  2.1.3 (OK)
pylint >=0.25    :  1.5.4 (OK)
qtconsole >=4.2.0:  4.2.1 (OK)
rope >=0.9.4     :  0.9.4 (OK)
sphinx >=0.6.6   :  1.4.6 (OK)
sympy >=0.7.3    :  1.0 (OK)

Thanks for reporting. Could you post a simple program that generates this error?

hi - to WAR this issue i downgraded to 2.3.9. When i upgraded again i got into a mess with qt bindings so i ended up reinstalling a clean environment. Now i cant seem to reproduce the issue!
looking at _handle_stream() in Anaconda2\lib\site-packages\spyder\widgets\ipythonconsole\debugging.py, I cant see where reply gets assigned to before its referenced in line 136.  Maybe this is just a rarely used path?
sorry thats all i can offer. Feel free to close

Thanks. In any case, I'll check if reply can go unreferenced before closing :-)


Can Testcafe can open a window in Safari?

What is your Scenario?
I'd like to run tests against Safari on a mac
What is the Current behavior?
when I run testcafe, Safari is launched, no windows are opened.
after the timeout testcafe outputs:
Hints:
- Increase the Browser Initialization Timeout if its value is too low (currently: 2 minutes for local browsers and 6 minutes for remote browsers). The timeout determines how long TestCafe waits for browsers to be ready.
- The error can also be caused by network issues or remote device failure. Make sure that your network connection is stable and you can reach the remote device.

What is the Expected behavior?
I expect a website to open in a browser window and the test run against it
What is your public website URL? (or attach your complete example)
I've reproduced the problem using https://en.wikipedia.org/wiki/Main_Page
What is your TestCafe test code?
const { Selector } = require("testcafe");
fixture('Sample')
.page('https://en.wikipedia.org/wiki/Main_Page');
test('test runs: enters text into Google search box', async t => {
    await t
	.typeText('.cdx-text-input__input', 'Sample text');

	const inputElement = Selector('.cdx-text-input__input');

    await t.expect(inputElement.value).contains('Sample text');
});

Your complete configuration file
this sample has no config file. Just the test code in a file called sample.js
Your complete test report
No response
Screenshots
No response
Steps to Reproduce

TestCafe version
3.1.0
Node.js version
18.17.0
Command-line arguments
testcafe safari sample.js
Browser name(s) and version(s)
Safari 16.6
Platform(s) and version(s)
macOS 11.7.9
Other
This sample ran with success on Chrome 115.0.5790.114 (Official Build) (x86_64) and Firefox 115.03.

Hi, it looks like you are using a beta version of Safari: Safari 16.6 Beta.
Would you please check if the issue is reproducible with a stable Safari version?

hi - thanks for responding…
I'm using the 16.6 (166<IP_ADDRESS>.3, 16615) released in July: https://tidbits.com/watchlist/safari-16-6/ and any updates to it since.
But if no one can reproduce this then I'd put this down to my old Mac configuration in some way.

Hi @carlhunterroach,

I'm using the 16.6 (166<IP_ADDRESS>.3, 16615) released in July

There is no release Safari version on the official Apple Web site; only the beta version: https://developer.apple.com/documentation/safari-release-notes/safari-16_6-release-notes
We will close the issue. Feel free to reopen it if you reproduce the problem with the release Safari version.

Hi,
Indeed, the topic you shared doesn't contain the beta suffix. But this is just a support topic. See Apple's "Release Notes" page that I shared above. It states that v16.6 as well as v17 are beta versions. Also, to be sure, I just tried to update Safari on Mac with macOS Ventura (v13.4.1), and it states that I have the latest Safari version (v16.5). The only way to install v16.6 was to manually download it from the page with beta versions: https://developer.apple.com/download/all/?q=Safari
If you are able to reproduce the issue with the latest Safari version (v16.5), feel free to reopen this issue and share appropriate details.

My Mac is running Big Sur 11.7.9 which was released this July. It's not a
beta OS release.
https://support.apple.com/en-gb/HT211896#macos1179
Still happy for this to be closed :)
On Thu, 10 Aug 2023 at 08:35, Artem-Babich @.***> wrote:

Hi,
Indeed, the topic you shared doesn't contain the beta suffix. But this is
just a support topic. See Apple's "Release Notes" page that I shared above.
It states that v16.6 as well as v17 are beta versions. Also, to be sure, I
just tried to update Safari on Mac with macOS Ventura (v13.4.1), and it
states that I have the latest Safari version (v16.5). The only way to
install v16.6 was to manually download it from the page with beta versions:
https://developer.apple.com/download/all/?q=Safari
If you are able to reproduce the issue with the latest Safari version
(v16.5), feel free to reopen this issue and share appropriate details.
—
Reply to this email directly, view it on GitHub
https://github.com/DevExpress/testcafe/issues/7920#issuecomment-1672712608,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH46COF3RYJUUVTO2N23FTXUSFNZANCNFSM6AAAAAA3BMU3FQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Carl Hunter-Roach
Middle Thames Bird Conservation Trust http://middlethames.uk
Runnymede Ringing Group https://www.runnymederinging.uk/


Ticking block crash server (new version mod)

latest.log
crash-2024-03-11_18.31.07-server.txt
debug.log

There was also an error in the console with ticking block


Minifying / conversions of uploaded images

Hi there,
Is there a way now (or is it planned to be feature of this plugin) to convert media automatically on upload to .webp / .avif, or maybe to minify images or to create conversions (small / medium thumbnails etc...)
Thanks in advance :)

Hi
For now, we don't ship a native ability to handle this use case. We might consider it in a future release and we'd also be happy to look into a PR for the matter.
You may want to use the FileUploaded event documented here https://oneduo.github.io/nova-file-manager/events.html and apply your modifications and conversions to the file.
We will be adding more to the event's properties in a release coming soon to provide more data to the events, but you can just use the events already if you wish.
Cheers,
Charaf


[Feature] support resource group object in new privilege framework

What type of PR is this：

[ ] BugFix
[x] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Support resource group object in new privilege framework
Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

[FE PR Coverage Check]
:disappointed: fail : 54 / 75 (72.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/catalog/ResourceGroupMgr.java
0
3
00.00%
[262, 264, 266]

:large_blue_circle:
com/starrocks/privilege/PrivilegeManager.java
4
7
57.14%
[646, 647, 648]

:large_blue_circle:
com/starrocks/privilege/ResourceGroupPEntryObject.java
22
34
64.71%
[33, 40, 49, 69, 85, 90, 91, 93, 94, 105, 108, 116]

:large_blue_circle:
com/starrocks/sql/analyzer/PrivilegeCheckerV2.java
9
12
75.00%
[658, 667, 675]

:large_blue_circle:
com/starrocks/privilege/PrivilegeType.java
14
14
100.00%
[]

:large_blue_circle:
com/starrocks/privilege/DefaultAuthorizationProvider.java
2
2
100.00%
[]

:large_blue_circle:
com/starrocks/persist/gson/GsonUtils.java
3
3
100.00%
[]

run starrocks_admit_test


Update DVP OAPI doc

Proposed changes
Update DVP API docs

I'm happy for this to be merged but I don't seem to have the power?


Mods does not respect ollama base-url setting

Mods seems to use the default ollama base-url: http://<IP_ADDRESS>:11434/api no matter what the line is set to.
Setup
MX Linux 23 ahs, xfce4-term, bash
To Reproduce
Change the line to anything, can be either a valid remote server or something nonsensical.  The request will always go to the local machine.
Changing the base-url of, for instance, the openai config line does have the intended effect.

Same here.

This is the culprit: https://github.com/charmbracelet/mods/blob/3dc0a94ae6e9388de042a8ad4d260964ab71fdc5/mods.go#L315

Tried the fix, but still got " ERROR  There was a problem with the ollama API request."
the bug is
"status code: 404, message: json: cannot unmarshal number into Go value of type openai.ErrorResponse"
May be I'm not using it correctly, but I cannot connect to an ollama server

My mods config is as follows:
default-model: llama3:8b
format-text:
  markdown: '{{ index .Config.FormatText "markdown" }}'
  json: '{{ index .Config.FormatText "json" }}'
roles:
  "default": []
  "summarize_git_diff":
    - https://raw.githubusercontent.com/danielmiessler/fabric/main/patterns/summarize_git_diff/system.md
format: false
role: "default"
raw: false
quiet: false
temp: 1.0
topp: 1.0
no-limit: false
word-wrap: 80
include-prompt-args: false
include-prompt: 0
max-retries: 5
fanciness: 10
status-text: Generating
max-input-chars: 12250
apis:
  ollama:
    base-url: http://localhost:11434/api
    models:
      "llama3:8b":
        aliases: ["llama3"]
        max-input-chars: 650000

When I try running a prompt through mods, I get the following in the ollama serve debug log
[GIN] 2024/08/25 - 12:26:32 | 404 |     415.694µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:32 | 404 |     111.536µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:32 | 404 |     180.034µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:33 | 404 |     109.918µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:35 | 404 |      112.41µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:45 | 404 |     165.582µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:45 | 404 |      230.76µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:45 | 404 |     171.141µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:46 | 404 |     151.101µs |       <IP_ADDRESS> | POST     "/api/chat"
[GIN] 2024/08/25 - 12:26:48 | 404 |     171.085µs |       <IP_ADDRESS> | POST     "/api/chat"

Will the associated PR solve my issue?


ansible-playbook crash

I am get a huge error when I run the ansible-playbook
ansible-playbook master.yml -u ubuntu --become --private-key=<agent SSH key>
TASK [master : Executing "/home/ubuntu/master/.venv/bin/python3.6 /home/ubuntu/master/manage.py makemigrations django_scantron" _raw_params={{ venv_python }} {{ scantron_dir }}/manage.py makemigrations {{ django_project_name }}, chdir={{ scantron_dir }}] *** fatal: [<IP_ADDRESS>]: FAILED! => {"changed": true, "cmd": ["/home/ubuntu/master/.venv/bin/python3.6", "/home/ubuntu/master/manage.py", "makemigrations", "django_scantron"], "delta": "0:00:00.267952", "end": "2019-02-11 15:56:19.496620", "msg": "non-zero return code", "rc": 1, "start": "2019-02-11 15:56:19.228668", "stderr": "Traceback (most recent call last):\n  File \"/home/ubuntu/master/manage.py\", line 22, in <module>\n    execute_from_command_line(sys.argv)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 364, in execute_from_command_line\n    utility.execute()\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 356, in execute\n    self.fetch_command(subcommand).run_from_argv(self.argv)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 206, in fetch_command\n    klass = load_command_class(app_name, subcommand)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 40, in load_command_class\n    module = import_module('%s.management.commands.%s' % (app_name, name))\n  File \"/home/ubuntu/master/.venv/lib/python3.6/importlib/__init__.py\", line 126, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n  File \"<frozen importlib._bootstrap>\", line 994, in _gcd_import\n  File \"<frozen importlib._bootstrap>\", line 971, in _find_and_load\n  File \"<frozen importlib._bootstrap>\", line 955, in _find_and_load_unlocked\n  File \"<frozen importlib._bootstrap>\", line 665, in _load_unlocked\n  File \"<frozen importlib._bootstrap_external>\", line 678, in exec_module\n  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/commands/makemigrations.py\", line 12, in <module>\n    from django.db.migrations.autodetector import MigrationAutodetector\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/autodetector.py\", line 13, in <module>\n    from django.db.migrations.questioner import MigrationQuestioner\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/questioner.py\", line 12, in <module>\n    from .loader import MigrationLoader\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/loader.py\", line 10, in <module>\n    from django.db.migrations.recorder import MigrationRecorder\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/recorder.py\", line 12, in <module>\n    class MigrationRecorder(object):\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/recorder.py\", line 26, in MigrationRecorder\n    class Migration(models.Model):\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/recorder.py\", line 27, in Migration\n    app = models.CharField(max_length=255)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/models/fields/__init__.py\", line 1061, in __init__\n    super(CharField, self).__init__(*args, **kwargs)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/models/fields/__init__.py\", line 172, in __init__\n    self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/conf/__init__.py\", line 56, in __getattr__\n    self._setup(name)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/conf/__init__.py\", line 41, in _setup\n    self._wrapped = Settings(settings_module)\n  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/conf/__init__.py\", line 129, in __init__\n    raise ImproperlyConfigured(\"The SECRET_KEY setting must not be empty.\")\ndjango.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.", "stderr_lines": ["Traceback (most recent call last):", "  File \"/home/ubuntu/master/manage.py\", line 22, in <module>", "    execute_from_command_line(sys.argv)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 364, in execute_from_command_line", "    utility.execute()", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 356, in execute", "    self.fetch_command(subcommand).run_from_argv(self.argv)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 206, in fetch_command", "    klass = load_command_class(app_name, subcommand)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/__init__.py\", line 40, in load_command_class", "    module = import_module('%s.management.commands.%s' % (app_name, name))", "  File \"/home/ubuntu/master/.venv/lib/python3.6/importlib/__init__.py\", line 126, in import_module", "    return _bootstrap._gcd_import(name[level:], package, level)", "  File \"<frozen importlib._bootstrap>\", line 994, in _gcd_import", "  File \"<frozen importlib._bootstrap>\", line 971, in _find_and_load", "  File \"<frozen importlib._bootstrap>\", line 955, in _find_and_load_unlocked", "  File \"<frozen importlib._bootstrap>\", line 665, in _load_unlocked", "  File \"<frozen importlib._bootstrap_external>\", line 678, in exec_module", "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/core/management/commands/makemigrations.py\", line 12, in <module>", "    from django.db.migrations.autodetector import MigrationAutodetector", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/autodetector.py\", line 13, in <module>", "    from django.db.migrations.questioner import MigrationQuestioner", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/questioner.py\", line 12, in <module>", "    from .loader import MigrationLoader", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/loader.py\", line 10, in <module>", "    from django.db.migrations.recorder import MigrationRecorder", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/recorder.py\", line 12, in <module>", "    class MigrationRecorder(object):", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/recorder.py\", line 26, in MigrationRecorder", "    class Migration(models.Model):", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/migrations/recorder.py\", line 27, in Migration", "    app = models.CharField(max_length=255)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/models/fields/__init__.py\", line 1061, in __init__", "    super(CharField, self).__init__(*args, **kwargs)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/db/models/fields/__init__.py\", line 172, in __init__", "    self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/conf/__init__.py\", line 56, in __getattr__", "    self._setup(name)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/conf/__init__.py\", line 41, in _setup", "    self._wrapped = Settings(settings_module)", "  File \"/home/ubuntu/master/.venv/lib/python3.6/site-packages/django/conf/__init__.py\", line 129, in __init__", "    raise ImproperlyConfigured(\"The SECRET_KEY setting must not be empty.\")", "django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty."], "stdout": "[*] Loading [ production ] scantron_secrets.json", "stdout_lines": ["[*] Loading [ production ] scantron_secrets.json"]} 	to retry, use: --limit @/home/ubuntu/Documents/scantron/ansible-playbooks/master.retry

Hi @davidmthomsen - thanks for submitting an issue.  Looks like the you have an empty SECRET_KEY value in your master/scantron_secrets.json file.
"The SECRET_KEY setting must not be empty."

This section should cover everything you need to do for installing Master: https://github.com/rackerlabs/scantron#master-installation

Thanks for responding so quickly. I generated a random string and placed it in the master/scantron_secrets.json file for production and got the same error. I inserted the same string for both production and local and got the same error.

Hey @derpadoo I got it. I needed DB Password in the scantron_secrets.json file.

Great!  Glad to hear it worked.  I've tried to make the install as painless as possible, but could probably do better.  Let me know if you have any other questions or issues.  Happy scanning!


[FEAT] Implement API to Retrieve Latest Blog Posts with Pagination

Description

Develop an endpoint to handle requests to fetch and return the latest blog post data with pagination. If the data is fetched successfully, it will be returned to the client with a '200 OK' status. If an error occurs, an appropriate error status will be returned.

Acceptance Criteria

The endpoint fetches and returns the latest blog post data including title, excerpt, publish date, and author.
Supports pagination through query parameters page and page_size.
Returns a 200 OK status code and the correct response body when data is fetched successfully.
Returns an appropriate error message when an error occurs.

Purpose

The purpose of this endpoint is to provide users with an easy way to access the latest blog posts in a paginated format. This allows users to stay updated with recent content and provides a seamless browsing experience by breaking down the content into manageable pages.

Requirements

[ ] Implement API endpoint for fetching paginated latest blog post summaries.
[ ] Fetch and return blog post data including: Title, Excerpt, Publish Date, Author.
[ ] Implement pagination with query parameters page and page_size.
[ ] Handle unexpected errors and return the appropriate status code.

Expected Outcome

Users should be able to send a request to the backend to retrieve a paginated list of the latest blog post summaries.
Users should receive appropriate status codes and responses based on the outcome of the request.

Endpoints
[GET] /api/v1/blogs/latest
Description:

Fetches a paginated list of the latest blog post summaries.

Query Parameters:

page: The page number to retrieve. Default is 1.
page_size: The number of blog posts per page. Default is 10.

Success Response:

Status: 200 OK

Body:
{
        "count": 50,
        "next": "http://example.com/api/blogs/latest?page=2&page_size=10",
        "previous": null,
        "results":
        [{
            "title": "Latest Blog Post Title",
            "excerpt": "Short excerpt of the blog post...",
            "publish_date": "2024-07-17T00:00:00Z",
            "author": "Author Name"
        }]
}

Error Response:

Status: 500 Internal Server Error

Body:
{
    "error": "Internal server error."
}

Invalid Method Response:

Status: 405 Method Not Allowed

Body:
    {
        "error": "This method is not allowed."
    }

Bad Request Response:

Status: 400 Bad Request

Body:
    {
        "error": "An invalid request was sent."
    }

Testing
Test Scenarios

Successful Retrieval of Paginated Latest Blog Posts

Ensure that the endpoint successfully retrieves a paginated list of the latest blog posts.
Verify that the response includes the total count, next and previous page URLs, and the results with title, excerpt, publish date, and author for each blog post.
Confirm that the status code is 200 OK.

No Blog Posts Present

Simulate a scenario where no blog posts are present in the database.
Confirm that the response body contains an empty list.

Internal Server Error

Simulate an internal server error to raise an exception.
Verify that the endpoint returns a 500 Internal Server Error status code.
Confirm that the response body contains an appropriate error message.

Invalid Page or Page Size Parameters

Send requests with invalid page or page_size parameters (e.g., negative numbers, non-integer values).
Verify that the endpoint returns a 400 Bad Request status code.
Confirm that the response body contains an appropriate error message.

Invalid Method

Send a request using an invalid HTTP method (e.g., POST) to the endpoint.
Verify that the endpoint returns a 405 Method Not Allowed status code.

This issue is referred from the approved issue


The indicator auto appera when reluanch app

The indicator auto appera when reluanch app. And you need to trigger the bottom refresh to hide it.

+1. Happening to me as well


Feat: Add Watsonx.ai Embedding Model

Add Watsonx embedding model

I updated the embedding model following the new core interface requirements.

@tzolov is it possible to merge it? it would make me a giant favour as I will be needing it for a project :)
Thanks

will get to it soon.

Thanks again!  Merged in 035036c7f20bbfcd85312c06e7dd0fbed56d4f71


Add domain cnvcdp.edu.vn

@thanhkhanhcntt The domain registrant for cnvcdp.edu.vn is Công Ty TNHH CNV Holdings (Holdings Company Limited). This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@thanhkhanhcntt Regrettably, I must close the request without merging because this organization is a training center, not a college or university. Please ensure that you are familiar with this repository rules located at the bottom of this page.
Please apply for an appropriate licensing option (which may also be free) at https://www.jetbrains.com/community/education/#courses.
Thank you for your understanding!


Client Allocation Request for: [Firefly]

Client Allocation Questions
Core Information

Name: [Firefly]
Website / Social Media: [http://www.fireflyblock.com/
www.fireflypool.com
https://weibo.com/7329627144/profile?
https://baike.baidu.com
https://www.chainnews.com/u/095136341312.htm]
DataCap Requested: [3T  ]
Addresses to be Notarized: [f1dbpdc56q6wfcmb4p2ppzqruufiqcr2s5xqwybma]

Hey @Firefly2020-cloud  - thanks for your request. Can you kindly add more information / context here on:

yourself , e.g. include links to social media / news mentions etc
your history working on IPFS / Filecoin, e.g. notable contributions to the community, type of engagement shown over time etc
type and source of the data you (and by extension other Discover participants) are looking to store on Filecoin, e.g. public data vs private data etc
how you intend to store the data on Filecoin, e.g. redundancy, location / miner preferences, etc

Thanks

(Optional) Affiliated Organization: Firefly
Website / Social Media: http://fireflyblock.com
On-chain Address(es) to be Notarized: f3rmhlmqfaph6czwiqwlg3kfjgejugt5thcviowlmt3l42464q25ptk3znphuuiwrdbyumun3ui7q2gut7v2da
Region of Operation: Greater China
Use case(s) to be supported: [Web 3.0 / Decentralized Applications, Web 2.0 Applications, User Content, Scientific Data, Media & Entertainment, Other]
DataCap Requested: 50TiB

Hey @Firefly2020-cloud - at this time the FF is not accepting client requests > 5 TB. If you wish to continue your application for the originally stated 3TB then kindly add more information on the below items:

yourself , e.g. include links to social media / news mentions etc

your history working on IPFS / Filecoin, e.g. notable contributions to the community, type of engagement shown over time etc

type and source of the data you (and by extension other Discover participants) are looking to store on Filecoin, e.g. public data vs private data etc

how you intend to store the data on Filecoin, e.g. redundancy, location / miner preferences, etc

Thanks

yourself , e.g. include links to social media / news mentions etc
http://fireflyblock.com
https://twitter.com/fireflyblock1
your history working on IPFS / Filecoin, e.g. notable contributions to the community, type of engagement shown over time etc

3+ years develop experience in filecoin/ipfs
join test from devnet to space race, contributed 2.5 PiB storage and received 24000 FIL reward
increase netowork storage simutaneouly in mainnet
help client to invest and build filecoin miner pool
join slingshot race
find and submit bug in lotus issue
discuss solution for bug in slack

type and source of the data you (and by extension other Discover participants) are looking to store on Filecoin, e.g. public data vs private data etc

public data

economic, social data from government and utilities

private data

photos and videos from personal life
files archive from corporation

how you intend to store the data on Filecoin, e.g. redundancy, location / miner preferences, etc

keep redundancy with 3 backup
dispatch storage across Hangzhou, Qingdao and Ningbo

Hey @Firefly2020-cloud - thanks for providing the additional information. Fw  more items:

Can you share more info on the individuals behind your team? The team page on your website doesn't list names. E.g. links to social profiles would be great, if you can
Would you be OK with posting here links to the deal transactions after receiving data cap?
Can you elaborate more on the type and source of data you are looking to store? As a reminder: at this time the foundation is looking to award data cap to clients storing public / web3 data.

Thanks

sure thing! I wasn't how much information you were looking for as part of the application process.
Myself: Firefly ( an IPFS pinning service ).
Some notable social media links of ours:
Twitter: https://twitter.com/fireflyblock1
Blog: https://weibo.com/7329627144/profile
Email<EMAIL_ADDRESS>Wechat：18158536078
News mention: https://www.chainnews.com/u/095136341312.htm
https://www.sohu.com/a/379011752_120410050
History: As an individual, I have worked as a crypto miner for over 5 years.
I’ve been a part of the Filecoin community since 2017 and founded Firefly  in 2018.
As an organization, Firefly is a leading service provider committed to comprehensive Filecoin mining solutions in a cost-effective way.
We have built quite an extensive relationship with the Filecoin community since its initial launch back in 2017,
and as a result, have sustained countless contributions to the overall network.
type and source of the data you (and by extension other Discover participants) are looking to store on Filecoin, e.g. public data vs private data etc
I will store public data, such as Filecoin Discover data, Slingshot Pharse 2 curated datasets, other Creative Commons dataset.
I will help store user generated data already stored in IPFS to FIlecoin. Such as ipfs data on http://matters.news/ (all the articles on the sites are already in the IPFS)
How we intend to store the data on Filecoin:  Right now we're planning on just storing to one miner (until we get that perfected and then will move to multiple miners). We have a preference for miners in Asia

Thanks. I've awarded you 3 TiB data cap.

Has my request been granted? Can you give me more relevant information？


Rename isAttr(), setAttr() and getAttr() to more Java like names, isA…

…ttribute(), setAttribute() and getAttribute().
This PR adds alternatives for the methods getAttr(), setAttr(), isAttr() and hasAttr() that are more Java-like, i.e. getAttribute(), ...
I marked the current methods as deprecated.

:+1:


Upgrade script fails if mattermost-docker is used with .env

While migrating to the new PostgreSQL and Mattermost versions using the upgrade-from-mattermost-docker.sh script, we encountered a problem with the parsed environment variables. The docker command to upgrade the db at L179-L186 of the script fails with the following message:
initdb: option requires an argument -- 'U'

This is only an assumption as we haven't been reproducing this error, but we guess that the problem lies in having used variables from .env with mattermost-docker like this:
environment:
  - POSTGRES_USER=${POSTGRES_USER}
  - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  - POSTGRES_DB=${POSTGRES_DB}

So when exporting the variables in the shell the docker command worked as expected.
Thanks a lot for the great work you put into restructuring the docker setup for mattermost.

@lu40 thank you for reporting. Because there are efforts in improving the upgrade i'm closing this in favor of https://github.com/mattermost/docker/pull/25.


LB120(US) lightbulb support

I have 2 LB120(US) lightbulbs that work correctly in the Kasa app. When I run this demo code, it only finds 1 of them:
const Hs100Api = require('hs100-api')
const client = new Hs100Api.Client()
client.startDiscovery().on('plug-new', p => console.log(p.name))

Also, possibly unrelated, this code doesn't make the lights flash (it doesn't do anything):
const Hs100Api = require('hs100-api')
const client = new Hs100Api.Client()

const plug1 = client.getPlug({host: '<IP_ADDRESS>'})
const plug2 = client.getPlug({host: '<IP_ADDRESS>'})
let toggle = true

setInterval(() => {
  toggle = !toggle
  plug1.setPowerState(toggle)
  plug2.setPowerState(!toggle)
}, 3000)

I also tried this:
const Hs100Api = require('hs100-api')
const client = new Hs100Api.Client()
client.startDiscovery()
  .on('plug-online', plug => {
    console.log('on', plug.name)
  })
  .on('plug-offline', plug => {
    console.log('off', plug.name)
  })
  .on('plug-new', plug => {
    console.log('new', plug.name)
  })

And I got this, after running it for a few minutes:
new Front Lamp
on Front Lamp
on Front Lamp
on Front Lamp
on Front Lamp
on Front Lamp

Front Lamp seems to be the only one it detects.
Happy to do anything else that helps troubleshoot.

If it's helpful, the Firmware Version in Kasa app is 1.0.9. Maybe I need to do some wiresharking to reverse it?

I must be doing something wrong with my wiresharking. I filter eth.src == xx:xx:xx:xx:xx:xx (where xx:xx:xx:xx:xx:xx is MAC in Kasa app) and trigger power in app and it doesn't show anything. Any suggestions would be awesome.

Ok, so I setup a wifi AP on a raspberry pi, and captured just traffic for the mac address of the bulb with tcpdump. I analyzed it with this code:
const pcapp = require('pcap-parser')

const decrypt = require('hs100-api/lib/utils').decrypt

const parser = pcapp.parse('front-lamp.pcap')

parser.on('packet', packet => {
  console.log(decrypt(packet.data).toString())
})

I am getting lots of gibberish mixed with JSON snippets, like this:
�.�;�x�l!EE,.,.@F��a̴nH(��!G)Y����~r�;�e�
{�x�l!�.�;EE(t
              @@F�(�nôa��(����G)Vh@�Kr�
@@F����nôa��(����G)VhH��ji�"smartlife.iot.smartbulb.lightingservice":{"transition_light_state":{"on_off":0,"transition_period":0}}}
�.�;�x�l!EE(*-/@F��̴nH(��!G)V����N@�a�
�̴nH(��!G)V���F�@ ��+
�.�;�x�l!EE��31@F�N�a̴nH(��!G)V���F�H	���j"smartlife.iot.smartbulb.lightingservice":{"transition_light_state":{"on_off":0,"dft_on_state":{"mode":"normal","hue":0,"saturation":0,"color_temp":2700,"brightness":90},"err_code":0}}}
{�x�l!�.�;EE(t@@F�.�nôa��(���F�G)��@�L(�
{�x�l!�.�;EE(t@@F�-�nôa��(���F�G)��A�L)�
�.�;�x�l!EE(*02@F��a̴nH(��!G)�P��F�@�5�
�.�;�x�l!EE(*13@F��a̴nH(��!G)�P��A�@ ��l
�.�;�x�l!EE(*64@F��a̴nH(��!G)�P��A�A�7�
{�x�l!�.�;EE(��|@@F
�8�nôa��(���A�G)��@E',y'
{�x�l!�.�;EE<��'@@FG��nôa��(��*�����rr���
�^�

�.�;�x�l!EE,.75@F��a̴nH(��9J�e�*��r��S]�
{�x�l!�.�;EE(��(@@FG)Ĵnôa��(��*��J��@�ԕ�
{�x�l!�.�;EE�
             �)@@FF�V�nôa��(��*��J��H��^i�"smartlife.iot.smartbulb.lightingservice":{"transition_light_state":{"on_off":1,"transition_period":0}}}
�.�;�x�l!EE(*46@F��a̴nH(��9J�d�*��@��
�.�;�x�l!EE(*57@F��a̴nH(��9J�d�5F@ 3>#
�.�;�x�l!EE��:8@F�@�a̴nH(��9J�d�5FH	>9�y"smartlife.iot.smartbulb.lightingservice":{"transition_light_state":{"on_off":1,"mode":"normal","hue":0,"saturation":0,"color_temp":2700,"brightness":90,"err_code":0}}}
{�x�l!�.�;EE(��*@@FG'ʴnôa��(��5J<2@�Վ�
{�x�l!�.�;EE(��+@@FG$ɴnôa��(��5J<2A�Չ�
�.�;�x�l!EE(*;9@F��a̴nH(��9J<��5F@��
�.�;�x�l!EE(*8:@F��a̴nH(��9J<��5G@ 2iu
�.�;�x�l!EE(*9;@F��a̴nH(��9J<��5GA��
{�x�l!�.�;EE(��:@@F
Z��nôa��(��5J=3@E�V�

Should I be analyzing it differently?

I don't have any TPLink lightbulbs to test. If you can figure out the API I might be able to add support, but hard for me to do anything without a lightbulb of my own.

I hear that. It'd be cool if your lib could auto-detect API version and use the right decrypt function. I will keep playing with it and see if I can reverse it's API. Do you have any suggestions for getting started?

I'm happy to send you pcaps of anything, or anything else that might help.

This wireshark dissector actually worked out all the lower-level protocol stuff, and I can now get nice JSON output for all the data sent to/from the Kasa app. I'll have a look this weekend, and see if I can reverse the protocol a bit.

Konsumer,
I am also interested in the LB120 bulb.  I have one of these as well as HS200 switches and an HS100 plug.  I am pretty much convinced that the ports are the same; however, the commands vary.  I ran an experiment with one of each device type.  All five of my devices were discover; however, only the HS100 and HS200 turned on.  I borrowed heavily from what you did above for this (thanks).
const Hs100Api = require('hs100-api')
const client = new Hs100Api.Client()
// Define the three test devices.  Use the HS200 and HS100 as controls and the LB120 as the device under test.
const LB120 = client.getPlug({host: '<IP_ADDRESS>'}) // Bedroom Light
const HS200 = client.getPlug({host: '<IP_ADDRESS>'}) // Den Fan
const HS100 = client.getPlug({host: '<IP_ADDRESS>'}) // Den Fan
//  Verify that I discover the all my TP Link Devices
client.startDiscovery().on('plug-new', p => console.log(p.name))
HS200.setPowerState(true)  //  Worked
HS100.setPowerState(true)  //  Worked
LB120.setPowerState(true)  //  Did not work
Dave G

@DaveGut I ended up making this which is specialized to the lightbulb (but should work fine with other JSON protocols, once they are worked out) and includes an improved wireshark dissector. Here are some instructions for using it. I'd be happy to add support for more devices/commands if you want to send me a pcap or just JSON dumps that are being sent.

Thanks.  I will look at it!  First look is a lot of good work.

Konsumer,  I have been experimenting.  One experiment was getting a system status using the sysinfo query.  I finally fully parsed the basic command with the below being the result.

Essentially, I am able to query all of the status attributes and display them individually.
If you are interested, I can post the code and give you a link (I know this is way below your level of expertise; but, I am learning,  Not bad for a 68 yo)

Cool! Yeah, I'd love to see the code.

Below is the code.  At least an attempt.

Below is the code.  I will someday get into github (just starting out).  Sorry for the inconvenience.
START HERE
//  Testing of the getSysInfo command for the LB1xx light bulb
/*
************* Notes *************
This script uses the upreviously developed, unmodified HS100 API. It was completed as an exercise to fully understand how the  system is controlled.
Issue:  The program sometimes fails when the light is OFF.  Works when ON and right after turning off.
/*
const Hs100Api = require('hs100-api')
const client = new Hs100Api.Client()
//  Define the bulb, using the HS100 API
const BRLight = client.getPlug({host: '<IP_ADDRESS>'})
// Get the System Information and parsing into Attributes
var j = Promise.resolve(BRLight.getSysInfo())
j.then(function(data){
var sysinfo = (data);
sw_ver = sysinfo.sw_ver;
hw_ver = sysinfo.hw_ver;
model = sysinfo.model;
description = sysinfo.description;  //Description of bulb
alias = sysinfo.alias;  // local name for bulb
mic_type = sysinfo.mic_type
dev_state = sysinfo.dev_state
mic_mac = sysinfo.mic_mac  //MAC of bulb
devId = sysinfo.devId
oemId = sysinfo.oemId
hwId = sysinfo.hwId
disco_ver = sysinfo.disco_ver
prot_name = sysinfo.ctrl_protocols.name
prot_version = sysinfo.ctrl_protocols.version
on_off = sysinfo.light_state.on_off
mode = sysinfo.light_state.mode
brightness = sysinfo.light_state.brightness
color_temp = sysinfo.light_state.color_temp
hue = sysinfo.light_state.hue
saturation = sysinfo.light_state.saturation
// Display the full set of attributes collected onto the console
console.log("**** LB1XX Bulb Information ")
console.log("            Alias: " + alias)
console.log("            Model: " + model)
console.log("      Description: " + description)
console.log("      Device Type: " + mic_type)
console.log("     Device State: " + dev_state)
console.log("Device MAC Adress: " + mic_mac)
console.log("       SW Version: " + sw_ver)
console.log("       HW Version: " + hw_ver)
console.log(" ")
console.log(" Currrent Bulb State ")
console.log("     Light On/off: " + on_off)
console.log("        Bulb Mode: " + mode)
console.log("  Bulb Brightness: " + brightness)
console.log("Color_Temperature: " + color_temp)
console.log("        Color Hue: "+ hue)
console.log(" Color Saturation: " + saturation)
console.log(" ")
console.log(" LB1XX Bulb Other Information ****")
//  A repository for additional attributes as I decide to capture them
console.log("       Device ID: " + devId)
console.log("          OEM ID: " + oemId)
console.log("           HW ID: " + hwId)
console.log("   Disco Version: " + disco_ver)
console.log("Control Protocol: " + prot_name +" Ver "+ prot_version)
})

Cool, I put it up here for readability. You can fork it and edit/save, if you wanna make changes. Looks good.

I reimplemented it using my library, ES6 template strings & object destructuring for readability. I noticed a few of my info object-keys are different than yours for some reason, specifically:
deviceId: devId
light_state: {on_off, dft_on_state: {mode, brightness, color_temp, hue, saturation}}

When I run it, I get the same sort of output you get:
LB1XX Bulb Information
 Alias: Front Lamp
 Model: LB120(US)
 Description: Smart Wi-Fi LED Bulb with Tunable White Light
 Device Type: IOT.SMARTBULB
 Device State: normal
 Device MAC Adress: 50C7BF076B4A
 SW Version: 1.0.9 Build 160524 Rel.100333
 HW Version: 1.0

Currrent Bulb State
 Light On/off: 0
 Bulb Mode: normal
 Bulb Brightness: 100
 Color_Temperature: 2700
 Color Hue: 0
 Color Saturation: 0

LB1XX Bulb Other Information
 Device ID: 80126E22B048C76F341BEED1A3EA8E77177F3484
 OEM ID: 3444835A20788C514CB24B9F869A0A5E
 HW ID: 111E35908497A05512E259BB76801E10
 Disco Version: 1.0
 Control Protocol: Linkie Ver 1.0

I have modified the HS100.API (new name LB1nn) and created the device handler for SmartThings.  It works.  Can send as zip file if you wish.

I have an interim TP-Link LB1nn Smart Bulb API that is working on a node.js bridge connected to Samsung SmartThings.  The scripts and documentation are on my GitHub page.  Importance for the HS100 API:
Stability.  During development, I discovered that the bulbs have a delay of from 300 to 500 ms when turning on.  May even be longer.  I had to account for this delay in my code to assure commands executed and status was correct.  After experimentation, I set the delay to 500 ms using setTimeout.  This may relate to the apparent stability you see in the HS-100 API.
Plug Firmware (software).  There are versions of the SmartBulb firmware that have even longer delays.  Needed to upgrade to latest.   May also impact early HS-100 switches.
Plug command structure.  Some of the commands for the HS-100 flat do not work on the bulbs.  Some return function not available.  Therefore the separate API.  I am still working on getting the other supported commands available.

@DaveGut what happened to that repo?

I have reloaded the program for any interested in the API aspects.  The SmartThings integration is depreciated; however, i believe it still works.
My new SmartThings integration is at
https://github.com/DaveGut/TP-Link-to-SmartThings-Integration
Why:
a.  single Node.js file eliminating calls to the api files (and error potentials)
b.  more informative user interface with indications when command fail, or bulbs disconnect.
c.  has hooks to the bridge integration (SmartThing-PC-Bridge) which provided mechanism to reboot the bridge from SmartThings.
FYI - I am working on a ST Service Manager and associated Device Handlers that will discover the PC Bridge and then the TP-Link devices and install them automatically (after the user installs the service manager and related device handlers).  I should also follow the bulbs so that static ports will not the necessary.  Probably a couple of weeks until I am happy.  Then back to the API with things I have learned.

If anyone in this thread is interested: I created a TPLink device simulator  so I could have automated testing of my code. It also allowed me to improve bulb support for hs100-api as I can test bulbs even though I don't own any.


sokol_gfx.h: Struct packing

I've noticed some minor "slop" in some of the structs when using pahole on Ubuntu x64.
I was wondering if this was on purpose in some cases?
You can check for yourself: pahole ./PATH/TO/libsokol_gfx.so
e.g., in sg_image_desc the render_target field could be moved just below the max_lod field to save 4 bytes in the total size of sg_image_desc. However, the render_target field would no longer be in the range of the first cache line (64 bytes per cache line on my hardware). The slop in this example is really small and most likely insignificant in the larger picture, but I was wondering what are your thoughts on this in general?
struct sg_image_desc {
	uint32_t                   _start_canary;        /*     0     4 */
	sg_image_type              type;                 /*     4     4 */
	_Bool                      render_target;        /*     8     1 */

	/* XXX 3 bytes hole, try to pack */

	int                        width;                /*    12     4 */
	int                        height;               /*    16     4 */
	union {
		int                depth;                /*           4 */
		int                layers;               /*           4 */
	};                                               /*    20     4 */
	int                        num_mipmaps;          /*    24     4 */
	sg_usage                   usage;                /*    28     4 */
	sg_pixel_format            pixel_format;         /*    32     4 */
	int                        sample_count;         /*    36     4 */
	sg_filter                  min_filter;           /*    40     4 */
	sg_filter                  mag_filter;           /*    44     4 */
	sg_wrap                    wrap_u;               /*    48     4 */
	sg_wrap                    wrap_v;               /*    52     4 */
	sg_wrap                    wrap_w;               /*    56     4 */
	sg_border_color            border_color;         /*    60     4 */
	/* --- cacheline 1 boundary (64 bytes) --- */
	uint32_t                   max_anisotropy;       /*    64     4 */
	float                      min_lod;              /*    68     4 */
	float                      max_lod;              /*    72     4 */

	/* XXX 4 bytes hole, try to pack */

	sg_image_content           content;              /*    80  1536 */
	/* --- cacheline 25 boundary (1600 bytes) was 16 bytes ago --- */
	const char  *              label;                /*  1616     8 */
	uint32_t                   gl_textures[2];       /*  1624     8 */
	const void  *              mtl_textures[2];      /*  1632    16 */
	const void  *              d3d11_texture;        /*  1648     8 */
	const void  *              wgpu_texture;         /*  1656     8 */
	/* --- cacheline 26 boundary (1664 bytes) --- */
	uint32_t                   _end_canary;          /*  1664     4 */

	/* size: 1672, cachelines: 27, members: 26 */
	/* sum members: 1661, holes: 2, sum holes: 7 */
	/* padding: 4 */
	/* last cacheline: 8 bytes */
};

Thanks for pointing me that tool. Yeah, I didn't pay too much attention to avoid padding bytes. At least for the public API structs it makes sense to keep the struct members grouped by "topic" and accept some padding.
But for internal structs it might make sense to reorder struct layouts to minimize padding to reduce memory usage (especially for the resource structs).

OK, I was more concerned about the public API myself. This is because I'm creating bindings for sokol_gfx in other languages. However, yes I agree it would be good to analyze the internal structs for performance in terms of packing and cache lines some time!


Add new config

Description
This PR addresses the following:

Add MQTTFileDownloader_config.h file to every project which make use of MQTT stream.
Update ci.yml file

Test Steps
Run the OTA demo without problem.
Checklist:

[x] I have tested my changes. No regression in existing tests.
[ ] I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue

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

Close this PR as this config should be added to esp-aws-iot repostiory.


Find a way to resolve compound dependencies

MyProject

mix.exs

some_library

elm-package.json

some_elm_library

poison.ex

Turns out to be the same as #202. Closing


Question - web to web connection

Demo works great (web to Android), but I was trying a web to web connection, so I duplicated the web example and modified the copy to be a responder - https://github.com/ark-us/saltyrtc-demo/commit/388830172f49b1511d9c4e39b28b6dc982daae94 . Examples are ran on two ports.
A data channel is opened and I get the following states on both web instances.

SaltyRTC signaling state | task
-- | --
PeerConnection signaling state | stable
PeerConnection connection state | connected
ICE connection state | connected
ICE gathering state | complete
Handover | yes
Secure data channel state | open

But none of the web instances receives messages from the other (with "Submit via DataChannel").
I understand that this question might be out of scope for saltyrtc itself, but if anyone has an idea about what I missed, it would be greatly appreciated.

Figured out (should have been obvious) that I was using two different data channels, instead of using the incoming one for the responder role. https://github.com/saltyrtc/saltyrtc-demo/commit/68d081987bc27be89d6f8cc5c6d872385b27aca6 if anyone else needs this.


tools/esp32/Config.mk: Make the blob directory generic and not dependant on any board.

Summary
This way we can use the download target with some flexibility on where the blobs are.
For example: make download ESPTOOL_PORT=/dev/ttyUSB0 BLOBDIR=.
Impact
N/A
Testing
esp32-devkitc

FYI @gustavonihei

@gustavonihei  @acassis PTAL again... I almost slept and forgot this one ;)


After exiting WebVR, rotating on wrong axis in Firefox

STR on Pixel, Firefox for Android, 57.0.4:

In portrait mode, go to https://immersive-web.github.io/cardboard-vr-display/examples/index.html
Enter WebVR
While still in portrait mode, exit WebVR
Orientation axis is off, it's like the default pose is now PI / -2 rotation on Z

Can go to landscape while in VR and back to portrait after exiting, same result. Happens with or without the changes in #13.
Update: When rotating to enter VR, the orientation screen transforms are never updated in fusion-pose-sensor, and neither subsequently triggered as no orientationchange events fire, so the screen transform is stuck in VR orientation: https://github.com/immersive-web/cardboard-vr-display/blob/082c54f1390534b3d3da29c98864adf38864acdc/src/sensor-fusion/fusion-pose-sensor.js#L200
Could be a platform issue?

@bluemarvin @snorp have you seen this issue on Firefox for Android? I can file a Bugzilla platform issue, but I figured y'all might have some insights as to what's going on here

Looks like this has been an issue for a long time, can reproduce on older and recent A-Frame demos as well. Not 100% confident in the issue being orientationchange events firing without a stripped down test case, but reproducible enough

Some updates:
Trying to recreate a minimal test case using fullscreen and orientation lock, but can't seem to reproduce the issue we're seeing in CardboardVRDisplay.

Separately, when testing the local demo, it looks as if the handlers are frozen after returning from "VR" (fullscreen) mode. Put a breakpoint/console.log in the orientation change handler in the FusionPoseSensor to indicate when the change is detected. This will no longer fire after returning from "VR" mode. With devtools open (via WebIDE), bind another orientationchange event:
window.addEventListener('orientationchange', e => console.log('change');

Now, rotating the device, we'll get the original FusionPoseSensor orientationchange event, as well as our new one we added via WebIDE, as if binding a new event after "VR" mode "unfreezes" the orientationchange events.
This is very weird. @cvan is the above STR sufficient enough for filing a platform bug? Disappointed that the stripped-down test case still cannot reproduce the issue, so maybe there's another platform API that's possibly interfering here, but not sure what to make of the event breaking, and becoming re-enabled when binding another event subsequently. :expressionless:


UWP App example & library for UWP are broken

How to reproduce?
Just download lastest version 0.9.6 upgrade the UWP projects, compile and execute.
Explain what you expect, feedback, images or anything you consider necessary
I navigate in the examples and I have many crashes with labels and series from the library

Live-0.9.6
*your Live-Charts version here*

UWP 15063
15063

Windows
1703

You are right, it will be updated soon.

It is still (or again?) broken for uwp. Just running the sample chart throws this error on build:

Severity	Code	Description	Project	File	Line	Suppression State
Error		Child node "2" exited prematurely. Shutting down. Diagnostic information may be found in files in "C:\Users\user\AppData\Local\Temp" and will be named MSBuild_*.failure.txt. This location can be changed by setting the MSBUILDDEBUGPATH environment variable to a different directory.	lctest

Error file contains this:

UNHANDLED EXCEPTIONS FROM PROCESS 46960:
25.03.2020 17:43:09
System.IO.IOException: Pipe is broken.
at System.IO.Pipes.PipeStream.WinIOError(Int32 errorCode)
at System.IO.Pipes.PipeStream.BeginWriteCore(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state)
at System.IO.Pipes.PipeStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.Pipes.PipeStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at Microsoft.Build.BackEnd.NodeEndpointOutOfProcBase.RunReadLoop(Stream localReadPipe, Stream localWritePipe, ConcurrentQueue`1 localPacketQueue, AutoResetEvent localPacketAvailable, AutoResetEvent localTerminatePacketPump)

Windows 1903; UWP 18362
Any news about future plan?


Report of all the data submissions by the Data Producer

As a system administrator, I want a report that aggregates all data submissions from the producer So that I can easily track and manage the data flow for analysis and monitoring purposes.
AC: - NAD admin should be able to submit via the command line prompt to produce a list of uploads filtered by the provider.

Jason to review

Add issues for each part of the report


[10.x] Adds methods for checking attribute visibility 🔎

This PR adds two methods for checking attribute visibility, for instance.
// User.php Model

/**
 * The attributes that should be hidden for serialization.
 *
 * @var array<int, string>
 */
protected $hidden = [
    'password',
];

// UserController.php

$user = User::first();

user->isVisible('password');  // returns false

user->isHidden('password');  // returns true

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Ignite-2.5.1-p9

PR seems to be temporary for testing, closing, for now, please feel free to reopen if it is needed.


Splits URLs only if separator is followed by 'http'

URL belonging to Australian member was being split into two separate entries because it contained a semi-colon. This PR fixes this particular case by ignoring the semicolon if it is not followed by 'http'

Not sure what's going on with this PR. These aren't my commits!


fix: update recommended skopeo version

Currently we emit a warning message when we detect users trying to download models from OCI registries using skopeo < v1.14.3. We recommend they upgrade to v1.15.0 out of an abundance of caution. It was determined through some manual effort that users only need to have skopeo >= v1.9.0. This is misleading to users as they think their model download might fail even though it won't, and might cause unnecessary confusion. This PR updates the recommended version to v1.9.0

Checklist:

[x] Commit Message Formatting: Commit titles and messages follow guidelines in the
conventional commits.
[ ] Changelog updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

@leseb updated


co_await async_simple::coro::sleep() question

Search before asking

[x] I searched the issues and found no similar issues.

What happened + What you expected to happen
when i use co_await async_simple::coro::sleep()，will brock the thread, all the coroutine is stop;
when add async_simple::executors::SimpleExecutor to sleep, it will use new thread;
the sleep() should be like golang time.Sleep()，use coroutine anywhere and do not create a new thread, i think you can use aiso timer to fix it.
Reproduction way
Anything else
Are you willing to submit a PR?

[x] Yes I am willing to submit a PR!

The behavior of coro::sleep depends on the behavior of executors. Concretely, it depends on the implementation of Executor::after(std::chrono::duration<T,U>). And it is the general idea of async_simple to make the behavior configurable with the executors.

SimpleExecutor is just an Executor for testing. It is not part of libasync_simple. You need to define your own Executor.

We use SimpleExecutor + brpc TimerThread for production currently.
class BGExecutor : public async_simple::executors::SimpleExecutor {
 public:
  static StatusOr<std::unique_ptr<BGExecutor>> NewBGExecutor(
      size_t thread_num) noexcept {
    auto ptr = std::make_unique<BGExecutor>(thread_num);
    auto s = ptr->Init();
    if (!s.ok()) {
      return s;
    }
    return ptr;
  }

  ~BGExecutor() override = default;

  static void TimerTaskFn(void* arg) {
    auto fptr = std::unique_ptr<std::function<void()>>(
        static_cast<std::function<void()>*>(arg));
    (*fptr)();
  }

  BGExecutor(size_t thread_num)
      : async_simple::executors::SimpleExecutor(thread_num) {}

 private:
  Status Init() {
    bthread::TimerThreadOptions options;
    const int rc = timer_.start(&options);
    // rc != 0 when pthread create failed
    // CHECK_IF_RET(rc == 0, Status::Err(),
    //                 "Init BGExecutor. start timer failed : {}. ", rc);
    return Status::OK();
  }

  void schedule(Func func, Duration dur) override {
    async_simple::Executor::Context ctx = checkout();
    auto fptr = std::make_unique<std::function<void()>>(
        [this, ctx, func = std::move(func)]() {
          checkin(func, ctx, async_simple::ScheduleOptions{});
        });
    const auto sec = std::chrono::duration_cast<std::chrono::seconds>(dur);
    auto ts = timespec{
        .tv_sec = sec.count(),
        .tv_nsec =
            std::chrono::duration_cast<std::chrono::nanoseconds>(dur - sec)
                .count()};
    auto* args = fptr.release();
    auto task_id = timer_.schedule(TimerTaskFn, args, ts);
    if (unlikely(task_id == bthread::TimerThread::INVALID_TASK_ID)) {
      // BG3_ERROR("schedule timer task failed");
      TimerTaskFn(args);
    }
  }

  bthread::TimerThread timer_;
};

Closed due to no more questions. Feel free to require to reopen this.


Update README.md

PR: Thank you!
Reason

[x] Fix: Wrong information
[ ] Fix: Typo error
[ ] Fix: License violation
[ ] Add: New Item

Type

[x] Cloud
[ ] S3
[ ] Self-hosted

Name
Box downgraded their free tier to give 10 gb now
Link
box.com
Thank you for improving project
This helps others find hosting of their choise

@iftybito67 thank you for pr.
isn't they are offering 30gb for download mobile app?
For me it was such case

maybe its region dependent? I just downloaded the app to check but it says, box individual 10 GB free

@iftybito67 then this PR is actual and thank you again

@dalisoft thank you for merging
i am new and this is my first merged pull req so thanks

@iftybito67 You found change. I am provide these list for users and if new users does not get 30GB then it's 10GB


Improve api logs

When the log gets rotated in the api container our logs will get
polluted with the following messages from the tail command:
tail: '/var/log/glance/glance-default-single.log' has become inaccessible: No such file or directory
tail: '/var/log/glance/glance-default-single.log' has appeared;  following new file

To prevent his from happening we will redirect the stderr from the
tail command into /dev/null.
This PR also reduces the size used by useless rotated logs.
The log file configured in glance api is only used to pass the data to
the log sidecar, which then outputs the data to stdout and then goes to
/var/log/pods and/or a centralized logging service.
Considering this, there is no need to keep 5 rotated logs, since we'll
also have them in the other locations and there is no way to get them
without actually going manually into the specific container within the
pod.
This patch proposes having a single rotated log (because passing 0 as
max_logfile_count doesn't work as we want in oslo.log) and reducing the
size to rotate from 50MB to 20MB.

/retest

I'm sorry there's extra work to do here, but we should update kuttl to let CI pass [1].
[1] https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openstack-k8s-operators_glance-operator/561/pull-ci-openstack-k8s-operators-glance-operator-main-glance-operator-build-deploy-kuttl/1804064753119662080/artifacts/glance-operator-build-deploy-kuttl/openstack-k8s-operators-kuttl/build-log.txt


Cover state is not being interpreted correctly in Home Assistant

Before submitting a bug please read: https://zwave-js.github.io/zwavejs2mqtt/#/troubleshooting/bug_report
Version
Build/Run method

[ ] Docker
[ ] PKG
[x] Manually built (git clone - npm install - npm run build )

zwavejs2mqtt version: <IP_ADDRESS>bba9ae
zwavejs version: 6.1.3-0-pr-1337-77c6cad
Describe the bug
While new cover feature works correctly from zwavejs2mqtt control panel, cover is showing an "unknown" state in Home Assistant and cannot be controlled.
To Reproduce
Steps to reproduce the behavior:

Add cover device in zwavejs2mqtt with Home Assistant discovery enabled
Check that device shows up in Home Assistant (in my case, it's home_garagedoor)
From the Developer Tools, check the status of the cover (in my case, cover.home_garagedoor_barrier_state)
Status is "unknown"

Expected behavior
Status should be Open or Closed with the ability to open/close the garage door.
Additional context
From MQTT: cover/Home-GarageDoor/barrier_state/config:
{
	"command_topic": "zwave/Home/34/102/0/targetState/set",
	"state_topic": "zwave/Home/34/102/0/currentState",
	"value_template": "{{ value_json.value }}",
	"device_class": "garage",
	"payload_open": "Opened",
	"payload_close": "Closed",
	"payload_stop": "Stopped",
	"state_open": "Opened",
	"state_opening": "Opening",
	"state_closed": "Closed",
	"state_closing": "Closing",
	"device": {
		"identifiers": [
			"zwavejs2mqtt_0xca51aa0a_node34"
		],
		"manufacturer": "Nortek Security & Control LLC",
		"model": "Garage Door Controller (NGD00Z-4)",
		"name": "Home-GarageDoor",
		"sw_version": "2.1"
	},
	"name": "Home-GarageDoor_barrier_state",
	"unique_id": "zwavejs2mqtt_0xca51aa0a_34-102-0-currentState"
}

From MQTT: Home/34/102/0/currentState:
{
	"id": "34-102-0-currentState",
	"nodeId": 34,
	"commandClass": 102,
	"commandClassName": "Barrier Operator",
	"endpoint": 0,
	"property": "currentState",
	"propertyName": "currentState",
	"type": "number",
	"readable": true,
	"writeable": false,
	"label": "Current Barrier State",
	"stateless": false,
	"min": 0,
	"max": 255,
	"list": true,
	"states": [
		{
			"text": "Closed",
			"value": 0
		},
		{
			"text": "Closing",
			"value": 252
		},
		{
			"text": "Stopped",
			"value": 253
		},
		{
			"text": "Opening",
			"value": 254
		},
		{
			"text": "Open",
			"value": 255
		}
	],
	"value": 0,
	"isCurrentValue": true,
	"targetValue": "102-0-targetState",
	"lastUpdate":<PHONE_NUMBER>752
}

Home Assistant version 2021.1.5 shows:

@billiaz

@ratsputin we need to replace strings with numbers in statuses
Reading the states from mqtt:
		{
			"text": "Closed",
			"value": 0
		},
		{
			"text": "Closing",
			"value": 252
		},
		{
			"text": "Stopped",
			"value": 253
		},
		{
			"text": "Opening",
			"value": 254
		},
		{
			"text": "Open",
			"value": 255
		}```

I would change discovery payload to:
```{
	"command_topic": "zwave/Home/34/102/0/targetState/set",
	"state_topic": "zwave/Home/34/102/0/currentState",
	"value_template": "{{ value_json.value }}",
	"device_class": "garage",
	"payload_open": "Opened",
	"payload_close": "Closed",
	"payload_stop": "Stopped",
	"state_open": 255,
	"state_opening": 254,
	"state_closed": 0,
	"state_closing": 252",
	"device": {
		"identifiers": [
			"zwavejs2mqtt_0xca51aa0a_node34"
		],
		"manufacturer": "Nortek Security & Control LLC",
		"model": "Garage Door Controller (NGD00Z-4)",
		"name": "Home-GarageDoor",
		"sw_version": "2.1"
	},
	"name": "Home-GarageDoor_barrier_state",
	"unique_id": "zwavejs2mqtt_0xca51aa0a_34-102-0-currentState"
}```

can you try this and report back to me?

Okay, I updated as suggested:
  "discovery_payload": {
    "command_topic": "zwave/Home/34/102/0/targetState/set",
    "state_topic": "zwave/Home/34/102/0/currentState",
    "value_template": "{{ value_json.value }}",
    "device_class": "garage",
    "payload_open": "Opened",
    "payload_close": "Closed",
    "payload_stop": "Stopped",
    "state_open": 255,
    "state_opening": 254,
    "state_closed": 0,
    "state_closing": 252,
    "device": {
      "identifiers": [
        "zwavejs2mqtt_0xca51aa0a_node34"
      ],
      "manufacturer": "Nortek Security & Control LLC",
      "model": "Garage Door Controller (NGD00Z-4)",
      "name": "Home-GarageDoor",
      "sw_version": "2.1"
    },
    "name": "Home-GarageDoor_barrier_state",
    "unique_id": "zwavejs2mqtt_0xca51aa0a_34-102-0-currentState"
  }

The current state is now reporting correctly:

So, that is fixed.
I cannot, however, control the cover.  Sending an open command doesn't do anything.  Would you prefer I open a separate issue?

Oh, and thank you for responding so quickly.
I think I may see the issue.  Here is the MQTT command that was sent:

However, the ZwaveJS2Mqtt control panel says this:

Never mind.  I manually set targetState to "Open" via MQTT Explorer and it didn't open the garage door.

Oh!  This does seem to be related.  I manually set targetState to 255 and the door opened.

Okay, adjusting the payload values in the same way fixed the opening/closing.  Note that I have no idea what the proper value is to do a "stop" so I didn't adjust that value.
  "discovery_payload": {
    "command_topic": "zwave/Home/34/102/0/targetState/set",
    "state_topic": "zwave/Home/34/102/0/currentState",
    "value_template": "{{ value_json.value }}",
    "device_class": "garage",
    "payload_open": 255,
    "payload_close": 0,
    "payload_stop": "Stopped",
    "state_open": 255,
    "state_opening": 254,
    "state_closed": 0,
    "state_closing": 252,
    "device": {
      "identifiers": [
        "zwavejs2mqtt_0xca51aa0a_node34"
      ],
      "manufacturer": "Nortek Security & Control LLC",
      "model": "Garage Door Controller (NGD00Z-4)",
      "name": "Home-GarageDoor",
      "sw_version": "2.1"
    },
    "name": "Home-GarageDoor_barrier_state",
    "unique_id": "zwavejs2mqtt_0xca51aa0a_34-102-0-currentState"
  },

Thanks again for the quick response and help!

@ratsputin please try to build my pr. It will use only numeric for all commands. or change these based on the pr changes I made

@billiaz This addressed that issue.  Here is the updated discovery payload:
  "discovery_payload": {
    "command_topic": "zwave/Home/34/102/0/targetState/set",
    "state_topic": "zwave/Home/34/102/0/currentState",
    "value_template": "{{ value_json.value }}",
    "device_class": "garage",
    "payload_open": 255,
    "payload_close": 0,
    "payload_stop": 253,
    "state_open": 255,
    "state_opening": 254,
    "state_closed": 0,
    "state_closing": 252,
    "device": {
      "identifiers": [
        "zwavejs2mqtt_0xca51aa0a_node34"
      ],
      "manufacturer": "Nortek Security & Control LLC",
      "model": "Garage Door Controller (NGD00Z-4)",
      "name": "Home-GarageDoor",
      "sw_version": "2.1"
    },

What is odd, however, is I just saw the same issue someone else mentioned when I sent a command to open the garage door.  It opened successfully; however, the position of the garage door still showed shut (0).
This fix does, however, address the issue where Home Assistant wasn't seeing the status correctly.

@ratsputin I believe this is a bug on Hass too, as it does not support intermediate state
Can you open or Clsoe the door, stuck it on a percentage and post a node export? I want to see some details!
It might be possible to make the value to show OPEN if it is not closed! as default state! this way  we make the user aware that something is wrong!
Cover is not supporting position, from what I know!... but we can "script" the template to show it in a state that keeps you aware

@aretakisv Apologies but I really can't test this.  The reason is, my garage door isn't truly integrated.  I have a third-party controller that has a physical tilt switch attached to the garage door itself.  It can't detect intermediate (partially open/closed) states.  Just whether the door is completely open or completely closed.

Then I suspect this is somethign we can accept as is. I will check the FGR222, separately

I'm getting an 'unknown' value from Fibaro FGR222 with the latest Home Assistant 2023.7.1.  The curtains still work to open/close, but the state is unknown.

@quadhammer are you using mqtt discovery or home assistant integration?

The home assistant z-wave JS addon
Driver version: 11.0.0
Server version: 1.29.0

Ok so you should open the issue on home assistant core


chore: ensure there is no staging data in state table on vnode bitmap update

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Prior to this PR, we only check whether memtable is empty in local state store on vnode bitmap update. This PR adds another assertion to ensure there is no staging data in local state store (i.e. all data must be committed via checkpoiont) to ensure that no stale data will be read after scaling.
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

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

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

I think a cleaner way is to let local state store be aware of its own vnode bitmap. We can pass the initial vnode bitmap in init via InitOption, and then we can let it be aware of vnode bitmap update in like seal_current_epoch. When it knows it's going to update the vnode bitmap, it then asserts that there is no staging data. IIRC, all call on update_vnode_bitmap of StateTable is beside commit.

I think a cleaner way is to let local state store be aware of its own vnode bitmap. We can pass the initial vnode bitmap in init via InitOption, and then we can let it be aware of vnode bitmap update in like seal_current_epoch. When it knows it's going to update the vnode bitmap, it then asserts that there is no staging data. IIRC, all call on update_vnode_bitmap of StateTable is beside commit.

Actually I am proposing this PR because I am writing a PR to let local state store be aware of vnode bitmap. It is indeed cleaner to do the assertion when local state store is updating the vnode bitmap. However, I am still thinking whether we should do vnode bitmap update in seal_current_epoch because I saw some logics exist in between update_vnode_bitmap and commit for some executors.

#15183


Obfuscate password in output logs

Should not show passwords in any output message. Maybe create an annotation to make it ease to reuse.
For example, when we call the Fluo config command:
[root@edc0f9c776a5 conf]# fluo config -a test
fluo.accumulo.instance = test
fluo.accumulo.password = pass123
fluo.accumulo.user = root
fluo.dfs.root = hdfs://hadoop01:9000/fluo
fluo.accumulo.zookeepers = <IP_ADDRESS>
fluo.accumulo.table = ${fluo.connection.application.name}

In Apache Camel project they use an util class called URISupport to obfuscate sensitive data from URL's.
public static String sanitizeUri(String uri) {
    // use xxxxx as replacement as that works well with JMX also
    String sanitized = uri;
    if (uri != null) {
        sanitized = SECRETS.matcher(sanitized).replaceAll("$1=xxxxxx");
        sanitized = USERINFO_PASSWORD.matcher(sanitized).replaceFirst("$1xxxxxx$3");
    }
    return sanitized;
}

public void testSanitizeUriWithUserInfo() {
    String uri =<EMAIL_ADDRESS>    String expected =<EMAIL_ADDRESS>    assertEquals(expected, URISupport.sanitizeUri(uri));
}


Not possible to get quoted_tweet?

I noticed you guys commited some changes a while ago for it but did you do anything in practice? I'm trying to access quoted_status but always crashes my script

Can you please provide more details about your script? What line of code is producing an error? What error is it producing? What version of this library are you using? What version of Ruby are you using? What operating system are you using? The more information the better.
Ideally, you’d provide a minimal snippet that reproduces this issue.
I was unable to reproduce this issue using twitter version 5.14.0 on Ruby 2.2.3 on Mac OS X 10.10:
tweet = client.status(637619702639030273) #=> #<Twitter::Tweet id=637619702639030273>
tweet.text #=> "@olivierlacan That’s what got me thinking about this (https://t.co/ONOdkrh2Up)—but the new MacBook is not addressing low-end of the market."
tweet.quoted_status #=> #<Twitter::Tweet id=637587257067745280>
tweet.quoted_status.text # => "@gernot @gruber The gap between the dual-core Intel Core M in the MacBook and the A9X in the upcoming iPad will be small—and it’s narrowing."

Closing as this has been open since August with no response. @greyguy123 if this is still a problem, please feel free to reopen the issue.


Complete rework on how a variant's variables are obtained.

Things this PR fixes:

For a single variant, all variants belonging to its parent job where considered a parent for it. This meant that for each variant, Cibyl made the union from all variables from all variants on each of their parent jobs, which resulted in an inverted pyramid iterator. Now, only the variant that matches the branch of the queried variant will be considered its parent, which leads to a column iterator. This avoids tons of unneeded queries and makes the variables output closer to what Zuul outputs on each build.
A variant may now not have a parent job. This will indicate that the variant belongs to a base job.
It is now possible to fetch the whole hierarchy for a variant.
Zuul API no longer handles recursive variable retrieval. Any processing done at that level should be simple and straighforward.

Other things added:

Added Cache-Aside 'Cache' class for future use.
Adapted test cases to new structure.
Added 'JobFinder' to easily look for a job on a tenant.

You bet I will >:]

Code looks great, as always. I'm not sure I understand this point, though:

* Zuul API no longer handles recursive variable retrieval. Any processing done at that level should be simple and straighforward.

Does it mean that some variables may not be accessed by the variants, that the lookup method is simplified and it uses the hierarchy to get them, or something else?

No, it just a decision on Cibyl's internals. Before this PR, variable retrieval was done on the lowest layer on the Zuul source. At the one that directly interacts with the host. In order to keep consistency I have moved that operation somewhere higher level, where recursive variables become optional instead of a must.
Functionality wise it is the same as before. The new implementation in under the hierarchy.py file.

No, it just a decision on Cibyl's internals. Before this PR, variable retrieval was done on the lowest layer on the Zuul source. At the one that directly interacts with the host. In order to keep consistency I have moved that operation somewhere higher level, where recursive variables become optional instead of a must.
Functionality wise it is the same as before. The new implementation in under the hierarchy.py file.

I understand now, thanks for the clarification.


Revert commits that skip running tests on CI with EKS

See commit msgs.
Since https://github.com/cilium/cilium/pull/11073 has been merged, we no
longer need to skip this test when running on EKS.

test-me-please


question on return shape of tl.cat

the ret_shape of tl.cat only has the size of the 0-dim,
https://github.com/openai/triton/blob/3e2953f3570acc807f975eee58f1565483841b72/python/triton/language/semantic.py#L479-L481
Why is that? does tl.cat only support 1D tensor? It does assert dims except 0 are equal.

Line 480 is probably a bug, but doesn't cause crash in examples because ret_ty.shape is rarely used.


Drivers: adds support for robosense RS80 model

@yfcube Please rebase and resolve conflict first. Thank you.

My bad. Now it's rebased to latest head of master branch with all conflicts resolved.


libvmi: Split performance.go into cpu.go and memory.go

What this PR does / why we need it:
Split performance.go into cpu.go and memory.go to be more specific.
Special notes for your reviewer:
Follow up to #8161
Release note:

None

/cc @EdDev

/approve


Udating example from branch Example

Updates
I updated readme file.  Please review and accept.

Thoughts
I probably shouldn't, but okay. :+1: