BakeIntegration

From Nsnam
Revision as of 21:03, 30 September 2014 by Tomh (Talk | contribs) (update bake goals)

Jump to: navigation, search

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 "core" and additional "extensions". This should also reduce build time for users.

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.

2. (development tool) Help developers better manage multiple 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.