active_sta mode build error : "main.cc:148:70: error: cannot convert 'esp_interface_t' to 'wifi_interface_t'"

An error occurred while building in active_sta mode.
(Previously, I successfully collected CSI data in passive mode.)
Tool Settings

Baud Rate: 152000
WiFi Channel per Device: 7
FreeRTOS > Tick rate (Hz): 1000

To Reproduce
Steps to reproduce the behavior:

Build project(s) : active_sta
Flash project(s) : active_sta

Desktop (please complete the following information):

OS: Windows10
ESP-IDF Version: 4.4

Additional context

I'm not sure how this code works but this error can be resolved by simply commenting out the line.

After the above process, I got CSI data.
Hope this helps someone who has the same error.

Hello. Thanks for mentioning the esp-idf version you used.
Currently the project is known to work with v4.0 of ESP-IDF. Small changes may be required to use higher versions, however I have not yet fully tested these higher versions.
From the project README.md:

First, Install Espressif IoT Development Framework (ESP-IDF) by following their step by step installation guide. Notice, this project requires version (v4.0) of ESP-IDF.

There is an existing issue on this github project to update to a higher version of esp-idf (#11). However, I believe versions 4.3 is the current stable version. Since v4.4 is a stable version, I will not plan update to that version yet. If you would like to help update this open source project to a higher version of esp-idf, please feel free to leave some comments in issue #11. Thanks!

@xudesheng Thanks for identifying this. I am surprised that this is the only change that needs to happen to go from 4.1 to 4.3. There are no other errors?
Does the passive project need any updates too?
Please feel free to submit a PR. If you do, please reference #11

@xudesheng Thanks for identifying this. I am surprised that this is the only change that needs to happen to go from 4.1 to 4.3. There are no other errors?
Does the passive project need any updates too?
Please feel free to submit a PR. If you do, please reference #11

Thank you, @StevenMHernandez . My 3 ESP32 are now running as: 1 AP with 2 STA.
I will test passive mode later this week and I will come back with the test result here along with PR.

I have also found that the only line to change to make it work are the one mentioned by @xudesheng .
I have 1 device running with the sta version and another with the ap and does not have any error at runtime (both on ESP32-S2-Saola-1). I have also tried on a C3 but get an error about the image being to big for the device memory... but that's another issue and I am happy with the S2.

@lyndametref Thank you for checking. #39 has these changes pending to be merged. First, I want to fix some deprecation errors before updating the project to 4.3.
I have not worked with the S2 or C3 models. You might consider adding information to the esp32_module_comparison.csv. More info: #33. It would be very useful for everyone to be able to compare different ESP32 models in one place. Thanks!

for active_sta, you can modify it like this (line 148):
//ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config));

for active_ap, you can modify line 115 like:
//ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config));
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config));

Those two constants are different in version 4.3.
@StevenMHernandez Please let me know if I should submit a PR.

Thanks! It really helped a lot!!

for active_sta, you can modify it like this (line 148):
//ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config));

for active_ap, you can modify line 115 like:
//ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config));
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config));

Those two constants are different in version 4.3.
@StevenMHernandez Please let me know if I should submit a PR.

it's really helped me too run with some warnings that's it but I'm not able to connect mobile in AP mode and could not able to scan the wifi devices in  STA mode

This project is now using esp-idf v4.3 which should have solved this issue. If the problem still persists, please reopen the issue and let me know. Thanks.


wasm: use static registration for runtimes

Partially addresses #12574. Refactored test instantiate to removes many ifdefs.
Commit Message:
Additional Description:
Risk Level: Low
Testing: CI
Docs Changes:
Release Notes:
Platform Specific Features:
Signed-off-by: Lizan Zhou<EMAIL_ADDRESS>

Looks good, thanks! Could you verify that this works with --define wasm=disabled when some of those values evaluate to an empty list? Should we include this config in the CI?

Windows CI or Arm64 CI does this :)

Looks good, thanks! Could you verify that this works with --define wasm=disabled when some of those values evaluate to an empty list? Should we include this config in the CI?

Windows CI or Arm64 CI does this :)

Why? V8 should work fine on both Windows and Arm64.

Check CI?
/wait


When inserting new column the column filter "td" is not generating.

Hi Team,
I configured property filters:true to spreadsheet.
I tried to insert new column then new column inserted but last column's filter icon is missing. I verified in html, the filter "td" is not generated for the last column.
Thank you,
Kamesh.

Screenshot..
(https://user-images.githubusercontent.com/39300319/155508512-d8b2709a-ff22-406d-8386-16f92e7b3ab1.png)

Hi,
yes it's a bug known


Translate README.md to Greek / Μετάφραση του README.md στα Ελληνικά

I've only translated the README for now, but plan on doing the rest of the files in the following days.
The localized README mentions it's still incomplete and points to related issue thread for localization guidelines. I also updated the main README with links to the Greek, French and Spanish versions (which are yet to be merged, but I imagine you wouldn't mind merging these soon anyway?)

In the README, clarify the situation for speakers of that language who wish to get support. If you can volunteer to hang out in IRC and triage GitHub issues, mention your username and timezone.

Also, can you move translation status up and make it the first heading after the screenshot?

I'll update this to reflect upon the above. Will also add a reply to the localization thread.

This still needs to clarify how to get support in Greek - I clarified in the guidelines the language to use.

Ευχαριστώ!


Fix documentation for transaction_active_timeout_in default value.

Fixing discrepancy in reporting the default value.

[approve ci autest]

For large responses this would close the connection before the entire response is sent.


Server Crash

Forge: forge-1.10.2-<IP_ADDRESS>4
Crash Report:
https://gist.github.com/knoxhack/05826b909c8af6c58fdaf1a7a1adc02a

First of all, why do you assume my mod caused the error? What did you do to crash the server? Secondly, I do not maintain older versions. If the bug does not occur in the latest released version(v.1.2.4 for Minecraft 1.11.2) I won't fix it.


GT mask for tier3 training data unavailable

Thanks for the great work! Looks like the current code requires training image quads and GT mask quads both available in the train_images_quad/ and train_and_tier3_GT_masks_quad/ directories. However the xView2 dataset tier3 training data doesn't have the target mask, only json labels. The README in this repo indicate you trained on both tier1 and tier3, so just wondering how does it manage to get tier3 masks (do you have a custom tool outside the notebook/ directory?) Thanks again.

I have the same question, too @bcstyle . Also, I find that with only the tier1 data to train the authors' model, the results are not good, far from the results reported in the paper. Specifically, I built the dataset with detectron2_repo/detectron2/data/datasets/builtin.py and trained with the config configs/xview/joint-11.yaml. The loss values fluctuated around 0.92-0.95, and the results were like this:
'score': 0.46962265575037,
'damage_f1': 0.3287440795190166,
'localization_f1': 0.7983393336235279,
'damage_f1_no_damage': 0.8701416378348041,
'damage_f1_minor_damage': 0.2684648232087288,
'damage_f1_major_damage': 0.6044860448356402,
'damage_f1_destroyed': 0.1773316790921047
obviously lower than what was reported in the paper.
I wonder whether you have tried training with tier1 data and whether you got similar results. Also, I wonder if you have found some way to get the target mask of tier3 data. Thanks!

Hey @bcstyle and @Feiyu-Chen-THU, thank you for reaching out. Apologies for the delay in response. During the xView2 competition, I downloaded the preprocessed images from a third-party GitHub repo, if I'm remembering correctly. I'm contacting people from the deactivated discord to see if the data is still online somewhere. Unfortunately I deleted my three local copies when clearing space. Hopefully in a few days I'll have an answer on where to obtain train_images_quad/ and train_and_tier3_GT_masks_quad/.
I believe I used to have a script to compute the target masks from the JSON data, before finding the preprocessed version online. Please give me a few days to reach out and find this data. If it's not online, you can use the code in the repo to convert to COCO format and use that with detectron2 or export the images from the COCO format to mask images, which can then be used with the current data loader. I recommend computing the full semantic images ahead of time.
@Feiyu-Chen-THU what steps did you perform to preprocess the data? I realize my documentation omits these steps, as it depends on the third-party download link. To your question about only using tier1 data, I can't recall only using this data. We used both tiers for everything. However, your results don't look too surprising.
In the case where I can't find the train_and_tier3_GT_masks_quad download link, the steps to reproduce the results are as follows:

Put both tier1 and tier3 images in the same directory.
Generate the GT segmentation masks and save those images in a new folder. (This can be done by parsing the JSON, creating an image, and exporting to PNG.)
Run the script to split every image into "quads", which are the folders mentioned in detectron2_repo/detectron2/data/datasets/builtin.py.

Thanks for your patience, and apologies for the difficulties here. Happy to help where I can. Since the competition, there are also many coding design choices that could be improved when using detectron2. In particular, the model can be updated by simply importing detectron2 as a module, creating a custom model module, and then using the config.yaml to define the network architecture.

Great, I found it! See https://github.com/DIUx-xView/xView2_baseline/releases and the link https://github.com/DIUx-xView/xView2_baseline/releases/download/v1.0/train_and_tier3_GT_masks.tar.gz at this URL. The xView2 team went through the work of preprocessing the images. Please let me know if you have more questions.

Thanks for your kind help @ethanweber ! Now I've got the target masks of tier3!
But I still have some questions about the training results. For the results with only tier1 data which I mentioned before, You asked me about my preprocessing steps. Particularly, I used the script notebooks/NB_make_quad_folder.ipynb to split the downloaded tier1 data (both the images and targets) into quads and then followed with detectron2_repo/detectron2/data/datasets/builtin.py, in which the data set is split into "train"(97%) and "val"(3%) as you set. The model was then trained with your training script and config. The F1 results I listed before were the results on the "val" set (rather than the test set of xview2).
Now I've tried training with both tier1 and tier3 using all the same scripts mentioned above. It seemed that the loss and score stopped improving after about 20,000 iterations (I trained for 45000 iterations in total). However, I doubt whether the training had converged because the results were still not as good as reported in your paper. In particular, the loss fluctuated between 0.91~0.93, and the scores on "val" set were like:
"score": 0.6642076421768593
"damage_f1": 0.6236810027942846
"localization_f1": 0.7587698007362004
"damage_f1_no_damage": 0.8593488372942543
"damage_f1_minor_damage": 0.43722925322840595
"damage_f1_major_damage": 0.7315219849449166
"damage_f1_destroyed": 0.6266717578883918
That's better than only using tier1 data. I then calculated the scores on xview2 test set  (also split into "quads") but unfortunately, the results seemed much worse:
"score": 0.39361882420262057    (0.738 reported in the paper)
"damage_f1": 0.342375332499506
"localization_f1": 0.5131869715098879
"damage_f1_no_damage": 0.549796752588373
"damage_f1_minor_damage": 0.2138389627464597
"damage_f1_major_damage": 0.3482850445293437
"damage_f1_destroyed": 0.4316593046578258
According to your paper, your training took roughly 6 hours to convergence with 4 NVIDIA 1080 TIs. It also took around 6 hours for the 20, 000 iterations in my training, but my GPU is 1 NVIDIA Quadro P5000. So I'm still not sure about the convergence of my training considering different training speeds between devices. It may be helpful if you have the iteration number information of your training! Also, I have no idea about the possible factors leading to the different scores between my training and your work. Do you have any ideas about this? Thanks again!

Hey @Feiyu-Chen-THU, thanks for working through these challenges.
For the paper, I believe we had much fewer iterations than the 20,000 iterations you mentioned. Looking at one of our submissions (output_joint_11_model_0169999), looks like 169999 may be the ballpark when using 1 GPU. Note that we did some experiments on 1 2080 TI, but we did most on 4 1080 TIs, as reported in the paper. The loss definitely fluctuated a lot when we were training models during the competition. After too long, the loss would drop to 0 due to mostly zero labels in the GT masks.
I'd take a look at the following lines in the .yaml config file:
SOLVER:
  IMS_PER_BATCH: 8
  BASE_LR: 0.01

We would scale these numbers proportionally depending on whether we were using 1 or 4 GPUs. With one, I think we used:
SOLVER:
  IMS_PER_BATCH: 2
  BASE_LR: 0.0025

Maybe adjust your learning rate to see if fluctuation will go down, as this can be a sign of high learning rate. Also note that the iteration number will be modified the same scalar as batch size changes. A larger batch size, then fewer iterations to achieve the same result.
Also, you can have a look at this portion of the code and the file where the model is being used. Maybe play around with the loss, but I'd only do this after getting results more similar to what we report.
You could also increase the validation set size for debugging. We kept it very small to maximize performance on the leaderboard.
Good luck! Sorry it's been a challenge so far!

Hey @ethanweber , I think I've found the main problem!
There is a problem within metrics/xview2_metrics.py used for calculating scores. In particular, in line 197-203:
197    def get_path_handlers(self):
198            self.path_handlers = []
199            for path in self.targ_dir.glob('*.png'):
200               geography, img_id, pre_post_type, disaster_or_localization, quad = path.name.rstrip('.png').split('_')
201               assert pre_post_type in ['pre', 'post'], f"type must have 'pre' or 'post' in filename, got {path}"
202               if pre_post_type == 'pre': # localization or damage is fine here
203                   self.path_handlers.append(PathHandler(self.pred_dir, self.targ_dir, img_id, quad))

Note the arguements passed to PathHandler in the line 203, which includes the paths, 'img_id' and 'quad'. Then I paid attention to the initialization function of PathHandler class. In line 41-49:
41    temp = glob.glob(os.path.join(pred_dir, "*{}_pre_disaster_{}.png".format(img_id, quad)))
42    self.lp = temp[0] if len(temp) > 0 else None # localization prediction
43    temp = glob.glob(os.path.join(pred_dir, "*{}_post_disaster_{}.png".format(img_id, quad)))
44    self.dp = temp[0] if len(temp) > 0 else None # damage prediction
45    temp = glob.glob(os.path.join(targ_dir, "*{}_pre_disaster_{}.png".format(img_id, quad)))
46    self.lt = temp[0] if len(temp) > 0 else None # localization target
47    temp = glob.glob(os.path.join(targ_dir, "*{}_post_disaster_{}.png".format(img_id, quad)))
48    self.dt = temp[0] if len(temp) > 0 else None # damage target
49    self.paths = (self.lp, self.dp, self.lt, self.dt)

The problem is that, there are some groups of images with the same img_id and quad, for example, guatemala-volcano_00000005_post_disaster_tl.png and hurricane-florence_00000005_post_disaster_tl.png. In this case, when using arguments 'img_id' and 'quad' in line 203, the list 'temp' in line 41 (43, 45 and 47) may have more than one elements.  Note that in line 42 (same in 44, 46 and 48), temp[0] is used, whose initial intention may be transforming the datatype from 'list' to 'str'. However, this means that the score calculating will only be executed on the first element of the list 'temp'. Thus the validation set (or test set) is not fully used.
To solve this, I use the variable 'geography' in line 200 to get the unique image. Specifically, I changed line 203 into
self.path_handlers.append(PathHandler(self.pred_dir, self.targ_dir, geography, img_id, quad))

and the line 41 (same for 43, 45, 47) was changed into
temp = glob.glob(os.path.join(pred_dir, "{}_{}_pre_disaster_{}.png".format(geography, img_id, quad)))

I then recalculated the scores on the test set, with the same trained model mentioned in my last comment. Then I got:
'score': 0.7132209689110607
'damage_f1': 0.6572387548628302
'localization_f1': 0.8438461350235985
'damage_f1_no_damage': 0.8963012442019946
'damage_f1_minor_damage': 0.42283840420816987
'damage_f1_major_damage': 0.714247630098062
'damage_f1_destroyed': 0.82964281355662}

very close to the results reported in your paper! Maybe further adjustment on the training config can improve it.
Thank you very much for your help! I will pay continuous attention to xview2 challenge as well as other machine learning applications on emergency management and safety science.

Hey @Feiyu-Chen-THU, this is great! Thanks so much for pointing this out and finding this error. By the way, if you like ML for applications on emergency management, you might be interested in checking out a new dataset myself and colleagues just published at http://incidentsdataset.csail.mit.edu/ (project page) and https://github.com/ethanweber/IncidentsDataset (the code). If you're interested in the data, just let me know! It's an exciting time to work on ML for humanitarian aid. :)

