-
Notifications
You must be signed in to change notification settings - Fork 0
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
dts-scripts refactoring #1067
Comments
@tym2k1 @m-iwanicki @PLangowski @macpijan marking for review, as agreed on the internal sync |
@DaniilKl Am I right that Dasharo/dts-scripts#26 partialy addresses this issue? |
Yep, you are right. |
We already have shfmt and shellcheck, right? That should help a bit and be mentioned in the presentation as one of the improvements introduced. Going further in style topic, I tend to recommend https://google.github.io/styleguide/shellguide.html and been introducing it in a couple of scripts as well. |
There is no QEMU on the graphhic, maybe it should be next to the HW? |
The general architecture makes sense from a high-level perspective. I think what is still open, is whether (and how far) we want to improve things in the shell scripts, before moving on to another programming language. To answer that question we would need to break down it into more concrete tasks - what would need to be done, and how much effort is needed to improve the bash solution, and compare it with the tasks breakdown of implementing another solution from scratch in parallel, keeping the current DTS in (ideally) feature-freeze state, mostly adding new firmware versions. In our last meeting, we have definitely agreed that the priority is mostly on adding functional end-to-end testing, as otherwise introducing any greater changes will lead to a disaster. So one of the main points of the presentation should be about testing: showcase, listing what's been added, and what still can be added. Ideally if we can reuse (most of) these tests, so we can prove that:
A general comment: if we have a such a complex proposal, it's rather difficult to review it in the issue. Perhaps RFC PR is a better idea, so we can use the review system. |
That can be added to meta-dts guidelines right now, if not already enforced. |
currently shellcheck doesn't check |
I like this approach. Has anyone started a discussion on what language we will use in the new solution? I think we should conside choosing a compiled language, such as Go for 2 reasons:
|
Yep, GO is planned as a new language. |
That's good to hear. I will be more than happy to contribute to the development. |
|
@m-iwanicki The performance is not terrible, but compiling should still speed it up. I agree that introducing local changes will not be as simple as it is now, but we can discuss solutions. |
The problem you're addressing (if any)
The scalability problem of a project might be caused not only by tools being used, but by the way the tools are being used as well.
a. No explicit coding rules and style -> the code is difficult to read and modify, the coding style of every contributor overlays with others, and the codebase shortly became messy;
b. Not clearly separated systems -> the way the system works is not linear and, therefore, not clear, especially for novices;
c. The language, which is not suitable for large codebases -> language issues and workarounds;
d. Configuration and metadata directly stored in the codebase -> not convenient to scale and support;
a. No test cases prepared -> no empirical evidence of working features;
b. No hardware separation -> QEMU cannot be used for testing and verification;
a. No documentation and comments;
b. Highly non-linear structure;
Describe the solution you'd like
Nodes and paths description:
board_config
function) in.json
files, as well as hardware-specific logic for HAL (some hardware-specific deploying functions and mock functions) and provides it on the start to configuration node (6).Documentation:
Tests:
meta-dts
explicitly should have two short tests:Where is the value to a user, and who might that user be?
Pros:
Cons:
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: