wiki:waf-project/GSoC

Version 3 (modified by Amar Takhar, on 02/19/16 at 01:39:49) (diff)

Fill in some projects.

Google Summer of Code

General

Project Ideas

Built-in Packaging

This project involves adding support to Waf for built-in packages:

  • OS X .pkg and .app
  • Windows .msi
  • Enhanced source tarballs
    • This involves adding support for distributing generated files with the tarball. A good example is including the .c and .h files from a Bison .y file. This would remove the dependency on Bison for tarballs and allow for better release testing.

Unit Tests For waflib

Currently the core of Waf, waflib has no unit tests.

The goal of this project is to create a set of tests that can be shipped with waf built-in. When a user of waf wants to build they should be able to run waf test-internal and have it check the state of Waf on that platform.

This has the benefit of ensuring builds are repeatable and successful on the platform the developer or user is running on. Some projects may want to enable this by default when building from a tarball for enhanced security.


Profiling / Debug Support

This project involves adding built-in support for gprof, gcov, valgrind or other development tools. A general all-purpose library should be created to easily insert other tools as necessary.

Waf should collect build information during the build process for dumping and parsing later on.

A new command waf bug would be added to dump current build information in a format suitable for attaching and pasting into a bug report for an online bug tracker.

This would also involve creating a new internal JSON log format to dump compile commands, compiler output and internal state that can be captured raw or pretty-printed into HTML or Text for gleaning information about the build.