Thank you @ethanweber and @Feiyu-Chen-THU ! I ended up converting the json labels with COCO format and export them as png mask, which is also one approach you suggested @ethanweber , but great to see there is an official mask. (I noticed that the COCO approach will result in mask with 3-9% difference in segmented areas compared to tier1 GT mask officially provided. Haven't got a chance to compare with this tier3 mask). Also happy to see this thread help facilitate discussion with @Feiyu-Chen-THU
The Incidents Dataset is very interesting and will be sure to check out. Thank you!

I noticed the difference with the COCO approach too, which is part of the reason I went with the official masks download. I doubt it will change performance much, but it's good to look into. Thanks for all the insights on this thread!

<EMAIL_ADDRESS>构建数据集，并使用配置configs/xview/joint-11.yaml 进行训练。损失值在0.92-0.95左右波动，结果是这样的：
'得分'：0.46962265575037，
'damage_f1'：0.3287440795190166，
'localization_f1'：0.7983393336235279，
'damage_f1_no_damage'：0.8701416378348041，
'damage_f1_minor_damage'：0.2684648232087288，
'damage_f1_major_damage'：0.6044860448356402，
'damage_f1_destroyed'：0.1773316790921047
明显低于论文中的报道。
我想知道您是否尝试过使用 tier1 数据进行训练，是否得到了类似的结果。另外，我想知道您是否找到了某种方法来获取tier3数据的目标掩码。谢谢！

Hello, I am a college student. I downloaded the xview dataset and found the error "KeyError: "Dataset'xview_semantic_damage_quad_train' is not registered!" when I ran the code. I would like to ask how to register the dataset and use xview data Set to run through the code.


Command with argument player and then argument int not working correctly.

First message on screenshot i get when type /test MairwunNx
Second message on screenshot i get when type "/test MairwunNx 15"

Your Brigadier command structure is completely wrong. That is why it is not working.

@PixelLima How should she look right?

Commands.argument("player", EntityArgument.player())
.then(
    Commands.argument("duration", IntegerArgumentType(1, 120))
    .executes(it -> execute(it, IntegerArgumentType.getInteger("duration")))
).executes(it -> execute(it, config.defaultDuration))

Of course, that goes inside the first then()

@PixelLima Thank you for writing the correct code, it works. 🎉
Happy hacking 🍀!


[Refactor] Remove max row length

What type of PR is this：

[ ] bug
[ ] feature
[ ] enhancement
[x] refactor
[ ] others

Problem Summary(Required) ：

Config.max_layout_length_per_row is the limit for row based storage, and is useless now.

[FE PR Coverage check]
:heart_eyes: pass : 0 / 0 (0%)


support bootstrap 4 and bootswatch themes.

I find the branch of bootstrap4 is no longer develop, but I need the new style of bootswatch.
So, I created the bootstrap4 template mode for flask-admin and support bootswatch.
It is similar to the bootstrap3 template. Yes, I transformed bootstrap3 template to bootstrap4 template. 😸
I am open to any suggestions to improve my codes and make it available to all. 😺

So sad, I have done the same thing...
Duplicate of #1847 #1674 #1845
But, this request support  bootswatch.

How about this PR?
@petrus-jvrensburg

How about this PR?
@petrus-jvrensburg

I didn't find flask-admin in his repositories, maybe he has not willing to finish it. 😸

@mrjoes Maybe we should finish it. Supporting bootstrap4 is meaningful. 😸

I'm using @momentxu 's branch, but I'd much prefer to use main flask-admin. Is someone looking into this?

Yes, let me check this out 👍

I would have loved to merge, but this still needs work.  I tried it out locally, but:
• I'm seeing a bunch of 404's in the console, relating to CSS & JS static files.
• Modals aren't working (set create_modal = True or  edit_modal = True and you'll see TypeError: undefined is not an object (evaluating 'Util.getSelectorFromElement') when trying to create / edit.
• Inline-editing is broken (set column_editable_list=[...] and you'll see TypeError: undefined is not an object (evaluating 'Util.getSelectorFromElement') when trying to edit something from the list view.

I merged this into the bootstrap4 branch, which includes a fix that makes the modal windows show. @momentxu can you help fixing some of the items mentioned above, on that branch?

I merged this into the bootstrap4 branch, which includes a fix that makes the modal windows show. @momentxu can you help fixing some of the items mentioned above, on that branch?

Yes, I am glad to work on it!


Enhanced  not working as expected in JAWS

This is feedback from a JAWS user of our prototype:
"This screen did not work as expected. I navigated to what JAWS announced as a combo box. No such box exists within the JAWS combo dialog box, however when I activated the edit field dialog box , it was an edit field. I typed into this edit field and nothing happened. I asked a sighted colleague to use a mouse and then visually a drop down box appeared on screen. I tried to navigate this by using my arrow keys, visually the focus moved according to my colleague, but JAWS did not announce the content. At this point I decided to leave testing the rest of the application."
This is the HTML:
<select name="council-name" class="enhanced-select" name="" id="councilPicker">
      {% include "includes/councils-options.html" %}
</select>

We've included the minified autocomplete JS and it is initiated in the page like this:
$(document).ready(function () {
      accessibleAutocomplete.enhanceSelectElement({
        defaultValue: '',
        showAllValues: true,
        selectElement: document.querySelector('#councilPicker')
      });
    });

Browser IE 11
JAWS V17

Will be in the 2.0.0 release :)


Keyframed AudioStreamPlayer keeps playing audio even when AnimationPlayer playback is stopped

Godot version
3.3.* (should work for any Godot version)
System information
Windows 10, but this shouldn't matter
Issue description
When keyframing an AudioStreamPlayer like this, and stopping playback, the AudioStreamPlayer node keeps playing its sound.

Scrubbing on the timeline also causes it to play, which is really distracting.
Steps to reproduce
Create an AnimationPlayer node with an animation, and create an AudioStreamPlayer node.
Give the AudioStreamPlayer an audio stream in the Stream property, and keyframe the Playing property (with the value true).
Make sure the animation playback is stopped, and scrub over the audio clip on the timeline.
Annoyingly, this makes the audio clip play.
Minimal reproduction project
Repro-AudioStreamAnimationPlayer.zip

I think that the AudioPlaybackTrack is not designed to play long audio like BGM in the first place, but to sequence short sound effects.
Stopping the AudioStreamPlayer at the same time as the animation means that when you place the sound effect at the end of the animation, you will need to offset it for the sound effect. Most likely, #41180 is a PR that addresses them.

I think it should be made more clear in the title and description that the problem is in the editor.

I think it should be made more clear in the title and description that the problem is in the editor.

Look I appreciate the feedback but it’s been almost 3 years since I created this github issue and I don’t remember all the details and I kind of don’t feel like testing this again on the latest release so if you have any suggestions for edits I’m all ears but right now I kind of don’t have the energy to read through all this, test it, and think of something myself


530 show/hide create nav link

IMPORTANT: Always create an issue before a PR and provide enough information so that others can review
Explain the details for making this change.
What existing problem does the pull request solve?
Nav bar will only show the "create" nav-item while a booking request form is currently in the works; otherwise the "create" nav-item will be hidden.
Test plan (required)
Demonstrate the code is solid.  Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.
Closing issues
List all issues this PR resolves

closes #530

Pre-Merge checklist
Complete these items before requesting reviews

[x] Static Analysis Rules Validated
[x] All commits follow naming conventions

Sub-tasks Checklist

[ ] UI Implementation
[ ] UI Test
[ ] Backend Implementation
[ ] Backend Tests
[ ] Integration Tests
[ ] System Tests
[ ] Documentation

@a-drew Do you know if there is a way to check the local session for the booking info and use that in the vue to check for the create button?
if not, this manual bool setting is fine for the frontend

@EvanDime Session is stored server-side :(

@a-drew Do you know if there is a way to check the local session for the booking info and use that in the vue to check for the create button?
if not, this manual bool setting is fine for the frontend

@EvanDime Session is stored server-side :(

I figured. Was hopping maybe there would be a way. Then I approve


feat: pushdown get_format into TiFlash

What problem does this PR solve?
Issue Number: close #5115
Related TiDB PR: 35950
Problem Summary:
Implement GetFormat push down. Refer to the rule in the MySQL doc
Trigger manual integration test with the following command
➜  ~tiup playground --tiflash.binpath /Users/xuanyili/my-code/tiflash/build/dbms/src/Server/tiflash --db.binpath /Users/xuanyili/my-code/tidb/bin/tidb-server

The explain result shows that the expression get_format will be pushdown to TiFlash.
+---------------------------+----------+--------------+---------------+---------------------------------------------+
| id                        | estRows  | task         | access object | operator info                               |
+---------------------------+----------+--------------+---------------+---------------------------------------------+
| TableReader_9             | 10000.00 | root         |               | data:ExchangeSender_8                       |
| └─ExchangeSender_8        | 10000.00 | mpp[tiflash] |               | ExchangeType: PassThrough                   |
|   └─Projection_4          | 10000.00 | mpp[tiflash] |               | get_format(DATE, test.t.location)->Column#3 |
|     └─TableFullScan_7     | 10000.00 | mpp[tiflash] | table:t       | keep order:false, stats:pseudo              |
+---------------------------+----------+--------------+---------------+---------------------------------------------+

Unit Test
ninja gtests_dbms
./dbms/gtests_dbms --gtest_filter='GetFormatTest*'"

Integration Test
./run-test.sh fullstack-test/expr/get_format.test

What is changed and how it works?

Assume the first parameter is always a string constant in the set of (DATETIME, DATE, TIME, TIMESTAMP). Thus, overwrite getArgumentsThatAreAlwaysConstant() by returning {0}.
returns empty string in case of no rule matching according to the TiDB implementation.

Check List
Tests

[X] Unit test
[X] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

Support get_format pushdown to TiFlash.

/run-integration-test

And add UT under dbms/src/Functions/tests

Add release note like 'Support to pushdown get_format to TiFlash'.
And add the pr link of tidb?

And add UT under dbms/src/Functions/tests

And add UT under dbms/src/Functions/tests

Done

Add release note like 'Support to pushdown get_format to TiFlash'. And add the pr link of tidb?

Done

/run-all-test

/run-all-tests

Rebase master instead of Merge. However, encounter a build error. Seems to a lack of contrib library.
CMake Error at contrib/prometheus-cpp-cmake/pull/CMakeLists.txt:14 (add_library):
  Cannot find source file:
    /Users/xuanyili/my-code/tiflash/contrib/prometheus-cpp/pull/src/basic_auth.cc
  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
CMake Error at contrib/prometheus-cpp-cmake/push/CMakeLists.txt:5 (add_library):
  Cannot find source file:
    /Users/xuanyili/my-code/tiflash/contrib/prometheus-cpp/push/src/curl_wrapper.cc
  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
CMake Error at contrib/prometheus-cpp-cmake/pull/CMakeLists.txt:14 (add_library):
  No SOURCES given to target: pull
CMake Error at contrib/prometheus-cpp-cmake/push/CMakeLists.txt:5 (add_library):
  No SOURCES given to target: push

Add release note like 'Support to pushdown get_format to TiFlash'. And add the pr link of tidb?

sorry, i meant to post the tidb pr in the pr description.:)

Add release note like 'Support to pushdown get_format to TiFlash'. And add the pr link of tidb?

sorry, I meant to post the tidb pr in the pr description.:)

No worries!

rebase

/run-all-tests

@SeaRise 1 workflow awaiting approval Could you approve the workflow? The /run-all-tests doesn't trigger the test. I have run unit test and integration test locally and everything looks good.

Rebase master instead of Merge. However, encounter a build error. Seems to a lack of contrib library.
CMake Error at contrib/prometheus-cpp-cmake/pull/CMakeLists.txt:14 (add_library):
  Cannot find source file:
    /Users/xuanyili/my-code/tiflash/contrib/prometheus-cpp/pull/src/basic_auth.cc
  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
CMake Error at contrib/prometheus-cpp-cmake/push/CMakeLists.txt:5 (add_library):
  Cannot find source file:
    /Users/xuanyili/my-code/tiflash/contrib/prometheus-cpp/push/src/curl_wrapper.cc
  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
CMake Error at contrib/prometheus-cpp-cmake/pull/CMakeLists.txt:14 (add_library):
  No SOURCES given to target: pull
CMake Error at contrib/prometheus-cpp-cmake/push/CMakeLists.txt:5 (add_library):
  No SOURCES given to target: push

It's my bad. I should have run git submodule update --init --recursive after rebasing.

/retest

/run-integration-test

the integration test sample.test always have a timeout error:
[2022-07-05T22:02:49.327Z]     => waiting for test.t available
[2022-07-05T22:02:49.327Z]     => waiting for test.t available
[2022-07-05T22:02:49.327Z]     => cannot sync tables in<PHONE_NUMBER>94s
[2022-07-05T22:02:49.327Z]   Expected:
[2022-07-05T22:02:49.327Z]     <nothing>

@SeaRise Assume the sample.test timeout issue would be solved, shall I merge the related TiDB PR 35950 before triggering the integration test?

/retest

/run-integration-test

Get the same time out exception when verify sample.test

/run-integration-test

the integration test sample.test always has a timeout error:
[2022-07-06T00:33:33.530Z] + docker-compose -f cluster.yaml -f tiflash-dt.yaml exec -T tiflash0 bash -c 'cd /tests ; ./run-test.sh fullstack-test'
[2022-07-06T00:43:40.288Z]   File: fullstack-test/sample.test
[2022-07-06T00:43:40.288Z]   Error line: 22
[2022-07-06T00:43:40.288Z]   Error: wait_table test t
[2022-07-06T00:43:40.288Z]   Result:
[2022-07-06T00:43:40.288Z]     => wait for test.t available in TiFlash
[2022-07-06T00:43:40.288Z]     => waiting for test.t available
[2022-07-05T22:02:49.327Z]     => waiting for test.t available
[2022-07-05T22:02:49.327Z]     => waiting for test.t available
[2022-07-05T22:02:49.327Z]     => cannot sync tables in<PHONE_NUMBER>94s
[2022-07-05T22:02:49.327Z]   Expected:
[2022-07-05T22:02:49.327Z]     <nothing>

@SeaRise Assume the sample.test timeout issue would be solved, shall I merge the related TiDB PR 35950 before triggering the integration test? I am concerned the get_format integration test will fail if the TiDB doesn't support pushdown to TiFlash

Don't worry, integration tests will run even if TiDB PR hasn't been merged.
Because the execution result of get_format  in TiDB and TiFlash is the same

@SeaRise
I tried to reproduce the timeout issue of sample.test at my Mac laptop and got a different error:
➜  tests git:(xuanyili/getFormat) ./run-test.sh fullstack-test/sample.test
  File: fullstack-test/sample.test
  Error line: 24
  Error: set session tidb_isolation_read_engines='tiflash'; select s, i from test.t
  Result:
    ERROR 1105 (HY000) at line 1: lastRange in paging should not be nil

I randomly picked up some other expression integration tests and got passed. To me, this lastRange error is a distracting problem, which might be arise from by MacOS and Linux difference.
Anyway, do you have any insights about the timeout issue of table syncing up? I suspected it's caused by the network broken among docker containers.

I randomly picked up some other expression integration tests and got passed. To me, this lastRange error is a distracting problem, which might be arise from by MacOS and Linux difference.
Anyway, do you have any insights about the timeout issue of table syncing up? I suspected it's caused by the network broken among docker containers.

Don't worry, this is a problem on the pd side, someone is handling it:)

/run-integration-test

@zanmato1984 Change the comment about the reason why first argument MUST be ColumnConst. Also rebase master. Please check it.

/run-all-tests

git rebase OR git merge? Right now I use git commit --amend to keep my changes as a single commit and use git pull --rebase to fetch remote master change.

You are right. We don't have particular workflow for private branches. Squash merging into master is all.

Nice work and thanks for you contribution!

/merge

/merge cancel

@wirybeaver Nice work and thanks for your contribution!

Thanks for your guys comments and suggestions! Also a shout to @SeaRise

/run-all-tests

/merge

@SeaRise Could you /merge this branch when you are available?

/merge


Organisation

Besides the use of schema states the mode "organization" (English US) instead of "organisation" (English UK), the mapping is like this:
[schema:memberOf, $(organization), xsd:string]    #TODO: THIS HAS TO BE A URI OF TYPE ORGANISATION, E.G., REPRESENTING OEG     - [schema:affiliation, $(organization), xsd:string]  #TODO: SAME HERE     - [schema:worksFor, $(organization), xsd:string]    #TODO: THIS HAS TO BE A URI OF TYPE ORGANISATION, E.G., REPRESENTING OEG
As far as my academic life has experienced when you apply for a conference or any other event or service the organisations required are university, faculty while the lab is included in the description of your role.
I was wondering whether you were taking this into account or my understanding is wrong.

This is different, as it is for our group, so we will probably add the URI of OEG here, although this does not mean that we may also add UPM and ETSIINF as well, since we can have as many triples as we wish.


FIX temporarily remove grad checker component due to bugs

Code review: Yes, a temporary fix which we can work on tomorrow, for now, we'll get this older, static version up! (Team has agreed to this on Slack as well)


Issue #161

Added 25-Reverse_Node_In_K_Goups.cpp and solved issue #161

@piyushsharma220699  Please verify and merge this pull request


How to use fastq-extractor to deal with paired-UMI sequencing data in trust4 suite

Dear editor
How to use fastq-extractor to deal with paired-UMI sequencing data in trust4 suite?  My library structure is 3M3S+T，3M3S+T.

Sorry, I don't quite get your question. What is the paired-UMI sequencing? What's the meaning of 3M3S+T?

Yes, I used to KAPA universal UMI adapter to prepare the library.  Universal UMI adapter for ligation-based library construction prior to sample barcoding in the KAPA HyperCap workflow and KAPA HyperPETE Workflow SomaticTissue DNA, KAPAHyperPETE Workflow  Somatic Plasma cfDNA. Usually, we use  fgbio software to deal the raw sequencing data,  The read structure is defined as 3M3S+T.  Extract the first (3) bases off the start of the read (3S). These bases constitute a punctuation sequence that increases the sequence diversity to ensure optimal sequencing performance. Maintain the remaining sequence as the part of the insert read (+T). The UMIs extracted from read 1 and read 2 are stored in the RX tag of the unmapped BAM file as UMI1-UMI2.

Yes, I used to KAPA universal UMI adapter to prepare the library.  Universal UMI adapter for ligation-based library construction prior to sample barcoding in the KAPA HyperCap workflow and KAPA HyperPETE Workflow SomaticTissue DNA, KAPAHyperPETE Workflow  Somatic Plasma cfDNA. Usually, we use  fgbio software to deal the raw sequencing data,  The read structure is defined as 3M3S+T.  Extract the first (3) bases off the start of the read (3S). These bases constitute a punctuation sequence that increases the sequence diversity to ensure optimal sequencing performance. Maintain the remaining sequence as the part of the insert read (+T). The UMIs extracted from read 1 and read 2 are stored in the RX tag of the unmapped BAM file as UMI1-UMI2.

Do you mean the UMI is 6bp, where the first 3 bp are from the beginning of read1 and the other 3bp come from the beginning of read2?

Yes, I don't know how to use fastq-extractor to deal with this data.

The current implementation cannot handle barcode/UMI across two files. You may need to implement your own script to reformat the files. I will think about how to implement it with the current framework in the future.

Based on the present situation，how can I reformat the files to meet the requirement of the  fastq-extractor tools?

You can extract and concatenate the 3bp from each read to create another file as "XXX_barcode.fq". You shall also remove those UMI sequences from read sequences. With those you can run TRUST4 from the wrapper "run-trust4" with the extra option like "--barcode XXX_barcode.fq --barcodeLevel molecule".

Thank you for providing the information. In the scenario you described, using the UMI from read1 as the barcode sequence and the UMI from read2 as the UMI sequence, while considering only the UMI from read2 as a group during the assembly process, indeed neglects the role of the UMI from read1. This approach may not be applicable in all scenarios as UMIs (Unique Molecular Identifiers) are typically used to mark read pairs that originated from the same original molecule, facilitating their distinction in subsequent analyses.
In a standard UMI processing workflow, the UMIs from read1 and read2 (or additional read pairs, if applicable) should be consistent, allowing them to be used to group all reads originating from the same molecule. This grouping is crucial for accurate data processing in subsequent steps such as deduplication and error correction.
Ignoring the UMI from read1 and only considering the UMI from read2 can lead to the loss of important information, compromising the accuracy of data processing. For instance, if you attempt to deduplicate based on the UMI, only considering the UMI from read2 could mistakenly consider read pairs from the same molecule as distinct.
Therefore, when designing and implementing a UMI analysis workflow, it is essential to ensure that both the UMI from read1 and read2 (and additional read pairs, if applicable) are properly utilized and considered. This ensures data integrity and accuracy, leading to more reliable analysis results.

Sorry for the confusion. I mean you need to concatenate the UMI portion from the two reads into one, and then dump them into one fasta file. This file will essentially be the UMI file.
The --UMI option in TRUST4 is for abundance estimation only for data like 10x Genomics. In your case, the UMI is served as molecule-level barcode. Therefore, the appropriate option is regarding this file as a barcode, and then use the option "--barcodeLevel molecule" to specify this is a true UMI.
Just curious, with 6bp UMI, it is very easy to have UMI conflict (two molecules use the same UMI), is it a concern in your data?


RAT-372: Create archive processor

Initial implementation
see https://issues.apache.org/jira/browse/RAT-372
See discussion:  https://lists.apache.org/thread/gyp2tfsw3w66x0wy95tv1bcwb667h866
Checklist

[x] This pull is built upon the Tika changes in RAT-54 (#240) and should not be considered for merge until and unless that is merged.
[x] Significant documentation needs to be put in place to discuss how the --archive option affects output.
[x] Add documentation for XSLT building.
[x] Add Changelog with all possible changes introduced with that PR
[x] Add changelog / Notice entries for deprecated CLI options.

Let's review this after https://github.com/apache/creadur-rat/pull/240 is merged into master - thanks.

This change also updated the Help routines and the CLI usage of commons-cli.  New help screen now looks like:
usage: java -jar apache-rat/target/apache-rat-CURRENT-VERSION.jar [options] [DIR|TARBALL]

====== Available Options ======
 -a                                   (deprecated) Add the default license header to any file with an unknown license.  Use '-A'
                                      or ---addLicense instead.
 -A,--addLicense                      Add the default license header to any file with an unknown license that is not in the
                                      exclusion list. By default new files will be created with the license header, to force the
                                      modification of existing files use the --force option.
    --archive <ProcessingType>        Specifies how ARCHIVE processing will be handled. (default is NOTIFICATION)
 -c,--copyright <arg>                 The copyright message to use in the license headers, usually in the form of "Copyright 2008
                                      Foo"
 -d,--dir <DirOrArchive>              (deprecated, use '--') Used to indicate source when using --exclude.
    --dry-run                         If set do not update the files but generate the reports.
 -e,--exclude <Expression>            Excludes files matching wildcard <expression>. May be followed by multiple argumentsNote
                                      that '--' or a following option is required when using this parameter.
 -E,--exclude-file <FileOrURI>        Excludes files matching regular expression in the input file.
 -f,--force                           Forces any changes in files to be written directly to the source files (i.e. new files are
                                      not created).
 -h,--help                            Print help for the RAT command line interface and exit.
    --licenses <FileOrURI>            File names or URLs for license definitions
    --list-families <LicenseFilter>   List the defined license families (default is NONE). Valid options are: ALL, APPROVED, NONE
    --list-licenses <LicenseFilter>   List the defined licenses (default is NONE). Valid options are: ALL, APPROVED, NONE
    --log-level <LogLevel>            sets the log level.
    --no-default-licenses             Ignore default configuration. By default all approved default licenses are used
 -o,--out <arg>                       Define the output file where to write a report to (default is System.out).
 -s,--stylesheet <arg>                XSLT stylesheet to use when creating the report.  Not compatible with -x.  Either an
                                      external xsl file may be specified or one of the internal named sheets: plain-rat (default),
                                      missing-headers, or unapproved-licenses
    --scan-hidden-directories         Scan hidden directories
 -x,--xml                             Output the report in raw XML format.  Not compatible with -s

====== Argument Types ======

<DirOrArchive>
      A director or archive file to scan

<Expression>
      A wildcard file matching pattern. example: *-test-*.txt

<FileOrURI>
      A file name or URI

<LicenseFilter>
      A defined filter for the licenses to include.  Valid values: ALL, APPROVED, NONE.

<LogLevel>
      The log level to use.  Valid values DEBUG, INFO, WARN, ERROR, OFF.

<ProcessingType>
      Specifies how to process file types.  Valid values are:
           NOTIFICATION: List archive as present
           PRESENCE: List any licenses found
           ABSENCE: List licenses found and any unknown licences

<StyleSheet>
      Either an external xsl file may be one of the internal named sheets: missing-headers, plain-rat, unapproved-licenses.

====== Notes ======

1. Rat highlights possible issues.
2. Rat reports require interpretation.
3. Rat often requires some tuning before it runs well against a project.
4. Rat relies on heuristics: it may miss issues

For an interesting test run the following;
mvn clean install
java -jar apache-rat/target/apache-rat-0.17-SNAPSHOT.jar --archive PRESENCE .

Another interesting run
mvn clean install
mvn dependency:copy-dependencies -DoutputDirectory=/tmp/lib
java -jar apache-rat/target/apache-rat-0.17-SNAPSHOT.jar --archive PRESENCE /tmp/lib

The you can adjust the chatty level with the --archive settings.  By default it is no more chatty than the earlier code.
I did change the XSLT so that the amount of space taken by the archive listing is reduced by 1/2, but if you ask for archive data to be added to the report, it has to get more chatty.
Is there a specific change you can recommend?

The you can adjust the chatty level with the --archive settings. By default it is no more chatty than the earlier code.
I did change the XSLT so that the amount of space taken by the archive listing is reduced by 1/2, but if you ask for archive data to be added to the report, it has to get more chatty.
Is there a specific change you can recommend?

Not really, it basically was more or less a gut feeling when I saw the new report in a play project of mine.


Curtain shows battery level of 9%

I've added two MotionBlind Curtains to my setup. They work fine with this library, except for the battery level.
That is always shown as 9%, even if the batteries are full.
Here's output from:
for blind in m.device_list.values():
     blind.Update()
     print(blind)

<MotionBlind mac: abababababd0001, type: RollerBlind, status: Stopped, position: 0 %, angle: 0.0, limit: Limit3Detected, battery: DC, 33.0 %, 6.93 V, charging: None, RSSI: -102 dBm, com: BiDirection>
<MotionBlind mac: abababababd0002, type: RollerBlind, status: Stopped, position: 0 %, angle: 0.0, limit: Limit3Detected, battery: DC, 46.0 %, 7.22 V, charging: None, RSSI: -70 dBm, com: BiDirection>
<MotionBlind mac: abababababd0003, type: RollerBlind, status: Stopped, position: 0 %, angle: 0.0, limit: BothLimitsDetected, battery: DC, 46.0 %, 7.22 V, charging: None, RSSI: -82 dBm, com: BiDirection>
<MotionBlind mac: abababababd0004, type: Curtain, status: Stopped, position: 90 %, angle: 0.0, limit: BothLimitsDetected, battery: DC, 9.0 %, 14.8 V, charging: None, RSSI: -87 dBm, com: BiDirection>
<MotionBlind mac: abababababd0005, type: Curtain, status: Stopped, position: 0 %, angle: 0.0, limit: BothLimitsDetected, battery: DC, 9.0 %, 14.8 V, charging: None, RSSI: -89 dBm, com: BiDirection>

@PRoomberg what model and brand curtain motor is it?
Is it from Motion Blinds itself or some other brand also supported?
Does the battery percentage change and go to negative numbers over time?
Unfortunetly Motion Blinds motors only report the battery voltage: 14.8V in your case for the curtain motors.
To get a percentage I have to assume standard battery packs from Motion Blinds:
2 cel battery pack (8.4V when fully charged, 6.2 when empty)
3 cel battery pack (12.6V when fully charged, 10.4 when empty tested 10.27-12.34V)
4 cel battery pack (16.8V when fully charged, 14.6 when empty)
If your motor battery pack uses a diffrent range of voltages the percentage shown will be wrong.
In homeassistant the battery sensor entity also has an attribute which shows you the voltage.
You can use that in a template entity to make your own battery percentage sensor where you can specify the fully charged and empty voltages like this:
{{((state_attr('sensor.office_shade_battery', 'battery_voltage')|default(10.27, true) - 10.27) * 100 / (12.34 - 10.27))|round(1)}}
Where you need to change the sensor.office_shade_battery to your entity ID and adjust the fully charged voltage (12.34) and fully empty voltage (10.27).
In your case the fully charged voltage is apperently 14.8 V, the empty voltage you will need to look up in the manual or just use the curtain motors untill they stop working and see what the battery voltage is then.
If you appreciate the motion blinds integration and want to support its development, please consider sponsering this library.

It's a curtain rail from Motion Blinds themself and it uses the CM-36 motor.

Looks like these use a different battery pack then the 2-3-4 cell packs.
I've been using two of these for a month now with daily usage and they still show 14.8 volts.
Thanks for the tip for home assistant. I use Indigo instead and created my own plugin for MotionBlinds support.
I'll think about adding an algorithm to convert the voltage to a battery %.


GUACAMOLE-406: Add documentation for event listener support

I think this is at a point where some review would be helpful. Would appreciate feedback on the content itself (especially level of detail, illustrative value of the examples, etc), placement in the user manual structure, as well as any syntactic issues.
There is some repetition between this section and the section on custom authentication providers. In particular, the instructions for installing a custom extension are duplicated almost verbatim. Perhaps this would be better addressed in the chapter on guacamole-ext or elsewhere.
Much of the skeleton for the example itself is also very similar to the authentication provider example, but I think this is probably to be expected and may not be a bad thing.

In light of the fact that the new listener extension mechanism is slated for 0.9.14-incubating, it would be good to get this merged soon.
Can someone please review and comment?

Thanks for the ping, @ceharris - I don't think changes to the PR title get broadcast to the lists.
Regarding the changes, things generally look fine. There are API changes coming via #205, but this documentation doesn't look incompatible with those.
Since this is the documentation which corresponds to changes which are already part of 0.9.14-incubating (GUACAMOLE-364), if you can then update the merge base from master to 0.9.14-incubating this PR, I'd be glad to merge.

Looks great to me, as well, pending the change of the merge base from master to the staging/0.9.14-incubating.

Closing to switch to different source branch and merge base.


Not able to add points using "addPoints"

I want to create a game for small kids where I need to draw some image on which user can trace the image/shape. When I try to use "addPoints", I get the error .

Points:
static readonly TracingAlphabets = [
{
guide: [
[186.90530395507812,<PHONE_NUMBER>2285156],
[172.0453338623047,<PHONE_NUMBER>511719],
[157.16778564453125,<PHONE_NUMBER>176758],
[142.5912742614746,<PHONE_NUMBER>2958984],
[128.7635154724121,<PHONE_NUMBER>3486328],
[116.22241592407227,<PHONE_NUMBER>7509766],
[105.50465774536133,<PHONE_NUMBER>060547],
[97.03039360046387,<PHONE_NUMBER>1611328],
[91.02972412109375,<PHONE_NUMBER>6123047],
[87.51857948303223,<PHONE_NUMBER>5429688],
[86.34759712219238,<PHONE_NUMBER>2441406],
[86.15221214294434,<PHONE_NUMBER>618164],
[86.05772399902344,<PHONE_NUMBER>6323242],
[86.0336685180664,<PHONE_NUMBER>6235352],
[86.052734375,<PHONE_NUMBER>7329102],
[86.08502388000488,<PHONE_NUMBER>5036621],
[86.1014404296875, 91.56854629516602],
],
},
];
const AlphabetsTracingItem = () => {
const canvasRef = useRef(null);
useEffect(() => {
const guide = ActivitiesConstants.TracingAlphabets[0].guide;
if (canvasRef?.current) {
// Add the points as an array of arrays [x, y]
canvasRef.current.addPoints(guide);
}
}, []);
return (

<SketchCanvas
ref={canvasRef}
strokeColor={"black"}
strokeWidth={20}
containerStyle={{ flex: 1 }}
/>

);
};

Closing this as the mistake was at my end.


updated path to abricate_cpo_plasmid_db

fixes #47
I updated the path to abricate_datadir and am running a couple of samples on the cpo-pipeline

This looks great. Could you let me know if your test analysis completes without error messages?

The test (BC19A237A, BC19A238A) passed without errors!


Caddy tries to get let's encrypt cert for self_signed

@mholt requested to test integration of Caddy and new certmagic library, so, here goes testing of self signed mode. Modifying the issue template, since we are working with caddy directly from Go.
1. Versions of things
Caddy: Caddy (untracked dev build) (unofficial) - master 393bc2992e3852c05dec0de336b95d51dee20aff
Golang: go1.11.2
Test OS: Ubuntu 16.04
2. What are you trying to do?
Use self_signed tls certificates
3. Reproducer for multiple cases
package main

import (
	"crypto/tls"
	"fmt"
	"net"
	"net/http"
	"net/http/httputil"

	"github.com/mholt/caddy"
	_ "github.com/mholt/caddy/caddyhttp"
)

func panicIfNotNil(e error) {
	if e != nil {
		panic(e)
	}
}

func main() {
	var addr string

	// "localhost" works
	addr = "localhost"

	// all of cases below should work, since cert is self_signed, but don't
	// issues also might be with other tls settings

	// error: tries to get let's encrypt cert
	// addr = "mycaddyserver"
	// addr = "caddyserver.com"

	// TLS handshake error from <IP_ADDRESS>:56458: tls: no certificates configured
	// addr = "<IP_ADDRESS>"
	// addr = "<IP_ADDRESS>"

	// too many colons in address
	// addr = "::1"

	// "foo.localhost" shouldn't be different "localhost": https://tools.ietf.org/html/rfc6761 - section 6.1
        // this one is probably not a big deal though
	// error: tries to get let's encrypt cert
	// addr = "anything.localhost"

	fulladdr := "https://" + addr + ":12345"

	// spin up caddy Instance
	_, err := caddy.Start(caddy.CaddyfileInput{
		Contents:       []byte(fulladdr + " {\ntls self_signed\n}\n"),
		ServerTypeName: "http"})
	panicIfNotNil(err)

	// test that webserver with self-signed cert can serve something (404, if no root is set)
	cl := http.Client{Transport: &http.Transport{
		DialTLS: func(network, addr string) (net.Conn, error) {
			return tls.Dial(network, addr,
				&tls.Config{InsecureSkipVerify: true})
		},
	}}
	response, err := cl.Get(fulladdr)
	panicIfNotNil(err)

	respByte, err := httputil.DumpResponse(response, true)
	panicIfNotNil(err)
	fmt.Printf("Response was:\n%s", respByte)
}

4. What did you expect to see?
Caddy creates self_signed certificate and does not hang on a prompt for e-mail, while trying to get Let's Encrypt certificate.
5. What did you see instead (give full error messages and/or log)?

Caddy hangs on a prompt for e-mail, while trying to get Let's Encrypt certificate.

If "<IP_ADDRESS>" is used, Caddy throws error "tls: no certificates configured"

6. How can someone who is starting from scratch reproduce the bug as minimally as possible?
go run file_included_above.go

THIS is a fabulous bug report -- thank you! Made it very quick and easy to fix. And thank you for testing the latest changes!
 I was able to reproduce the issue and this resolves it. A teeny bit of logic didn't make the transition correctly when we switched to CertMagic.


TaskDescription should allow a name field.

Currently tasks within the DAG UI are shown using their class name. This may be confusing in the DAG if we have the same class actor active on more than one DAG node. We should allow the ability to name tasks - with the default being the class name.

Sean - please indicate by a '+1' or possible alternative. Thanks.

Hi Kam,
This is fixed in https://github.com/intel-hadoop/gearpump/pull/557/files. We now have a processor Id in the DAG.

(TasClassName + ProcessorId) should be enough to differentiate different processors.

Great, yes. +1


[bug] No test result displayed

Version Info

Version of Majestic: 1.6.0
Version of Jest: 24.8.0
Version of Node: v12.2.0
Operating System: ubuntu
Version of node-fetch: 2.6.0

yarn run v1.16.0
$ majestic
⚡  Majestic v1.6.0 is running at http://localhost:4000
(node:6937) UnhandledPromiseRejectionWarning: FetchError: request to http://localhost:4000/test-start failed, reason: Parse Error
    at ClientRequest.<anonymous> (/myprj/node_modules/node-fetch/lib/index.js:1455:11)
    at ClientRequest.emit (events.js:196:13)
    at Socket.socketOnData (_http_client.js:465:9)
    at Socket.emit (events.js:196:13)
    at addChunk (_stream_readable.js:290:12)
    at readableAddChunk (_stream_readable.js:271:11)
    at Socket.Readable.push (_stream_readable.js:226:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:166:17)
(node:6937) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:6937) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Could you please provide an example repository where this issue is reproducible?


[Python] gRPC 1.53.0 release missing on pypi

What version of gRPC and what language are you using?
gRPC 1.51.3 and trying to upgrade due to fork issues.
What operating system (Linux, Windows,...) and version?
MacOS Ventura 13.2 and Linux (arm and intel)
What runtime / compiler are you using (e.g. python version or version of gcc)
python 3.8 and python 3.11
What did you do?
What did you expect to see?
https://pypi.org/project/grpcio/ latest 1.53.0 released together with github release.
grpcio-1.53.0rc2.tar.gz
What did you see instead?
The latest is still 1.51.3

What did you see instead?
The latest is still 1.53.1

1.51.3* ;)
Also waiting for release on pypi. Isn't it automated in any way? Just curious, what causes the delay between Release on GH and pypi?

