Replies: 8 comments 7 replies
-
Open-CMSIS packs are a way to deliver components. At the moment we are discussing 2 ways of using these software elements:
In the project files, you can keep the "loose" identification of packs and components or provide a detailed versioning requirement. The pack size is indeed a major point: we need "reasonable" packs. |
Beta Was this translation helpful? Give feedback.
-
In sync. with @fred-r sounds Open-CMSIS is offering same as npm world somehow:
About pack size would say same if node world ... let's think about |
Beta Was this translation helpful? Give feedback.
-
@ilg-ul schemas are here: https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools/projmgr/schemas lodash is peanuts but if you only require one function out of it ... it's toooo much :-) (was first package I was thinking about but I guess we may find some others ...) |
Beta Was this translation helpful? Give feedback.
-
A schema is a schema :-) main benefit about is such is up to date. Such said maybe this YML Input Format is more helpful (cannot guarantee 100% up to date but so so bad anyway) Test data may help too see https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools/projmgr/test/data |
Beta Was this translation helpful? Give feedback.
-
We cannot compare OpenCMSIS only with npm. One is installing the packages (like npm). OpenCMSIS does much more than this because there are configuration files, templates, generators. So packs are here to distribute SW, a bit like npm but via cpackget. Besides, OpenCMSIS aims at being open source, so at the end anybody can contribute an OpenCMSIS pack. |
Beta Was this translation helpful? Give feedback.
-
In fact, I think OpenCMSIS gives you flexibility. If you feel it is over-engineered for your needs then you can skip some possibilities : configuration files, templates, generators...etc... Then, to express the dependencies, the granularity is the component, not the pack in my opinion. Dependencies can be expressed via conditions in the pdsc. But, ultimately, the pdsc should be seen (in my opinion) as the field of possibilities offered by the publisher of the pack. But, compared to npm I think the spirit here his more to have "software components" that you can "easily replace". I guess @ReinhardKeil and @jkrech can explain better than me :-) |
Beta Was this translation helpful? Give feedback.
-
To summarise, the question was if OpenCMSIS provides a mechanism to automatically manage package dependencies. The use case is an hypothetical GitHub project which uses several source libraries distributed as separate packages. The project is fully configured, the dependencies are known, all details are already in the project. The source libraries are not copied in the project, they are only mentioned as references, using a naming scheme and a version. On each push, a GitHub action is triggered, which needs to run some tests. I provided even links to a functional project already doing this. The reason why I asked if Open-CMSIS Packs are intended to be project dependencies (or the content is still expected to be processed by a tool and the result copied into the project), was based on my previous experience with CMSIS Packs, since by the time I tried this, consuming CMSIS Packs was possible only via MDK, and there were not tools available for CI servers. Up to now, after 6 replies, the question remains still unanswered, so I conclude that this is not one of the use cases of interest for Open-CMSIS, and it makes no sense to ask for more. Feel free to label this topic as not relevant, or whatever labels you prefer. |
Beta Was this translation helpful? Give feedback.
-
I am not sure to fully get the question. Let me try this:
Now, with OpenCMSIS, it is slightly different:
So, with the tool 'csolution' you can create a csolution/cproject.yml file describing your project:
Now, with the tool 'cpackget', you can install all required packs. When using your project with csolution, the tool will look in $CMSIS_PACK_ROOT if the required packs and components are available. OpenCMSIS delivers only the "atomic" tools. So, in your GitHub ACI situation:
|
Beta Was this translation helpful? Give feedback.
-
I took some time to read several of the existing proposals, but could not find a clear explanation regarding how Open-CMSIS Packs are intended to be consumed.
In the initial Arm specs, the CMSIS Packs were actually an extension of MDK, expected to be consumed only with MDK, which selected which source files were to be included into projects. Later a similar functionality was added to Eclipse.
CMSIS Packs were not intended to be consumed as direct dependencies of projects, there were no standard ways to define such dependencies, no reliable download locations, etc. To make things worse, CMSIS Packs favoured huge packages, which made direct dependencies even more unrealistic.
Which way do you plan to go with this major design issue in Open-CMSIS?
FYI, In the npm world, and, by extension, in the xpm/xPack world, packages are by design project dependencies, and their content can be used directly during builds.
The dependencies are listed in
package.json
and a separateinstall
step downloads all of them. The content is basically read-only and can be directly used during any subsequent builds.Packages can be downloaded from various locations, like public/private npm servers, public/private Git servers, etc.
The common expectation for npm packages is that, once a version is released and published on the npm public server, to be immutable, so that references to it will remain valid on long term.
Beta Was this translation helpful? Give feedback.
All reactions