Update to the latest LLVM version
There can be LLVM syntax changes between releases, and we want to ensure that each DDC new release works with the current LLVM syntax.
Update the default LLVM version string to the current release
In DDC.Llvm.Pretty.Base the default version used when displaying debugging information is hard coded, though when compiling real modules we interrogate the installed LLVM compiler.
Grep the source for TODO, FIXME, BROKEN etc and enter these into the trac as new issues. Change the TODOs to "ISSUE #NNN" to refer to the issue as entered on the trac.
Audit hard errors
Grep the source for uses of the error function and ensure they at least give the name of the package that causes the error. We don't want any calls like error "blerk" in a released version.
Clear current issues
Ensure that all issues with the to-release version as their milestone are either fixed or have their milestone set to the next version.
Eliminate scar tissue
The codebase should not contain slabs of commented out code. Slabs of unused code need to be deleted, or moved to /icebox if there is a high chance we'll want it back.
Eliminate leftover traces
Grep the source for "Debug.Trace" and "trace". There shouldn't be any of these in the released version.
Grep the source for forbidden functions. These all fail with an unhelpful error message and are banned from the DDC source tree.
undefined head tail init fromJust (!!)
Fix cabal files
Ensure that all modules are entered in the cabal files, and the packages build. Hide internal modules that we don't want to reveal in the public-facing API.
Build the complete documentation and ensure all functions and data structures are documented. Use the cabal haddock command to exercise the .cabal files.
Add release notes to doc/release
Release notes should summarise the main changes since last release, and who worked on it, for posterity. We don't need a list of the issues fixed, as these are kept in the trac.
Go though all the wiki pages and ensure old stuff is deleted or updated.
Check version strings
Check that ddc and ddci-core in include the correct version string. Also bump the year in the LICENSE files if needed
Build and check the source distros
Do cabal sdist for each of the packages, and then unpack and build the unpacked version. This should catch any modules that were part of the build but didn't make it into the cabal file.
Create a new branch on github
Make a branch for the new released version, and update links to demo programs on the wiki and release notes / readme to point to the ones in the new branch.
Test on all platforms
Ensure DDC builds cleanly on all platforms.