1.53.0 is now pushed to PyPi.

Isn't it automated in any way?

No, it is not automated. Uploading to individual package managers is a manual process. Also, not every patch release is meant for all languages. We'll often push a patch release to fix an issue in just a single language and only upload packages for that language. So, in general, it's not a good assumption that the latest Github tag is the right version to use as a PyPi download.
I delayed the upload of this particular release to investigate a potential issue with the release that we we were just recently able to verify should not cause issues.


Update 01-preface.adoc

I'm not sure why we want this? Also, we should use {authors} if you're going to do this.


Only short part of Blog gets posted

This is a lovely software, thanks!
When reposting a blog article, it only shows the first couple lines, not the entire post.
Example: note154gjecmpaqgffxg2ukdkf5qu94lpgfc9363e2q8slwpc5azh9a4sdv0x3p
Is it possible to also post the entire blog in the note?

Thanks @MaxHillebrand for reaching out!
Currently rsslay is trimming the description text to a max of 250 characters (+ title, comments link and official link).
I think we can adjust this limitation to provide either the full text or increase the limit... something configurable.
I'm currently checking some default restrictions of common relays:

nostream: 1MB
nostr-rs-relay: 128KB
me.untethr.nostr-relay: 1048576 characters
strfry: 65536 bytes

So I think you are right and we can increase and attempt to publish the whole post if it's not enourmous... Will implement and monitor it for issues!

