DeveloperGuide
From The Battle for Wesnoth Wiki
Commits
- Setting up developer access to the repository: WesnothRepository#Commit_access
- Register to commit mailing list: https://mail.gna.org/listinfo/wesnoth-commits or get the list moderator to approve commit messages from you otherwise
- Trunk should compile and work after commit -- we use travis-ci, which will report any build failures on master to the irc channel. https://travis-ci.org/wesnoth/wesnoth
- All unit tests should pass after commit -- travis will also test this. To run the C++ unit tests, compile the "test" executable and run it. To run the WML unit tests, run "run_wml_tests -u" in the root of the repo.
- If a test times out spuriously on travis, you can restart the build by
- clicking on the link posted to irc by the travis bot
- 20141009 20:40:27-!- travis-ci [~travis-ci@ec2-184-73-55-78.compute-1.amazonaws.com] has joined #wesnoth-dev
- 20141009 20:40:27< travis-ci> wesnoth/wesnoth#4154 (master - c91604a : Ignacio R. Morelle): The build was broken.
- 20141009 20:40:27< travis-ci> Build details : http://travis-ci.org/wesnoth/wesnoth/builds/37536345
- 20141009 20:40:27-!- travis-ci [~travis-ci@ec2-184-73-55-78.compute-1.amazonaws.com] has left #wesnoth-dev []
- clicking on the restart button
- clicking on the link posted to irc by the travis bot
- Do not disable unit tests without a very good reason!
- If a test times out spuriously on travis, you can restart the build by
- Few small commits are better than a big one (hard to review), so when possible split it in working parts with info about where you are going
- Be on #wesnoth-dev IRC channel and coordinate with other developers. Bots report commits and some devs may ask you a question about it.
- Don't forget changelogs: changelog for any (significant enough) changes and player_changelog for changes visible to users.
- Always check your changes before commit (see WesnothRepository#Reviewing your changes).
- Commit message:
- Mention any change, especially if some are unrelated to the main one (but you should use separated commits for this).
- Mention "bug #1234" for automatic cc to that gna bug number
- Mention a developer's IRC name will ping him on IRC (when the bot report it), and if he's not there, he may see it on the IRC logs
Bugs management
- Change status of fixed bugs to "Fixed" when committed
- Change status of fixed bugs to "Closed" when released, see ReportingBugs#Bug_protocol for details
- Check if there is new bugs relevant to your code and if any, assign them to you.
Dependencies
- Any change in dependencies to build the project must be discussed on the mailing list (dev-talk).
- Update SConstruct (and ideally cmake recipe also) to check for the dependency.
- Note any change (added or removed deps, or increased version requirements) in the RELEASE_NOTES file.
Tips
- If you build with scons, use clang rather than gcc, as it is 2-3x faster to compile wesnoth.
Set your choice permanently with
scons cxxtool=clang++