BakeIntegration: Difference between revisions

From Nsnam
Jump to navigation Jump to search
Line 15: Line 15:
2. '''(development tool)''' Help developers better manage multiple builds; for instance, debug, optimized, and static builds.
2. '''(development tool)''' Help developers better manage multiple builds; for instance, debug, optimized, and static builds.


= ns-3.22 goals =
= ns-3.24 goals =


Below are proposed goals for ns-3.22.
Below are proposed goals for ns-3.24.


'''1.  initial support for third-party ns-3 modules'''
'''1.  initial support for third-party ns-3 modules'''


Several (DTN, epidemic routing, routes mobility model, NSC, perhaps others ...) will become available only through the bake tool; large modules will no longer be merged to ns-3-dev but will need to be selected and managed by the bake tool.
Several modules (DTN, epidemic routing, routes mobility model, NSC, perhaps others ...) will become available only through the bake tool; large modules will no longer be merged to ns-3-dev but will need to be selected and managed by the bake tool.


This has implications for how we manage Doxygen, Sphinx documentation, the scratch directory, waf, etc.
This has implications for how we manage Doxygen, Sphinx documentation, the scratch directory, waf, etc.
Line 30: Line 30:


This means reconciling the existing .ns3rc and bake way of controlling the build.
This means reconciling the existing .ns3rc and bake way of controlling the build.
= Post ns-3.22 goals =
= Post ns-3.22 goals =



Revision as of 08:22, 14 May 2015

Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects

HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers

This page is for describing functional requirements of the bake tool for ns-3.22 and for future releases.

Broad functional goals

bake is intended to meet the following goals for ns-3 in the long run:

1. (software distribution tool) Enable a more decentralized development/release/maintenance environment for ns-3 third-party developers.

1.1 Split out some of existing ns-3-dev into a smaller "common" or "base" repository, and include additional "extensions", which may be hosted at code.nsnam.org or elsewhere. Reduce the default configuration/build of ns-3 to the base modules.

1.2 Provide a straightforward way for a third-party developer to maintain their own ns-3 extension and make it available to ns-3 users.

2. (development tool) Help developers better manage multiple builds; for instance, debug, optimized, and static builds.

ns-3.24 goals

Below are proposed goals for ns-3.24.

1. initial support for third-party ns-3 modules

Several modules (DTN, epidemic routing, routes mobility model, NSC, perhaps others ...) will become available only through the bake tool; large modules will no longer be merged to ns-3-dev but will need to be selected and managed by the bake tool.

This has implications for how we manage Doxygen, Sphinx documentation, the scratch directory, waf, etc.

2. removal of 'download.py', 'build.py', and 'dist.py' in ns-3-allinone; replace with bake commands.

3. some existing ns-3-dev components (mesh, wimax, uan) are disabled by default. Provide an improved, unified way for users to control which modules are in/out of the build, on a per-module granularity.

This means reconciling the existing .ns3rc and bake way of controlling the build.

Post ns-3.22 goals

It has been previously discussed to break apart ns-3-dev into separate repositories going forward, with a completely flat directory structure. This is for further study beyond ns-3.22.

Trying to integrate the above with binary package distribution (.deb, .rpm, etc.) is out of scope for ns-3.22.