Hi @MaxHillebrand , I have implemented a new configuration setting via environment variable MAX_CONTENT_LENGTH which allows you to set the maximum length in characters to limit the content of the rss feeds. For the main instance I have set this option to 5000 chars, which I will be monitoring and I think it's a good average... If the content exceeds the 5000 chars you may go to the original blog post to finish read it.
Let me know what you think!
P.S. To be released in version v0.4.4

Thanks, this seems to be exactly what I was looking for.
Well done on the swift implementation!


1.1 Code Structure change

This PR includes:

Code changes to move ML results to HDSF (authored by @EverLoSa OpenNetworkInsight/ml_structure_s13)
Parquet avro as Flow source. Flow implementation now reads from /hive/ folder instead of csv. The code still converts data into RDD- change to work with DF will be done soon.
Split ML local folder results. Results files for each data source will go into their now folder i.e. ~/ml/flow/, ~/ml/dns/.
LDA Wrapper: Implemented scala code for existing python scripts lda_pre and lda_post. Also MPI lda is being called from inside scala code as well. Now the execution of the entire pipeline requires ml_ops.sh to execute one single jar instead of 2 jars (x_pre_lda.scala, x_post_lda.scala) 2 python (lda_pre.py, lda_post.py) and one command (mpiexec).

looks good to me!


