Difference between revisions of "BakeIntegration"

From Nsnam
Jump to: navigation, search
(update bake goals)
(Broad functional goals)
Line 9: Line 9:
 
1. '''(software distribution tool)''' Enable a more decentralized development/release/maintenance environment for ns-3 third-party developers.
 
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 "core" and additional "extensions".  This should also reduce build time for users.
+
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 elsewhereReduce the default configuration/build of ns-3 to the base modules.
  
1.2  Provide straightforward way for a third-party developer to maintain their own ns-3 extension and make it available to ns-3 users.
+
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.
+
2. '''(development tool)''' Help developers better manage multiple builds; for instance, debug, optimized, and static builds.
  
 
= ns-3.22 goals =
 
= ns-3.22 goals =

Revision as of 21:05, 30 September 2014

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - 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.22 goals

Below are proposed goals for ns-3.22.

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.

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.