{
"info": {
"author": "W. Trevor King",
"author_email": "wking@tremily.us",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License (GPL)",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Topic :: Software Development"
],
"description": ".. -*- coding: utf-8 -*-\n\n``update-copyright`` is an automatic copyright updating tool. I wrote\nthe original for `Bugs Everywhere`_, but ended up copying it into a\nnumber of my projects. Copying is bad, so here it is, split out as\nits own separate project.\n\nInstallation\n============\n\nPackages\n--------\n\nGentoo\n~~~~~~\n\nI've packaged ``update-copyright`` for Gentoo_. You need layman_ and\nmy `wtk overlay`_. Install with::\n\n # emerge -av app-portage/layman\n # layman --add wtk\n # emerge -av dev-util/update-copyright\n\nDependencies\n------------\n\n``update-copyright`` is a simple package with no external dependencies\noutside of the VCS commands themselves (e.g. you need `git` in your\n`PATH` to use the Git_ backend, and `hg` in your `PATH` to use the\nMercurial_ backend).\n\nInstalling by hand\n------------------\n\n``update-copyright`` is available as a Git_ repository::\n\n $ git clone git://tremily.us/update-copyright.git\n\nSee the homepage_ for details. To install the checkout, run the\nstandard::\n\n $ python setup.py install\n\nUsage\n=====\n\nYou'll need a project that you version with one of our supported VCSs\n(currently Git_ and Mercurial_, but it should be pretty easy to add\nbackends for other systems). You'll also need a config file called\n``.update-copyright.conf`` in your package root, which will be parsed\nusing Python's RawConfigParser_ (`syntax documentation`_,\ninterpolation is turned off). Your config file will look something\nlike::\n\n [project]\n name: update-copyright\n vcs: Git\n\n [files]\n authors: yes\n files: yes\n ignored: COPYING | README | .update-copyright.conf | .git*\n pyfile: update_copyright/license.py\n\n [copyright]\n short: {project} comes with ABSOLUTELY NO WARRANTY and is licensed under the GNU General Public License.\n long: This file is part of {project}.\n\n {project} is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\n {project} is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with {project}. If not, see .\n\nOptions\n-------\n\nproject.name\n A string naming your project. Replaces ``{project}`` in your\n copyright blurbs. If this isn't set, ``update-copyright`` will fall\n back to using the name of the repository directory.\nproject.vcs\n The name of your version control system.\nfiles.authors\n Should ``update-copyright.py`` generate an ``AUTHORS`` file?\n ``yes`` or ``no``.\nfiles.files\n Should ``update-copyright.py`` update copyright blurbs in versioned\n files? ``yes`` or ``no``.\nfiles.ignored\n A pipe-separated list of globs matching files that should not have\n copyright blurbs updated. This protects files that may accidentally\n caught by the blurb update algorithm.\nfiles.pyfile\n The path of an autogenerated license module, in case your program\n wants to print out its copyright/licensing information. If you\n don't set this option, no license module will be generated.\ncopyright.short\n A list of paragraphs (separated by blank lines) containing your\n short copyright/license blurb. This blurb is used in the pyfile's\n ``short_license`` function (see `files.pyfile`). This exists\n because some programs print a short license blurb on startup, where\n the full file-topping blurb may be overkill.\ncopyright.long\n A list of paragraphs (separated by blank lines) containing your long\n copyright/license blurb. This blurb is used to replace copyright\n blurbs in your source files.\n\nUpdating copyright blurbs\n-------------------------\n\nThe blurb-update algorithm looks for any lines that begin with ``#\nCopyright``. These lines mark the beginning of a blurb, which\ncontinues as long as subsequent lines begin with ``#``. The old blurb\nis replaced by a new blurb, which is automatically generated from your\nconfigured long copyright string, with author names and edit years\nextracted from the VCS data for that file.\n\nWhile the above works well for languages that use ``#`` to mark\ncomment lines, it doesn't work for languages like C that use ``/*\u2026*/``\nto mark comments. There blurb-update algorithm also looks for any\nlines that begging with ``/* Copyright`` and replaces that line, and\nsubsequent lines up to one beginning with ``\u00a0*/``, with a new blurb.\n\nBecause I've never seen a file with *both* trigger lines, it shouldn't\nbe a problem to run both against each of your versioned files. If it\nis a problem for you, let me know, and we can add some configuration\noptions to work around the problem.\n\nIncomplete VCS history\n----------------------\n\nSometimes files have authors or alterations not recorded in a\nproject's VCS history. You can use the ``author-hacks`` section to\nadd authors to a file, and the ``year-hacks`` section to adjust the\nfiles original year. Author names should be pipe-separated. For\nexample::\n\n [author-hacks]\n path/to/file: John Doe | Jane Smith \n\n [year-hacks]\n path/to/another/file: 2009\n\nAdd entries for as many files as you like. Paths should be relative\nto your project root. Always use forward slashes (``/``) to separate\npath elements.\n\nAliases\n-------\n\nOccasionally names or email addresses used when committing to the VCS\nwill go out of date. Some VCSs have a built-in method of dealing with\nthis (e.g. Git's `.mailmap`_). For those without such a VCS, you can\nadd an `aliases`` section to your config file, where the option names\nare the canonical name of the ...?. For example::\n\n [aliases]\n John Doe : John Doe | jdoe | J. Doe \n\nTesting\n=======\n\nRun the internal unit tests with::\n\n $ nosetests --with-doctest --doctest-tests update_copyright\n\nLicence\n=======\n\nThis project is distributed under the `GNU General Public License\nVersion 3`_ or greater.\n\nAuthor\n======\n\nW. Trevor King\nwking@tremily.us\n\n\n.. _Bugs Everywhere: http://bugseverywhere.org/\n.. _Gentoo: http://www.gentoo.org/\n.. _layman: http://layman.sourceforge.net/\n.. _wtk overlay: http://blog.tremily.us/posts/Gentoo_overlay/\n.. _Git: http://git-scm.com/\n.. _Mercurial: http://mercurial.selenic.com/\n.. _homepage: http://blog.tremily.us/posts/update-copyright/\n.. _RawConfigParser:\n http://docs.python.org/dev/library/configparser.html#configparser.RawConfigParser\n.. _syntax documentation:\n http://docs.python.org/dev/library/configparser.html#supported-ini-file-structure\n.. _.mailmap: http://schacon.github.com/git/git-shortlog.html#_mapping_authors\n.. _GNU General Public License Version 3: http://www.gnu.org/licenses/gpl.html",
"description_content_type": null,
"docs_url": null,
"download_url": "http://git.tremily.us/?p=update-copyright.git;a=snapshot;h=v0.6.2;sf=tgz",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://blog.tremily.us/posts/update-copyright/",
"keywords": null,
"license": "GNU General Public License (GPL)",
"maintainer": null,
"maintainer_email": null,
"name": "update-copyright",
"package_url": "https://pypi.org/project/update-copyright/",
"platform": "all",
"project_url": "https://pypi.org/project/update-copyright/",
"project_urls": {
"Download": "http://git.tremily.us/?p=update-copyright.git;a=snapshot;h=v0.6.2;sf=tgz",
"Homepage": "http://blog.tremily.us/posts/update-copyright/"
},
"release_url": "https://pypi.org/project/update-copyright/0.6.2/",
"requires_dist": null,
"requires_python": null,
"summary": "Automatically update copyright blurbs in versioned source.",
"version": "0.6.2"
},
"last_serial": 1481523,
"releases": {
"0.2": [],
"0.3": [],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "b01290376d5ee75fa5075b3cb2ca8f1b",
"sha256": "e825086688c45c0a74a122798b877e91c5187545f35fea0f0a0d2b48420155b1"
},
"downloads": -1,
"filename": "update-copyright-0.4.tar.gz",
"has_sig": true,
"md5_digest": "b01290376d5ee75fa5075b3cb2ca8f1b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13443,
"upload_time": "2012-07-22T18:38:01",
"url": "https://files.pythonhosted.org/packages/ae/ba/73e7940fcb12ba41c75c9c8d4e2441f9400fd047d2cac2148dd5802bae0b/update-copyright-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "c8eb08dcb2d7d57ca9d4f3505891fce6",
"sha256": "e3fe915d8c4bbf094adccf5fd805d689dd79e0b753e54ddec76f2bd1e91e7e22"
},
"downloads": -1,
"filename": "update-copyright-0.5.tar.gz",
"has_sig": false,
"md5_digest": "c8eb08dcb2d7d57ca9d4f3505891fce6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13555,
"upload_time": "2013-01-24T01:41:31",
"url": "https://files.pythonhosted.org/packages/0d/2a/8d99f89a90af452968aabf5ed61d4cc9c71866276e97b41d97f87ded6f83/update-copyright-0.5.tar.gz"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "a821219c0e19a52c476cd352c5db0be3",
"sha256": "6d1188157a58b00c6710473fa66c3effa09d32b22232e299ddebd38c2a9b5795"
},
"downloads": -1,
"filename": "update-copyright-0.6.tar.gz",
"has_sig": false,
"md5_digest": "a821219c0e19a52c476cd352c5db0be3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12938,
"upload_time": "2014-01-27T18:22:02",
"url": "https://files.pythonhosted.org/packages/94/dc/d47bff5adaa7c57b873cb04495516b5b5bef0dafc469358bd3a31c5df711/update-copyright-0.6.tar.gz"
}
],
"0.6.1": [
{
"comment_text": "",
"digests": {
"md5": "4b2f14effac9a8d6ced4e244bc1e28e1",
"sha256": "e8ec886516d4e418f700aebc6ca9033b24603222f8587ef931bd589adf2a36f7"
},
"downloads": -1,
"filename": "update-copyright-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "4b2f14effac9a8d6ced4e244bc1e28e1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12957,
"upload_time": "2014-10-31T17:57:17",
"url": "https://files.pythonhosted.org/packages/9f/b7/42945a1bdac634b58eb60dc7cf5740cec69a51d8283a4a3fb39938c7e9ca/update-copyright-0.6.1.tar.gz"
}
],
"0.6.2": [
{
"comment_text": "",
"digests": {
"md5": "1c1c837294023dfa9fbf2cace0511ad3",
"sha256": "ffccb6eb762afcbd7e91d0e1901a3af7fba0d90ede4da21ac45e18d6d66bcb9f"
},
"downloads": -1,
"filename": "update-copyright-0.6.2.tar.gz",
"has_sig": false,
"md5_digest": "1c1c837294023dfa9fbf2cace0511ad3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12992,
"upload_time": "2015-03-28T20:12:25",
"url": "https://files.pythonhosted.org/packages/cb/64/2fbea1ca0a78f945c3e6fb47599e227926535129e38594bd292d16f75879/update-copyright-0.6.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "1c1c837294023dfa9fbf2cace0511ad3",
"sha256": "ffccb6eb762afcbd7e91d0e1901a3af7fba0d90ede4da21ac45e18d6d66bcb9f"
},
"downloads": -1,
"filename": "update-copyright-0.6.2.tar.gz",
"has_sig": false,
"md5_digest": "1c1c837294023dfa9fbf2cace0511ad3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12992,
"upload_time": "2015-03-28T20:12:25",
"url": "https://files.pythonhosted.org/packages/cb/64/2fbea1ca0a78f945c3e6fb47599e227926535129e38594bd292d16f75879/update-copyright-0.6.2.tar.gz"
}
]
}