= Google Summer of Code = [[TOC(waf-project/GSoC , depth=2)]] == General == * [wiki:waf-project/GSoC/GettingStarted Getting Started] - Getting started with Waf == 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.