-
Notifications
You must be signed in to change notification settings - Fork 23
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
Task: integrating the new OTNS2 code into OTNS main branch #528
Comments
@jwhui Here's the kick-off to integrating OTNS2 into the OTNS repo in OpenThread. It would be nice if you could check the above proposal, and let me know if anything is missing! |
@EskoDijk , thanks for continuing to drive this forward. I am fine with option 2 using a merge commit and retaining the individual detailed commits. I think it also makes sense to have submodule references for different Thread versions / legacy implementations. |
@jwhui I've now added the draft PR as #530 . Note that this includes also all of the recent commits into The submodules I referred to are currently hosted in my repo |
There is a test PR to test the OpenThread CI "calling" OTNS2 via |
@EskoDijk , can we simply point the submodules to specific commits in the main openthread/openthread repo? |
@jwhui We could do that, but the specific commit does require a minor patch for all cases (1.1, 1.2, 1.3). The patch is shown here for example for 1.3: EskoDijk/openthread@f271e32 What the legacy-versions build script could do is just apply the patch via a small .patch file. In that case we don't need to maintain any branches. I'm okay with either a branch solution or a patch! Maybe there's another workaround for the problem that the patch solves? (This is: newer Apple Clang compiler is very picky about its code and generates more warnings. The older code fails on that.) Btw the PR with the CI task seems to work for |
The question was raised by @wgtdkp on PR #530 if we could split the single PR into features, to allow a more meaningful code review. This is certainly possible but raises some questions:
Another alternative is looking at individual commits - some of these are single squash commits coming from a PR with a particular feature. But there are also a lot of intermediate "work in progress" commits, which are easy to review/follow, but only make sense in combination with other commits that work on the same feature. And this includes also code that is later on removed again. So the alternative approach would have a larger code volume even due to many refactorings that happened along the way. Finally, there's the approach of doing a review at a glance of everything and just accepting as is. |
I am okay with this if you could add tests for the new features in OTNS2:
So that I can review the tests only. Going forward, I think we shouldn't develop in such a way that it diverges so much and comes back with a few hundreds commits. We suffered this in ot-commissioner where the multi-network functionality is added to ot-commissioner cli in a single CL with more than 10K code. I gave up doing code review for it so we got something like this merged into ot-commissioner: |
@wgtdkp Sounds like a good idea to start with the test code. All the current feature tests are in the scripts in There's also a test file
Ouch! At least it should be safer than #define private public ;-) |
Oh, it is actually really |
@wgtdkp Are you okay with using / reviewing the current set of tests for the new features as included already in this PR? (And leave any remaining tests for the "energy" feature for a future PR.) @jwhui I recently reconsidered the proposal (see earlier comments) of using a |
This issue is created to coordinate the inclusion of the new OTNS2 code (from https://github.com/EskoDijk/ot-ns) into the OTNS project main branch.
Possible methods to update: (nr 2 looks best perhaps, nr 1 is also fine)
Important goals of first inclusion of new code:
Less important goals for first inclusion -- these could be addressed later with PRs and fixes if needed.
Important design aspects of OTNS2 (to be evaluated here if okay to include!):
ot-rfsim
. This code is not intended to replace, or compete with, thesimulation
platform code in theopenthread
repo. In the future some merge/combine might be considered, but it's rather complex to do this already now. Note that the co-development of OTNS simulator code and C/C++ platform code in single repo, and single PRs/commits, has been very beneficial so far - usually some simulator features requires some handling code on the platform side and vice versa.The text was updated successfully, but these errors were encountered: