Blog in documentation website

Summary of Changes
Adds a blog section to the project website. The blog page is paginated with 5 posts appearing per page. The blog posts are written in Markdown with frontmatter metadata defined at the top of each file (+++ for TOML and --- for YAML).
A first blog post is included in the PR. Screenshots are included below:

Implementation Details
The templates are changed very slightly. Thus, the AdiDoks directory is no longer a sub-module and contains the appropriate files.
Closes #253

It would be great if someone could pull the changes and serve the Zola website to verify if the blog works properly.

It makes sense that we should maintain our own version of the theme so that we can make changes to it. Might be a better idea to fork adidoks under the shrs org and continue to use it as a submodule. The blog itself looks great!

It makes sense that we should maintain our own version of the theme so that we can make changes to it. Might be a better idea to fork adidoks under the shrs org and continue to use it as a submodule. The blog seems to work properly and looks great!

Yeah thats a good idea, lets fork the theme and keep it a submodule.  @AryanAb we have a WIP organization for shrs and I can invite you to that.

The code in the PR is now using the forked repo in the organization. Feel free to change the contents of the blog post as you see fit.


FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/2y/nd0wwb5s7c5flc4d0dm8124m0000gp/T/tmpzqysjxlt/tmp/ndarray-cache.json'[Question]

❓ General Questions

Hi, when I run 'mlc_llm package', there is a weird issue. I tried to debug but no progress yet. Could anyone help me on that? Many thanks! (os: macOS, model: MiniCPM-V-2 downloaded from huggingface: https://huggingface.co/openbmb/MiniCPM-V-2/tree/main)
[2024-07-14 17:02:20] INFO download_cache.py:95: [Git LFS] Downloading tokenizer.model
100%|██████████████████████████████████████████| 10/10 [29:06<00:00, 174.67s/it]
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/main.py", line 64, in
main()
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/main.py", line 53, in main
cli.main(sys.argv[2:])
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/cli/package.py", line 64, in main
package(
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/interface/package.py", line 351, in package
model_lib_path_for_prepare_libs = build_model_library(
^^^^^^^^^^^^^^^^^^^^
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/interface/package.py", line 73, in build_model_library
model_path = download_cache.get_or_download_model(model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/support/download_cache.py", line 228, in get_or_download_model
model_path = download_and_cache_mlc_weights(model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/danieldd/Desktop/mlc-llm/python/mlc_llm/support/download_cache.py", line 183, in download_and_cache_mlc_weights
with (tmp_dir / "ndarray-cache.json").open(encoding="utf-8") as in_file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/danieldd/miniconda3/envs/mlc-chat-venv/lib/python3.11/pathlib.py", line 1044, in open
return io.open(self, mode, buffering, encoding, errors, newline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/2y/nd0wwb5s7c5flc4d0dm8124m0000gp/T/tmpzqysjxlt/tmp/ndarray-cache.json'

mlc_llm package requires the repo in MLC format, while the given model is the original HF model. Please try to convert to MLC weight via mlc_llm convert and then try package cmd


Update set-output in github action to new format

Description
Use of set-output in github action is deprecated. Updating to new format. See https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands.
Release notes
The title of the pull request will be used as the default release notes description. If more detail is needed to communicate to partners the scope of the PR's changes, use this release notes section.
Checklist
General

[x] Added the correct label: < feature | bug | dependencies | infrastructure | ignore-for-release >

Codecov Report

Merging #4031 (4658672) into main (02b5e80) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #4031   +/-   ##
=========================================
  Coverage     80.08%   80.08%
  Complexity     2454     2454
=========================================
  Files           298      298
  Lines          9803     9803
  Branches        667      667
=========================================
  Hits           7851     7851
  Misses         1696     1696
  Partials        256      256

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add continuous integration

I'll make a .travis.yml file for Travis continuous integration that you can use with your tests

Go for it!


Redirect is not working after login

Pre-requisites

[X] I have double-checked my configuration
[X] I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
[X] I have searched existing issues and could not find a match for this bug
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened/what did you expect to happen?
When visiting a workflow in argo workflows on a session that needs authenticating (oauth), the user is correctly redirected to the login page, but, once logged-in, the original workflow that was intended to be visited is lost and the user ends up at the workflow list page.
I would expect that, after log in, the user is redirected to the original URL that initiated the auth flow.
Version
latest
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
not applicable

Logs from the workflow controller
not applicable

Logs from in your workflow's wait container
not applicable

What is your configuration? Does reading through #13031 help you?

Sorry, yes this can be marked as a duplicate of #13031


Update CONTRIBUTING.md

We're using this PR as a test PR for #55 right? So we shouldn't merge this one yet?


Textinput cursor fixes

Fixed:

All TextInput instances have the same _adjust_viewport trigger, so if one changes cursors in several TextInput widgets simultaneously, it only scrolls to the new cursor position in the last widget.
Text "trembling" when resizing TextInput.
The reason is that currently it scrolls to the beginning before the next frame and then to the cursor after the next frame.

Minor fixes.
a) self.cursor is in fact a tuple, so it should be initially set as tuple, not list;
b) When widget size changes self._trigger_refresh_text() is already called in self._update_text_options (which is bound to 'size' in __init__), so no need to duplicate it.

Maintainer merge checklist

[ ] Title is descriptive/clear for inclusion in release notes.
[ ] Applied a Component: xxx label.
[ ] Applied the api-deprecation or api-break label.
[ ] Applied the release-highlight label to be highlighted in release notes.
[ ] Added to the milestone version it was merged into.
[ ] Unittests are included in PR.
[ ] Properly documented, including versionadded, versionchanged as needed.

Seems that Read the docs build fails with Sphinx 4.2.0, see the bug description.

Addition: fixed 'del' action for wrapped words.
Currently if cursor is at the end of the line and word is wrapped, 'del' deletes character to the left from the cursor (i.e. acts like backspace).
Reason: 'del' currently equals "move cursor one char right plus backspace", but for wrapped words cursor just moves to the beginning of the next line. so it's index doesn't change.


Split ModbusMessages

Describe the bug
RTUUtils causes certain messages to be cut into smaller parts and it seems to miss some bytes, causing E2 - CRC Check errors and E5 - Packet length error.
For example:
  | 0000: 01 03 3E 00 60 00 00 00  00 00 00 00 00 00 00 02  |..>.`...........|
  | 0010: 79 01 02 00 7A 00 01 00  00 02 7B 00 01 00 00 00  |y...z.....{.....|
  | 0020: E2 00 00 02 B9 00 00 0B  D6 27 28 02 79 4C 9F 00  |.........'(.yL..|
  | 0030: 00 00 08 00 50 0F 71 0C  A8 00 01 00 01 00 64 00  |....P.q.......d.|
  | 0040: 01

Gets cut into firstly this which is received as a full message even tough it is only a part of it.
01 03 3E 00 71 02 7B 00 04 01 3D 00 00 00 00 02 79 01

Following this par, which gets registered as another message again.
02 00 7A 00 01 00  00 02 7B 00 01 00 00 00 E2 00 00 02 B9 00 00 0B  D6 27 28 02 79

and then this part, which probably gets interpreted as the response for the 2nd request.
F9 53 06 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 A7 AD

Log calls
Successfull message:
[N] Received packet: @3FFDE3C4/37:
  | 0000: 01 03 22 00 00 00 00 00  00 00 00 00 00 00 00 00  |..".............|
  | 0010: 00 00 01 0E 5C 00 00 78  3C 00 00 96 5C 00 96 AD  |....\..x<...\...|
  | 0020: 3C 00 21 E2 17                                    |<.!..           |
[N] Received packet: @3FFDE5CC/65:
  | 0000: 01 03 3E 00 60 00 00 00  00 00 00 00 00 00 00 02  |..>.`...........|
  | 0010: 79 01 02 00 7A 00 01 00  00 02 7B 00 01 00 00 00  |y...z.....{.....|
  | 0020: E2 00 00 02 B9 00 00 0B  D6 27 28 02 79 4C 9F 00  |.........'(.yL..|
  | 0030: 00 00 08 00 50 0F 71 0C  A8 00 01 00 01 00 64 00  |....P.q.......d.|
  | 0040: 01

Error message:
[3082][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).
[N] Received packet: @3FFDE588/1:
  | 0000: E2

Error data:
[9261][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [7], Content: [01 03 3E 00 71 02 7B ]
[9266][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[9291][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [4], Content: [71 D0 0D A8 ]
[9292][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[34242][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [18], Content: [01 03 3E 00 71 02 7B 00 04 01 3D 00 00 00 00 02 79 01 ]
[34247][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[34292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [22], Content: [F9 53 06 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 A7 AD ]
[34297][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[59244][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [19], Content: [01 03 3E 00 71 02 7B 00 04 01 3C 00 00 00 00 02 79 01 00 ]
[59249][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[59293][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [20], Content: [06 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 9B AF ]
[59298][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[144232][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [8], Content: [01 03 3E 00 71 02 7B 00 ]
[144234][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[144292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [32], Content: [02 B9 00 00 0B D6 27 28 02 79 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00
03 6D BA ]
[144300][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[169242][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [18], Content: [01 03 3E 00 71 02 7C 00 04 01 3C 00 00 00 00 02 79 01 ]
[169247][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[169292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [23], Content: [FF 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 E9 E8 ]
[169297][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[194232][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [8], Content: [01 03 3E 00 71 02 7C 00 ]
[194234][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).
[194292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [32], Content: [02 B9 00 00 0B D6 27 28 02 79 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00
03 B1 3E ]
[194300][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).
[219233][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [9], Content: [01 03 3E 00 71 02 7C 00 04 ]
[219236][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[219292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [32], Content: [F3 28 03 00 0B D6 27 28 02 79 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00
03 27 7C ]
[219300][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[244241][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [18], Content: [01 03 3E 00 71 02 7C 00 04 01 3C 00 00 00 00 02 79 01 ]
[244246][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[244292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [23], Content: [02 5E EA 06 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 2B A9 ]
[244300][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[269243][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [18], Content: [01 03 3E 00 71 02 7B 00 04 01 3C 00 00 00 00 02 79 01 ]
[269248][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[269292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [23], Content: [F9 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 33 EA ]
[269298][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[294243][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [18], Content: [01 03 3E 00 71 02 7C 00 04 01 3C 00 00 00 00 02 79 01 ]
[294248][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[294293][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [22], Content: [01 EA 06 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 49 01 ]
[294299][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[319242][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [18], Content: [01 03 3E 00 71 02 7C 00 04 01 3C 00 00 00 00 02 79 00 ]
[319247][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[319292][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [23], Content: [FF 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 8C 91 ]
[319297][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[339351][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [3], Content: [D3 12 FF ]
[339353][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E5) - (Packet length error).

[344233][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [7], Content: [01 03 3E 00 71 02 7C ]
[344235][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[344294][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [35], Content: [7A 00 00 02 B9 00 00 0B D6 27 28 02 79 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01
00 64 00 03 A2 09 ]
[344303][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[364269][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [42], Content: [01 03 3E 00 71 02 7B 00 04 01 3D 00 00 00 00 02 79 01 01 00 78 FF FF 00 00 02 72 00 01
00 01 01 84 00 00 02 B9 00 00 0B D6 27 ]
[364281][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[389244][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [19], Content: [01 03 3E 00 71 02 7C 00 04 01 3C 00 00 00 00 02 79 01 00 ]
[389249][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

[389295][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:497) - Size: [20], Content: [06 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 D2 F8 ]
[389300][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).

I've attached the LogicAnaylzer to see if I can see anything on the Hardware level.
As far as I could debug I can see 2 errors. One of which occurs randomly. That would be that we don't toggle the pin to LOW fast enough and cause as to loose a lot of the message.

And the second one is sistematic and always seems to occurs on the 6th read and is toggling the pin to HIGH and writing a request even tough the receive hasn't been finished.

I've added the 10 minutes I recorded as a .sr file in the .zip.
Session.zip
Really confused why it would be able to request, when the first receive hasn't been processed yet tough.

Baud rate of 9600

There must be something more to that. This send:

must not happen at all due to the intended logics. Only if the gap time has passed by all means the send method shall send:
// RTU mode
    uint16_t crc16 = calcCRC(data, len);

    // Respect interval - we must not toggle rtsPin before
    if (micros() - lastMicros < interval) delayMicroseconds(interval - (micros() - lastMicros));

    // Toggle rtsPin, if necessary
    rts(HIGH);

You did not mess with the interval etc., or did you? 😉
Can you print out the three values of micros(), interval and lastMicros here (RTUutils.cpp, send(), in RTU mode)

You did not mess with the interval etc., or did you? 😉

No but I can add the log calls as well. Have to produce the errors again, because it doesn't happen all the time, but if it does it happens like shown above.

Another oddity: even if the logic has determined the response was complete and does start another send(), the first it does is reading everything left in the UART buffer. So the remainder of the data can not continue being received after the send is over, as the LA file is suggesting?!?

Same behaviour as before the 6th request always fails with reading 2 blocks each.
// Block 1 / Read 1
micros(): 75643485
interval: 3645
lastMicros: 55725944
// Block 2 / Read 1
micros(): 75729346
interval: 3645
lastMicros: 75724811
// Block 1 / Read 2
micros(): 76641774
interval: 3645
lastMicros: 75782499
// Block 2 / Read 2
micros(): 76727874
interval: 3645
lastMicros: 76723125
// Block 1 / Read 3
micros(): 77641688
interval: 3645
lastMicros: 76780104
// Block 2 / Read 3
micros(): 77727897
interval: 3645
lastMicros: 77723084
// Block 1 / Read 4
micros(): 78641684
interval: 3645
lastMicros: 77780077
// Block 2 / Read 4
micros(): 78727675
interval: 3645
lastMicros: 78723041
// Block 1 / Read 5
micros(): 79641708
interval: 3645
lastMicros: 78780033
// Block 2 / Read 5
micros(): 79727504
interval: 3645
lastMicros: 79722996
// Block 1 / Read 6
micros(): 80644552
interval: 3645
lastMicros: 79779568
// Block 2 / Read 6
[80661][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).
micros(): 80672250
interval: 3645
lastMicros: 80663446

micros(): 100643717
interval: 3645
lastMicros: 80717627
micros(): 100729889
interval: 3645
lastMicros: 100725189
micros(): 101641323
interval: 3645
lastMicros: 100782607
micros(): 101727246
interval: 3645
lastMicros: 101722590
micros(): 102641378
interval: 3645
lastMicros: 101779300
micros(): 102727210
interval: 3645
lastMicros: 102722631
micros(): 103641617
interval: 3645
lastMicros: 102779282
micros(): 103727784
interval: 3645
lastMicros: 103723063
micros(): 104642628
interval: 3645
lastMicros: 103780048
micros(): 104728556
interval: 3645
lastMicros: 104724019
micros(): 105644774
interval: 3645
lastMicros: 104780616
[105664][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).
micros(): 105675511
interval: 3645
lastMicros: 105663557

micros(): 150644341
interval: 3645
lastMicros: 130692701
micros(): 150730374
interval: 3645
lastMicros: 150725702
micros(): 151641517
interval: 3645
lastMicros: 150782654
micros(): 151727626
interval: 3645
lastMicros: 151722804
micros(): 152643295
interval: 3645
lastMicros: 151779738
micros(): 152728961
interval: 3645
lastMicros: 152724578
micros(): 153641664
interval: 3645
lastMicros: 152781130
micros(): 153727739
interval: 3645
lastMicros: 153723106
micros(): 154641625
interval: 3645
lastMicros: 153780085
micros(): 154727707
interval: 3645
lastMicros: 154723056
micros(): 155644655
interval: 3645
lastMicros: 154780048
[155660][MB][E] (lib/modbus/ModbusMaster.cpp:304) - Error: (E2) - (CRC check error).
micros(): 155671828
interval: 3645
lastMicros: 155663499

I'm using the TinyServer branch currently just so you know. Pretty sure there aren't any breaking changes tough.

I did not find a missing update of lastMicros unfortunately. It is just a single task in the client doing the RTU handling, so we will not have any concurrency issue here either.
The DE/RE line is pulled in the middle of the receive, with no gap at all, although the log tells it differently:

Can you spot the last byte that is reported as received in comparison to those on the LA dump? Could it be that the gap was detected a few ms earlier somehow?

Since we can not use log statements in the receive loop without affecting the timing, can you alternatively do a digitalWrite(pin, HIGH);digitalWrite(pin, LOW); after a byte has been read just before this line
          // Do we need to skip it, if it is zero?

in RTUutils.cpp and connect that pin to another LA channel?
Then we may get an impression how the Serial read relates to the UART traffic.

Can you spot the last byte that is reported as received in comparison to those on the LA dump? Could it be that the gap was detected a few ms earlier somehow?

 [01 03 3E 00 71 02 7B ]

Content: [01 FF 40 0C 00 02 B9 00 00 0B D6 27 28 02 79 4C 9F 00 00 00 08 00 50 0F 71 0C A8 00 01 00 01 00 64 00 03 C3 EF ]

So the gap is detected several ms before actually.
This hints to the Serial FIFO handling again - the read() does not see the bytes arriving at the pins in time. Can you add the pin toggle that I suggested in my last post?

Will do, need a second to sotter the pin tough. Will come back once I collected the data.

Unfortunately I will have to leave in about an hour for most of today, so whatever you can provide to help me analyze over the weekend is welcome.

Connect that pin to another LA channel?

RTUutils.cpp at both line 308 / 265
digitalWrite(5, HIGH);
// Buffer has space left - try to read another byte
b = serial.read();
digitalWrite(5, LOW);

The reads seem to stop in the middle of the first message the same as I can see in the log calls above.

Attached you can find the sigrok file (D0 is the CS toggle, D1 is RX, D2 is the pin that I toggle each read and D3 is the TX)
SessionWithPinToggle.zip

I find it utterly strange that D2 stays high for more than a moment. You made it HIGH, read single byte, LOW. This means there must be something going on in the serial.read() function.

That was my bet from start.
Bert Melis @.***> schrieb am Fr., 24. Juni 2022, 13:08:

I find it utterly strange that D2 stays high for more than a moment.
You made it HIGH, read single byte, LOW. This means there must be something
going on in the serial.read() function.
—
Reply to this email directly, view it on GitHub
https://github.com/eModbus/eModbus/issues/198#issuecomment-1165466535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGFPLXFOUNOLUY5HLDDNTS3VQWJKFANCNFSM5ZUMYX6Q
.
You are receiving this because you commented.Message ID:
@.***>

It may not be in the read itself but somewhere else though. Read is guarded by a mutex.

Looks like the read() is doing something under the hood indeed.

It also happens when reading successfully. But as long as the read operation time stays below the gap it happily moves on.

I had a look at the RMT in the meantime. It would be usable up to about 250000 baud, but it requires substantial pre- and postprocessing and a set of large ring buffers. A kind of last resort I would say and only for the ESP32.

Retrospectively I now can see why I had to put seemingly arbitrary delays into my test sketch to get the >100 RTU tests going in a row. Since the effect is worsening with lower baud rates, the interfering code (if there is some) must run in timed cycles, not based on other events. Plus it must have a very high priority to be run while the serial read is on.
I found some evidence this has been noticed before by others as well, but no one seems to have cared enough to get it finally analyzed or even resolved. All were related to the arduino-esp32 environment, by the way.

Retrospectively I now can see why I had to put seemingly arbitrary delays into my test sketch to get the >100 RTU tests going in a row.

That would also explain why enabling logging decreases the occurrences of the error.

Would it be possible to write an issue on the main espressif32 branch?

I must confess I have had not the best of experiences doing so in the past. In most cases one is ignored, sometimes after having been taught a lesson that did not relate at all to the issue described.

@bertmelis A wild idea: we should be able to use the IDF API to read out the configured values with the get methods, then delete the driver the arduino-esp32 core had installed for the selected UART.

At that point isn't it simpler to just use the esp-idf base instead of arduino espressif32.

I'll just try to create an issue for now and I'll see where it leads. The worst that can happen is that nobody cares.

I believe the Arduino is at this moment nothing more than a wrapper around IDF. Buffer size and timeout is already settable. I'll try some options but we're leaving on a 14 day holiday and I've got a load of other tasks. I may be able to squeeze this one in in the coming days.

I'll just try to create an issue for now and I'll see where it leads. The worst that can happen is that nobody cares. Might you know any good title? Because the issue seems to be the read If I understand it correctly?

"No real-time serial.read() possible " came to my mind.

Any idea on what sketch I could provide?

Would be nice if you could look at the issue request if you think I should add anything else.

I am busy today in the morning unfortunately and away from my PC.
I would suggest to write a sketch with two tasks, one writing to a serial chunks of >200 bytes, the other trying to read the data byte-wise from another serial and connect these crosswise. The reading serial will have to be set to a 1-byte threshold as is done in UARTinit().
Baud rate low, like 2400.

Very good! How does it behave then?

Well, it generates the callback when the whole message is received and only then. No onError callback is called because the application here doesn't generate an error. Timeout calculation is not on target though. Might also be the way it is measured (toggling pin in the callback, which is slow in itself). But I think it can be used in our context.

Of course, I moved to pin toggle to the very beginning on the onReceive callback and now it seems spot on 4 chars.

👍🏻
I will try to integrate that into RTUutils today.

I am completely cut off the cable network again, so I doubt I will be able
to do anything today.
Whenever you hear Vodafone, simply run... :angry
Bert Melis @.***> schrieb am Di., 28. Juni 2022, 13:44:

The 4t char timeout is a pity - if we are a server and the client on the
bus is using exactly 3.5t between the last response and another request,
the server would not detect that. If we took 3t instead, we might be
missing slow servers instead.
Yes, float values are not supported. I'm not sure if we can call one of
the ESP-IDF methods directly to finetune. I don't see a possibility yet.
—
Reply to this email directly, view it on GitHub
https://github.com/eModbus/eModbus/issues/198#issuecomment-1168614176,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGFPLXGJWM2YXO2GKAIU63DVRLQQZANCNFSM5ZUMYX6Q
.
You are receiving this because you commented.Message ID:
@.***>

I checked the ESP-IDF calls the arduino-esp32 core is using: the RX timeout threshold is a uint8_t there as well, so no chance to have a finer granularity. But you are right, Bert, a value of 3 should do.
Hopefully I get back into the net tomorrow or so, so I can try out the revised receive.

Dang. The onReceive() callback does not know which serial it is attached to and has no way to find out. Or has it?
Problem is, if we have more than one RTU client or server in one sketch, these will be using different serials and have different target buffers to fill with the (mostly received) data.
My current approach is to have instance-specific callbacks, but that is less efficient, because the code has to be duplicated for client and server.

Note: we are creating a fixed dependency from Platformio platform version >=5.0.0 here. Older platform versions are not compiling any more.

Next obstacle: in ASCII mode we can have messages up to 513 bytes long and have a much longer timeout that is not to be covered by the RxTimeout. So classic RTU mode and ASCII mode are no more switchable at will, but will have to be defined at the time the UART is initialized.

Is there ever more then 1 leading zero? I never investigated this but I'd expect only one. If there are more, it's fishy at least.

Is there ever more then 1 leading zero? I never investigated this but I'd expect only one. If there are more, it's fishy at least.

AFAIAC even the first is fishy 🤣
I have stopped for today and will move on tomorrow. I do not like the different handling yet, but that may change over time...
(Aren't you supposed to be vacationing? 😉 )

Leaving on Sunday but preparing... And it's 35° here in Warsaw. Too hot to think.

Is there ever more then 1 leading zero? I never investigated this but I'd expect only one. If there are more, it's fishy at least.

Worse... Since we are supporting broadcasts now, the skipLeadingZero handling will effectively prevent broadcasts from being received at a server using it. That has no dependencies from the new serial handling, but already is so with the existing code.
One more argument to insist to find the root cause for the zeroes and not filtering them.

I still believe the zero is generated by the TX->RX switch.

It is. But if we're toggling right after sending, and the server/client respects the 3.5 chars it will come in as a separate message because of the 3 char timeout.

ASCII mode really is a show stopper. The larger buffer required is a minor thing, but the allowable timout of 1s minimum is not. The RxTimeout value is of type uint8_t, so we have 255 characters passing for a timeout maximum. With 10 bits per character we already will break that limit with 4800 baud.
I am afraid we will have to keep track of the timeouts in ASCII mode by regularly checking the fill level of the RX buffer. If it did not change any more for the timeout time, we can state a timeout. At the same time we must actively read and check the read characters to detect the CRLF message trailer in time to not waste time by waiting for the timeout. The pattern-matching interrupt the IDF provides is not taken over into arduino-esp32, so we can not make use of that. 😠

This might come to the rescue, but it isn't merged and it's certainly not released yet: https://github.com/espressif/arduino-esp32/pull/6930

Sounds good indeed - if only this really will trigger the interrupt in real time. We hoped that to happen bvefore with our patch of the UART threshold and it did not work for reasons unknown, as we all know.
Our two options are:

continue doing the substantial modifications I am working on
hold it and wait for the PR to be integrated

Option 1 is much more effort than I had thought initially and will break our interface at least internally. Option 2 is undetermined when to be released and will leave the current issue unresolved, but will keep the interface as before.
What would be your advice?

@OekoSolveMG In case you are still interested, the long awaited PR was merged into the arduino-esp32 core yesterday that now opens the configuration options for the UARTs to legally set the FIFO full threshold.
I tested it and found it working for me. I did not have the exact same effects that you experienced, though, so you better should check your code with it yourself.
In the library's RTUutils.cpp you will need to replace the UARTinit() function with the following:
int RTUutils::UARTinit(HardwareSerial& serial, int thresholdBytes) {
  int rc = 0;
#if NEED_UART_PATCH
  serial.setRxFIFOFull(thresholdBytes);
#endif
  // Return the previous value in case someone likes to see it.
  return rc;
}

To use the recent core you will want to add the line
platform_packages =
  framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32

to the [env] section of your platformio.ini file.

@OekoSolveMG @TLS1000
Guys? No reaction yet?

Hi Michael, in our project where we run a dedicated task for the modbus communication, we currently use a simple modbus library from adafruit. It doesn't matter if it's blocking, it has it's own task. For the moment this works for us. But thank you for reaching out.

@TLS1000 Fine with me - thank you for the response!
(I had loved to learn if the new core UART handling will fix your original issue, but never mind. 😉 )

I recompiled my gateway with the mentioned patch, but I'm still seeing an error rate of ~0.5 - 1.5%.

I recompiled my gateway with the mentioned patch, but I'm still seeing an error rate of ~0.5 - 1.5%.

I suppose you took the most recent core from Github? 0.5 to 1.5 is not that much for RTU in fact. Can you sort out other potential influences? Do you have some figures on the error codes encountered (the UART issues mostly are producing E0 and E5 errors)?

First some facts:
platformio.ini:
[env]
platform = espressif32
framework = arduino
lib_deps =
    https://github.com/tzapu/WiFiManager.git
    https://github.com/me-no-dev/ESPAsyncWebServer.git
    eModbus
build_flags = -DLOG_LEVEL=LOG_LEVEL_DEBUG
monitor_speed = 115200
platform_packages =
  framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32

[env:esp32dev]
board = esp32dev

I currently have two modbus devices on different gateways. First is an Eastron SDM72DM-v2 meter using 38400,8N1 polled by mbmd, the other is a Heidelberg Wallbox using 19200,8E1 polled by evcc. The hardware is a custom layout, but the same for both.
The error rate is a rough guess, based on the internal counters of eModbus.
My evcc log shows only the error codes 229 (0xE5) (464 times) and 226 (0xE2) (529 times). My mbmd log also shows only those to error codes - 0xE5 513 times and 0xE2 3436 times.
My gateway has a web debug interface, where I can select the slave id, function, register and register count. After submitting it enables and redirects the eModbus debug log to the http response stream, sends the request, waits for the response and disables the debug log.
From there I can send arbitrary modbus requests and by testing a few things I can tell, that the error rate correlates to the length of the response. Also the interval between the requests seems to play a role.
If I send 10 requests to query 20 registers and wait 2 seconds between each request, they all work. If I don't wait, only 50% succeed, while the other half reports 0xE2 and from the debug output I can tell that the response is truncated.
If I reduce the number of registers to one, two or even ten, of all of them succeed.

@zivillian Any new insights or data?

@Miq1 it took me a while to setup my hardware, but I've successfully captured a broken frame:
[D] 331590| ModbusClientRTU.cpp  [ 222] addToQueue: RC=01
[D] 331591| ModbusClientRTU.cpp  [ 240] handleConnection: Pulled request from queue
[D] Sent packet: @3FFDF588/6:
  | 0000: 01 03 00 01 00 28                                 |.....(          |
[D] 331606| ModbusClientRTU.cpp  [ 245] handleConnection: Request sent.
[D] 331645| RTUutils.cpp         [ 265] receive: 2052us without data
[D] Raw buffer received: @3FFE15C8/51:
  | 0000: 01 03 50 00 00 42 70 00  00 00 00 00 00 43 5C 00  |..P..Bp......C\.|
  | 0010: 00 41 20 00 00 40 40 00  00 42 C8 00 00 00 00 00  |.A ..@@..B......|
  | 0020: 00 00 00 00 00 00 00 00  00 3F 80 00 00 00 00 00  |.........?......|
  | 0030: 00 44 7A                                          |.Dz             |
[D] Received packet: @3FFDF588/1:
  | 0000: E2                                                |.               |
[D] 331691| ModbusClientRTU.cpp  [ 259] handleConnection: Error response (1 bytes) received.
[D] 331691| ModbusClientRTU.cpp  [ 280] handleConnection: Response generated.

Error: 0xe2 (CRC error)

I've used the following patch:
@@ -256,7 +256,7 @@ ModbusMessage RTUutils::receive(HardwareSerial& serial, uint32_t timeout, unsign
         // Are we past the interval gap without another byte?
         if (micros() - lastMicros >= interval) {
           // Yes, terminate reading
-          LOG_V("%ldus without data\n", micros() - lastMicros);
+          LOG_D("%ldus without data\n", micros() - lastMicros);
           state = DATA_READ;
         } else {
           // No, still in reading sequence
@@ -275,7 +275,9 @@ ModbusMessage RTUutils::receive(HardwareSerial& serial, uint32_t timeout, unsign
             }
           }
           // Buffer has space left - try to read another byte
+          digitalWrite(32, HIGH);
           b = serial.read();
+          digitalWrite(32, LOW);
         }
         break;
       // DATA_READ: successfully gathered some data. Prepare return object.
@@ -304,7 +306,11 @@ ModbusMessage RTUutils::receive(HardwareSerial& serial, uint32_t timeout, unsign
       case FINISHED:
         // CLear serial buffer in case something is left trailing
         // May happen with servers too slow!
-        while (serial.available()) serial.read();
+        while (serial.available()) {
+          digitalWrite(25, HIGH);
+          serial.read();
+          digitalWrite(25, LOW);
+        }
         break;
       }
     }

It look's like the serial.read() is interupted:

modbus_truncated.zip

Dang. This is exactly the behaviour that was seen before with the older UART core handling. Thank you for taking the effort to check it.
There must be something going on in the core that I can not grab yet and is independent from the public Serial interface. The way we are using it is calling read() quite often - perhaps that is internally running against some limit?
I asked you before, but did not see an answer yet: what kind of ESP32 are you using? The two guys having the same issue had a M5stack, so just in case...

I'm using an ESP32-WROOM-32-U.

Great 😜 There goes my theory...
@bertmelis Do you have any idea left?

I recompiled my gateway with the mentioned patch, but I'm still seeing an error rate of ~0.5 - 1.5%.

It is not about just compiling the code with the patch... it must execute Serial.setRxFIFOFull(1); for instance.
Please check these links:
https://github.com/espressif/arduino-esp32/issues/6921#issuecomment-1294432464
https://github.com/espressif/arduino-esp32/issues/6921#issuecomment-1251151968

I recompiled my gateway with the mentioned patch, but I'm still seeing an error rate of ~0.5 - 1.5%.

It is not about just compiling the code with the patch... it must execute Serial.setRxFIFOFull(1); for instance. Please check these links: espressif/arduino-esp32#6921 (comment) espressif/arduino-esp32#6921 (comment)

@SuGlider That is what we do in fact. Since the issue seems to be remaining with @zivillian 's code it must be caused by something else. Unfortunately, I must say. 😟

Thanks, @Miq1 - If necessary I have added an example that illustrates well the impact of RX FIFO Full in ESP32 Arduino read() (or anything related to receiving data, including available())  at https://github.com/espressif/arduino-esp32/pull/7412

Thank you again, @SuGlider ! The way you are doing the internal Serial loopback is most interesting for me. I have written a regression test sketch for our library that at the moment does require two Serial ports to be physically wired crosswise. I will try to replace that requirement with your pattern.
As for the original issue we have here the hunt for the reason is open again...

@Miq1 - More examples about using the internal Serial loopback:
https://github.com/espressif/esp-idf/blob/master/components/driver/test/test_uart.c

Sorry for the late reply, I forked the repository and changed the mentioned UARTinit() function to simply set serial.setRxFIFOFull(thresholdBytes);
Sadly I still seem to receive E2-CRC Errors
[60508][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:472) - Size: [16], Content: [01 03 3E 00 60 00 00 00 00 00 00 00 00 00 00 01 ]
[60512][MB][E] (lib/modbus/ModbusMaster.cpp:334) - Error: (E2) - (CRC check error).
[60555][E-MB][DUMP] (.pio/libdeps/m5stack-core-esp32/eModbus/src/RTUutils.cpp:472) - Size: [9], Content: [FF 31 A8 00 01 00 01 00 64 ]
[60559][MB][E] (lib/modbus/ModbusMaster.cpp:334) - Error: (E2) - (CRC check error).

I didn't catch an E5 yet but does occured seldomly in the previous version as well.

Thanks for the report. Yeah, that matches what we found in the meantime. The root cause seems to sit in the lower levels of UART handling not visible to us and no remedy was found yet. I only can speculate on what it may be - rather is looking like some kind of interrupt trouble to me.
I still am planning to try the other way at some time to let the underground logic do all the work until the receive timeout has struck or the buffer is full. That will make Modbus ASCII non-op for the time being, but at least will teach us if the interference with the internal UART handling could be a reason.
I am wondering if someone has got a serial streaming solution working at all. The recent changes in the arduino-esp core were done for that purpose, but I reckon they will face the same issues with it.

I previously utilised the ModbusMaster and I never had any problems (neither split messages nor too short messages), but the library is really barebones and does not even remotely offer the same options as eModbus. It could very well be that it simply ignored all failed packets and did not inform the upper layers about failures.

The only things that still seems to cause problems is when the eModbus is called from 2 different tasks instead of just 1. That seemed to cause a lot of the E2 and E5 errors again.

Ooops. Can you describe the application in more detail that shows this behaviour? Normally the library itself should be thread-safe, so it again may be a race condition when using the serial?

There is one task running on any core with a priority of 2 that attempts to send data to the modbus, and an additional task running on any core, that requests data from the modbus and runs with a priority of 10.

Please even more detail: which calls do the respective task use and how are the ModbusClientRTU/ModbusServer instances set up?
Normally a client will push the requests on a queue and responses are brought back via the callbacks (onData/onError), that are run in the eModbus background task. You seem to have done that differently?

Well. the callbacks in fact are called from the eModbus worker task, thus are running in the context of that task.
So both of your tasks are given a pointer to the ModbusClientRTU instance upon start? So theoretically it may happen to have both task on different cores call addRequest() for that very instance at the same time?

Not really a instance the ModbusClientRTU is simply a global instance and both tasks have access because they are in the same .cpp file, but yeah that could very well be the case.
I would need to try it again with fixed cores so both tasks are on the same core.

I had a quick look again at the code. Should work as long as you are indeed using the very same instance for your ModbusClientRTU::addRequest() calls. The locking mechanism is instance-specific. Should you happen to instead create a copy by accident, the mechanism will of course not work any more.
You should keep an eye on your token creation mechanism, though: if you are using millis() for it, you may end up with two requests having the same token that easily can be confused by the logic.

I reckon this will be gone now with the reworked RTU handling.
@OekoSolveMG correct me if I am wrong 😉


If bpm job crashes there is no hint in cf-operator for this fact

cf-operator should log something if bpm jobs fails. It's also (for us) not possible to get the logs of the failed bpm job. Is there a way to see these logs?

@kramerul Hi. Could you please explain what it means that not possible to get the logs of the failed bpm job?

If the bpm job finishes (with an error) it's not possible to call
kubectl log <finished jo>

because the pod doesn't exist any mode.

@kramerul Could you list failed kube job:

I don't remember the exact environment. I think it was somehow related to ##645

@kramerul Could you please use master branch to reproduce this? #645 was also fixed.

'stern' does a great job at collecting and printing container logs:
stern --all-namespaces '.*dm.*' --container-state terminated

@kramerul Could you please use the latest cf-operator to retry?
Reopen it if it occurred again.


Add feature switch for v3 profile page

Part of https://github.com/studentinsights/studentinsights/issues/1990.
Who is this PR for?
developers, educators (NB training on 8/23 specifically)
What problem does this PR fix?
The profile v3 page isn't enabled yet, and there's no way to enable it.
What does this PR do?
Adds an env variable for forcing this to be enabled, keeping please as a magic querystring param that allows the v2 profile page to still be accessed.

selfie


[Question]: Create new API end points with appsmith

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I have user table, which can be used to maintain the user login to a website. This table contain username and password. Is it possible to create new API end point from Appsmith itself.
Steps To Reproduce

We have user table which contain username and password.
There is no any existing End points.
Now I need to created new endpoints for the login with the help of appsmith.

Public Sample App
No response
Issue video log
No response
Version
1.7.9

@junaidtk You should be able to connect to that table from one of our DB plugins if you want to use it in an Appsmith App.
Can you please elaborate what are you trying to achieve here?

@junaidtk for such questions you can visit our discord forum


GEODE-2951 Remove --pageSize from docs of gfsh search lucene

The code commit to remove this gfsh search lucene command line option has already been completed.  This PR updates the docs to remove the option from the command reference page.
@boglesby @davebarnes97 @joeymcallister @dihardman @upthewaterspout @nabarunnag @DivineEnder @ladyVader @jhuynh1 and any other interested parties
Can a couple of you do an ultra-quick review of this simple change to the docs, so that it can be merged in for inclusion in a Geode 1.2 release?

+1 - Looks fine to me.
On Fri, May 26, 2017 at 12:30 PM, Dave Barnes<EMAIL_ADDRESS>wrote:

@davebarnes97 approved this pull request.
LGTM +1
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/geode/pull/542#pullrequestreview-40602142, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AUMy_UrQpzbTYeZs5jH3mAVXgJRHu6n6ks5r9yhegaJpZM4Nn5Wj
.

+1

Merged in with d3543d229de46a3a582881484bccf3b77d8ac505.


query param auto remove special chracter

Describe the bug
<EMAIL_ADDRESS>const [searchParams, setSearchParams] = useSearchParams();
the searchParams.token itself will auto remove + and other special characters.

I just encountered something that I suspect might be similar.
Here's a minimal example:
https://codesandbox.io/s/sharp-nash-bu49bj?file=/src/main.tsx
In short, I have an  like this:
<A href={`/login?returnTo=${encodeURIComponent(returnTo)}`}>Log in

If returnTo is set to /, I'd expect to be sent to /login?returnTo=%2F, and that's the value I can see in the bottom left corner of the browser when I hover over the link.
However, When I click that , I actually get send to login?returnTo= (last character missing). I get the feeling the two issues might be related?

the searchParams.token itself will auto remove + and other special characters.

setSearchParams doesn't look like it attempts to encode the value.  If your value could have characters that are illegal in the url you'd need to do something like:
setSearchParams( {token: encodeURIComponent(token)} )

@RAnders00 That does look like a bug.
I can see there is an internal utility (normalize) called to strip leading and trailing "/" characters ...but I don't think it was considered having a trailing slash on the end of a query string (eg /login?returnTo=/).
I'm not sure but the function below may need to split the query string off the path, then normalize the path, and finally append the query string again.
https://github.com/solidjs/solid-router/blob/528a2dcaaf1fe69737ae753d6a75f66dea6d2c7f/src/utils.ts#L12-L27

@dnguyenlearning Sorry - I see what you mean.
I can see the router decodes the query string - then writes the decoded version back into the address bar (with invalid characters).
@RAnders00, yes that does seem sort of related.  Like, if the router left the query string encoded then the last character wouldn't have been a slash and therefore wouldn't have been trimmed.


Optimize the Governance dApp for Mobile Viewing

Hi,
We would like to submit for RFP-1: Optimize the Governance dApp for Mobile Viewing.
Test link for http://<IP_ADDRESS>/ (will be on for 7 days from this submission for testing)

This looks awesome, here are some things that I noticed that could be improved:
On the /proposals route, when I scroll down on mobile and the tab links stick to the top of the viewport, the eco logo partially covers the links, I think the logo should be hidden if the width is so small that there is no room for it. Also the link text gets very close to the top of the viewport, maybe we should add a little padding top there.
And then the MobileNav component is using placeholder html for the wallet info and disconnect button, I think that needs to be swapped with a custom style of the WalletItem component.

Updated @paged1

@paged1  kindly confirm the updated

Thank you. I think this is ready to merge. I'm going to make sure the ecomponents repo PR is merged and updated first so that this can point to the new dependency version.
https://github.com/eco-association/ecomponents/pull/2

cool...

any idea when this will be merged @paged1

Please update the @ecoinc/ecomponents library to v1.1.0

updated

Thank you! @paged1 let's take a final look after these changes and merge if it's all good 🚀

This commit should also update the yarn.lock file, could you also include that, please?

Thanks for updating the dependency! I ran it and noticed the header has a weird left/right padding now, here's a screenshot of what I see:

Let me know if that was intentional but if not it should be fixed. Other than that I think it's good to merge! @carlosfebres


[Feature Request]: Add chroma.enviornment for debugging

Describe the problem
users run into issues and we don't know their build environments
Describe the proposed solution
We should add a chroma.enviornment or equivalent that emits relevant info (version, platform, deps etc) so we can better debug.
Alternatives considered
No response
Importance
nice to have
Additional Information
No response

Trayan is working on this

examples to study:
https://redis.io/commands/info/
https://docs.pinecone.io/docs/manage-indexes#checking-the-status-of-a-pod-size-change
things we may want to expose that we dont yet have:
class labels
size in GB?
memory utilization?
wild ideas
p50/p99 read/write load
p50/p99 latency
i know this would normally be caught in an observability setup but itd be really nice if chroma tracked this top info and it was easy to query
any meta info that would help a DBA or someone programmatically managing a Chroma instance...

Let's revisit this and see how it fits in distributed - https://github.com/chroma-core/chroma/pull/1144


Feature Request: Memory Search Function

To create more reliable RAM hacks, it would be great if there was a function for searching the memory till a certain search template comes up. The function prototype should look similar to this:
int findFirstMatch(int startingAddress, char searchTemplate[])
The starting address is useful for reducing the searching overhead and allows for picking "less unique" search templates. The function should return the first address where the given search template is found the first time and for example -1 if it is not found. Since dumping memory over the local network is slow, this has to be implemented on the server and not on the client side.
In reference to Wii hacking, this is similar to the F6 codetype. Searching server-sided has proven to be very fast, the process completes in less than 1 second instead of several minutes. This would be incredibly useful to have back.

I already have this in my fork of pyGecko, I just need to port it over. The way mine works is that it has a start, end, alignement, and then the array of bytes. It returns an array of all memory locations where the needle was found.
I need to get this into the public pygecko, but it requires a different codehandler

@dantarion
I'm already using the modified codehandler by Onion_Knight to allow multiple TCP connections. We really need to merge all the goodies into one codehandler since everyone seems to do improvements on their own...

If you have changes that can be easily merged into this, submit a pull request. The issue with my changes is that I almost completely rewrote a bunch of stuff, so I need to merge all of those changes back in by hand.

I didn't do any changes myself so you can go ahead and merge your's :)


Project doesn't run on tvOS

Describe the bug
Hi I'm trying to run my project on the tvOS for the first time. But when I'm entering the command rnv run -p tvOS everything goes like it should up to the point where after the task checkLockAndExec. I get the error and the run stops (error message pasted in  Screenshots or copy&paste)
To Reproduce

Run command "rnv run -p tvOS"
error occurs

Expected behavior
Project runs as expected
Screenshots or copy&paste
error: unknown option `--project-path'
Command failed with exit code 1: node /Users/metroport/WebstormProjects/middleware-react/node_modules/react-native-tvos/local-cli/cli.js run-ios --project-path platformBuilds/app_tvos --scheme RNVAppTVOS --configuration Debug --simulator Apple TV --allowProvisioningUpdates
error: unknown option `--project-path'
Desktop (please complete the following information):

OS: macOS v13.4
Node Version v16.13.0
RNV Version v0.36.0

@piotr-s-nowak Hello, thanks for reporting this issue, could you please try 0.37.1 version?

@piotr-s-nowak Hello, thanks for reporting this issue, could you please try 0.37.1 version?

@pauliusguzas unfortunately, it behaves same with [0.37.1] version

@piotr-s-nowak what version of xcode are you using?

@pauliusguzas I tried running it with version 14.3.1 and 14.0

@piotr-s-nowak hello again, could you please try 0.37.3?

Closing as answer has been provided


Android export is crashing

i want to know if a custom export template (.tpz) file is needed for export because the engine is compiled so may be this issue is occuring because i am using the official export templates over the custom Godot engine that's why it is failing to export the project properly whereas it works properly in the editor.

Looks like the same as #14, let's keep track there.


set YT image quality

Library get's hqdefault image throu YT API, any chance to set another quality like maxresdefault?
Thanks

Solved by data-thumbnail="https://i.ytimg.com/vi/VIDEO_HASH/maxresdefault.jpg"


refactor: drop 'SSM' prefix from runtime environment variables

Pull Request Test Coverage Report for Build 44
Details

4 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.872%

Totals

Change from base Build 43:
0.0%

Covered Lines:
126

Relevant Lines:
133

💛  - Coveralls


Specify in environment variable the directory for Ant to use to create temp files

Ant generates a lot of temporary files that it needs for processing. We could let the user define where to create them, so no dev mistakenly commits one of them to the repo if he sees it inside the project.
Low priority, since it's unlikely this happens.

CumulusCI 2 now uses Python's tempfile module to generate temporary directories and temporary files and deletes them when done.


Field does not become dirty after touching it

I noticed that my field did not become dirty after I touched it.
Reproduction:
https://github.com/martinszeltins/regle-testing
Screencast:
Here you can see that I touched the cityName field but when calling $extractDirtyFields() it returned an empty object.
https://github.com/user-attachments/assets/c8ad18d5-4e0a-41a2-bfe7-b6eab4fb03ae

Thanks! I tested it and I found one minor issue. I changed address.cities[0].cityName field and then called extractDirtyFields but got this result:
for some reason cities[1] is an empty object but I did not touch cities[1], I only touched cities[0]
{
    "cities": [
        {
            "cityName": ""
        },
        {}
    ]
}

Yep that's wanted, for arrays it's better to return an empty object than just null I think

Yep that's wanted, for arrays it's better to return an empty object than just null I think

Yeah, you're right 👍🏻


Type override

This PR is to test the nvm overridy type PR

Looks like a single zsh test is still failing. However, it might be the test file itself and the way it's mocking things?

For this one we are getting something like this:
wget command info wrong(stage 1), expected: '/usr/bin/wget', got 'wget is /usr/bin/wget'
Isn't the grep command getting the correct the value since we are getting it now

that seems right to me; can you update the test?


label make put down in new live a select box...

i make label and just also put asiade the select box and does not mantain in same line:

how to adressed that ? with minimal code.. picnic are the only that causes me that? please any tip to correc that?

Could you add some code to reproduce it in a JSFiddle please? Though the only "side-by-side" kind of style in picnic is in Grids: https://picnicss.com/documentation#grids

hi @franciscop i'll give to you in couple of some hours.. i need to prepare the case due in the example i noted that i was using pickathing event jquery (i dont like jquery bloabed )

soryy for late.. please i'm very busy right now in the weeking i'll paste some piece of code .. after i finished some work for my job


FK relation between Keys and Addresses

Finally had some time, proposed solution for issue #26

Cool!
What about a data migration that handles upgrading?

Yes, once I have a little more time ;-)

Cool, I'll wait to merge until then.
I guess it will actually require splitting the schema migrations into two, so that we can

add new field
migrate data
drop old field

that sounds sensible, yup

had to insert a migration to add a default to Key.addresses so we can revert changes

Looks good, thanks again!


Use XAML to define the Render method of components (Code-Behind pattern)

Hello, I have a question / proposal.
Is possible define the Render method in XAML instead in class?
I prefer write:
MyButton.cs
public partial class MyButton : Component<MyButton.Props, MyButton.State>
{
  class Props {...}

  public MyButton() : base(new Props { }) {...}
}

MyButton.cs.xaml
<button class="my-button">{Binding children}</button>

Instead of:
public partial class MyButton : Component<MyButton.Props, MyButton.State>
{
  class Props {...}

  public MyButton() : base(new Props { }) {...}

  public ReactElement Render()
  {
    return Dom.Button(
      new Attributes { },
      this.children
   );
  }
}

There are any plans for support XAML?
Thanks you!

I think that there would need to be support in the Bridge compiler to support xaml and I'm not aware of them having any plans on that front.
If I'm being stupid and there is a way for Visual Studio to translate the xaml into regular .cs content that the Bridge compiler will then translate into JavaScript then it may be possible.. feel free to reopen the issue, if so!

As I know, a xaml file is compiled into CRL class that initialize as properties its children, but I'm not really sure.


Safari: CC/subtitles broken

I am on Safari 10.1.2, and HEAD of master.
When I try to load a video with VTT subtitles declared in the manifest (using BaseURL, not segmented, but I doubt it matters), there is an error thrown on simple_text_displayer.js:194.
  if (shakaCue.textAlign == 'center' && vttCue.align != 'center') {
    // Workaround for a Chrome bug http://crbug.com/663797
    // Chrome does not support align = 'center'
    vttCue.position = 'auto';
    vttCue.align = 'middle';
  }

The error thrown says "The provided value is non-finite". I think it's similar to this issue here: https://github.com/mozilla/vtt.js/issues/364
And then subtitles aren't shown on Safari at all, though the video/audio will continue playing.

We need to reproduce locally, file a bug on Apple if there isn't one yet, then work on a polyfill for Safari to fix it in JS.  Thanks for the report!

The fix will be cherry-picked to v2.2.2.


Bumped Function/Tuple generation up to 10

The code wasn't tested for values >9, this commit fixes those cases also.
If @danieldietrich thinks this should be bumbed up to 22 or back to 8, the rest of the fixes still make sense.
Addresses: https://github.com/javaslang/javaslang/issues/1839

Current coverage is 98.16% (diff: 99.45%)

Merging #1848 into master will increase coverage by 0.08%

@@             master      #1848   diff @@
==========================================
  Files            87         93     +6
  Lines         11247      11983   +736
  Methods           0          0
  Messages          0          0
  Branches       1864       1941    +77
==========================================
+ Hits          11031      11763   +732
- Misses          119        121     +2
- Partials         97         99     +2

Powered by Codecov. Last update 2c1f4cc...b33da04

Awesome, thank you!


about_PSReadline.help.txt is not UTF-8.

You might want to fix the non-compliant help file. :)

Could you elaborate on why a file must be UTF8?
If the file is pure ascii, there's no ambiguity w.r.t. code pages, and PowerShell handles the help file just fine, so it really doesn't matter from my point of view.

It's a standard, Jason, and tools that post-process the help files rely on that encoding guarantee. As to the rationale for that encoding, you'd have to ask DanielHa, Lee or Nana.

June, I'm well aware of standards - I do work on parsers for a living.  ASCII is also a standard, and in my experience, there are more tools that handle ASCII but not UTF8 than vice versa.
At any rate, I'll change the encoding if somebody tells me those post-processing tools aren't working, otherwise there doesn't seem to be a point.

But ASCII, even without the UTF8 BOM, is still valid UTF8.  From Wikipedia https://en.wikipedia.org/wiki/UTF-8 :

The first 128 characters of Unicode, which correspond one-to-one with ASCII, are encoded using a single octet with the same binary value as ASCII, making valid ASCII text valid UTF-8-encoded Unicode as well.

Could it be that some tools are requiring a UTF8 BOM when they need not?

Keith, to test file encoding, I'm using https://gist.github.com/jpoehls/2406504.

@juneb Handy but Get-FileEncoding command implementation is a bit naive.  Just because a file doesn't have a BOM, it does not mean that it is an ASCII file.  See this article by Raymond Chen on the issues related to detecting a text file's encoding: http://blogs.msdn.com/b/oldnewthing/archive/2007/04/17/2158334.aspx


🔥 Reset 2023 ducks

Getting ready for 2024.
Also try to Fix GhA image-actions versionning, try to run the GhA on the reset-ducks branch. No image file should be found tho so not sure on the expected output.

Thanks @yannbertrand ! 💪


Attaching alert while creating view does not work as documented

This does not work (1.8.0):
https://github.com/logdna/terraform-provider-logdna/blame/main/docs/data-sources/logdna_alert.md#L80
│ Error: Unsupported argument
│
│   on main.tf line 101, in resource "logdna_view" "test":
│  101:   slack_channel = data.logdna_alert.test_alert.slack_channel
│
│ An argument named "slack_channel" is not expected here. Did you mean to define a block of
│ type "slack_channel"?

Looks like we need to update our documentation. The correct way to fill in a block from a source is with a dynamic block e.g.
resource "logdna_view" "test" {
  name  = "Basic View"
  query = "level:debug my query"
  dynamic email_channel {
    for_each = data.logdna_alert.external_remote.email_channel
    content {
      immediate       = email_channel.value["immediate"]
      operator        = email_channel.value["operator"]
      terminal        = email_channel.value["terminal"]
      triggerinterval = email_channel.value["triggerinterval"]
      triggerlimit    = email_channel.value["triggerlimit"]
      emails          = email_channel.value["emails"]
    }
  }
}

@jakedipity - yes, that works. Please update the docs, other folks were having the same or related issues:
cc
https://github.com/logdna/terraform-provider-logdna/issues/44
https://github.com/logdna/terraform-provider-logdna/issues/26

@philippfrank - This fix does not attach the preset to the view. Instead, it creates as a view specific alert. I was expecting to see something like a preset and used by multiple views in the LogDNA UI


user-2 feels a bit big

please explain the issue clearly

I think it's actually user-*-2 that are too small.

I think it's actually user-*-2 that are too small.

True


The caching part looks just fine, maybe we could merge that part immediately if there is anything to change in the other part.
I think in our proofs it is more common that some of the current constraints are implied by the new constraint, and can be removed to simplify the problem.


Use Strict in Plutus Tx

I think the two inlining mysteries I spotted are probably making things a bunch worse, worth investigating.


Update az-overview.md

Updated list to Mainstream, Foundational and specialized services plus split of Specialized into a separate section.

@awysza : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @awysza - This content has a private repository. If you're a member of the product team (a PM), you probably will want to work there. Do you need information about working in the private repo? Thanks.


set termguicolors and set spell break colorschemes in the Windows console, Windows Terminal, and mintty

Steps to reproduce
Prerequisite: have a markdown file with many highlighted elements, such as https://github.com/lifepillar/vim-gruvbox8/blob/master/Readme.md

vim --clean .\Readme.md
:colorscheme retrobox
:set spell
:set termguicolors

Visual result:

Expected behaviour
Colours should be displayed correctly. The following screenshot is from gvim.

Version of Vim
9.0.2026
Environment
OS: Windows 11 22H2 build 22621.2428
Terminal: conhost, Windows Terminal 1.18.2822.0, mintty 3.6.4 (x86_64-pc-msys)
$TERM: xterm-256color (only applicable to mintty)
Shell: cmd.exe, PowerShell 7, MSYS2 Bash 5.2, MSYS2 zsh 5.9
Logs and stack traces
No response

Hm, I cannot reproduce this. Using the same font and vim --clean -c ':colorscheme retrobox' -c 'termguicolors bg=dark' Readme.md It looks quite okay to me:

Actually, it seems the SpellBad highlighting breaks some things (because the characters get displayed darked then without spelling enabled) in the terminal, but that might be an issue with the markdown syntax file.

hm, it seems t_ue is causing this. These are the relevant terminal codes for underline in an xterm:
  t_ue=^[[m
  t_us=^[[4m

In a win32 terminal it is:
  t_ue=^[|24m
  t_us=^[|4m

If you set it like the xterm codes, it seems to fix the highlighting
:set t_us=^[[4m t_ue=^[[m

Note that the ^[ is a literal escape char.

@chrisbra Thank you for the quick response. The solution you offer fixes the highlighting, but introduces an annoying screen flicker whenever I move throughout the text, unfortunately.
https://github.com/vim/vim/assets/22897138/2f40ce9b-52d6-4cc5-ba44-6f2f9659d36a

well, try to find out what the correct escape code is then

@chrisbra All right, I'll see what I can do. Thank you for your help.


Connecting WS2812 5050 LED Strip

Hello,
I was wondering if it is possible to connect WS2812 5050 LED Strip with FastLED?
The strip require 5V if I understood.
I have both old and new version. According to the scema it is written

Old version  VBus VSYS
New version : VBus +5V
I was wondering what is the difference ? What VSYS mean ? is it 5V also ?

I tested on Old version it doesn"t work. If I plug on 3.3V it works but LED are all scramble. Not enought power I think
Could you provide some clarification ?
Thanks !

A large strip cannot practically powered by the board, it requires a separate power supply and just join the grounds together.

The fun fact is that it works on a small TTGO-T-Display but not on the AMOLED
Do I have to "power" both GND ? (I leave one empty)

My bad, it seems to works with 3.3V. This weird behavior seems to be related with a bug in the code that was replicated on 2 test devices. So everythings fine !


Fixing the spaces in file paths in the rerun file causing the file list ...

...to be split incorrectly
fixes #629

Thanks!

I've also cherry-picked this into master.


getWorksheet does not work after piping into input stream rather than using workbook.xlsx.read

I actually am having several issues trying to use this library in an Angular 4 application.  I'll focus on the one in the title, but I'll mention the others for context.
The first problem is that using import * as Excel from "exceljs"; produces errors regardless of the scripts I include in .angular.cli.  See my comments on issue 348.  As you can see, I must import from exceljs/dist/exceljs.min.js instead.  The problem with that is that type definitions are no longer picked up by VS Code.  That, however, is a minor inconvenience.
The main problem is with reading a file from a stream.  Using workbook.xlsx.read(stream) works, but .read() is not in the type definitions for exceljs, so I must cast it as any in order to use it.
I looked at the docs and found the suggested method of using stream.pipe(workbook.xlsx.createInputStream()).  It does read the file and makes my code cleaner, so I want to use that method instead, but when I do that, .getWorksheet(), .worksheets, and .eachSheet() all fail to find any worksheets even though I can see in the console from logging workbook that the sheets are indeed on the workbook and have the correct properties.

i am having the same problem.
i read the stream like the docs suggested (with stream.pipe(workbook.xlsx.createInputStream()))
and the resulting workbook has no worksheets for some reason.
any idea why?


fix: chart axis range

Codecov Report
Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (5b8c1fb) compared to base (215bd1e).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff            @@
##             alpha       #23   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           19        19
  Lines          594       594
  Branches        46        46
=========================================
  Hits           594       594

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

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

Impacted Files
Coverage Δ

controller/sentry/admin.py
100.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add delegate to allow manipulations before checking a field's post data

Several examples of advanced manipulations of post data and/or field behaviour have been disussed in the past. Right now, I have once again worked on the idea of having "conditionally required" fields (depending on the post data of other fields).
My idea is to use a custom extension (which may contain hardcoded rules for a single website, why not...).
I added a delegate in class.entry.php:
public function checkPostData($data, &$errors = null, $ignore_missing_fields = false)
{
    $status = Entry::__ENTRY_OK__;
    $section = SectionManager::fetch($this->get('section_id'));
    $schema = $section->fetchFieldsSchema();

    foreach ($schema as $info) {
        $message = null;
        $field = FieldManager::fetch($info['id']);

        Symphony::ExtensionManager()->notifyMembers(
            'EntryPreCheckPostFieldData',
            class_exists('Administration', false) ? '/backend/' : '/frontend/',
            array(
                'field' => &$field,
                'post_data' => &$data
            )
        );

        if ($ignore_missing_fields && !isset($data[$field->get('element_name')])) {
            continue;
        }

        if (Field::__OK__ !== $field->checkPostFieldData((isset($data[$info['element_name']]) ? $data[$info['element_name']] : null), $message, $this->get('id'))) {
            $status = Entry::__ENTRY_FIELD_ERROR__;
            $errors[$info['id']] = $message;
        }
    }

    return $status;
}

This allows me to do the following in an extension (which subscribes to the delegate):
/**
 * Before checking a field's POST data,
 * manipulate the field object or POST data.
 *
 * @uses EntryPreCheckPostFieldData
 * @param string $context
 * @return void
 */
public function entryPreCheckPostFieldData($context)
{
    if ($context['post_data']['someselectboxlinkfield'] === '303368'
        && ($context['field']->get('id') === '415' || $context['field']->get('id') === '1315')) {
        $context['field']->set('required', 'yes');
    }
}

As you see, I have created two "conditionally required" fields. More might be possible. :-)
I post this here to discuss if the delegate is a useful addition to the Symphony core. Maybe it can even be improved.

I like it very much.
I would add the $error variable and the $section variable in there too.

Yes, you are right. I will prepare something… the delegate needs a comment as well.

Indeed. No stress ;)

What about this?
/**
 * Prior to checking a field's post data.
 *
 * @delegate EntryPreCheckPostFieldData
 * @since Symphony 2.7.0
 * @param string $context
 * '/backend/' resp. '/frontend/'
 * @param object $section
 *  The section of the field
 * @param object $field
 *  The field, passed by reference
 * @param array $post_data
 *  The post data, passed by reference
 * @param array $errors
 *  The errors, passed by reference.
 */
Symphony::ExtensionManager()->notifyMembers(
    'EntryPreCheckPostFieldData',
    class_exists('Administration', false) ? '/backend/' : '/frontend/',
    array(
        'section' => $section,
        'field' => &$field,
        'post_data' => &$data,
        'errors' => &$errors
    )
);

BTW, to which branch should I send a PR for this?

One thing that came to my mind: Passing the complete errors array by reference makes this rather error-prone. Sort of "We hope you know what you do." We might think about passing only the error of the field in question (which is $errors[$field->get('id')] in this context, or simply $errors[$info['id']]). But on the other hand, this would make it less flexible.
What do you think?

Quite frankly I hope anyone playing with delegates and creating extensions
knows what they're doing or at least reads some documentation / how the
stuff works. If it's a question of it not being documented I guess we just
make a small note in the wiki at the very least.
On Sun, 24 Jan 2016 at 00:19 michael-e<EMAIL_ADDRESS>wrote:

One thing that came to my mind: Passing the complete errors array by
reference makes this rather error-prone. Sort of "We hope you know what you
do." We might think about passing only the error of the field in question
(which is $errors[$field->get('id')] in this context, or simply
$errors[$info['id']]). But on the other hand, this would make it less
flexible.
What do you think?
—
Reply to this email directly or view it on GitHub
https://github.com/symphonycms/symphony-2/issues/2545#issuecomment-174231436
.

But on the other hand, this would make it less flexible.

I though about the same thing and concluded the same as @jonmifsud did...
Also, $errors[$field->get('id')] might not exists so passing null by reference would crash (?)

OK, so shall I send a PR? To which branch?

Integration, right?

Could you submit it against the newly 2.7.x branch ? I need to rebase integration and update my php setup in order to do so...

Sure, I will submit against 2.7.x.

Thanks.

Done

Thanks!


RDKBWIFI-6: Add trasnmit power limit tlv handle

This change adds transmit power limit tlv support in controller and agent. The value of transmit power limit is received correctly on the agent side through the channel selection request message.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Can you please resolve the conflicts?


Laptop Usage - Returning from sleep

It seems like nebula doesn't handle returning from sleep very well. Any ssh connection over nebula understandably dies, however, it also generally takes me restarting nebula, or issuing repeated pings to kind of "wake up" nebula. Even in the case of restarting nebula there seems to be a few seconds after a connection attempt is made before a connection is established.
It seems like maybe something could be tweaked here to make things initially a bit snappier? I'm not sure what nebula does as far as keep alive/checks to reestablish connections if anything.

I'm closing this I think I need to look into this matter further.

#YouFuckedWithTheWrongNigger
(Google Search: “all nigger lover haters, go to hell” ... without the
quotes)
https://twitter.com/motorious_cars/status/1314810862163636225?s=10
@TwitterSupport
Try a #TwitterSearch_4 @Google #VisionZeroTech...🤔🥺🙄🤬@jack @dickc @biz
... or #WoleMFayemi 😒 @EUJustice @UN @TheJusticeDept @tumblr @facebook
@Pinterest @CNBC @AP @BloombergTV @VisionZeroJC @Visionzeronet
@VisionZeroUK @VisionZeroSF @SEC_News
On Fri, Oct 2, 2020 at 11:58 AM Wyatt Childers<EMAIL_ADDRESS>wrote:

It seems like nebula doesn't handle returning from sleep very well. Any
ssh connection over nebula understandably dies, however, it also generally
takes me restarting nebula, or issuing repeated pings to kind of "wake up"
nebula. Even in the case of restarting nebula there seems to be a few
seconds after a connection attempt is made before a connection is
established.
It seems like maybe something could be tweaked here to make things
initially a bit snappier? I'm not sure what nebula does as far as keep
alive/checks to reestablish connections if anything.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/slackhq/nebula/issues/311, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AREFP3CM44AM6JCQCVJZTHTSIX2AVANCNFSM4SB3RNRQ
.
--
Director of Research
DDD_DinoDesignDevelopment
Wolé M Fayemi |<EMAIL_ADDRESS>SEMA.org | Motorious Automotive, llc

177 Winthrop Avenue, #306
Brooklyn, NY 11221
Cell:<PHONE_NUMBER>

I got an error message from gmail. Did it come through the first time ?
On Tue, Oct 13, 2020 at 9:16 AM wolé mobolaji fayemi<EMAIL_ADDRESS>wrote:

Slack Feedback: I have never been able to get your app to invite people to
my channels, by sending them an email. Copying a pasting a link, is, quite
frankly, cumbersome and time consuming. And free time is a luxury I simply
do not have. Could you please address this glitch, which I am assuming is
unique to me (as it renders your whole platform pointless (at least from
the perspective of some one who’s colleaues all emanate from partner
companies, rather from within Motorious. Thanks
DINO (mo torious on LinkedIn)
——
Hi Everone (cc:)
I am using this opportunity to invite you to my most recent Slack Channel:
The Motorious Foundation. Unfortunately because of some glitch, I have
never been able to invite people to my channel using the Slack Invitation
function, as I am always greeted with an error message.
So today, I decided to email this same list of people, and send you step
by step images as they come from my phone, so you can be sure to access the
proper location.
The first step is to join the slack channel i created:
motorious-automotive.slack.com. You just need to enter an email address
to confirm your registration , and you’ll see the inside of the slack
channel.
I am assuming, that from there, in order to join the channel for the
foundation, simply click on the channel marked #motorious-foundation, and
follow the instructions from there. In doing so, this will obviate me the
need to send multiple email messages to long lists of people, with the aim
of keeping everyone up to date as to the state of my crazed mind (kidding.
I meant the state of my solopreneurship). I can post data and information
to this channel, and to those people for whom it’s relevant, you can check
the channel periodically to read what is there, and contact me directly if
need be. I am going to include a copy of the messages I sent to various
companies who I have placed in the construct of the joint effort, so that
you have an idea of what I have planned initially. Any thoughts and
feedback would be highly appreciated, this could hardly be called an area
of my expertise. In my past life on Wall Street, the emphasis was always in
making money, not giving it away. Hopefully, if we can accomplish
populating this room successfully, I will have more confidence in this
software package for our needs. Anyway, I hope you all are well, and take
the time to respond or engage. If it’s something you don’t think is
appropriate for you for whatever reason, it would be very helpful if you
communicated that back to me as well. Have a great day:
Copy of note to BMW Foundation this morning
I am creating the Motorious Foundation (bit.ly/define-motorious |
motorious is a consortium, representing all facets of the auto industry,
though (initially) skewed towards the automotive enthusiast and the
automotive aftermarket. From its inception, the company had written into
its corporate charter, that philanthropy (focused mostly on sustainability,
closing the digital divide, childhood education, and healthcare), and would
donate 10% of its operating profits to its foundation, a charitable lead
trust. A Charitable Lead Trust manages a Trust Fund, of which 5% of the
assets must be donated to other qualifying charities, and does not have any
other functions (or need for staffing). Thus, the consumer would understand
that integral to the brand print of consumer products and services, was
social benefit. The core of the technology behind its marketing mechanism
for parts is the GreenSpeedIndex, which through AI and algorithms, adjusts
the sale price of a given product to the consumer, based upon its
environmental impact (from manufacture, through use, disposal and recycle),
incentivizing the consumer to purchase a greener package.
I have set up, on my current Twitter Handle, a rough proposal for how this
could be structured initially, though the players and roles and
responsibilities would shift over time. While I am not asking for any money
from the BMW Foundation, we will encourage our other members in the
industry to make donations of stock and or cash as they see fit. Many
companies are struggling for a way to show their support of environmental
issues in a meaningful way, and we believe this may be an option may
companies choose going forward. We are NOT in the business of soliciting
funds from the general public. My inclination, given what I know about your
organization as I have followed it closely over the years, is that you
would be among the first companies that the Motorious Foundation donated
funds to.
With that said, I will send you a link to my most recent post, in which I
included the BMWFoundation both in t he body of the tweet as well as tagged
(for being among the supporting and attached documents). To better
facilitate the ability to manage this remotely and allow each team to be
independent, I have started several Slack Channels, In this case, for
Motorious Automotive (sub channel: #motorious-foundation):
motorious-automotive.slack.com.
Proposed: #CLT_CharitableLeadTrust #MotoriousFoundation |
https://twitter.com/motorious_cars/status/1315936957214658567?s=21
Once your team has had an opportunity to evaluate this post, only intended
as an initial outline and guide, terms subject to change, I would like some
feedback as to: 1) if you have any interest in participating and (possibly
more importantly) any ideas or suggestions you have for this construct
moving forward.
Thank you for your time and consideration.
Wolé M Fayemi
Founder, Motorious, Inc
radio.motorious.tv
Twitter.com/RadioMotorious
Twitter.com/motorious_llc
Twitter.com/motorious_inc
Twitter.com/motorious_cars
Twitter.com/motorious_media
Twitter.com/MotoriousA (Motorious GmBH)
Twitter.com/uniti_stores
--
Director of Research
DDD_DinoDesignDevelopment
Wolé M Fayemi |<EMAIL_ADDRESS>SEMA.org | Motorious Automotive, llc
177 Winthrop Avenue, #306
Brooklyn, NY 11221
Cell:<PHONE_NUMBER>

--
Director of Research
DDD_DinoDesignDevelopment
Wolé M Fayemi |<EMAIL_ADDRESS>SEMA.org | Motorious Automotive, llc
177 Winthrop Avenue, #306
Brooklyn, NY 11221
Cell:<PHONE_NUMBER>


test: Add 'kernel-rt' and kernel customization test

Since kernel upgrading from 'default' to 'rt kernel' has SSH connection issue, 'install' kernel and 'upgrade' kernel must have 'kernel-rt' included.

Only RHEL 8.4 repo has 'rt kernel' repo, 'rt kernel' test will be RHEL 8.4 only

@teg @dvdhrm, looks rt repo we're using now does not work with normal repo. I run kernel-rt test on RHEL 8.4 nightly repos, they work well.
repo list:
http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.4.0/compose/BaseOS/x86_64/os
http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.4.0/compose/AppStream/x86_64/os
http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.4.0/compose/RT/x86_64/os/

Error log:
2021-02-21 19:13:52,083: ostree: DNF error occured: DepsolveError: There was a problem depsolving ['python36', 'kernel-rt']:
Problem: package kernel-rt-4.18.0-287.rt7.52.el8.x86_64 requires rt-setup, but none of the providers can be installed
- package rt-setup-2.1-2.el8.x86_64 requires tuned-profiles-realtime, but none of the providers can be installed
- conflicting requests
- nothing provides tuned = 2.15.0 needed by tuned-profiles-realtime-2.15.0-1.el8.noarch
blueprint: ostree v0.0.1

@henrywang Can you elaborate what exactly the issue is? Which repositories do not work? And which work?

The repositories used in the tests are the ones defined here: https://github.com/osbuild/osbuild-composer/blob/main/test/data/repositories/rhel-84.json. It looks to me that we are not using the most recent snapshots, and that in particular the snapshots used for the RT repositories do not match the ones AppStream and BaseOS ones. I would hope updating them should do the trick.

Still has same issue:
[2021-03-06T12:41:29.121Z] 2021-03-06 07:41:27,387: ostree: DNF error occured: DepsolveError: There was a problem depsolving ['python36', 'kernel-rt']:
[2021-03-06T12:41:29.122Z]  Problem: package kernel-rt-4.18.0-287.rt7.52.el8.x86_64 requires rt-setup, but none of the providers can be installed
[2021-03-06T12:41:29.122Z]   - package rt-setup-2.1-2.el8.x86_64 requires tuned-profiles-realtime, but none of the providers can be installed
[2021-03-06T12:41:29.122Z]   - conflicting requests
[2021-03-06T12:41:29.122Z]   - nothing provides tuned = 2.15.0 needed by tuned-profiles-realtime-2.15.0-1.el8.noarch
[2021-03-06T12:41:29.122Z] blueprint: ostree v0.0.1

@henrywang I pushed a commit to update the snapshots, as I wasn't sure if your most recent comment were with our without updated snapshots.


PubSub: No redelivery message if I don't ack or nack message.

Hello, I set up pubsub service for our project, and we use pull way to subscribe, everything is working fine, then we want to modify ackDeadlineSeconds option to test our flow, here comes problems.
If we don't ack or nack message, we don't receive any message no matter what seconds we set up for ackDeadlineSeconds, seems like pubsub doesn't redelivery message at all, and then we add back ack and nack, everything is working again.
My problem is:
Is this expected behavior? It looks like ackDeadlineSeconds doesn't do anything at all.
How can we modify ackDeadlineSeconds and make it work?
Environment details

OS: MacOS 10.14.6
Node.js version: v12.6.0
npm version: 6.9.0
@google-cloud/pubsub version: 0.31.1

Thanks foy any suggestions!

👋 @Royfangs I'm not sure which version of the client you're using, but there is a configurable setting on the hand written PubSub client that will attempt to extend the ack deadline to prevent messages from being redelivered. You can configure it like so
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const subscription = pubsub.subscription('my-sub', {
  flowControl: {
    maxExtension: 10 // 10 seconds
  }
});

If you want to disable it entirely you can set it to 0.
Please let me know if this does the trick!

@callmehiphop  Sorry, I should mention we already modify maxExtension and it doesn't work too.
Below is our code snippet:
`const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const createSubscriptionOptions = {
flowControl: {
maxExtension: 0
},
ackDeadlineSeconds: 20,
expirationPolicy: {
ttl: {
seconds: 31536000
}
}
};
const [subscription] = await pubsub.createSubscription(
this.topicName,
this.subscriptionName,
createSubscriptionOptions
);`

@Royfangs Some of the subscriber/subscription options don't actually persist to the server. Could you try out the following code and see if it helps?
const createSubscriptionOptions = {
  expirationPolicy: {
    ttl: {
      seconds: 31536000
    }
  }
};

const [subscription] = await pubsub.createSubscription(
  topicName,
  subscriptionName,
  createSubscriptionOptions
);

subscription.setOptions({
  ackDeadline: 20,
  flowControl: {
    maxExtension: 0
  }
});

Hello, I got this error message after add seOptions as your suggestion.
(node:57369) UnhandledPromiseRejectionWarning: Error: Failed to "modifyAckDeadline" for 1 message(s). Reason:
at /Users/royfang/Documents/zelda/node_modules/@google-cloud/pubsub/build/src/message-queues.js:201:23
But no matter our original setup or your method, we can see it actually set up ack deadline on goold cloud platform, but not working.

@Royfangs would you be able to provide us with a minimal amount of code that can reproduce the issue in its entirety?

@Royfangs sorry, maybe I mislead you a bit here. Setting ackDeadline via setOptions does not configure the ack deadline on the server like providing it at creation time would. It does 2 things

It configures the stream_ack_deadline_seconds field for all StreamingPull requests.
It is used to configure the frequency at which the client will extend the deadline for any messages that have yet to be acked or nacked.

Setting flowControl.maxExtension to 0 should prevent the deadline from being extended automatically, which in turn would cause the message to be re-delivered.
I went ahead and created a topic with a single message published to it and then used the following code to try and reproduce:
async function subscribe() {
  const [subscription] = await topic.createSubscription('my-sub');

  subscription.setOptions({
    flowControl: {
      maxExtension: 0
    },
    ackDeadline: 20
  });

  subscription
    .on('error', err => console.error(err))
    .on('message', message => {
      const time = new Date().toTimeString();
      console.log(`Received message at ${time}`);
    });
}

However it works as expected and I'm receiving the redelivery roughly every 20 seconds without any errors. Is there anything you can think of that I should change in my sample to help reproduce the issue you are seeing?

@callmehiphop Thanks to mentioning, I know where is the problem.
The problem is I used new pubsub subscription every time I subscribe.
  public subscribe(task) {
// This line causes problem, so I delete it and change it to this.subscription(I encapsulated PubSub service into class, this.subscription is the subscription return by PubSub.createSubscription or get subscription.) ;
    const subscription = this.pubsub.subscription(this.subscriptionName);
    const messageHandler = async message => {
      try {
        await task();
        message.ack();
      } catch (e) {
        message.nack();
      }
    };
    subscription.on('message', messageHandler);
  }
}

And I need to use setOptions every times I got existed subscription, or it didn't configure stream_ack_deadline_seconds when restart project.
  private async getSubscription() {
    try {
      const [subscription] = await this.pubsub
        .topic(this.topicName)
        .subscription(this.subscriptionName)
        .get();
      subscription.setOptions({
        flowControl: {
          maxExtension: 0
        },
        ackDeadline: 20
      });
      return subscription;
    } catch (e) {
      console.log('error', e)
    }
  }

Now it works as expected, thank you so much!

Awesome, thanks for letting us know!


[5.0] Ask for confirmation before running 'artisan fresh'

Hello,
although we can assume that the programmer's project is tracked under a VCS/SCM, it would be good to confirm before running the cleanup this command does. And even if it is tracked, if for some reason it is run in a productive environment, this could cause some serious trouble [for a while] depending on the reaction time.
Any thoughts?

:+1: for this as is.


Update to workshop request form - question about event open to the public

All three of our workshop forms ask if the workshop is open to the public.  We would like to change this question on all three forms as follows, so that we have only two options (removing the "other" option).

Please indicate if this workshop will allow registrants outside of your institution to participate.
Help text: It is not a requirement. Selection of participants is at the discretion of the workshop host.
Radio button: This workshop is OPEN to participants outside of the institution.
Radio button: This workshop is CLOSED and will not allow other participants to attend.

Additionally, the response to this should be included when an event is created from the request form, adding a new field to the event model.

@elichad  @pbanaszkiewicz  do you need more information to implement this feature?

@maneesha no. You can add it to the milestone backlog.


Automate release branch updates

Description
Automate dependencies updates for all supported release branches.
Type of change
What type of changes does your code introduce to the kube-prometheus? Put an x in the box that apply.

[ ] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[ ] FEATURE (non-breaking change which adds functionality)
[ ] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[x] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)

Changelog entry
Please put a one-line changelog entry below. Later this will be copied to the changelog file.

DO NOT MERGE yet as this still requires to backport https://github.com/prometheus-operator/kube-prometheus/pull/1245 down to release-0.5.