File headers

From Dreamwidth Notes
Revision as of 04:56, 17 July 2012 by Exor674 (Talk | contribs)

Jump to: navigation, search


All files you create as part of your DW development work should have an appropriate header file. If you completely rewrite a file that used to be part of LiveJournal's "livejournal" repository, but no original code remains, you should indicate that as well (along with a link to LJ's license).

Right now, we don't have a header for code that was from the "livejournal" repo and has been modified by us -- you can just leave those blank.

Copyright

Copyright is maintained by the Dreamwidth Studios, LLC. organization, as all committers/contributors should have signed a contributor's agreement to properly grant license to their work. But authors should be noted for credit purposes.

If the file was modified in the years after it was created, or modified on more than one year, the copyright years should reflect that, but always in the first-last form, even if they're consecutive years or there would be gaps in the list. For instance, a file created in 2009 and modified in 2010 should have "2009-2010" instead of "2009, 2010"; a file created in 2009 and modified in 2010 and 2012 (but not 2011) should have "2009-2012" instead of "2009, 2010, 2012" or "2009-2010, 2012".

Authors list

Rule of thumb: if you are writing a new file, you can add yourself to the authors. If you are editing an existing file, you should only add yourself to the authors list if you are making significant changes (>10% or 100 lines, whichever is less). (Fixing typos does not qualify one to be a called out author of a file, sorry!)

Exception: if you're splitting a file into two or more new files and deleting the original (eg, when converting a site page from BML to TT), keep the original authors and add yourself to the list for all new files, even if one of the new files ends up with more than 90% of the code that was in the original file.

Note: in both cases, author call-outs are just name and email address. Even for major changes, go to the repo if you want to know who did what.

Example headers

Brand-new file, dw-free

#!/usr/bin/perl
#
# DW::Setting::AwesomeNewFeature
#
# This file is the accompanying settings package for AwesomeNewFeature. It allows users to set and
# clear their setting choices.
#
# Authors:
#      J. Random Hacker <jrh@example.org>
#
# Copyright (c) {{CURRENTYEAR}} by Dreamwidth Studios, LLC.
#
# This program is free software; you may redistribute it and/or modify it under
# the same terms as Perl itself.  For a copy of the license, please reference
# 'perldoc perlartistic' or 'perldoc perlgpl'.
#

Brand new file, dw-nonfree

#!/usr/bin/perl
#
# site/world-domination.bml
#
# This file explains Dreamwidth's plans for world domination. Be sure to keep it updated!
#
# Authors:
#      J. Random Hacker <jrh@example.org>
#
# Copyright (c) {{CURRENTYEAR}} by Dreamwidth Studios, LLC.
#
# This program is NOT free software or open-source; you can use it as an
# example of how to implement your own site-specific extensions to the
# Dreamwidth Studios open-source code, but you cannot use it on your site
# or redistribute it, with or without modifications.
#

Header for file that was lj code and has been totally rewritten

#!/usr/bin/perl
#
# LJ::Setting::RevampedFeature
#
# LJ::Setting module for playing with RevampedFeature.
#
# Author:
#      J. Random Hacker <jrh@example.org>
#
# Copyright (c) {{CURRENTYEAR}} by Dreamwidth Studios, LLC.
#
# The original version of this program was authored by LiveJournal.com
# and distributed under the terms of the license supplied by LiveJournal Inc,
# which can be found at:
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
#
# This program has since been wholly rewritten by Dreamwidth Studios.
# No parent code remains.
#
# This program is free software; you may redistribute it and/or modify it under
# the same terms as Perl itself.  For a copy of the license, please reference
# 'perldoc perlartistic' or 'perldoc perlgpl'.
#

Header for files that were livejournal code and have been partially rewritten/changed

Right now, these files don't have any header. (We haven't decided what the header should be.) If you edit one of those files, you can leave it without a header.