File headers

From Dreamwidth Notes
Revision as of 19:04, 2 May 2010 by Mark (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.

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) 2010 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>
#
# 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) 2009 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.