-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
bsim module must be cloned for west to work #57198
Comments
I am adding the TSC label because there is no workaround for this, unless west starts supporting group filters and import statements in a single project. |
I remember this was a topic at a TSC Meeting recently. It didn't occur to me at the time that it would create a mandatory module requirement. It's kind of against the ideas discussed in #54276 and #55056 . Would be interesting to investigate in a bit of depth - I'm sure we can come up with a solution. Who is the best assignee for it? |
@jgl-meta |
I updated the description - able to repro fairly easily with |
CC @mbolivar Note that this happens only if you are using the default zephyr manifest, but do not do a west update. (To the best of my understanding) The issue is just a technicality around west. If the manifest has a project with an import, west needs that project locally to do anything beyond "init" and "update", as otherwise what west tries to do is collate the whole manifest (which requires the submanifests from the imports) and will fail when it does not have the submanifests from the imports. Note that the "bsim" project is not the whole bsim simulator. It is just 5 files which include the submanifest that is being imported. |
Created an issue in west to track possible improvements zephyrproject-rtos/west#652 |
From my point of view as a non-TSC member, I'll leave my comments here: this is a complete hindrance to my every day usage of zephyr. Traditionally I could get a selective clone of zephyr ready for development (i.e. Now it might be said that |
@cfriedt I think you accidentally edited my comment, so I'm reverting it and putting your comment here:
@nordicjm - you can also run west update [module names...] to get only the modules you need without editing west.yml. Same here though - this is a showstopper for our workflow. I haven't looked into the relevant west code myself, so I can't really speculate at a solution. There were some possibilities mentioned in a linked issue though. |
@nashif pinging you as I vaguely remember you were the one I saw comment that non-zephyr repos weren't allowed in west.yml, can we not move these files in to zephyr or do something with it? The rule doesn't really make any sense since the |
@nordicjm Please note that people is already using this bsim_manifest repo and the bsim project in the main manifest to fetch the simulator. We can't just remove it, or move things around without careful thought. This issue of "being forced to at the very least fetch the bsim manifest repo, if you don't want to do a plain west update" to be able to work with west with the zephyr main manifest, seems to me a relatively minor inconvenience we can live with while we do something nicer (maybe in the west side). |
I don't remember being asked for thoughts for having this change added in the first place, hence why I'm bringing it up here. This change has not been put into any releases so the true number of users it will cause problems for is not known, it has actually completely broken a private CI task I have for synchronising zephyr to a different git server because I can no longer run e.g. |
Sorry, but why is this a release blocker? The only background I can see in the TSC mom that @cfriedt mentioned it during the meeting even that it was not in the TSC meeting agenda. |
@aescolar - the release blocker tag is mainly to get flagged at the next release meeting. I honestly don't think the ideal solution will be a lot of work, so I don't want you to be worried. Given that the bsim module is so small, is there a possibility it can be added to the main repo? I did see that you presented a number of possible solutions as well. Thanks for doing that. You can unassign yourself if it helps for now. |
Instead of discussing this at the next release meeting (Please note those meetings are at a quite inconvenient time for people working in Europe), could you please check if the solution @mbolivar proposed for your particular problem is ok? For those interested, mbolivar proposal: https://discord.com/channels/720317445772017664/733037524498382881/1100819756904366151 |
Removing the "release blocker", as this seems to require meta to understand their problem, and evaluate a proposed solution. |
Agreed 200%. This is simply not scalable at all. User-friendliness is critical, especially around version control which too many developers don't want to hear about. I understand the #55696 desire to make life easier for babblesim users but what about users of other modules? Can they all stuff their default locations in zephyr/west.yml too? This is obviously not scalable. Ironically, all other users now have to know about the secret Downloading everything by default with a plain The official This is the flawed, "manifest stuffing" opt-in logic in a nutshell:
The usual, scalable opt-in approach is to simply download and drop opt-ins in a well known |
This sounds quite dismissive. Commit 01a12f6 broke
+1, if it's small and very popular then just add it like all other repos. People who don't want it can PS @jgl-meta: I took the liberty to add |
I don't think this matters. This is a development branch so breakages are expected regularly (e.g. #55290, #57127, #57298,...). What matters is how things will work in the future. This commit has been merged only one week ago whereas |
@aescolar - please leave the As I've mentioned, it's mainly to indicate to the release team that we need to address this at the next Release Meeting. I've also marked it as Let's avoid being combative in the comments please and try to work together to find a solution that works for everyone. Thanks for your patience. |
So again (I've already mentioned this) - please do not single out Meta. We've already heard from at least 3 or 4 companies that this is a problem. Those companies include (in chronological order FWIU):
Anas also mentioned it shortly before going on vacation on Discord. |
In the release meeting we have discussed this issue and it is agreed that this is a release blocker. |
The part I did not know about is the fact that the group filter works on the imported repos and not the entry in the west manifest itself, so:
means that the filtering does not apply to the bsim module and it can't be filtered out, @mbolivar-nordic @aescolar What is the rationale or constraints for not allowing filtering when |
@nashif It is described here: zephyrproject-rtos/west#543 |
I'm curious what's the status of this issue? For me running |
We are working on a new version of west to solve this problem |
After a discussion between @mbolivar-nordic @carlescufi @tejlmand, @57300 and me , it was agreed @mbolivar-nordic will continue with option 7 of zephyrproject-rtos/west#652 : zephyrproject-rtos/west#653 as a fix for this |
So long as this does not need someone to change the configuration locally using a local west configuration file and it can be done through west manifests, that's fine, otherwise it's a non-starter. |
agree with that if I understood option 7 correctly: If I have bsim in the manifest, but not in my workspace, I will not be able to use west correctly and But maybe I am wrong about what options 7 is supposed to do. |
I would 100% just revert it locally. I don't think it would cross my mind to check the west config. |
Because it would be disabled by default. Copying part of zephyrproject-rtos/west#660 (comment) --- a/west.yml
+++ b/west.yml
@@ -15,6 +15,8 @@
# information.
manifest:
+ version: "1.1"
+
defaults:
remote: upstream
@@ -23,6 +25,7 @@ manifest:
url-base: https://github.com/zephyrproject-rtos
group-filter: [-babblesim]
+ import-group-filters: false
#
# Please add items below based on alphabetical order
@@ -30,6 +33,8 @@ manifest:
- name: bsim
repo-path: babblesim-manifest
revision: 908ffde6298a937c6549dbfa843a62caab26bfc5
+ groups:
+ - babblesim
import:
path-prefix: tools
- name: canopennode |
As far back as 2021 I found stuffing manifests with URLs disabled by default not intuitive when you can just drop random Two years later this approach might finally work? |
New approach: zephyrproject-rtos/west#664 |
@nashif @yperess @nordicjm with the approach in zephyrproject-rtos/west#664 all you need to do is to type this one single time on your command-line:
|
@nordicjm this only requires you to alter the local config once, since this setting will be then stored in your |
But can't be changed by a manifest itself which e.g. does an import as the original solution discussed was able to do
By this I assume you mean + bsim to enable it not, not - bsim to disable it since users should not have to disable this, it should not be present by default? |
Unfortunately that's correct. We have tried in every way possible to make that work but we have not been able to.
No, users will have it by default, at least for the time being. But you will be able to disable it permanently locally so that it doesn't affect you at all. |
This is not a solution anyone with this problem has agreed to, so doesn't resolve anything for anyone with the above issues. @cfriedt |
Describe the bug
When running west a prompt that looks like the following appears.
FATAL ERROR: failed manifest import in bsim (tools/bsim) Failed importing "west.yml" from revision "908ffde6298a937c6549dbfa843a62caab26bfc5" Hint: for this to work: - bsim must be cloned - its manifest-rev ref must point to a commit with the import data To fix, run: west update
this seems to be a little backwards since it forces pulling in additional modules, outside of the minimum necessary to build.
To Reproduce
Steps to reproduce the behavior:
west update
withwest update only_what_I_need
west status
You will get an error message that looks like the one above.
west build -b qemu_x86 samples/hello_world/
, you get:west: error: argument <command>: invalid choice: 'build'
Expected behavior
We should still be able to build without the bsim module. Or at least we should provide a work around to build without it.
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: