For a very long time, I wish to contribute my own little things to ns-3. But whenever I read the guide on contributing to ns-3, I could not able to understand that procedure at some point, and it discouraged me to proceed. So there should be some "idot's guide on contributing to ns-3" - so that, it will be easy for people like me to contribute something to ns-3.
The reason for posting this here is to get feedback from developers and experts so that one can understand the ways of the submission process and can easily contribute his/her code/model to ns-3 and make it available for all along with the official ns-3 distribution. I am writing an article on "Confusions in Contributing Our New Model to mainline ns-3." to share my experience of "trying to contribute to ns-3".
To make one to understand the problems that I faced while trying to learn the standards in contributing a new module or patch to ns-3, I hereby explain it with my examples scenario.
I want to contribute two new mobility models for ns-3 namely,
In fact, I already explained the way in which I developed them in the following two posts :
So that, anyone can learn the way of implementing a simple mobility model by following the above procedure.In fact, I developed these two mobility models with little effort. But making a submission to incorporate it with mainline ns-3 seems to be a nightmare to me.
But I want my Mobility Models to be merged with the mainstream ns-3 code so that anyone can use it with the default installation of ns-3.
The General section of the official ns-3 contribution guide explains the following
Let me start with my first doubt - Naming my New Mobility models:
I am having a 'silly wish' to name the mobility models with my name like :
"CharlesCircleMobilityModel"
"CharlesSpringMobilityModel"
Will this kind of naming discourage the developers to allow this model during the review?
Another concern regarding naming is:
ndnSIM already has a mobility model called "SpringMobilityModel" for ns-3
Someone also already implemented "CircelMobilityModel" for ns-3 (sorry I could not find the link now)
So, in addition, to making me happy :-) , this way of naming will avoid confusion with some other similar implementations with the same name.
I started to develop these two new mobility models by cloning the skeleton structure of "ConstantPositionMobilityModel" by Mathieu Lacage.
Only a few standard declaration lines are directly handled from ConstantPositionMobilityModel code, and most 90% of lines on my new models were only rewritten by me. But, I wish to give credit to Mathieu Lacage for making me understand the simplicity of a mobility model with his code.
Will the following lines in the header section of my new model code satisfy the (1)Licensing, (2)Copyright and the (3) Attribution standards?
The guide on contributing to ns-3 tries to explain the following way of submitting a new model/patch to ns-3.
Even though I can not fully understand the exact procedures of the above four methods, I can understand that all the above methods will lead to incorporating our new ns-3 model in a future version of ns-3 after some review and a lot of time.
But the last submission method is like Directly Uploading files at GitLab, and it will get merged with the official release after some review (and of course it will satisfy all the standards outlined in the contribution guide)
Submitting as a Merge Request or Upstreaming to ns-3-dev by Directly Uploading files at GitLab will be a suitable way to submit a simple model like the mobility models that I mentioned here?
I mean, is it allowed to directly upload my
mobility model files (.cc and .h) under https://gitlab.com/nsnam/ns-3-dev/-/tree/master/src/mobility/model and
the corresponding examples under https://gitlab.com/nsnam/ns-3-dev/-/tree/master/src/mobility/examples ?
Will it get reviewed and accepted to mainline ns-3 if it satisfies the conditions? (I mean without "test" and a separate "doc")
I mean, what are the basic things that a model code should fulfil - so that it will be accepted?
While trying to learn the way of contributing to ns-3, here and there, I saw some python based scripts and ways of doing things. Since as per the recent announcement, the python bindings will be removed from ns-3 and there will be a 'make' way of compiling things.
Will these new changes affect the ways of making/submitting the contribution? the official contribution guide is not discussing future issues related to this python and 'make' changes.
Of course, the official documents provide LOT of information regarding the submission. But its hugeness itself makes it impossible for us to contribute a 'simple' thing to the official version of ns-3.
I hope that the developers and experts can understand my concerns and will provide some insights in this regard. Your simple replies not only help me to make my first contribution to ns-3. It will help a student/scholar to really contribute something to ns-3.
--
You received this message because you are subscribed to the Google Groups "ns-3-reviews" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-reviews...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ns-3-reviews/b1393ba1-8038-4025-af62-c7907d65c700n%40googlegroups.com.