-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
manifest: move optional modules to a submanifest and make them optional #61505
Conversation
The following west manifest projects have been modified in this Pull Request:
Note: This message is automatically posted and updated by the Manifest GitHub Action. |
as discussed in babblesim related changes some time ago, we will need some CI integration in place to support something like that and some clarification on use of submanifests etc. |
$ west init && du -sh so, our issue is not the optional modules I guess :) HALs:
libs:
..... |
279231a
to
9886a58
Compare
Maybe we could suggest that in documentation as a start, I'd imagine most users don't care about modules commit history. |
Funny, this one is 8MB of git objects with a shallow fetch, a full history fetch is 163MB (of git objects) in commit history since 2005. Maybe we should consider that for new modules, doubt that much history is useful here. |
isnt this the same as |
no I guess |
Right, I have that in that command line ( |
there is a clone-depth option, but that is per module AFAIK, not something to set globaly for all update ops |
Yeah, also it does not apply to |
Both with shallow main repository, the difference is just in module objects and the tag objects for the main repo. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like it and this is essentially something I've always been doing when cloning anyhow so means one less step for me. But with this, is there a way to enable just one of the optional modules, or can you only enable all of them. E.g. if someone wants to get zephyr and just enable nanopb and thrift, can they do that with west commands? And also do that in their own west manifest which imports the zephyr one?
that is the same question asked here: #54276 (comment) AFAIK, the short answer is no. This is where we get into 'package management'. Optional manifest will serve as a list of modules you can enable in your workspace if you are doing something localy, i.e. in your own manifest. You can always modify the upstream manifest locally and pull whatever you want, but what would be the usecase here if those are optional and nothing in the zephyr tree depend on them? Maybe you want to add a new subsystem that usess one of those, say you add a new subsystem that uses If you are working on something out of the tree, then you add it to your own manifest and will remain optional upstream... |
Actually thinking about it, I assume that can already be done by the external manifest enabling the group filter and using an allow/block list to get only the optional modules they want - tested and it does work, all good! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is just a POC, might require some more thought.
Still true? Looks much better than a POC to me now...
***** | ||
|
||
This extension introduces a new directive: ``manifest-projects-table``. It can | ||
be used in the code as:: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
be used in the code as:: | |
be used in sphinx source as:: |
|
||
- ``manifest_projects_table_manifest``: Path to the manifest file. | ||
|
||
Copyright (c) Nordic Semiconductor ASA 2022 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To keep divergence somewhat under control can you please add the "upstream" URL where this came from?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no intention to keep this compatible or in sync with "upstream"
b6300d3
to
daef151
Compare
Similar to optional modules, but added to the Zephyr project as an entry in the | ||
documentation using a pre-defined template. This type of modules exists outside the | ||
Zephyr project manifest with documentation instructing users and developers how | ||
to integrate the functionality. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to optional modules, but added to the Zephyr project as an entry in the | |
documentation using a pre-defined template. This type of modules exists outside the | |
Zephyr project manifest with documentation instructing users and developers how | |
to integrate the functionality. | |
Similar to optional modules but added to the Zephyr project as an entry in the | |
documentation using a pre-defined template. These type of modules exists outside the | |
Zephyr project manifest. External modules are responsible for providing | |
documentation instructing users and developers how the module may be used with | |
Zephyr. |
Move optional modules to a submanifest and make them optional by default. This is just a POC, might require some more thought. The idea is to look at the optional manifest as an area for modules that work with Zephyr, but not needed directly by zephyr. This could be documented somewhere for discovery purposes allowing users to enable such modules in their downstream if desired. See zephyrproject-rtos#54276 Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Document integration modes of modules. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
If a module is not available, then it is optional, so do not error in --integration mode. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
While we cleanup, pull optional modules as before to keep CI happy. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Generate index of west projects and information about them. Based on an extension from sdk-nrf repo. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This sample depends on lz4. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The sample depends on on the tflite-micro module. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Those samples/tests depend on psa-arch-tests module. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
daef151
to
84858a2
Compare
This extension allows to render a table containing the revisions of the projects | ||
present in a manifest file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This extension allows to render a table containing the revisions of the projects | |
present in a manifest file. | |
This extension renders a table containing the revisions of the projects | |
present in a manifest file. |
################### | ||
|
||
See :ref:`external-contributions` for more information about | ||
this contributing and review process for imported components. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this contributing and review process for imported components. | |
the contributing and review process for imported components. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test OK in all NXP paltform
Introduce a helper function zephyr_nanopb_sources to generate source files and add these to a target. Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
I just discovered by "chance" that there is 1 Gigabyte-big "SDK dump" in EDIT: I haven't looked at it and I won't but from past experience I would expect a lot of "copyright fun" there. |
Move optional modules to a submanifest and make them optional by
default.
The idea is to look
at the optional manifest as an area for modules that work with Zephyr,
but not needed directly by zephyr. This could be documented somewhere
for discovery purposes allowing users to enable such modules in their
downstream if desired.
See #54276
Signed-off-by: Anas Nashif anas.nashif@intel.com