How to allow CORS?

Using this as a REST API as a backend for some AngularJS, I get an error:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '[MY SERVER]' is therefore not allowed access.
This means that there is a need to set some http headers on the response.
How is this doable?

This is not currently supported, but you would need to (in a fork) edit the Startup.cs file and add a configuration option for CORS headers in the response.
https://github.com/DimensionDataCBUSydney/PowerShell.REST.API/blob/master/Owin/Startup.cs#L48
There is a WebAPI CORS package, which can be enabled like this:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-cors


Support for Standard drawer in Flutter.

Support permanent drawer
The Drawer class has a link to material guidelines, where we can find about permanently visible drawer

Permanently visible drawer: When users need to switch destinations frequently (and screen size allows), a permanently visible drawer can be used.

The standard drawer is used a lot on the web part, and since we have a flutter for web, it could be useful for the web, and also for the desktop targets.
Use case

Responsive web sites built with flutter
Responsive desktop apps built with flutter

Proposal
Add support for the permanent drawer. Or, making the Drawer handle its appearance regarding the size of the screen.
drawer: Drawer(
    child: ListView(
      padding: EdgeInsets.zero,
      children: const <Widget>[ ...],
    ),
    permanentFrom: 400, /// Size of the screen where the drawer become permanent instead of colapsed.
  ),

https://github.com/flutter/flutter/issues/50276
This looks similar

Hi @amadeu01
Looks like what you proposing is what exactly what this would solve this
In the meantime, you can check out navigation rail with extended view to achieve something effect
Closing as duplicate of https://github.com/flutter/flutter/issues/50276


backup: add --dry-run/-n flag to show only proposed changes

What does this PR change? What problem does it solve?

