DeveloperGuide

From The Battle for Wesnoth Wiki
Revision as of 14:08, 19 October 2014 by Iceiceice (talk | contribs)

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
    • Do not disable unit tests without a very good reason!
  • 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++

See also