Open-CMSIS-Pack / devtools

Open-CMSIS-Pack development tools - C++
Apache License 2.0
74 stars 57 forks source link

unclear warning csolution: required pack 'ARM::CMSIS-Compiler@2.0.0' is not loaded #1356

Closed ReinhardKeil closed 7 months ago

ReinhardKeil commented 8 months ago

cbuild creates warnings required pack is not loaded. IMHO these warning is not helpful and it should be consider to remove it.

cbuild .\TestM85\TestM85.csolution.yml --context-set --update-rte --packs --schema --context Project.Debug+SSE-310-MPS3_FVP
info cbuild: Build Invocation 2.2.1 (C) 2023 Arm Ltd. and Contributors
warning csolution: context 'Project.Debug+SSE-310-MPS3_FVP': required pack 'ARM::CMSIS-Compiler@2.0.0' is not loaded
warning csolution: context 'Project.Debug+SSE-310-MPS3_FVP': required pack 'ARM::DMA350@1.0.0' is not loaded

A clear and concise description of what the bug is.

To Reproduce Use TestM85.zip and run cbuild as shown above.

Environment:

jkrech commented 8 months ago

The background for the above warnings is, that the ARM.V2M_MPS3_SSE_310_BSP.pdsc of version 1.4.0 specifies these pack requirements:

  <requirements>
    <packages>
      <package vendor="ARM" name="CMSIS" version="6.0.0" />
      <package vendor="ARM" name="CMSIS-Compiler" version="2.0.0" />
      <package vendor="ARM" name="DMA350" version="1.0.0"/>
    </packages>
  </requirements>

I think the message needs revising to:

warning csolution: context 'Project.Debug+SSE-310-MPS3_FVP': the pack 'ARM::CMSIS-Compiler@2.0.0' required by pack 'ARM.V2M_MPS3_SSE_310_BSP@1.4.0' is not specified

and maybe csolution should only print it if a component cannot be resolved or a component dependency cannot be resolved. Basically this gives a hint to the user to add these packs to the YML Input file's packs: node.

Note: this was explicitly requested in https://github.com/Open-CMSIS-Pack/devtools/issues/659

edriouk commented 8 months ago

Fixed by PR https://github.com/Open-CMSIS-Pack/devtools/pull/1364

ReinhardKeil commented 7 months ago

I believe this error should not appear when no components from the required pack are used in the csolution. To me this warning is misleading, as it forces users to specify packs that are unused.

Try USB.csolution.yml to see what I mean.

edriouk commented 7 months ago

@ReinhardKeil, could you please point me to the USB.csolution.yml example

ReinhardKeil commented 7 months ago

The problem also exists:

For example csolution-examples/hello/hello.csolution.yml:

C:\w\csolution-examples\Hello>cbuild Hello.csolution.yml -l latest
csolution-examples/Hello/Hello.cproject.yml - warning csolution: dependency validation for context 'Hello.Debug+AVH' failed:
SELECTABLE ARM::CMSIS Driver:USART@1.0.0
  require Device:Native Driver:UART
SELECTABLE ARM::CMSIS:RTOS2:Keil RTX5&Source@5.8.0
  require CMSIS:OS Tick
  require Device:Startup
warning csolution: context 'Hello.Debug+AVH': pack 'ARM::CMSIS-FreeRTOS@10.4.3:10.4.3' required by pack 'AWS::FreeRTOS_LTS@2021.0.1' is not specified
warning csolution: context 'Hello.Debug+AVH': pack 'NXP::MIMXRT595S_DFP@17.0.0' required by pack 'NXP::EVK-MIMXRT595_FREERTOS-KERNEL_BSP@1.0.0' is not specifiederror csolution: processing context 'Hello.Debug+AVH' failed
error csolution: no component was found with identifier 'ARM::Native Driver:IO'
error csolution: no component was found with identifier 'ARM::Native Driver:UART'
error csolution: no component was found with identifier 'Device:Startup&Baremetal'
edriouk commented 7 months ago

Hi Reinhard,

the behavior is expected. Warnings about pack dependencies get printed if a project component cannot be resolved. This might give a hint where the component could be located. There is no data available to the RTE model to decide if a missing pack dependency is relevant or not. How can It decide that 'Device:Startup&Baremetal' component is NOT in pack @.***:10.4.3'?

We can remove those warnings completely, but this functionality was explicitly requested by ST. Should we reject #659https://github.com/Open-CMSIS-Pack/devtools/issues/659 request and revert the changes?

Evgunei

From: Reinhard Keil @.> Sent: Wednesday, March 27, 2024 4:25 PM To: Open-CMSIS-Pack/devtools @.> Cc: Evgueni Driouk @.>; State change @.> Subject: Re: [Open-CMSIS-Pack/devtools] unclear warning csolution: required pack @.***' is not loaded (Issue #1356)

The problem also exists:

For example csolution-examples/hello/hello.csolution.yml:

C:\w\csolution-examples\Hello>cbuild Hello.csolution.yml -l latest

csolution-examples/Hello/Hello.cproject.yml - warning csolution: dependency validation for context 'Hello.Debug+AVH' failed:

SELECTABLE ARM::CMSIS @.***

require Device:Native Driver:UART

SELECTABLE ARM::CMSIS:RTOS2:Keil @.**@.>

require CMSIS:OS Tick

require Device:Startup

warning csolution: context 'Hello.Debug+AVH': pack @.:10.4.3' required by pack @.' is not specified

warning csolution: context 'Hello.Debug+AVH': pack @.' required by pack @.' is not specifiederror csolution: processing context 'Hello.Debug+AVH' failed

error csolution: no component was found with identifier 'ARM::Native Driver:IO'

error csolution: no component was found with identifier 'ARM::Native Driver:UART'

error csolution: no component was found with identifier 'Device:Startup&Baremetal'

— Reply to this email directly, view it on GitHubhttps://github.com/Open-CMSIS-Pack/devtools/issues/1356#issuecomment-2023050549, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACSDB6GCY76GEFVLGLCRA5DY2LJCTAVCNFSM6AAAAABEFO3OX2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRTGA2TANJUHE. You are receiving this because you modified the open/close state.Message ID: @.**@.>>

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

jkrech commented 7 months ago

Can we only print it if the command csolution list dependencies is called explicitly? Or can we only print it if we are running in verbose mode -v ?

ReinhardKeil commented 7 months ago
warning csolution: context 'Hello.Debug+AVH': pack 'ARM::CMSIS-FreeRTOS@10.4.3:10.4.3' required by pack 'AWS::FreeRTOS_LTS@2021.0.1' is not specified

If there is no component selected from these packs, why is then a pack shown as "required"?

edriouk commented 7 months ago

@ReinhardKeil ,it is required by a pack that listed in csolution/cproject. Warning appears only if csolution reports a problem of missing components. We cannot always tell in which pack missing component is located. @jkrech, yes, I can reduce this to list packs and list dependencies

jkrech commented 7 months ago

@edriouk I don't think this warning belongs into csolution list packs. The description for this command reads : "Print list of used packs from the pack repository". Therefore it is about listing "installed packs" being loaded.

ReinhardKeil commented 7 months ago

IMHO this type of warnings only make sense when:

Only in this case the requirements between the packs should be checked to ensure that interdependent versions are fulfilled. In case that version requirements are violated, a warning should be issued.

In any other case, the warning is misleading as it points the user to unnecessary steps, that may generate even projects that are not working (as components are taken from packs that are unrelated to the project).

edriouk commented 7 months ago

I have limited this warning to be shown only in debug mode (-d) switch, PR is pending. That is consistent with other diagnostic messages