Implements backup --dry-run (#1542), continuing where @rmmh left
off in #2308
This can be used to check how large a backup is or validate exclusions.
It does not actually write any data to the underlying backend. This is
implemented as a simple overlay backend that accepts writes without
forwarding them, passes through reads, and generally does the minimal
necessary to pretend that progress is actually happening.
Output of the backup operation is mostly unchanged. Omitting or passing
verbosity options results in showing the same information, but for emitting
'Would add' rather than 'Added,' as shown below, in example usage:
$ restic -r /srv/restic-repo backup ~/work --dry-run -vv | grep "added)$"
modified  /plan.txt, saved in 0.000s (9.110 KiB added)
modified  /archive.tar.gz, saved in 0.140s (25.542 MiB added)
Would be added to the repo: 25.551 MiB

Therefore, to see a list of paths, -vv must be passed to backup, exactly
as if a dry run were not being done.
Was the change discussed in an issue or in the forum before?

Yes, #1542
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[x] I have added tests for all changes in this PR
[x] I have added documentation for the changes (in the manual)
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[ ] I have run gofmt on the code in all commits -- ran gofmt in final commit of branch
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

@erincerys Do you have any questions about the review?

Thanks for the review @aawsome
My intention for submitting this PR update wasn't to actually contribute code, and this will likely be the case for the foreseeable future. I had been hoping that resolving the minor documentation changes previously requested would have been enough to get this merged.
Maybe someone else (@jniggemann?) will pick it up as I did for the prior contributor to this feature.

Like I said in #2308: My strengths are elsewhere, I'm a horrific coder with no Go experience at all, so I better leave this to others.

If @rmmh and @erincerys  don't want to continue working on this, I can volunteer to take this over. I will most likely have a time window next week to work on this.
(but then we should close two PR to not have three open PRs for the same topic...)

This PR is now superseded by #3300 and should be closed.

Superseded by #3300.


how to add Bookmark (not thumbnails) to be displayed in the navigation pane

Is there any example how to add a bookmark (name of a document's section) to the navigation pane?
The ones I found for pdfbox did not work up to now ...
the PDOutlineItem seems to have all the names of the sections, but they won't display in the reader ...
Is this a pdfbox problem, does anyone have a working example?

No idea? Anyone having the same problem? Or anyone with a hint, because it is no problem at all?


Tracking: Zebra is a full participant in the Zcash Network

Once the work to validate NU5 and previous network upgrades is completed, we will work on ensuring that Zebra is a full participant in the Zcash Network. This work may include:
Required:

Maintaining a mempool (#2309)
Inbound message handling (#889)
Security issues (#2311)
-- Severe impact on other nodes
-- Severe impact on the local node

Optional:

zebrad usability improvements (#2310)
Paying back Tech Debt (#2312)
Documentation Updates (#2313)

This work may be equivalent to the work we need to do before we put out a stable release and replaces the First stable / major version release 📦 milestone:
"After our first alpha (Sync and Validation) there are a few items / features we want to get done before we consider ourselves 'a well-behaved full node'. The items in this milestone also include the investments we need to make in conformance testing and release engineering/infra to get our software to users."

This feels obsolete now that we: a) are fully validating all consensus rules, b) are implementing a mempool, c) have plans for a stable release candidate.
Converting to an issue and closing.


[release-1.3] Add v1.3.0 perf and scale benchmarks data

This is a manual cherry-pick of https://github.com/kubevirt/kubevirt/pull/12247
Add v1.3.0 perf and scale benchmarks data

/cc @alaypatel07

/lgtm


openssh: update gssapi patch to match the openssh version

Should fix the openssh_with_kerberos build.
Fixes #13140

I don't quite understand what's causing the build breakage - but I'm pretty sure it is not caused by this change.  SSL error connecting to pkgs.fedoraproject.org maybe?

Well, hydra seems to be broken for fetching that patch. We experience the same problems on our hydra sometimes.


add loader

https://user-images.githubusercontent.com/35755741/229478660-fe1a4d20-4299-48a3-b7c1-bcbe848a35d2.mp4
sped up by x4.
loader shows when clicking refresh button
ideally might change this to not use qml loaders, wanting to make this a single bar and do some lerping so it will look much cleaner (?)
trying to figure out how to best design this but sucks cant hotswap changes directly on console 🤮

https://user-images.githubusercontent.com/35755741/229647105-40ccaf08-4ff1-4fa1-8e15-99ad30dc559e.mov
think this looks way better. (will have to address the case when tcp connected but no settings etc... maybe just make this bar only on refresh action + write action?)

Frontend and Release Workflow Started here


Download command.

This new command downloads, decompresses, and saves to disk every database needed to build allbase.
More will be added later to select individual DBs, etc but some review at this stage would be nice.

Turns out that when it comes to inserting most of the functions Keoni wrote decompress the source file on the fly so I'll try remove most of decompression stuff from this PR.

Turns out that when it comes to inserting most of the functions Keoni wrote decompress the source file on the fly so I'll try remove most of decompression stuff from this PR.

I've done this and am ready for review @Koeng101 and @isaacguerreir.


[bugfix] Handle numeric timezones in RFC2822 parsing, fixes #4082, #3920

Thanks for your contribution. Can we get unit tests for this? Also, I think that we may need to consider validation for the input string.

@maggiepint I hope the new unit-tests cover the cases you were interested in.

Is this related to https://github.com/moment/moment/pull/3938

For the unit tests -- you can add a few military cases, positive and negative and zero. Also make sure to add partial-hour offsets in the mix.

@ichernev I hadn't seen #3938, but yes: it looks like I'm fixing the same piece of code.
I've added a few more tests to cover the +/- military cases, half-hour and quarter-hour timezones.
(I've avoided redundantly testing zero military timezone 'z' test as it's already used in other unit-tests.)

@ashsearle can you close this issue if everything is working now OR rewrite it on top of latest code.

Closing as obsolete following #4108


Ordered items stock management

Codecov Report

Merging #1205 into master will decrease coverage by 0.26%.
The diff coverage is 27.5%.

@@            Coverage Diff             @@
##           master    #1205      +/-   ##
==========================================
- Coverage   69.86%   69.59%   -0.27%
==========================================
  Files         117      117
  Lines        6328     6368      +40
  Branches      762      767       +5
==========================================
+ Hits         4421     4432      +11
- Misses       1739     1768      +29
  Partials      168      168

Impacted Files
Coverage Δ

saleor/dashboard/order/urls.py
100% <ø> (ø)
:arrow_up:

saleor/dashboard/order/forms.py
60.56% <37.03%> (-3.42%)
:arrow_down:

saleor/dashboard/order/views.py
49.44% <7.69%> (-2.11%)
:arrow_down:

Continue to review full report at Codecov.

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

There is a small visual issue with label overlapping the title in the modal for changing the stock:

I think it's a problem with rendering a select inside the modal, as it doesn't happen in case of regular inputs.

@elwoodxblues From your screenshots it also seems that modal/widget sizing is off.


Installation of frappe-manager fails due to AttributeError in pkgutil module

I encountered an error while trying to install the frappe-manager package using pip. The installation process fails during the metadata generation step for the cloudflare package. The error seems to be related to the pkgutil module, which does not have the attribute ImpImporter.
pip install frappe-manager
pip --version
pip 24.1 from /home/rehan/.local/lib/python3.12/site-packages/pip (python 3.12)

Please let me know this:

os
os version
system's architecture

Please let me know this:

os
os version
system's architecture

I tried to replicate this. And it works for me.
Can you try this
sudo apt install python-is-python3 python3-dev pipx
Then
pipx install frappe-manager

You can downgrade your Python version to 3.11 or lower, or you can apply a patch to the affected package. As the error you're encountering is due to a change in Python 3.12 where the 'ImpImporter' class was removed from the 'pkgutil' module.
If you prefer to use Python 3.12, you'll need to wait for the package maintainers to update the affected packages to be compatible with Python 3.12 or manually patch the package yourself.


Context

This should be merged after the logging branch
This renames the token_lookup function option to context and makes it required.  The default Beep Boop implementation was pulled out into slapp-context-beepboop`.  It also adds validation on a message before processing it that make sure the required props exist, otherwise it doesn't process the message.

Coverage remained the same at 100.0% when pulling 2997fe97821ac02625b50534dca4d776f47fc3d8 on context into fc90865b1214c40d21590a60ce7714e1099bb65d on master.

Looks like there are conflicts and should be rebased from master

Coverage remained the same at 100.0% when pulling fed186c2112dfa9e913839ae0df764d443f42458 on context into 1e7b439c98d483048932653e9aaf4940602ed37e on master.

That was odd, all resolved now.

Coverage remained the same at 100.0% when pulling 113075308ac8e236c576f52a22822d474ab509a2 on context into 5141b2f2765ba40994c19f38bad92c8318091456 on master.

Coverage remained the same at 100.0% when pulling d10220c432d7a341b7a81ab2ce360ccd41f36e37 on context into d60b6790916a3e496b06ab69c6832111a4ec40c3 on master.

👍


  Among the things that are fixed here are:
Gist options menu wasn't being updated properly
Enable/Disable wrapping did a weird sort of flickering thing
Allow gists to be created from any type of text (I'm not sure if this was a wise idea, but it seems like gists should be able to be created from any text)
Added toasts to tell the user that his or her request to star/unstar a gist was succesful
Made it so that when a user deletes a gist and/or stars a gist then that is immediately reflected in the UI.

@maltzj You might want to rebase your changes on the current master?

Closing this for now. This PR is really old, and much of the code would need some work to be prepared for here. We can look at picking changes from this in the future though.


Bug with utility class which contains trailing slash

Hello!
I have last strange bug I faced with.
Vite+Vue
Reproduction link: https://replit.com/@MarvinMiles/css-mangle-bug.
During dev:

During preview after build:

bg-red-500/50 transformed intotw-g/50 and output CSS file does not contain that class.
It was hard to reproduce. Bug appears at strange conditions. For example, removing parent div makes it work properly.

Hi！
This issue is caused by the fact that there is no exact match when replacing the class string.
Corresponding unit tests have been added and this problem has been fixed in version 1.2.4
Thanks for your report. :)

Confirm! Thank you for fast response :)


rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value

Support guidelines

[X] I've read the support guidelines

I've found a bug and checked that ...

[X] ... the documentation does not mention anything about my problem
[X] ... there are no open or closed issues that are related to my problem

Description
docker stays in "unhealthy" status, and rtorrent is not starting.
Expected behaviour
Container should start normally.
Actual behaviour
rtorrent is not working
Steps to reproduce

Host running Debian 12
Use the docker compose files listed here: https://github.com/crazy-max/docker-rtorrent-rutorrent/tree/master/examples/compose

docker compose up -d

Docker info
# docker info
Client: Docker Engine - Community
 Version:    26.1.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.26.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 4
  Running: 4
  Paused: 0
  Stopped: 0
 Images: 4
 Server Version: 26.1.0
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: -
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.1.0-20-amd64
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.921GiB
 Name: seedbox
 ID: -
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false

Docker Compose config
# docker compose config
name: seedbox
services:
  geoip-updater:
    environment:
      DOWNLOAD_PATH: /data
      EDITION_IDS: GeoLite2-City,GeoLite2-Country
      LICENSE_KEY: [removed]
      LOG_JSON: "false"
      LOG_LEVEL: info
      SCHEDULE: 0 0 * * 0
      TZ: Europe/Paris
    image: crazymax/geoip-updater:latest
    networks:
      default: null
    restart: always
    volumes:
      - type: bind
        source: /srv/rutorrent/data/geoip
        target: /data
        bind:
          create_host_path: true
  rtorrent-logs:
    command:
      - bash
      - -c
      - tail -f /log/*.log
    depends_on:
      rtorrent-rutorrent:
        condition: service_started
        required: true
    image: bash
    networks:
      default: null
    restart: always
    volumes:
      - type: bind
        source: /srv/rutorrent/data/rtorrent/log
        target: /log
        bind:
          create_host_path: true
  rtorrent-rutorrent:
    environment:
      AUTH_DELAY: 0s
      LOG_ACCESS: "true"
      LOG_IP_VAR: remote_addr
      MAX_FILE_UPLOADS: "50"
      MEMORY_LIMIT: 256M
      OPCACHE_MEM_SIZE: "128"
      PGID: "1000"
      PUID: "1000"
      REAL_IP_FROM: <IP_ADDRESS>/32
      REAL_IP_HEADER: X-Forwarded-For
      RT_DHT_PORT: "6881"
      RT_INC_PORT: "50511"
      RT_LOG_EXECUTE: "false"
      RT_LOG_LEVEL: info
      RT_LOG_XMLRPC: "false"
      RU_DO_DIAGNOSTIC: "true"
      RU_FORBID_USER_SETTINGS: "false"
      RU_HTTP_TIME_OUT: "30"
      RU_HTTP_USE_GZIP: "true"
      RU_HTTP_USER_AGENT: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
      RU_LOCALE: UTF8
      RU_LOG_FILE: /data/rutorrent/rutorrent.log
      RU_LOG_RPC_CALLS: "false"
      RU_LOG_RPC_FAULTS: "true"
      RU_OVERWRITE_UPLOADED_TORRENTS: "false"
      RU_PHP_GZIP_LEVEL: "2"
      RU_PHP_USE_GZIP: "false"
      RU_RPC_TIME_OUT: "5"
      RU_SAVE_UPLOADED_TORRENTS: "true"
      RU_SCHEDULE_RAND: "10"
      RUTORRENT_AUTHBASIC_STRING: ruTorrent restricted access
      RUTORRENT_PORT: "8080"
      TZ: Europe/Paris
      UPLOAD_MAX_SIZE: 16M
      WAN_IP: [removed]
      WAN_IP_CMD: "false"
      WEBDAV_AUTHBASIC_STRING: WebDAV restricted access
      WEBDAV_PORT: "9000"
      XMLRPC_AUTHBASIC_STRING: rTorrent XMLRPC restricted access
      XMLRPC_PORT: "8000"
    expose:
      - 6881/udp
      - "8000"
      - "8080"
      - "9000"
      - "50511"
    image: crazymax/rtorrent-rutorrent:latest
    networks:
      default: null
    ports:
      - target: 6881
        published: "6881"
        protocol: udp
      - target: 8080
        published: "8080"
        protocol: tcp
      - target: 9000
        published: "9000"
        protocol: tcp
      - target: 50511
        published: "50511"
        protocol: tcp
    restart: always
    ulimits:
      nofile:
        soft: 32000
        hard: 40000
      nproc: 65535
    volumes:
      - type: bind
        source: /srv/rutorrent/data
        target: /data
        bind:
          create_host_path: true
      - type: bind
        source: /srv/rutorrent/downloads
        target: /downloads
        bind:
          create_host_path: true
      - type: bind
        source: /srv/rutorrent/passwd
        target: /passwd
        bind:
          create_host_path: true
      - type: bind
        source: /usr/bin/7z
        target: /usr/bin/7z
        bind:
          create_host_path: true
      - type: bind
        source: /usr/bin/rar
        target: /usr/bin/rar
        bind:
          create_host_path: true
      - type: bind
        source: /usr/bin/unrar
        target: /usr/bin/unrar
        bind:
          create_host_path: true
networks:
  default:
    name: seedbox_default

Logs
# docker compose logs -f
rtorrent-logs-1       |<PHONE_NUMBER> N rtorrent main: Starting thread.
rtorrent-logs-1       |<PHONE_NUMBER> N rtorrent scgi: Starting thread.
rtorrent-logs-1       |<PHONE_NUMBER> N rtorrent scgi: Shutting down thread.
rtorrent-logs-1       |<PHONE_NUMBER> N rtorrent main: Shutting down thread.
rtorrent-logs-1       |<PHONE_NUMBER> N rtorrent disk: Shutting down thread.
geoip-updater-1       | Sun, 28 Apr 2024 13:06:22 CEST INF Starting geoip-updater v1.10.0
geoip-updater-1       | Sun, 28 Apr 2024 13:06:22 CEST INF Downloading GeoLite2-City.tar.gz archive... edition_id=GeoLite2-City
geoip-updater-1       | Sun, 28 Apr 2024 13:06:23 CEST INF GeoLite2-City.mmdb database successfully updated edition_id=GeoLite2-City modtime=2024-04-26T17:31:35+02:00 size=51.44MB
geoip-updater-1       | Sun, 28 Apr 2024 13:06:23 CEST INF Downloading GeoLite2-Country.tar.gz archive... edition_id=GeoLite2-Country
geoip-updater-1       | Sun, 28 Apr 2024 13:06:24 CEST INF GeoLite2-Country.mmdb database successfully updated edition_id=GeoLite2-Country modtime=2024-04-26T17:33:31+02:00 size=6.449MB
geoip-updater-1       | Sun, 28 Apr 2024 13:06:24 CEST INF Cron initialized with schedule 0 0 * * 0
geoip-updater-1       | Sun, 28 Apr 2024 13:06:24 CEST INF Next run in 6 days 10 hours (2024-05-05 00:00:00 +0200 CEST)
rtorrent-rutorrent-1  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
rtorrent-rutorrent-1  | [s6-init] ensuring user provided files have correct perms...exited 0.
rtorrent-rutorrent-1  | [fix-attrs.d] applying ownership & permissions fixes...
rtorrent-rutorrent-1  | [fix-attrs.d] done.
rtorrent-rutorrent-1  | [cont-init.d] executing container initialization scripts...
rtorrent-rutorrent-1  | [cont-init.d] 00-fix-logs.sh: executing...
rtorrent-rutorrent-1  | [cont-init.d] 00-fix-logs.sh: exited 0.
rtorrent-rutorrent-1  | [cont-init.d] 01-fix-uidgid.sh: executing...
rtorrent-rutorrent-1  | [cont-init.d] 01-fix-uidgid.sh: exited 0.
rtorrent-rutorrent-1  | [cont-init.d] 02-fix-perms.sh: executing...
rtorrent-rutorrent-1  | Fixing perms...
rtorrent-rutorrent-1  | [cont-init.d] 02-fix-perms.sh: exited 0.
rtorrent-rutorrent-1  | [cont-init.d] 03-config.sh: executing...
rtorrent-rutorrent-1  | Public IP address enforced to [removed]
rtorrent-rutorrent-1  | Setting timezone to Europe/Amsterdam...
rtorrent-rutorrent-1  | Setting PHP-FPM configuration...
rtorrent-rutorrent-1  | Setting PHP INI configuration...
rtorrent-rutorrent-1  | Setting OpCache configuration...
rtorrent-rutorrent-1  | Setting Nginx configuration...
rtorrent-rutorrent-1  | Setting Nginx XMLRPC over SCGI configuration...
rtorrent-rutorrent-1  | Setting Nginx ruTorrent configuration...
rtorrent-rutorrent-1  | Setting Nginx WebDAV configuration...
rtorrent-rutorrent-1  | Update healthcheck script...
rtorrent-rutorrent-1  | Initializing files and folders...
rtorrent-rutorrent-1  | Checking rTorrent local configuration...
rtorrent-rutorrent-1  | Checking rTorrent configuration...
rtorrent-rutorrent-1  | Bootstrapping ruTorrent configuration...
rtorrent-rutorrent-1  | Setting custom config for create plugin...
rtorrent-rutorrent-1  | Checking ruTorrent custom plugins...
rtorrent-rutorrent-1  |   Copying custom filemanager plugin...
rtorrent-rutorrent-1  |   Copying custom ratiocolor plugin...
rtorrent-rutorrent-1  | Checking ruTorrent plugins configuration...
rtorrent-rutorrent-1  | Checking ruTorrent custom themes...
rtorrent-rutorrent-1  |   Copying custom club-QuickBox theme...
rtorrent-rutorrent-1  | Setting GeoIP2 databases for geoip2 plugin...
rtorrent-rutorrent-1  | Fixing perms...
rtorrent-rutorrent-1  | [cont-init.d] 03-config.sh: exited 0.
rtorrent-rutorrent-1  | [cont-init.d] 04-create-services.sh: executing...
rtorrent-rutorrent-1  | [cont-init.d] 04-create-services.sh: exited 0.
rtorrent-rutorrent-1  | [cont-init.d] ~-socklog: executing...
rtorrent-rutorrent-1  | [cont-init.d] ~-socklog: exited 0.
rtorrent-rutorrent-1  | [cont-init.d] done.
rtorrent-rutorrent-1  | [services.d] starting services
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: using the "epoll" event method
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: nginx/1.24.0
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: OS: Linux 6.1.0-20-amd64
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: getrlimit(RLIMIT_NOFILE): 32000:40000
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: start worker processes
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: start worker process 518
rtorrent-rutorrent-1  | 2024/04/28 13:06:22 [notice] 510#510: start worker process 519
rtorrent-rutorrent-1  | [28-Apr-2024 13:06:22] NOTICE: fpm is running, pid 509
rtorrent-rutorrent-1  | [services.d] done.
rtorrent-rutorrent-1  | [28-Apr-2024 13:06:22] NOTICE: ready to handle connections
rtorrent-rutorrent-1  | rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value.
rtorrent-rutorrent-1  | rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value.
rtorrent-rutorrent-1  | rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value.
rtorrent-rutorrent-1  | rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value.
rtorrent-rutorrent-1  | rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value.
rtorrent-rutorrent-1  | rtorrent: Failed to parse command line option: Error in option file: /etc/rtorrent/.rtlocal.rc:50: Not a value.

Additional info
Following another issue reported, I've set RT_SEND_BUFFER_SIZE and RT_RECEIVE_BUFFER_SIZE to 32M in rtorrent-rutorrent.env, but the issue remains.
If I rollback to the previous version, everything is working fine.

Same error here as well out of nowhere.

@Hipoglos @ibyteprettyhard This was fixed #338. Please pull docker edge for the changes.
docker pull crazymax/rtorrent-rutorrent:edge

I pulled the edge version 1 hour before but got another error (not related to the value) so I rollbacked to previous version and it's working.
I don't know if I have something wrong from my side with the edge version but once I have time I'll check (hopefully in few hours) on it and if relevant share the result (I think in another post anyway as it's another error).
Thanks for all your actions anyway !
PS : I retrieved old logs generated with the edge.
2024/04/28 13:01:40 [error] 556#556: *58 FastCGI sent in stderr: "PHP message: PHP Warning:  Undefined variable $useInternalHybrid in /var/www/rutorrent/plugins/create/init.php on line 16" while reading response header from upstream, client: <IP_ADDRESS>, server: , request: "GET /php/getplugins.php HTTP/1.0", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "example.domain.com"
If maybe I'm not alone ?

@Hipoglos @ibyteprettyhard This was fixed #338. Please pull docker edge for the changes. docker pull crazymax/rtorrent-rutorrent:edge

I pulled the edge version and now I'm getting a different error.  Nothing from the console this time, but in the rutorrent log window.
Bad response from server: (404 [error,list])  404 Not Found  404 Not Found nginx

@Ixiruss Please check the ruTorrent v4.3.0 installation. It did not install properly. This variable is not found.
https://github.com/Novik/ruTorrent/blob/253da04e3900171a0cd5807f943d3ad4791c9cb7/plugins/create/conf.php#L19
Check: cat /var/www/rutorrent/plugins/create/conf.php
If missing add: $useInternalHybrid = true; with nano /var/www/rutorrent/plugins/create/conf.php.
If it's not missing let me know. It's probably a caching issue.

Thanks @stickz. Edge is working for me now. Have a nice weekend!

I pulled the edge version and now I'm getting a different error. Nothing from the console this time, but in the rutorrent log window.

I was getting a similar error, check if you still have:
RU_REMOVE_CORE_PLUGINS=httprpc

defined in your yml or .env (in my case), it was triggering a request to /RPC2 when loading the UI which was then 404ing

I pulled the edge version and now I'm getting a different error. Nothing from the console this time, but in the rutorrent log window.

I was getting a similar error, check if you still have:
RU_REMOVE_CORE_PLUGINS=httprpc

defined in your yml or .env (in my case), it was triggering a request to /RPC2 when loading the UI which was then 404ing

Removed entry in my .env, error persists after down/up

I pulled the edge version and now I'm getting a different error. Nothing from the console this time, but in the rutorrent log window.

I was getting a similar error, check if you still have:
RU_REMOVE_CORE_PLUGINS=httprpc

defined in your yml or .env (in my case), it was triggering a request to /RPC2 when loading the UI which was then 404ing

Removed entry in my .env, error persists after down/up

edit: Actually, this fixed the 404 error.  However it broke my sonarr/radarr integrations and it only works via direct ip:port and not through my reverse proxy.

@ibyteprettyhard You need to point sonarr/radarr to httprpc. Change your url path to /rutorrent/plugins/httprpc/action.php

crazymax/rtorrent-rutorrent:edge solved the issue

@newadventure079 @Ixiruss once #341 is merged, pull edge again. This docker image overrides that file and needs updated.

@newadventure079 @Ixiruss once #341 is merged, pull edge again. This docker image overrides that file and needs updated.

Thank you for your help !

I ran into this issue yesterday. Around 9am, I switched to edge. I then ran into this error: https://github.com/crazy-max/docker-rtorrent-rutorrent/issues/339#issuecomment-2081457249
This morning, I pulled edge again. Now the UI works, but all of my data files are gone. Cool.

crazymax/rtorrent-rutorrent:edge solved the issue

would you help me?

@rogales In your docker-compose.yml update the line that says image: crazymax/rtorrent-rutorrent:latest to image: crazymax/rtorrent-rutorrent:edge.
Once the fix is released in an official version, you may want to change edge (i.e. "beta") back to latest (i.e. "stable").

thank You!


Use PackageVersion from Jackson Libraries for Version Checking

Description
Changes how Jackson library version checking is done by using PackageVersion and Version from Jackson libraries to determine which versions have been loaded.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

/azp java - core - tests

/azp run java - core - tests

/check-enforcer override


Add Alibaba Druid plugin

add alibaba druid plugin

[x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Related #7735.
[x] Update the CHANGES log.

Pending on https://github.com/apache/skywalking-java/pull/26 review.

Wait for https://github.com/apache/skywalking-java/pull/27 ready to merge.

Update the CHANGES log.

Notice, you clicked this, but you don't update the changes.md.


F401 false positive in try except ImportError

F401 delete an import statement used to check whether a module is installed:

 try:
     import slack_sdk
     del slack_sdk
 except ImportError as e:
     raise MissingConditionalImportError('health_checker', 'slack_sdk', None) from e

Code snippet from https://github.com/mosaicml/composer
This auto fix just removed the import statement which creates an error when it is run again.

     try:
         del slack_sdk
     except ImportError as e:
         raise MissingConditionalImportError('health_checker', 'slack_sdk', None) from e

Obviously, the new code is a bad fix.

Guessing it’s related to the del but I’ll have to test.


The Humand Readable Formatter is now even more human readable.

The Human Readable formatter wasn't so readable, I've added extra enters and imporved the callstack output. Also when there is no exception available, it now outputs the information via the Line Formatter. Previously this wasn't done and the extra information was lost.

I think its better to make this a Processor not a Formatter.
If you add the output under $record['context']['printed_trace'] or something
Then you can use it in both GELF output and STDERR output.

Introducing a Processor is a smart idea. I'll create a new PR for that, thanks!


LeetCode Add Two Numbers | Johnny Law

https://www.longjj.com/2017/09/08/LeetCode-Add-Two-Numbers/

asdasdas


Experiment: generate AST for Settings.h

This generates a JSON file that has 3.7 million lines, so I think
we'd want to parse it with a fairly efficient JSON parser!
The CMake stuff for this is pretty hacky but I wasn't able to do it
any other way.

3.7 million lines from Settings.h? Wth. Is this because of includes?

3.7 million lines from Settings.h? Wth. Is this because of includes?

Yup it includes almost the entire Filament API.  (also, I should remove <string> from there)
Crazy idea:
To make it much simpler we could create a Settings.h in our public API, and move all our various options structs into that.  e.g. View::BloomOptions would be an alias for Settings::BloomOptions.

Maybe we should just parse it and see how fast/slow it is before worrying about optimizations. I know there are good, fast JSON parsers out there.

And it's not something we'll do at runtime, it can't be slower than generating our env maps through cmgen :p

Maybe we should just parse it and see how fast/slow it is before worrying about optimizations. I know there are good, fast JSON parsers out there.

Yeah.  We already use jsmn for the actual serialization, which is pretty damn fast, so we could use that.  Although, it's a C/C++ library and I'm not sure if C/C++ is the right tool for codegen...  On the other hand C++ is the lingua franca...

It's an opportunity to re-double check that we are not including things that we don't need in public headers and that we're fwd declaring everything we can.


Extension not working with .tsx files

The extension works great with js and jsx, but when i work with .tsx files it doesn't show me the snippets, did i miss some config beforehand ??
Thx in advance.

Hi @jdhqLifes, thanks for adopting this extension. Unfortunately, it doesn't support TypeScript snippets.
Alternatively, you could try installing a different extension that specifically provides code snippets for TypeScript. There are many extensions available that support TypeScript, so you may be able to find one that meets your needs.
I hope this helps. Please let me know if you have any other questions.

i understand thx dude, but u should remove .ts and .tsx from the "Supported languages (file extensions)" section, so it does not confuse to other devs.
Again thank you for making such a good extension 🍿😉🎊