Guide to Changelogs

From NSV13
Revision as of 21:36, 7 December 2014 by imported>Oranges (More detail on how to use pip)
Jump to navigationJump to search
Note: This guide thanks to friends from /vg/.

Changelogs are small YAML files that developers create to add their pull requests' changes to the master changelog.html file. A python script run by a maintainer collects all the changes specified and generates the HTML necessary, merging changes by the same author during the same day.

The idea is to reduce merge conflicts caused by two PRs trying to edit the same file.

Creating a Changelog

Pull Requests

PR changelogs are temporary and just get deleted after they're merged into the master changelog.

  1. Create html/changelogs/USERNAME-PR-###.yml, where ### is the number or ID of your PR or the name of the branch
  2. Copy the contents of this.
  3. Fill it out.
    • Make sure to set delete-after to true.
  4. PROOFREAD. Changelog entries are final after they're merged.
  5. Add it to git so it's included with your PR.

Maintainer Changelogs

Maintainers can have their own changelogs. Follow the same directions as above, but use USERNAME.yml and leave delete-after false.

Updating the Changelog

Only maintainers need to do this.
  • First, install python 2.7, pip, and PyYaml:
    • After installing python and ensuring it and its Scripts/ folder is in PATH, download and run get-pip.py with python.
    • Once pip is installed run the following commands in your terminal
    • pip install PyYaml
    • pip install beautifulsoup4
  • With /tg/station's code, simply run makeChangelog.bat.
  • On Linux or other codebases, run python tools/ss13_genchangelog.py html/changelog.html html/changelogs

Screwed up Changelog

If a changelog needs to be edited after merge, a maintainer will need to edit the html/changelogs/.all_changelog.yml file in order to fix the database. (This file is hidden on Linux and Mac OSX.)

Contribution guides
General Hosting a server, Setting up git, Guide to working with tgstation as an upstream repository, Downloading the source code, Guide to contributing to the game, Reporting issues, Game resources category, Guide to changelogs
Database (MySQL) Setting up the database, MySQL
Coding Coding standards, Understanding SS13 code, SS13 for experienced programmers, Binary flags‎, Getting Your Pull Accepted, Text Formatting
Mapping Guide to mapping, Map merger
Spriting Guide to spriting
Wiki Guide to contributing to the wiki, Wikicode, Maintainer Assignments