[Bug]: ERROR hermes_tool_parser.py:108] Error in extracting tool call from response.

Your current environment

The output of `python collect_env.py`
Collecting environment information...
PyTorch version: 2.5.1+cu124
Is debug build: False
CUDA used to build PyTorch: 12.4
ROCM used to build PyTorch: N/A

OS: Ubuntu 22.04.4 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.35

Python version: 3.12.7 (main, Oct  1 2024, 08:52:12) [GCC 11.4.0] (64-bit runtime)
Python platform: Linux-5.15.0-125-generic-x86_64-with-glibc2.35
Is CUDA available: True
CUDA runtime version: Could not collect
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration:
GPU 0: NVIDIA RTX A6000
GPU 1: NVIDIA RTX A6000
GPU 2: NVIDIA RTX A6000
GPU 3: NVIDIA RTX A6000

Nvidia driver version: 535.183.01
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                         x86_64
CPU op-mode(s):                       32-bit, 64-bit
Address sizes:                        52 bits physical, 57 bits virtual
Byte Order:                           Little Endian
CPU(s):                               48
On-line CPU(s) list:                  0-47
Vendor ID:                            GenuineIntel
Model name:                           Intel(R) Xeon(R) Silver 4410Y
CPU family:                           6
Model:                                143
Thread(s) per core:                   2
Core(s) per socket:                   12
Socket(s):                            2
Stepping:                             8
CPU max MHz:                          3900.0000
CPU min MHz:                          800.0000
BogoMIPS:                             4000.00
Flags:                                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities
L1d cache:                            1.1 MiB (24 instances)
L1i cache:                            768 KiB (24 instances)
L2 cache:                             48 MiB (24 instances)
L3 cache:                             60 MiB (2 instances)
NUMA node(s):                         2
NUMA node0 CPU(s):                    0-11,24-35
NUMA node1 CPU(s):                    12-23,36-47
Vulnerability Gather data sampling:   Not affected
Vulnerability Itlb multihit:          Not affected
Vulnerability L1tf:                   Not affected
Vulnerability Mds:                    Not affected
Vulnerability Meltdown:               Not affected
Vulnerability Mmio stale data:        Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed:               Not affected
Vulnerability Spec rstack overflow:   Not affected
Vulnerability Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:             Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S
Vulnerability Srbds:                  Not affected
Vulnerability Tsx async abort:        Not affected

Versions of relevant libraries:
[pip3] flashinfer==0.1.6+cu121torch2.4
[pip3] numpy==1.26.4
[pip3] nvidia-cublas-cu12==<IP_ADDRESS>
[pip3] nvidia-cuda-cupti-cu12==12.4.127
[pip3] nvidia-cuda-nvrtc-cu12==12.4.127
[pip3] nvidia-cuda-runtime-cu12==12.4.127
[pip3] nvidia-cudnn-cu12==<IP_ADDRESS>
[pip3] nvidia-cufft-cu12==<IP_ADDRESS>
[pip3] nvidia-curand-cu12==<IP_ADDRESS>
[pip3] nvidia-cusolver-cu12==<IP_ADDRESS>
[pip3] nvidia-cusparse-cu12==<IP_ADDRESS>
[pip3] nvidia-ml-py==12.560.30
[pip3] nvidia-nccl-cu12==2.21.5
[pip3] nvidia-nvjitlink-cu12==12.4.127
[pip3] nvidia-nvtx-cu12==12.4.127
[pip3] pyzmq==26.2.0
[pip3] torch==2.5.1
[pip3] torchvision==0.20.1
[pip3] transformers==4.46.2
[pip3] triton==3.1.0
[conda] Could not collect
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.6.4.post1
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0    GPU1    GPU2    GPU3    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X      NODE    NODE    NODE    12-23,36-47     1               N/A
GPU1    NODE     X      NODE    NODE    12-23,36-47     1               N/A
GPU2    NODE    NODE     X      NODE    12-23,36-47     1               N/A
GPU3    NODE    NODE    NODE     X      12-23,36-47     1               N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

NVIDIA_VISIBLE_DEVICES=all
NVIDIA_REQUIRE_CUDA=cuda>=12.4 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=525,driver<526 brand=unknown,driver>=525,driver<526 brand=nvidia,driver>=525,driver<526 brand=nvidiartx,driver>=525,driver<526 brand=geforce,driver>=525,driver<526 brand=geforcertx,driver>=525,driver<526 brand=quadro,driver>=525,driver<526 brand=quadrortx,driver>=525,driver<526 brand=titan,driver>=525,driver<526 brand=titanrtx,driver>=525,driver<526 brand=tesla,driver>=535,driver<536 brand=unknown,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=geforce,driver>=535,driver<536 brand=geforcertx,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=titan,driver>=535,driver<536 brand=titanrtx,driver>=535,driver<536
NVIDIA_DRIVER_CAPABILITIES=compute,utility
VLLM_USAGE_SOURCE=production-docker-image
CUDA_VERSION=12.4.1
LD_LIBRARY_PATH=/usr/local/lib/python3.12/dist-packages/cv2/../../lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
CUDA_MODULE_LOADING=LAZY```

Model Input Dumps
No response
🐛 Describe the bug
This error occurred when I used the Qwen2.5-72B-AWQ model to make tool calls (with stream=False)
ERROR 12-02 05:59:06 hermes_tool_parser.py:108] Error in extracting tool call from response.

<tool_call>
{"name": "text_to_sql", "arguments": {"retrieve_steps": "查全部的controller", "columns": "*", "analysis_method": "summary the data and get max", "db_name": "21", "plot": false, "return_sql": false}}}
</tool_call>

Here is how I start vllm service:
docker run --runtime nvidia --gpus='"device=4,5,6,7"' \
--mount type=bind,source=/home/llm,target=/llm \
-p 7415:8000 \
--ipc=host \
vllm/vllm-openai:v0.6.4.post1  \
--model /llm/Qwen2.5-72B-Instruct-AWQ \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.95 \
--max-model-len 128000 \
--enforce-eager \
--disable_custom_all_reduce \
--enable-auto-tool-choice \
--tool-call-parser hermes  \
--chat-template /llm/qwen.jinja

Strangely, this only happens in v0.6.4.post1 and works fine in v0.6.3.post1
Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

There is an extra } at the end of the JSON that was returned, so the JSON would be invalid.
Also, is there a reason you are using a custom qwen.jinja. I use QWEN 72B-Instruct extensively (AWQ version as well -- it's my favorite model) and if I use the default chat template it works without any issues in 0.6.3, 0.6.4, and main branch. Only difference I see in arguments for us besides template is that I use NVLink with TP=2 on Ampere-class GPUs, so I don't disable custom allreduce or use enforce-eager.

Does this mean that the format of the tool list I gave is wrong?
The tool list example is as follows:

too_list = [
    {
        "type": "function",
        "function":{
            "name": "voice_to_text",
            "description": "This function is specially used to convert various audio files (such as conference recordings, lectures, interviews, etc.) into the required text files.\
            Through advanced speech recognition technology, the service can accurately transcribe audio content into text and generate verbatim transcripts.\
            Additionally, it can translate the transcriptions into specified languages as needed.\
            Use this tool when you find the phrases including, but not limited to: \"summarize this conference audio file\", \"generate a speech verbatim transcript\", \
            \"translate this English meeting recording into Chinese verbatim\".  If you think you need to use this tool, just use it without asking.",
            "parameters": {
                "type": "object",
                "properties": {
                    "AudioPath": {
                        "type": "string",
                        "description": "path to the audio, e.g. '/path/aaa.m4a', '/path/bbb.mp3'"
                    },
                    "KeywordsPath": {
                        "type": "string",
                        "description": "path to the keyword, e.g. '/path/keyword1.csv', '/path/keyword2.csv', 'None' for default."
                    },
                    "language": {
                        "type": "string",
                        "description": "The language to be transcribed only chose one of them. 'zh' means Chinese, 'en' means English. default is 'zh'",
                        "enum": ["zh", "en"]
                    },
                    "function_one_name_called": {
                        "type": "bool",
                        "description": "Whether call this function ONLY",
                        "enum": [True, False]
                    }
                },
                "required": ["AudioPath", "KeywordsPath", "language", "function_one_name_called"]
            }
        }
    }
]

I use qwen.jinja because llama3.1 must use another chat template. I mistakenly thought that qwen also needs it. Now the chat template has been removed. Thank you for the reminder!
I use --enforce-eager because v0.6.3post1 will produce garbled characters when encountering long content of more than 8k. I'm not sure if this has been fixed in v0.6.4 or 0.6.4post1
reference: #9448

Hi @Sala8888, 0.6.4 fixes the issue with garbled output. I don't think it will impact this issue though. I was just pointing that my parameters on this model were very similar, so it's odd that it isn't working.
My recollection is that when calling tools, vllm uses guided JSON output, so it's odd that the result would not be valid JSON. If switching to the default template doesn't change the result for you, I'll see if I can duplicate the result here.
Usually when I see issues like this with non-streaming, it's the model making a mistake and generating invalid JSON, but 72B rarely makes this mistake for me, so I'm surprised. It's very common with 14B or 7B without guided generation.

@cedonley I noticed something strange.
When I use v0.6.3post1  with  --chat-template /llm/qwen.jinja, it runs fine, but when I remove the chat template, the above error appears. In addition, when I use v0.6.4post1, an error will occur regardless of whether there is a chat template.
Here is qwen.jinja, I copied the content of chat_template from tokenizer_config.json and organized it into a readable form.
{%- if tools %}
    {{- '<|im_start|>system\n' }}
    {%- if messages[0]['role'] == 'system' %}
        {{- messages[0]['content'] }}
    {%- else %}
        {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}
    {%- endif %}
    {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
    {%- for tool in tools %}
        {{- "\n" }}
        {{- tool | tojson }}
    {%- endfor %}
    {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
{%- else %}
    {%- if messages[0]['role'] == 'system' %}
        {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }}
    {%- else %}
        {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }}
    {%- endif %}
{%- endif %}
{%- for message in messages %}
    {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %}
        {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
    {%- elif message.role == "assistant" %}
        {{- '<|im_start|>' + message.role }}
        {%- if message.content %}
            {{- '\n' + message.content }}
        {%- endif %}
        {%- for tool_call in message.tool_calls %}
            {%- if tool_call.function is defined %}
                {%- set tool_call = tool_call.function %}
            {%- endif %}
            {{- '\n<tool_call>\n{"name": "' }}
            {{- tool_call.name }}
            {{- '", "arguments": ' }}
            {{- tool_call.arguments | tojson }}
            {{- '}\n</tool_call>' }}
        {%- endfor %}
        {{- '<|im_end|>\n' }}
    {%- elif message.role == "tool" %}
        {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
            {{- '<|im_start|>user' }}
        {%- endif %}
        {{- '\n<tool_response>\n' }}
        {{- message.content }}
        {{- '\n</tool_response>' }}
        {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
            {{- '<|im_end|>\n' }}
        {%- endif %}
    {%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
    {{- '<|im_start|>assistant\n' }}
{%- endif %}

Maybe there is something wrong with vllm when parsing the built-in chat template of the model?

Hello @Sala8888
I created the following stand-alone python script (as a GIST), which uses your tool definition from your other bug report and the messages example you provided above. Note that I added the final assistant response, followed by the user's next request.
Replication script- GIST
With my PR, I'm receiving perfect results with both stream=True and stream=False with Qwen2.5-72B-Instruct-AWQ
See the output:
❯ python test_vllm_bug10831.py
stream=False results:
[ChatCompletionMessageToolCall(id='chatcmpl-tool-51f81454a4c440aa9c63e362997d50a4', function=Function(arguments='{"AudioPath": "https://example.com/real_audio.mp3", "language": "zh", "function_one_name_called": true}', name='voice_to_text'), type='function')]

streamed tool call id: chatcmpl-tool-e737c420b501499fa0b97f1aa9c0ce54
streamed tool call name: voice_to_text
streamed tool call arguments: {"AudioPath": "https://example.com/real_audio.mp3", "language": "zh", "function_one_name_called": true}

It could be that when you provided the example in context, you forgot to include the assistant's final reply after the tool result, which would break the user/assistant/tool/assistant/user flow of the tools.
For completeness, here were the arguments for my successful run:
python -m vllm.entrypoints.openai.api_server --model /my/path/Qwen2.5-72B-Instruct-AWQ --host <IP_ADDRESS> --port 5005 --served-model-name qwen2.5-large --disable-log-requests --kv-cache-dtype auto --enable-auto-tool-choice --tool-call-parser hermes -tp 2 --gpu-memory-utilization 0.95 --distributed-executor-backend ray --enable-prefix-caching --enable-chunked-prefill

If this still doesn't work for you, then there must be something related to the specific timing of your delta sequences. In that case, please use my test script against a vLLM server after you have turned on debugging and attach the relevant output.
export VLLM_LOGGING_LEVEL=DEBUG


initial commit farsi (Iran) spelling dictionary in UTF-8

hi
Please accept my request to add Persian Dictionary.
be soon the rest of the sections will be completed.
Thanks in advance

Thanks for working on this, @AhmadJavadiNejad!
The main question I have is where the source of the dictionary comes from: did you write it yourself, or did you get the dictionary from somewhere else?
If the former, I have some other questions, but I suspect the latter, in which case, I can’t accept this PR because it does not reference where it comes from, and that’s probably a breach of contract / license.

Yes sure. in the next commit, I'll provide references for the dictionary.

Thanks for working on this, @AhmadJavadiNejad!
The main question I have is where the source of the dictionary comes from: did you write it yourself, or did you get the dictionary from somewhere else?
If the former, I have some other questions, but I suspect the latter, in which case, I can’t accept this PR because it does not reference where it comes from, and that’s probably a breach of contract / license.

hi
the license and vocabulary sources are specified.
thanks.

Any reason why you’re not basing this off b00f/lilak? That looks better as it has a working .aff file.

Any reason why you’re not basing this off b00f/lilak? That looks better as it has a working .aff file.

There is no particular reason, so far I did not see this repository. I was also looking to Writing a .affx file.


node-theseus and grunt

Hi!
I created a grunt task to watch my files and restart node-theseus in case any of my file is changed. I use no-demon and I launch node-theseus within the exec option of grunt-nodemon (https://github.com/ChrisWren/grunt-nodemon#exec)
The problem is when I want to stop debugging. Somehow after only 2 process.exit caught grunt exits and node-theseus keeps running and the port 888 is still in use. That means that I can't start another debug session with node-theseus.
In node-theseus, you hard code the number of time to receive process.exit before exiting:
if (++exitCount >= 3) {
...
Would it be possible to pass this value (3) as a parameter? It would fix my issue...

Sure! Sorry for the inconvenience.

Thanks! :)


Don't display Kyber Total on non-kyber transactions

It was hard to word the title for this, but basically only show the DAI/KNC/ETH amount if they choose Kyber payment at checkout.
For example, this PayPal checkout shows "DAI" amount under the total USD price:

I think it would just need a simple if statement

@companyhen I also saw that the DAI price currently does not include shipping fee. Should we upgrade including shipping fee as well? Anw, thank you for your feedback. This bug(feature) should be fixed in next release (intend to release in early of March)

Kyber Total is removed from https://github.com/KyberNetwork/widget-woocommerce/releases/tag/v0.2.1. Close this issue.


Typo "Azure Blob storage"→"Azure Blob Storage"

https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-ver15

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

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


setting page

Hello
I want to thank you for sharing your code. I have a question, is it possible to change one of the sliders to settings page?

You can supply your own renderItem-function which can render whatever you want it to, including a settings page.


chore(main): release 5.0.1

:robot: I have created a release beep boop
5.0.1 (2024-09-26)
Bug Fixes

add sourcemaps (052ed15)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v5.0.1
:sunflower:


Bug: no-unsupported-features/es-builtins false positives

Environment
Node version:v22.0.0
npm version:v10.4.0
ESLint version:v9.0.0
eslint-plugin-n version: 17.3.1
Operating System:darwin 23.5.0
What rule do you want to report?
no-unsupported-features/es-builtins
Link to Minimal Reproducible Example
n/w
What did you expect to happen?
'use strict';
fetch('/api/xxx');

result:
  2:1  error  The 'fetch' is still an experimental feature and is not supported until Node.js 18.0.0. The configured version range is '>=17'  n/no-unsupported-features/es-builtins

Since fetch is not an es builtin, the rule should not report this case.
Participation

[ ] I am willing to submit a pull request for this issue.

Additional comments
No response

I am unsure I agree, as I thought fetch is both es builtin and a nodew built in 🤔


resolve(issue-429): dependancy charts modify version metadata

resolves https://github.com/helm-unittest/helm-unittest/issues/412
This to let helm-unittest to overrride chart versions for all dependent charts

Hi @quintush when you free, please have a look


make update to work automatically and auto-restart script after

To allow the script to work in an automated environment (via a cronjob for ex) can you please add an argument to instruct the script to auto-update if needed (don't wait for user input) and at the end just restart itself (you can use exec "$0" "$@" for this)

I wanted to do that, but I didn't know how to restart the script XD

the script still stops and wait for user input if an update is found.
please add a script argument to allow automatically updates and not wait for user input.

The script only asks for user input if something doesn't go as planned @GaryStar:

In case you have local changes
In case it did not manage to update the script

I do not plan on changing these by the way. I could add a flag to force an update if found, but I'm not sure if that's worth it for what it is. I'd rather have you check what the script is asking you to do, as it's probably one of the above.

Thank you for your response.
This makes sense then. I'm running the script using a simple wrapper that will first replace some things in the main script. For example I replace all tower battles logs from INFO to DONE so git status will always return something hence the prompt on update.
No matter, I will also replace read -r answer with answer="y" :)


Add marisa-trie 0.2.6.

Hello @bazelbuild/bcr-maintainers, modules without existing maintainers (marisa-trie) have been updated in this PR. Please review the changes.

The following error seems a false alarm.
BcrValidationResult.FAILED<EMAIL_ADDRESS>is using an unstable source url: https://github.com/s-yata/marisa-trie/files/4832504/marisa-0.2.6.tar.gz.
You should use a release archive URL in the format of https://github.com/<ORGANIZATION>/<REPO>/releases/download/<version>/<name>.tar.gz to ensure the archive checksum stability.

https://github.com/s-yata/marisa-trie/files/4832504/marisa-0.2.6.tar.gz should be stable.


network: ensure parent directories exist

make sure the parent directory exists when opening the resolv.conf
file.
Signed-off-by: Giuseppe Scrivano<EMAIL_ADDRESS>

@giuseppe could you file an issue and include  fixes #XXX in your commit message?

/test


:bug: [params.title] disappeared from top navbar in v2.35.0 ?

Hello! :wave:
Describe the bug
Looks like the title value, next to the logo in the navbar ("Blowfish" in the example site), is not showing anymore?
To Reproduce
I updated my languages.fr.toml code from:
# * ...

title = "GustaveWPM"
description = "Découvrez mes projets et mon blog de développeur web grâce auquel je partage ma passion ! Exemples de technologies utilisées : React, TypeScript, ExpressJS, Hugo..."
languageCode = "fr"
languageName = "Français"
isoCode = "fr"
weight = 1
rtl = false

logo = "/img/wpm-logo.webp"
# copyright = "Copy, _right?_ :thinking_face:"

displayName = "FR"
dateFormat = "2 January 2006"

# * ...

to:
[params]
  title = "GustaveWPM"
  description = "Découvrez mes projets et mon blog de développeur web grâce auquel je partage ma passion ! Exemples de technologies utilisées : React, TypeScript, ExpressJS, Hugo..."
  languageCode = "fr"
  languageName = "Français"
  isoCode = "fr"
  weight = 1
  rtl = false

  logo = "/img/wpm-logo.webp"
  # copyright = "Copy, _right?_ :thinking_face:"

  displayName = "FR"
  dateFormat = "2 January 2006"

I'm using Hugo v0.112.7.

EDIT: wow, I'm really sorry.
Just writing title at the top of the languages.fr.toml file works perfectly fine and doesn't trigger any warning.
I'm just a Hugo newbie.

Wow, I'm really sorry.
Just writing title at the top of the languages.fr.toml file works perfectly fine and doesn't trigger any warning.
I'm just a Hugo newbie.

No issues @gustaveWPM Hugo introduced some breaking changes and deprecated some values. I tired to mitigated that but probably did a bad job at it. Sorry for the confusion.


Allow Users to be moderators and for field to be set via Admin dashboard

As part of address #4011 one task is:
Add a new field/migration to the User model, as well as corresponding UI in /admin for administrators to toggle this flag for users;

I opened this early, my mistake, I am currently working on tests.

Tests have been run. Also verified the admin portal and setting/unsetting admin.


Support for structural variation

Looking over the specifications, it appears that the data model does have support for any sort of structural variant. If this is intentionally out of scope then this should be made explicit in the introduction with an explaination as to why. There is a CNV type listed in the future plans, but currently, the fundamental data model is inappropriate and unable to fully represent SVs.
More generally, should feedback be raised on github, or through the public consultation that is  currently open?

Thanks @d-cameron. Non-CNV structural variations are definitely in-scope for our roadmap (alongside CNVs), though we are still discussing how to best represent them and therefore did not include them in our v1.0 release candidate.
Currently our future plans include the Translocation class of Variation, which is intended to represent our plans to capture other SV types. Given your expertise in this area, your feedback and participation in developing this portion of the specification for a future release would be most welcome. The current avenue for feedback and suggestions on SVs and fusions is at #28.


OpenFAST version 3.5.0 is compiled successfully on a M1 Mac but it fails to compile or an invalid FAST_SFunc.mexw64 is generated on Windows 10

Bug description
(1) First of all, as a referece to #1308, I compiled an OpenFAST version 3.5.0 with a MacOS-arm64 compiler (gcc version 12.2.0) and an arm native version of MatLab (Matlab_R2022b_Beta) on a M1 Mac, in order to run simulation using Simulink and OpenFAST. The compilation was successful. I also tested Run_Openloop.m then Simulink called OpenFAST subroutines and received resulting data from OpenFAST.
(2) Second, I tried to compile an  OpenFAST version 3.5.0 with a Windows-intel64 compiler (gcc version 12.2.0) and an intel version of Malab (Malab_R2023a) on a windows 10. The compilation failed.
Error message was
c:\openfast\modules\nwtc-library\src\SysMatlabWindows.f90:69:5
69  USE IFPORT
Fatal Error : Cannot open module file 'ifport.mod' for reading at (1) :
No such file or diretory
compilation terminated.
I think that IFPORT library is not a gfortran library so it could not open module file 'ifport.mod'.
(3) Third, I changed the compiler from gcc to Intel Fortran and C, C++ Compiler version 2023.1.0. The compilation was finished. When Run_Openloop.m testing, Simulink outputs error message.
Error while obtaining sizes from Mex s-function 'FAST_SFunc in OpenLoop/FAST Nonlinear Wind Turbine/s-function' Caused by : Invalid MEX-file 'c:\openfast\install\bin\FAST_SFunc.mexw64 : The specified module could not be found.
(4) About mistakes of CMakeLists.txt in OpenFAST directory
OPENMP could not enable so I checked a CMakeLists.txt.
I found a mistake on line 113 of CMakeLists.txt in OpenFAST directory.
Mistake is
113 set(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} ${OpenMP_FORTRAN_FLAGS}")
Correct is
113 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}")
To Reproduce
(1)

Modify a CMakeLists.txt in an OpenFAST directory as shown in 4).
mkdir build install && cd build
cmake .. -DOPENMP=ON -DBUILD_TESTING=ON -DBUILD_OPENFAST_SIMULINK_API=ON -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_Fortran_FLAGS="-DUA_OUTS=ON" -DMatlab_ROOT_DIR=/Applications/MATLAB_R2022b_Beta.app -DMatlab_MEX_LIBRARY=/Applications/MATLAB_R2022b_Beta.app/bin/maca64/libmex.dylib
make -j4 install
ctest -j4
Open Matlab
Set current folder to /Users/xxxxxxxx/Documents/openfast/glue-code/simulink/examples
Set MATLAB search path to /Users/xxxxxxx/Documents/openfast/install/lib
In Matlab Command Window
% FAST_InputFileName = '../../../build/reg_tests/glue-codes/openfast/5MW_Land_DLL_WTurb/5MW_Land_DLL_WTurb.fst'
% TMax=60
Edit PCMode, VSContrl, HSSBrMode, YCMode, AFCmode and CCmode values to 4 in NRELOffshrBsline5MW_Onshore_ServoDyn.dat of 5MW_Land_DLL_WTurb directory.
Push Simulink button and open Openloop.mdl
Push Run button

System Information

OS:MacOS Ventura 13.3.1(a)
Compiler: gcc version 12.2.0
Software:Matlab_R2022_Beta

(2)

Modify a CMakeLists.txt in an OpenFAST directory as shown in 4).
mkdir build install
cd build
cmake .. -G"MinGW Makefiles" -DOPENMP=ON -DBUILD_OPENFAST_SIMULINK_API=ON
mingw32-make

System Information

OS:Windows 10
Compiler: gcc version 12.2.0
Software:MinGW-w64-builds-5.0.0, Matlab_R2023a

(3)

Modify a CMakeLists.txt in an OpenFAST directory as shown in 4).
"c:¥Program Files (x86)¥Intel¥oneAPI¥setvars.bat"
mkdir build install
cd build
cmake .. -G"MinGW Makefiles" -DOPENMP=ON -DBUILD_TESTING=ON -DBUILD_OPENFAST_SIMULINK_API=ON -DCMAKE_Fortran_FLAGS="-DUA_OUTS=ON" -DCMAKE_Fortran_COMPILER=ifort
mingw32-make install
ctest -j4
Open Matlab
Set current folder to c:¥openfast¥glue-code¥simulink¥examples
Set MATLAB search path to c:¥openfast¥install¥lib
In Matlab Command Window
% FAST_InputFileName = '..¥..¥..¥build¥reg_tests¥glue-codes¥openfast¥5MW_Land_DLL_WTurb¥5MW_Land_DLL_WTurb.fst'
% TMax=60
Edit PCMode, VSContrl, HSSBrMode, YCMode, AFCmode and CCmode values to 4 in NRELOffshrBsline5MW_Onshore_ServoDyn.dat of 5MW_Land_DLL_WTurb directory.
Push Simulink button and open Openloop.mdl
Push Run button

System Information

OS:Windows 10
Compiler:Intel Fortran and C, C++ Compiler version 2023.1.0
Software:MinGW-w64-builds-5.0.0, Matlab_R2023a

OpenFAST Version
version 3.5.0

@hyoshimine , thank you for finding the issue with the OpenMP line in CMakeLists.txt, this has been corrected in the rc-3.5.1 branch. Using CMake to generate the MEX file for Simulink is a new feature which has not been sufficiently tested on Windows. Windows users typically build with the Visual Studio project instead of with CMake. However, I was able to reproduce this issue and get it working.
The Windows system module for Matlab assumes that the Intel Fortran compiler will be used, which is why the IFPORT module was not found when using GCC. I will investigate the possibility of using GCC with Matlab on Windows since this is currently possible for OpenFAST on Linux and Mac.
Using the Intel compilers to build OpenFAST and generate the MEX file completed successfully. However, this gave the error The specified module could not be found.' when trying to use the MEX file. It turns out that the MEX file was produced correctly and this error refers to a shared library which the MEX file is trying to load when starting the simulation. For my setup, the missing library turned out to be the mkl_intel_thread.2.dllwhich was not on my path. It gets added to the path bysetvars.bat` during development, but when Matlab is run, it can't find the file.
There are two solutions:

Add this file to your path (it was located at C:\Program Files (x86)\Intel\oneAPI\mkl\latest\redist\intel64\mkl_intel_thread.2.dll on my system)
Statically link the MKL into the MEX file by adding -DBLA_STATIC=ON when running the CMake configure step (I tested this and it worked on my system)

Please let me know if this resolves the issue for you. I'll see about supporting GCC for building the MEX file on Windows.

Derek Slaughter, thanks for the two solutions to this issue. I immediately tried these two methods. In method 1, setting the path c: ¥Program Files(x86)¥Intel¥oneAPI¥mkl¥latest¥redist¥intel64¥ to mkl_intel_thread2.dll did not solve this issue on my system. However, I knew that setting the environment by setvars.bat only works in the command window, so I was able to use the alternative method 1 below to resolve the issue. Method 2 solved the issue.
Alternative method

After development, type matlab in the command window set up by "c:¥Program Files(x86)¥Intel¥oneAPI¥setvars.bat" or start matlab by typing "c: ¥Program Files(x86)¥Intel¥oneAPI¥setvars.bat" & matlab in a new command window.

Then I tried to modify the source code and CmakeLists.txt for building mex files using gcc on Windows. However, an undefined reference to `mexprintf' occurs when linking.  Please tell me how to fix this error.
OpenFAST Version
version rc-3.5.1
To Reproduce
build

cmake .. -G"MinGW Makefiles" -DOPENMP=ON -DBUILD_TESTING=ON -DCMAKE_Fortran_FLAGS="-DUA_OUTS=ON" -DBUILD_OPENFAST_SIMULINK_API=ON -DCMAKE_Fortran_FLAGS=-fno-underscoring
mingw32-make install

error message
Linking Fortran shared library FAST_SFunc.mexw64
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../modules/nwtc-library/libnwtclibs-matlab.a(SysMatlabWinGnu.f90.obj):SysMatlabWinGnu.f90:(.text+0xbbc): undefined reference to mexprintf' C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../modules/nwtc-library/libnwtclibs-matlab.a(SysMatlabWinGnu.f90.obj):SysMatlabWinGnu.f90:(.text+0xd05): undefined reference to mexprintf'
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../modules/nwtc-library/libnwtclibs-matlab.a(SysMatlabWinGnu.f90.obj):SysMatlabWinGnu.f90:(.text+0xe08): undefined reference to `mexprintf'
Modify modules\nwtc-library  CmakeLists.txt
24 set(NWTC_SYS_FILE_MATLAB ${CMAKE_CURRENT_SOURCE_DIR}/src/SysMatlabWindows.f90) original
SysMatlabWinGnu.f90   modify
modules\nwtc-library\src
Create SysMatlabWinGnu.f90 from SysMatlabWindows.f90
modify 57
57   CHARACTER(*),  PARAMETER      :: OS_Desc     = 'Intel Visual Fortran for Windows/Matlab' original
　　　　　　　　　　　 'GNU Fortran for Windows/Matlab'          modify
delete 69
69 USE IFPORT
modify 73
73 INTEGER                                   :: StatArray(12)  original
　　　     StatArray(13)  modify
delete 93-95
93 #ifndef CONSOLE_FILE
94    USE                             IFPORT, ONLY: FLUSH
95 #endif
delete 102-104
102 #ifndef CONSOLE_FILE
103   CALL FLUSH ( INT(Unit, B4Ki) )
104 #endif
delete 115
115    USE                             IFPORT, ONLY: GETCWD
delete 138
138 USE, INTRINSIC :: ieee_arithmetic
modify
143 Is_NaN = IEEE_IS_NAN( DblNum )  original
　　　　　   IsNaN( DblNum )  modify
modify
213 inquire( directory=trim(new_directory_path), exist=directory_exists ) original
　　　    file=trim(new_directory_path), exist=directory_exists ) modfy
modify
216 make_command = 'mkdir "'//trim(new_directory_path)//'"'  original
　   make_command = 'mkdir -p '//trim(new_directory_path)     modify
delete 226, 232, 235, 237, 239, 240, 242
226 #ifdef CONSOLE_FILE
232 INTEGER                      :: IOS
235 OPEN ( CU , FILE='CONSOLE.TXT' , STATUS='UNKNOWN', FORM='FORMATTED', IOSTAT=IOS, ACTION="WRITE"   )
237 IF ( IOS /= 0 )  THEN
239       CALL ProgExit ( 1 )
240  END IF
242 #endif
delete 281-284
282 #ifdef CONSOLE_FILE
283   CLOSE ( CU )
284 #endif
delete
297    USE, INTRINSIC :: ieee_arithmetic
replace 309-316
delete 309-316
309 NaN_D = ieee_value(0.0_DbKi, ieee_quiet_nan)
310 Inf_D = ieee_value(0.0_DbKi, ieee_positive_inf)
312 NaN   = ieee_value(0.0_ReKi, ieee_quiet_nan)
313 Inf   = ieee_value(0.0_ReKi, ieee_positive_inf)
315 NaN_S = ieee_value(0.0_SiKi, ieee_quiet_nan)
316 Inf_S = ieee_value(0.0_SiKi, ieee_positive_inf)
addition 17 lines
real(DbKi)     :: Neg_D
real(SiKi)     :: Neg_S
real(ReKi)     :: Neg
#ifndef FPE_TRAP_ENABLED
Neg_D = -1.0_DbKi
Neg_S = -1.0_SiKi
Neg   = -1.0_ReKi
NaN_D = SQRT ( Neg_D )
NaN_S = SQRT ( Neg_S )
NaN   = SQRT ( Neg )
Neg_D = 0.0_DbKi
Neg_S = 0.0_SiKi
Neg   = 0.0_ReKi
Inf_D = 1.0_DbKi / Neg_D
Inf_S = 1.0_SiKi / Neg_S
Inf   = 1.0_ReKi / Neg
#endif
addition 325
325    CALL WrNR ( CHAR( 7 ) )
delete 406-407
406 USE IFWINTY,  ONLY : HANDLE
407 USE kernel32, ONLY : LoadLibrary
replace 412
delete 412
412    INTEGER(HANDLE)                           :: FileAddr
addition 9 lines
INTERFACE  ! Definitions of Windows API routines
FUNCTION LoadLibrary(lpFileName) BIND(C,NAME='LoadLibraryA')
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
!GCC$ ATTRIBUTES STDCALL :: LoadLibrary
INTEGER(C_INTPTR_T)        :: LoadLibrary
CHARACTER(KIND=C_CHAR)     :: lpFileName(*)
END FUNCTION LoadLibrary
END INTERFACE
replace 418-419
delete 418-419
418 FileAddr = LoadLibrary( TRIM(DLL%FileName)//C_NULL_CHAR )
419 DLL%FileAddr = TRANSFER(FileAddr, DLL%FileAddr)
addition 418
418 DLL%FileAddr = LoadLibrary( TRIM(DLL%FileName)//C_NULL_CHAR )
delete 439-440
439 USE IFWINTY,  ONLY : LPVOID
440 USE kernel32, ONLY : GetProcAddress
delete 445
445 INTEGER(LPVOID)                           :: ProcAddr
addition 9 lines
447   INTERFACE  ! Definitions of Windows API routines
FUNCTION GetProcAddress(hModule, lpProcName) BIND(C, NAME='GetProcAddress')
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
TYPE(C_FUNPTR)             :: GetProcAddress
INTEGER(C_INTPTR_T),VALUE  :: hModule
CHARACTER(KIND=C_CHAR)     :: lpProcName(*)
END FUNCTION GetProcAddress
END INTERFACE
replace 455,456
delete 455,456
455 ProcAddr = GetProcAddress( DLL%FileAddr, TRIM(DLL%ProcName(i))//C_NULL_CHAR )
456 DLL%ProcAddr(i) = TRANSFER(ProcAddr, DLL%ProcAddr(i))
addition
455       DLL%ProcAddr(i) = GetProcAddress( DLL%FileAddr, TRIM(DLL%ProcName(i))//C_NULL_CHAR )
delete 473,474
473 USE IFWINTY,  ONLY : BOOL, HANDLE, FALSE !, LPVOID
474 USE kernel32, ONLY : FreeLibrary
modify 479
479 INTEGER(HANDLE)                           :: FileAddr     original
INTEGER(C_INT), PARAMETER                 :: FALSE  = 0   modify
modify 480
480 INTEGER(BOOL)                             :: Success   original
　    INTEGER(C_INT)                            :: Success   modify
addition 9 lines
481 INTERFACE  ! Definitions of Windows API routines
FUNCTION FreeLibrary(hLibModule) BIND(C, NAME='FreeLibrary')
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
!GCC$ ATTRIBUTES STDCALL :: FreeLibrary
INTEGER(C_INT)             :: FreeLibrary ! BOOL
INTEGER(C_INTPTR_T),VALUE  :: hLibModule ! HMODULE hLibModule
END FUNCTION
END INTERFACE
delete
487    FileAddr = TRANSFER(DLL%FileAddr, FileAddr)
modify 490
490 Success = FreeLibrary( FileAddr )      original
Success = FreeLibrary( DLL%FileAddr )  modify

2023/06/30 3:15、Derek Slaughter @.***>のメール:
@hyoshimine https://github.com/hyoshimine , thank you for finding the issue with the OpenMP line in CMakeLists.txt, this has been corrected in the rc-3.5.1 branch. Using CMake to generate the MEX file for Simulink is a new feature which has not been sufficiently tested on Windows. Windows users typically build with the Visual Studio project instead of with CMake. However, I was able to reproduce this issue and get it working.
The Windows system module for Matlab assumes that the Intel Fortran compiler will be used, which is why the IFPORT module was not found when using GCC. I will investigate the possibility of using GCC with Matlab on Windows since this is currently possible for OpenFAST on Linux and Mac.
Using the Intel compilers to build OpenFAST and generate the MEX file completed successfully. However, this gave the error The specified module could not be found.' when trying to use the MEX file. It turns out that the MEX file was produced correctly and this error refers to a shared library which the MEX file is trying to load when starting the simulation. For my setup, the missing library turned out to be the mkl_intel_thread.2.dllwhich was not on my path. It gets added to the path bysetvars.bat` during development, but when Matlab is run, it can't find the file.
There are two solutions:
Add this file to your path (it was located at C:\Program Files (x86)\Intel\oneAPI\mkl\latest\redist\intel64\mkl_intel_thread.2.dll on my system)
Statically link the MKL into the MEX file by adding -DBLA_STATIC=ON when running the CMake configure step (I tested this and it worked on my system)
Please let me know if this resolves the issue for you. I'll see about supporting GCC for building the MEX file on Windows.
—
Reply to this email directly, view it on GitHub https://github.com/OpenFAST/openfast/issues/1583#issuecomment-1613595821, or unsubscribe https://github.com/notifications/unsubscribe-auth/A7NYYLMD7UGEMAX6RFSDQFLXNXA5XANCNFSM6AAAAAAYJHF7BE.
You are receiving this because you were mentioned.

@hyoshimine , I got it working in the branch at https://github.com/deslaughter/openfast/tree/f/matlab-gcc-win, however, using MinGW to build the MEX file directly does not seem to be well supported by Matlab. I had to use the version MinGW compatible with Matlab2023b according to the table at https://www.mathworks.com/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler.
As for fixing the mexPrintf undefined reference error, the key is putting the following code in SysMatlabWinGnu.f90 which allows the linker to find the appropriate function in the Matlab libraries (the other mexPrintf function definitions needed to be removed from the file):
interface
   function mexPrintf(message) bind(C, NAME='mexPrintf')
      use, intrinsic :: ISO_C_BINDING
      !GCC$ ATTRIBUTES STDCALL :: mexPrintf
      character(KIND=C_CHAR) :: message(*)
   end function
end interface

Derek Slaughter, thanks for your answer about GCC for building mex files on windows.
I cloned form"https://github.com/deslaughter/openfast/tree/f/matlab-gcc-win" and I confiromed it working.
and I modified SysMatlabWinGnu.f90 in module/nwtc-library/src directory, CMakeLists.txt in module/nwtc-library directory and CMakeLists in glue-codes/simulink directory according with your advice and I confiromed it working.
However nwtc_library_utest of regression test was failed.　What is a cause of this error?
93/96 Testing: nwtc_library_utest
93/96 Test: nwtc_library_utest
Command: "C:/openfast/build/unit_tests/nwtc-library/nwtc_library_utest.exe"
Directory: C:/openfast/build/unit_tests/nwtc-library
"nwtc_library_utest" start time: Jul 21 11:35 東京 (標準時)
Output:
.....At line 20 of file C:\openfast\build\unit_tests\tests\nwtc-library\NWTC_Library_test_tools.F90 (unit = 6)
Fortran runtime error: Cannot open file '/dev/null': No such file or directory
￼￼￼

2023/07/19 5:15、Derek Slaughter @.***>のメール:
@hyoshimine https://github.com/hyoshimine , I got it working in the branch at https://github.com/deslaughter/openfast/tree/f/matlab-gcc-win, however, using MinGW to build the MEX file directly does not seem to be well supported by Matlab. I had to use the version MinGW compatible with Matlab2023b according to the table at https://www.mathworks.com/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler.
As for fixing the mexPrintf undefined reference error, the key is putting the following code in SysMatlabWinGnu.f90 which allows the linker to find the appropriate function in the Matlab libraries (the other mexPrintf function definitions needed to be removed from the file):
interface
function mexPrintf(message) bind(C, NAME='mexPrintf')
use, intrinsic :: ISO_C_BINDING
!GCC$ ATTRIBUTES STDCALL :: mexPrintf
character(KIND=C_CHAR) :: message(*)
end function
end interface
—
Reply to this email directly, view it on GitHub https://github.com/OpenFAST/openfast/issues/1583#issuecomment-1640934404, or unsubscribe https://github.com/notifications/unsubscribe-auth/A7NYYLOCXDO3Q7OAGHE4GNLXQ3VEVANCNFSM6AAAAAAYJHF7BE.
You are receiving this because you were mentioned.

Copyright 2023 National Renewable Energy Laboratory

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

List of module libraries to be linked into the MEX shared library.
This list will be linked twice to resolve undefined symbols due to linking order.
set(MEX_LIBS
$<TARGET_FILE:openfast_prelib>
$<TARGET_FILE:aerodyn14lib>
$<TARGET_FILE:aerodynlib>
$<TARGET_FILE:beamdynlib>
$<TARGET_FILE:elastodynlib>
$<TARGET_FILE:extptfm_mckflib>
$<TARGET_FILE:feamlib>
$<TARGET_FILE:hydrodynlib>
$<TARGET_FILE:icedynlib>
$<TARGET_FILE:icefloelib>
$<TARGET_FILE:maplib>
$<TARGET_FILE:moordynlib>
$<TARGET_FILE:orcaflexlib>
$<TARGET_FILE:sctypeslib>
$<TARGET_FILE:servodynlib-matlab> # MATLAB Specific
$<TARGET_FILE:subdynlib>
$<TARGET_FILE:foamfastlib>
$<TARGET_FILE:ifwlib>
$<TARGET_FILE:scfastlib>
$<TARGET_FILE:foamtypeslib>
$<TARGET_FILE:versioninfolib>
$<TARGET_FILE:nwtclibs-matlab>    # MATLAB Specific
)
Build the matlab shared library (mex) using the current toolchain.
Recommpiles FAST_* files with COMPILE_SIMULINK defined.
Links directly to library files, bypassing dependencies so MATLAB specific
libraries can be substituted (nwtclibs and servodynlib). openfast_postlib
is used as a dependency to ensure that all library files exist before
the FAST_SFunc target is built.
matlab_add_mex(
NAME FAST_SFunc
SRC
src/FAST_SFunc.c
${PROJECT_SOURCE_DIR}/modules/openfast-library/src/FAST_Subs.f90
${PROJECT_SOURCE_DIR}/modules/openfast-library/src/FAST_Lin.f90
${PROJECT_SOURCE_DIR}/modules/openfast-library/src/FAST_Mods.f90
${PROJECT_SOURCE_DIR}/modules/openfast-library/src/FAST_Solver.f90
${PROJECT_SOURCE_DIR}/modules/openfast-library/src/FAST_Library.f90

LINK_TO
${MEX_LIBS}
${MEX_LIBS} # DO NOT REMOVE (needed to ensure no unresolved symbols)
${LAPACK_LIBRARIES}
${CMAKE_DL_LIBS}
${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}

)
add_dependencies(FAST_SFunc openfast_postlib nwtclibs-matlab servodynlib-matlab)
target_compile_definitions(FAST_SFunc PRIVATE COMPILE_SIMULINK)
set_target_properties(FAST_SFunc PROPERTIES
Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/matlab)
target_include_directories(FAST_SFunc PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/modules/openfast-library/src>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/modules/openfoam/src>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/modules/supercontroller/src>
)
if(APPLE OR UNIX)
target_compile_definitions(FAST_SFunc PRIVATE IMPLICIT_DLLEXPORT)
endif()
if(WIN32 AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL "GNU"))
target_link_options(FAST_SFunc PRIVATE "-Wl,--export-all-symbols")  # Export all symbols with MinGW
endif()
install(TARGETS FAST_SFunc
EXPORT "${CMAKE_PROJECT_NAME}Libraries"
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)

Copyright 2016 National Renewable Energy Laboratory

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

#-------------------------------------------------------------------------------
NWTC System File
#-------------------------------------------------------------------------------
if (${CMAKE_Fortran_COMPILER_ID} STREQUAL "GNU")
if (WIN32)
set(NWTC_SYS_FILE src/SysGnuWin.f90)
set(NWTC_SYS_FILE_MATLAB ${CMAKE_CURRENT_SOURCE_DIR}/src/SysMatlabWinGnu.f90)
elseif (APPLE OR UNIX OR CYGWIN)
set(NWTC_SYS_FILE src/SysGnuLinux.f90)
set(NWTC_SYS_FILE_MATLAB ${CMAKE_CURRENT_SOURCE_DIR}/src/SysMatlabLinuxGnu.f90)
endif ()
elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "^Intel")
if (APPLE OR UNIX)
set(NWTC_SYS_FILE src/SysIFL.f90)
set(NWTC_SYS_FILE_MATLAB ${CMAKE_CURRENT_SOURCE_DIR}/src/SysMatlabLinuxIntel.f90)
elseif (WIN32)
set(NWTC_SYS_FILE src/SysIVF.f90)
set(NWTC_SYS_FILE_MATLAB ${CMAKE_CURRENT_SOURCE_DIR}/src/SysMatlabWindows.f90)
endif (APPLE OR UNIX)
elseif (${CMAKE_Fortran_COMPILER_ID} STREQUAL "Flang")
if(APPLE OR UNIX)
set(NWTC_SYS_FILE src/SysFlangLinux.f90)
endif()
endif ()
System file
if (NWTC_SYS_FILE)
message("-- Setting system file as: ${NWTC_SYS_FILE}")
else ()
message(FATAL_ERROR "Cannot determine system file used with NWTC_Library")
endif ()
#-------------------------------------------------------------------------------
NWTC Library
#-------------------------------------------------------------------------------
set(NWTCLIBS_SOURCES
src/NWTC_Base.f90
src/SingPrec.f90
src/ModMesh.f90
src/ModMesh_Mapping.f90
src/ModMesh_Types.f90
src/NWTC_IO.f90
src/NWTC_Library.f90
src/NWTC_Num.f90
src/NWTC_RandomNumber.f90
src/NWTC_Library_Types.f90
src/VTK.f90
src/YAML.f90
src/JSON.f90
RanLux sources
src/ranlux/RANLUX.f90
Public Domain Aeronautical Software (PDAS) Polynomial Root Finder
src/Polynomial/quartic.f90
NetLib sources
src/NetLib/fftpack/fftpack4.1.f
src/NetLib/scalapack/dlasrt2.f
src/NetLib/scalapack/slasrt2.f
src/NetLib/fftpack/NWTC_FFTPACK.f90
src/NetLib/lapack/NWTC_LAPACK.f90
src/NetLib/scalapack/NWTC_ScaLAPACK.f90
NetLib SLATEC sources
src/NetLib/slatec/NWTC_SLATEC.f90
src/NetLib/slatec/dqk61.f
src/NetLib/slatec/qk61.f
src/NetLib/slatec/d1mach.f
src/NetLib/slatec/r1mach.f
src/NetLib/slatec/xercnt.f
src/NetLib/slatec/xerhlt.f
src/NetLib/slatec/xerprn.f
src/NetLib/slatec/xersve.f
src/NetLib/slatec/fdump.f
src/NetLib/slatec/i1mach.f
src/NetLib/slatec/j4save.f
src/NetLib/slatec/xgetua.f
src/NetLib/slatec/xermsg.f
)
get_filename_component(FCNAME ${CMAKE_Fortran_COMPILER} NAME)
Recursive use of routine in qk61/dqk61 will trigger errors in debug
if (CMAKE_BUILD_TYPE MATCHES Debug)
if (${CMAKE_Fortran_COMPILER_ID} STREQUAL "GNU")
set_source_files_properties(src/NetLib/slatec/NWTC_SLATEC.f90 PROPERTIES COMPILE_FLAGS -frecursive)
set_source_files_properties(src/NetLib/slatec/dqk61.f         PROPERTIES COMPILE_FLAGS -frecursive)
set_source_files_properties(src/NetLib/slatec/qk61.f          PROPERTIES COMPILE_FLAGS -frecursive)
elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "^Intel")
if("${CMAKE_Fortran_COMPILER_VERSION}" VERSION_LESS "19")
if (WIN32)
set_source_files_properties(src/NetLib/slatec/NWTC_SLATEC.f90 PROPERTIES COMPILE_FLAGS "/recursive")
set_source_files_properties(src/NetLib/slatec/dqk61.f         PROPERTIES COMPILE_FLAGS "/recursive")
set_source_files_properties(src/NetLib/slatec/qk61.f          PROPERTIES COMPILE_FLAGS "/recursive")
else()
set_source_files_properties(src/NetLib/slatec/NWTC_SLATEC.f90 PROPERTIES COMPILE_FLAGS "-recursive")
set_source_files_properties(src/NetLib/slatec/dqk61.f         PROPERTIES COMPILE_FLAGS "-recursive")
set_source_files_properties(src/NetLib/slatec/qk61.f          PROPERTIES COMPILE_FLAGS "-recursive")
endif()
else()   # The above syntax will be deprecated after version 20.  This is supported from version 19 onwards
# see: https://software.intel.com/content/www/us/en/develop/documentation/fortran-compiler-developer-guide-and-reference/top/compiler-reference/compiler-options/compiler-option-details/floating-point-options/recursive.html
if (WIN32)
set_source_files_properties(src/NetLib/slatec/NWTC_SLATEC.f90 PROPERTIES COMPILE_FLAGS "/assume:recursion")
set_source_files_properties(src/NetLib/slatec/dqk61.f         PROPERTIES COMPILE_FLAGS "/assume:recursion")
set_source_files_properties(src/NetLib/slatec/qk61.f          PROPERTIES COMPILE_FLAGS "/assume:recursion")
else()
set_source_files_properties(src/NetLib/slatec/NWTC_SLATEC.f90 PROPERTIES COMPILE_FLAGS "-assume recursion")
set_source_files_properties(src/NetLib/slatec/dqk61.f         PROPERTIES COMPILE_FLAGS "-assume recursion")
set_source_files_properties(src/NetLib/slatec/qk61.f          PROPERTIES COMPILE_FLAGS "-assume recursion")
endif()
endif()
endif()
endif()
Create NWTC Library
add_library(nwtclibs ${NWTC_SYS_FILE} ${NWTCLIBS_SOURCES})
target_link_libraries(nwtclibs PUBLIC
${LAPACK_LIBRARIES}
${CMAKE_DL_LIBS}
${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}
)
if (USE_DLL_INTERFACE)
target_compile_definitions(nwtclibs PRIVATE USE_DLL_INTERFACE)
endif (USE_DLL_INTERFACE)
if (USE_LOCAL_STATIC_LAPACK)
add_dependencies(nwtclibs lapack)
endif()
Install libraries
install(TARGETS nwtclibs
EXPORT "${CMAKE_PROJECT_NAME}Libraries"
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
#-------------------------------------------------------------------------------
NWTC Library for MATLAB
#-------------------------------------------------------------------------------
if (BUILD_OPENFAST_SIMULINK_API)
Check that matlab system file was found
if (NWTC_SYS_FILE_MATLAB)
message("-- Setting Matlab system file as: ${NWTC_SYS_FILE_MATLAB}")
message(STATUS "In NWTC Matlab_MEX_LIBRARY: ${Matlab_MEX_LIBRARY}")

else ()
message(FATAL_ERROR "Cannot determine Matlab system file used with NWTC_Library")
endif ()
NWTC Library with MATLAB system file
add_library(nwtclibs-matlab ${NWTC_SYS_FILE_MATLAB} ${NWTCLIBS_SOURCES})
set_target_properties(nwtclibs-matlab PROPERTIES
Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/matlab)
if (USE_DLL_INTERFACE)
target_compile_definitions(nwtclibs-matlab PRIVATE USE_DLL_INTERFACE)
endif (USE_DLL_INTERFACE)
target_link_libraries(nwtclibs-matlab PUBLIC
${LAPACK_LIBRARIES}
${CMAKE_DL_LIBS}
${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}
)
if (USE_LOCAL_STATIC_LAPACK)
add_dependencies(nwtclibs lapack)
endif()
Install matlab nwtc libraries
install(TARGETS nwtclibs-matlab
EXPORT "${CMAKE_PROJECT_NAME}Libraries"
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
endif ()


"Bootstrapping" 32-bit => 64-bit RaspiOS Lite / DietPi

TL;DR:

Rationale for choosing this route: minimize downtime of an existing 32-bit RPi system while migrating it to 64-bit (in the absence of another TRUSTED device to do this work on)
Didn't expect any issues, but unfortunately ran into problems with qemu and binfmt, which  can be solved easily once they are understood (i.e., going through the process again based on below instructions would be much faster than what it took me to figure it out)
If you don't have any production services on your 32-bit Pi or if you have another trusted machine where you can prepare the image, you probably still don't want to choose this route ... working through the guide on a 32-bit machine just introduces too many random problems, as I've learned (see below)

Orignal story:
I'm currently trying to transform a Pi that runs 32-bit RaspberryPi OS Light into one that runs 64-bit DietPi. Given I never used DietPi before, I decided to first try upgrading to the "official" 64-bit RaspiOS Lite image. Specifically, I'm using the latest version from May (v5.10.52).
This project is still work-in-progress, but want to document my progress here so maybe I can help with getting the guide ready for the upcoming stable 64-bit release. After the "proof-of-concept" succeeds, I'll see what the easiest way to turn it into a DietPi would be (which is based on the same repositories/packages and uses the same kernel). There's some overhead, but its more important to me to eliminate unknowns, given how many days I spent last time finding/fixing random details.
QEMU for chroot:
As we're trying to chroot into a 64-bit ARM image from a 32-bit ARM machine, we have to use qemu-aarch64-static instead of qemu-arm-static:
# the below is entered OUTSIDE the chroot
# FYI, I have other stuff in /mnt/ already, so I use /mnt/croot/ instead (= "cryptroot")
apt install qemu-user-static
export CHROOT="/mnt/croot"
cp /usr/bin/qemu-aarch64-static "${CHROOT}/usr/bin/"
chroot "${CHROOT}" qemu-aarch64-static /bin/bash

Unfortunately, there seems to be some problem with binfmt which means that 64-bit files are not recognized in the chroot. Specifically, qemu-aarch64 was not showing up in update-binfmts --display outside the chroot. Thus, any commands entered after launching the chroot failed. In theory, this can be fixed via:
# the below is entered OUTSIDE the chroot
update-binfmts --enable qemu-aarch64

Unfortunately that didn't work, so I first had to manually define qemu-aarch64 before enabling it:
# the below is entered OUTSIDE the chroot
export magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00'
export mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
update-binfmts --package qemu-user-static --install qemu-aarch64 /usr/bin/qemu-aarch64-static --magic "$magic" --mask "$mask" --offset 0 --credential yes --fix-binary yes

The 64-bit kernel uses the versioning format 5.10.52-v8+, so I changed that as follows wherever you had 5.10.17+ in the guide (I don't want to keep building the -v7* stuff, given how long it takes on the Pi, so I don't just use 5.10.52+):
# the below is entered INSIDE the chroot
export KERNEL_TARGET_VERSION="5.10.52-v8+"
mkdir --parents "/etc/kernel/{postinst.d,postrm.d}/${KERNEL_TARGET_VERSION}/" "/etc/kernel/preinst.d/"
ln --symbolic --verbose "/usr/local/share/kernel/postinst.d/01-rpi-initramfs-tools" "/etc/kernel/postinst.d/${KERNEL_VERSION}/"
ln --symbolic --verbose "/usr/local/share/kernel/postrm.d/01-rpi-initramfs-tools" "/etc/kernel/postrm.d/${KERNEL_TARGET_VERSION}/"
ln --symbolic --verbose "/usr/local/share/kernel/preinst.d/01-rpi-initramfs-tools" "/etc/kernel/preinst.d/"

Unfortunately, the next step cost me several hours because I was long overdue to go to bed, but didn't want to give up... which made it worse in the end, but whatever:
The creation of the initramfs always mysteriously failed towards the very end of the process—which takes LONG if running via qemu on a 32-bit Pi. I tried all 3 options that you list in the guide (--reinstall kernel, update-initramfs, ...), but no difference as the error was in mkinitramfs itself.
Ultimately, I debugged the scripts step-by-step and it turned out that choosing another compression algorithm fixes it ... when the default gzip is selected, then the scripts actually run pigz, which is a variation optimized for parallel execution. However, as we noticed it fails for mysterious reasons. Thus, we swap it out for bzip2.
# the below is entered INSIDE the chroot
vi /etc/initramfs-tools/initramfs.conf # change "COMPRESS=gzip" to "COMPRESS=bzip2"
apt-get uninstall raspberrypi-kernel # doing this because --reinstall sometimes failed
apt-get install raspberrypi-kernel

I still have one detail left to be tackled... the machine doesn't boot, yet, and I don't have a screen to debug it. I will update this ticket as I make progress.

Please unlock disk croot:
cryptsetup: croot set up successfully
Connection to <IP_ADDRESS> closed.

I think that's all, the reason why it didn't work yesterday is because I am using a GPT disklabel instead of the standard MBR/DOS label and then I also tweaked the boot partition a bit too much. I was able to keep the GPT label, but went back to the standard boot partition structure as found in the *.img file.

Added a TL;DR in the original post above given that my motivation for choosing this route was not obvious.
I'm likely in non-standard circumstances to be choosing this route. However, I still hope it helps at least 1 other person.

The creation of the initramfs always mysteriously failed towards the very end of the process—which takes LONG if running via qemu on a 32-bit Pi. I tried all 3 options that you list in the guide (--reinstall kernel, update-initramfs, ...), but no difference as the error was in mkinitramfs itself.

Maybe pigz is doing something weird here.
Check, if the output of the file command looks something like this:
$ file /boot/initramfs.cpio.gz
/boot/initramfs.cpio.gz: gzip compressed data, last modified: Sat Sep  4 08:15:56 2021, from Unix, original size 25040896

On my Gentoo system it looks like this:
$ file /usr/src/custom-initramfs-5.10.61-gentoo.cpio.gz
/usr/src/custom-initramfs-5.10.61-gentoo.cpio.gz: gzip compressed data, max compression, from Unix, original size modulo 2^32 10344448

I think that's all, the reason why it didn't work yesterday is because I am using a GPT disklabel

Using GPT as disk label only makes sense, if you are using a uEFI system. Moreover it forces you to format the /boot partition as FAT32. Using MSDOS for BIOS systems gives you the freedom to choose between FAT32 and ext2[1].

I'm currently trying to transform a Pi that runs 32-bit RaspberryPi OS Light into one that runs 64-bit DietPi.

This feels like trying to run a 64-bit system with a lot of extra steps, while upgrading the stock image to a complete different system at the same time. This calls for issues. :sweat_smile:
My approach would be:

Install 64-bit DietPi on a different system
Manually migrate every settings of the 32-bit Raspberry Pi OS to the 64-bit DietPi system

This is how you would do it on company level.
[1] Somewhere in-between it is explained in detail: https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation#Default_partitioning_scheme

Check, if the output of the file command looks something like this:

Ohhh... after the successful 64-bit upgrade, I was then able to use pigz and my initramfs is now standard ... so can no longer check.

Using GPT as disk label only makes sense, if you are using a uEFI system. Moreover it forces you to format the boot partition as FAT32. Using MSDOS for BIOS systems gives you the freedom to choose between FAT32 and ext2[1].

Interesting, I was not aware it could boot from ext2. However, I assume the advantages are negligible (for a 200MiB /boot partition) and that it's more of an ideological thing? :)

This feels like trying to run a 64-bit system with a lot of extra steps, while upgrading the stock image to a complete different system at the same time. This calls for issues. 😅

It's actually quite smooth ... didn't expect that ... has been running nicely so far. Also, the disk encryption performance went up as I probably mentioned somewhere else already... I was concerned it would go down.


How can i solve this c++ code in c#?

Hi,
I want to convert these c++ code to OpencvSharp
cv::Mat_ m_temp = cv::Mat_::zeros(m_temp.size());
In OpencvSharp, cv::Mat_::zeros returns a MatExpr
Thank you,

Mat m_temp = Mat.Zeros(...);

see http://shimat.github.io/opencvsharp/html/539419a7-dc3b-2ad2-707b-cee73103e8fd.htm

How can i  solve this c++ code in c#?
Mat image = ....
uchar v = image.at(3,4) + 4;
OpenCvSharp doesn't have uchar type
Thanks

C++
C#

uchar
byte

ushort
char

long
int

__int64
long

Mat image = ... // a grayscale image
byte v = image.At<byte>(3,4) + 4;

thank you,


Possible bug on UserService.cs

Describe the bug
in the role management for users, an HTTP Status 500 may appear, The error comes from GetRolesAsync of UserService.cs:
System.InvalidOperationException: There is already an open DataReader associated with this Connection which must be closed first.
To Reproduce
Steps to reproduce the behavior:

Access with Administrator user
Go to Users
Select Actions -> Manage Roles
See error in log

To eliminate the problem my solution is:

Add "MultipleActiveResultSets = true" to the connection string
modify the GetRolesAsync method (in UserService.cs) as follows:

public async Task <IResult <UserRolesResponse>> GetRolesAsync (string userId)
        {
            var viewModel = new List <UserRoleModel> ();
            var user = await _userManager.FindByIdAsync (userId);
            foreach (var role in _roleManager.Roles.ToList())   // Add .ToList() in this point!
            {
                var userRolesViewModel = new UserRoleModel
...

Hi,  This was already fixed in the newer codebase. Are you using the nugget package by any chance? I will be publishing a newer version of the package in a few days.
Attaching a screenshot of the change,


Write some form of "Getting Started Guide"

I think we should add a tutorial to get the software up and running? it seems that some people who are new to Rust probably don't know about the skills to handle Rust's Cargo to test the software?
(VennDev 27/09/24 11:09 Discord)
This may even include stuff on "How do I learn Rust?" and "How do I get started with bedrock-rs"...
This should definitely not be too long and just a little introduction to help people get started.

Partially solved with the bedrock-server updates.
Next steps are:

adding documentation for all bedrock-rs components
adding more examples for mini-games and plugins (I haven't checked if bedrock-rs support plugins but anyway, good to mention it)
doing some video tutorials to have a wider community and explain better the bedrock-rs concepts

Deeper steps are not required at the moment (in the docs area)


Update to v13 of native SDKs [help wanted!]

facebook-android-sdk and facebook-ios-sdk just released v13 of their native SDKs
I'm happy maintaining this repo and do my best to merge PRs and fix little immediate issues but I do this in my free time
I do not have time to take on larger projects like forward porting to v13 right now
Anyone that needs v13 features or wants to see this library stay alive may consider either directly sponsoring me to get it done or should propose a PR themselves (which I will happily collaborate on!)
In the meanwhile, this issue will stay open for discussion among any interested parties, or status updates as they happen.
Please do not +1 or me too or ask for status though. Either contribute and move it forward, or quietly listen, to keep notification traffic down. It will be much appreciated. Thanks!

Hi @mikehardy
Yeah without SDK 11+ you can't really send events on iOS due to tracking permissions. So basically SDK9 is making this plugin (same as expo-facebook) obsolete.
Can you point me to what needs to be done to update to a new SDK? Maybe I can help somehow.

We're already on 12 here. Should be no issue. 13 was released last week, we should update over time but there should not be any functional problems with current versions used here
That said a PR to update would be great.

ahh, great, that solves everything :) thanks

Still doesn't solve that we need to move to v13 at some point ;-). But yes, you should not be blocked on anything. I'm going to hide these comments now as resolved to clean up the issue, no offense implied or intended, cheers !

It is showing critical error to update facebook sdk from 12 to 13 in ios.Could you please help in updating the repository with updated facebook sdk version 13.1.0 .

Could you please read my comment above and take appropriate action? I'll happily collaborate if you propose a PR.
This same comment applies to anyone else interested.

Hi @mikehardy
i am able to update SDK but I am not able to update Gaming share functionality
I am sharing a patch file you can check it and if possible  try to update the gaming functionality
react-native-fbsdk-next+7.3.3.patch.txt

Nice! That's a start - however with a PR it's difficult to work with just the patch. It appears pretty quick-n-dirty in that it looks like you've done the minimal to just get it to compile (you've commented out things that did not work?) without explanation of the reasons etc.
Most of the work of forward-porting is not the "getting it to compile" part, it's the actual PR, the careful consideration of how to adapt functionality, and the "BREAKING CHANGE" notes to help fellow developers adapt their use of the library.
None of that was specified before, so it's natural for no one to know that.
For anyone looking to collaborate on this though, that's the key stuff:

a real PR, even it's partial (just mark it WIP, someone else can build off it by pulling your fork + branch)
comments on the PR or in the code with references to the SDK changes requiring adaptation
testing!
some release notes indicating what developers should do (if they can do anything) to adapt their usage

I've raised a PR with the update to v13. Any feedback would be great.
@mikehardy I've tried to follow the advise on your last message, but was a bit unsure about testing, since it doesn't seem to be changes that would impact it. But if you have any suggestions I'll happily implement them :).

First: awesome! Seriously, thank you. To your question: there are not many (any?) automated tests, so "testing" is unfortunately a matter of compiling it and running the example app to make sure that is still as good as it was, and if at all possible running your fork's branch containing the work in your work projects that use the functionality, via a git reference (and then cd node_modules/react-native-fbsdk-next && yarn to build the typescript - should work?)
I'll queue the PR for review but of course no one needs to wait on me except to just hit the merge+release button - anyone interested in this work can make it move faster by reviewing + testing in their projects as well. Success reports are very valuable (as are review comments or failure notes, really - any testing notes).
Thanks!

#221 appears ready to merge so this is a call for testers.
I would love to hear reports of how this goes when test-integrated in to your project.
Here is the patch-package formatted patch (unzip it in patches) to test it.
react-native-fbsdk-next+7.3.3.patch.zip
Please report whether it was successful or not and what modules your app uses.
This will be the CHANGELOG entry, so you are aware of the breaking changes - they should be backwards compatible with your v12 use of the module at least, though it may affect your code:

BREAKING CHANGE: this version uses new major versions of the underlying SDKs and has breaking changes:

iOS mininum target version moved to 11, alter this in your Podfile and in project.pbxproj as needed
You must use Xcode 13 going forward. Xcode 12 is no longer supported
Share dialog parameters changed, description and title were deprecated, they are removed now
You must use configure a client token on Facebook console and in the app to use Graph API calls now
GMS AD_ID Permission now added by the native SDK by default, use AndroidManifest tools:remove to remove if unwanted

I tried the patch and for iOS I got a couple of errors on build, though I might be doing something wrong.
I applied the patch on a working project and the first error I got was:
Module 'FBSDKGamingServicesKit' not found RCTFBSDKGameRequestDialog.h
When I tried doing pod install I got:
CocoaPods could not find compatible versions for pod "FBSDKCoreKit":   In Podfile... None of your spec sources contain a spec satisfying the dependency: FBSDKCoreKit (~> 13.1.0)
I tried doing pod repo update without success. I dont know if this helps any, but those are my results.

@jorgegvallejo thanks a bunch for trying to test it! I don't think those are valid test results unfortunately
The 13.1.0 of FBSDKCoreKit certainly exists so you have some local issue you'll need to resolve: https://cocoapods.org/pods/FBSDKCoreKit

@jorgegvallejo thanks a bunch for trying to test it! I don't think those are valid test results unfortunately The 13.1.0 of FBSDKCoreKit certainly exists so you have some local issue you'll need to resolve: https://cocoapods.org/pods/FBSDKCoreKit

You're right, I updated cocoapods, applied the patch and its working fine for me now.

Got a couple test reports that show it appears to work, no one saying there are problems. I'm going to release it, if there are problems in wider usage please dig deeper than just saying "I have a problem" - really need PRs more than issues :pray: thanks

Just released in v8


Require ethereum key at startup to use eth

Ok these look fine to me

Do we know what happens if a bad infura key is passed in @cpacia?


UAT | User Registration |Upload your ID | Not able to upload two Images or document ( Front and Back of the Id proof )

Describe the bug
Not able to upload to Images or document ( Front and Back of the Id proof ).
To Reproduce
Steps to reproduce the behaviour:

Navigate to the URL  : https://dristi-qa.pucar.org/digit-ui/citizen/dristi/home/registration/mobile-number
Enter mobile number (Not registered) and click on 'Continue'
Enter the OTP and click on 'Verify' button
Enter First Name and Last name and click on 'continue'
Enter Valid address click on 'continue'
Select 'Other ID' radio button click on 'Continue'
Select PAN in 'Type of ID' dropdown
Click on 'Upload' button and Select one .png image (front of the document)
Again click on 'Upload' button and again select the .png image ( back of the document)

Expected behaviour
Two .png images should get selected
Actual behaviour
Only last selected image got selected.
Desktop (please complete the following information):

OS: windows
Browser : chrome

Interesting first issue, to be picked up after launch


[BUG] Show Chain icoin on vault detail view

We should show the chain's logo on the vault detail view , as per figma design

Fixed


sync radarr to sonarr streaming CF

Pull request
Purpose
sync radarr to sonarr streaming CF.
Approach
If this Pull Request is created to solve a issue explain how does this change address the problem?
Open Questions and Pre-Merge TODOs
Check all boxes as they are completed

[ ] Use github checklists. When solved, check the box and explain the answer.

Learning
If you're adding a new Custom Format make sure you follow the Radarr/Sonarr Custom Format (JSON) Guidelines.
Requirements
Check all boxes as they are completed

[ X] These changes meet the standards for contributing.
[X ] I have read the code of conduct.

@FonduemangVI didn't we need to change something with the disney+ one ?

We did yes. Not sure if we should be matching the Sonarr to Radarr or Radarr to Sonarr CFs. Need to test that they will import and work though

Radarr is what should be used

@TRaSH- this DSNP is fine because it's taking the source out which is probably the better way to do it as Baker said


Core Dump

INFO - Initializing model finished in 16985.25ms.
INFO - Processing images ...
INFO - Processing images finished in 1468.80ms.
INFO - Running image 1/1 ...

HI @geniusalert, are you still experiencing this problem?


upgrade featuregate PruneLastAppliedConfiguration PruneManagedFields to beta in v0.0.3

What would you like to be added?
In the past few releases, both featrue PruneLastAppliedConfiguration and PruneManagedFields have been stable and mature. Will we update these featuregate in V0.0.3?
Why is this needed?
feature upgrade

These two features are available in 0.0.9-alpha, and I feel they are very useful, and can be upgraded to beta in 0.3.0, by default to True.
@ycsk02 @27149chen @wawa0210 What do you think, or will we upgrade to beta at 0.4 or higher?

It's ok to me

The default featuregate is very useful, greatly reduces storage space, and can be released as soon as possible if possible

useful featuregate, looks good.

cc @calvin0327
Please upgrade these feature gates.


Deprecate the whole pp 'custom save rules' api.

To be clear, I'm proposing that this should go in the new 1.9 release.
On reflection, I don't really see why we can't just do this.
The key point is that this will enable us to remove the last remnants of text rules processing.
Possibly we shouldn't deprecate something without giving a clear upgrade route, but I think there is a very strong suspicion in this case that no-one ever uses these facilities.
Even if there is someone who is affected by this, I would expect them to be a MetOffice user who we can easily identify and help :  What non-MO users are likely to be saving to PP files ??

What non-MO users are likely to be saving to PP files ??

Perhaps you could post to the Google groups?

Just for reference, the only internal usage of text rules is now the 'pp save rules'.
I just quickly hacked the behaviour of the old iris-code-generators code and used that to translate the above pp_save_rules.txt --> pp_save_rules.py.
( see hack )
Then I imported that back into iris and added further manual tweaks until the tests pass.
It didn't take much :
see iris hack
There is still work to do here - we should at least try to exercise all parts of this (which the tests don't, I think).  But clearly, the replacement is feasible + not at all hard.

Seems like this PR should also deprecate some of the contents of the iris.fileformats.rules module? E.g. RulesContainer, ProcedureRule, CoordAndDims, DebugString, ...

In principle, I think deprecating this functionality sounds like a good idea.
I suspect that there is very little use.  Pinging google groups and other comms channels sounds like a good idea to me to see if anyone emerges from the shadows with a use case

PR should also deprecate some of the contents of the iris.fileformats.rules module? E.g. RulesContainer, ProcedureRule, CoordAndDims, DebugString ...

Yes, I missed that.  This is also needed to give us the freedom to remove !

I would prefer not to hold off any further on 1.9.0: we have already cut an rc1 without this
@pp-mo
please may you retarget this PR at master?

@pp-mo This is also needed to give us the freedom to remove !

@marqh I would prefer not to hold off any further on 1.9.0: we have already cut an rc1 without this

As I've mentioned offline to @marqh, not only is there nothing to stop us releasing 1.10.0 almost immediately, I believe it would actually be a positive step in building the idea that we don't have to wait months and months between releases and so don't have to cram everything in when a release does finally turn up.

I would prefer not to hold off any further on 1.9.0

i.e. :+1: :wink:

Now rebased + re-targetted, as suggested above -- see #1885


Upgrade Prometheus to fix merge adapter bug

[ ] I added CHANGELOG entry for this change.
[x] Change is not relevant to the end user.

Changes
Upgrade Prometheus to include the merge adapter bug fix https://github.com/prometheus/prometheus/pull/7369, introduced in Thanos by https://github.com/thanos-io/thanos/pull/2596.
This bug shouldn't affect Thanos (reason why I haven't opened a PR against the 0.13 branch) but it's safer to upgrade the vendored Prometheus. The reason why this bug shouldn't affect Thanos is because storage.NewMergeSeriesSet() is only used by the series API, but the resulting SeriesSet is iterated sequentially (the bug is triggered when the result of an iteration is retained).
Verification
Existing tests

This PR did nothing, due to override in go.mod. The real Prometheus upgrade will happen in https://github.com/thanos-io/thanos/pull/2748.


change currency

how to change currency?
This repository is only for reporting bugs or issues. If you need support, please use:

Create support ticket on https://bagisto.uvdesk.com

Thanks!

Hi @marcelowu
Please follow the given linl - https://forums.bagisto.com/topic/451/how-to-change-currency-and-locale-for-admin


State is not preserved when hot reloading

I would expect the app state to be preserved when hot reloading occurs, but this doesn't seem to be the case – the state always resets to the initial state.
Simple reproduction test case: https://github.com/tomduncalf/create-react-app-state-hmr-bug

Sorry, just seen https://github.com/facebookincubator/create-react-app/issues/93 – does this mean React HMR is not enabled yet? Will close this issue if so

Yea, no plans to enable it until it’s more stable. (Requires work both on Webpack and my side, and I didn’t have time for this yet.)

Cool, thanks Dan. Great work on this, makes a big difference to the mental overhead of trying out a new idea or whatever...

Thanks!

Would you consider a PR to add this as an experimental feature or do you want to avoid things like that? Unfortunately no HMR means this isn't that practical for me to use on my current project, as the state is annoying to set up every time :(

No, PR won’t help because, as I said, the underlying tools are not stable enough to be the default.

Thought so – will keep an eye on the tool and hopefully at some point HMR
can become stable enough to be supported officially :)
On 2 August 2016 at 19:40, Dan Abramov<EMAIL_ADDRESS>wrote:

No, PR won’t help because, as I said, the underlying tools are not stable
enough to be the default.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/facebookincubator/create-react-app/issues/328#issuecomment-237000882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFNIlhTxtLviLveCSnsDm6sPQA5jgjK8ks5qb48cgaJpZM4Japt_
.


Better help?

The tool's help menu should be sufficient to use the tool!

copy-pasta has help menu now! https://github.com/jutkko/copy-pasta/commit/65aa3538c75910ea5bc14ff14e7c04bf59af087a