Package: copycheck
Copycheck=========Copyright 2016 Janus Friis Nielsen.This file is part of *copycheck*... image:: https://circleci.com/gh/janusdn/copycheck/tree/master.svg?style=shield&circle-token=4112427381753afc2f073a61fba23263d1f86d13:target: https://circleci.com/gh/janusdn/copycheck/tree/masterIntroduction------------*Copycheck* inspects the beginning of all files reports any file without a copyrightheader.The recognition of copyright headers is very rudimentary. *Copycheck* scans the10 first lines for occurrences of the word "copyright" in any casing.Installation------------*copycheck* is available for install through `PyPI`_:.. code-block:: bash$ pip install copycheck*copycheck* can also be installed from source with:.. code-block:: bash$ python setup.py install.. _`PyPI`: http://pypi.python.org/pypi/copycheck.. _`setuptools`: https://pypi.python.org/pypi/setuptoolsUsage-----The tool will show a description of usage when given the`--help` option:.. code-block:: bash$ copycheck --helpusage: copycheck [-h] [-v] [--debug DEBUG] {check} ...Check source files for missing copyright headerspositional arguments:{check}        sub-commandscheck        check for missing copyright headersoptional arguments:-h, --help     show this help message and exit-v, --verbose  Enable verbose output--debug DEBUG  Enable debug outputCheck all files in current directory~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: bash$ copycheck check .Check all files in a directory~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: bash$ copycheck check path/to/directoryCheck all files in a number of directories~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: bash$ copycheck check path/to/directory path/to/another/directory /and/so/on/..Ignore files~~~~~~~~~~~~You can put a files called `.copycheckignore` in the base directory of yourproject.The syntax of the files is Git wildmatch. The same as used in .gitignore.Get files sorted~~~~~~~~~~~~~~~~.. code-block:: bash$ copycheck check path/to/directory | sortAdd copyright header~~~~~~~~~~~~~~~~~~~~Add copyright header to all Python files available from current directory".. code-block:: bash$ copycheck check . | sort | grep "\.py" | xargs -L1 sed -i '' '1i\# Copyright 2016 (c) Janus Friis Nielsen, all rights reserved. \\'License-------*copycheck* is licensed under the `Mozilla Public License Version 2.0`_. See`LICENSE`_ or the `FAQ`_ for more information.In summary, you may use *copycheck* with any closed or open source projectwithout affecting the license of the larger work so long as you:- give credit where credit is due,- and release any custom changes made to *copycheck*... _`Mozilla Public License Version 2.0`: http://www.mozilla.org/MPL/2.0.. _`LICENSE`: LICENSE.. _`FAQ`: http://www.mozilla.org/MPL/2.0/FAQ.htmlSource------The source code for *copycheck* is available from the GitHub repo`janusdn/copycheck`_... _`janusdn/copycheck`: https://github.com/janusdn/copycheckContributing------------When contributing changes remember to update the `CHANGELOG.rst`.Building copycheck------------------Make sure you have a Python 3.5 environment with the requirements.E.g. use pyenv:.. code-block:: bash$ pyenv virtualenv 3.5.0 copycheck-venv$ pyenv activate copycheck-venvMake sure pip is up-to-date:.. code-block:: bash$ pip install --upgrade pipInstall requirements:.. code-block:: bash$ pip install --upgrade -r requirements.txtBuild the wheel:.. code-block:: bash$ makeDevelopment~~~~~~~~~~~Use the following command to install the package in the localenvironment during development... code-block:: bash$ pip install -e .This allows you to change the code and test *copycheck*directly.Releasing---------Do the following to release a new version:1. Commit changes2. Push changes3. Merge with master4. Update local master5. Find the next release version, e.g. 6.6.66. Create new branch with name core/release-6.6.67. Bump version in __about__.py8. Run `./release.sh 6.6.6`Upload to Pypi--------------First, perform a test upload to verify everything is nice and dandy.Then perform the real upload.Make sure the following environment variables have been properly defined:.. code-block:: bash$ export PYPI_TEST_USERNAME="<username>"$ export PYPI_TEST_PASSWORD="<your_test_password>"$ export PYPI_USERNAME="<your_password>"$ export PYPI_PASSWORD="<username>"Test upload to pypi~~~~~~~~~~~~~~~~~~~You may need to register on the Pypi test server. This can be done here:.. code-block:: bash$ https://testpypi.python.org/pypiRegister:.. code-block:: bash$ twine register -u ${PYPI_TEST_USERNAME} -p ${PYPI_TEST_PASSWORD} -r https://testpypi.python.org/pypi dist/Copycheck-6.6.6-py3-none-any.whlUpload.. code-block:: bash$ twine upload -u ${PYPI_TEST_USERNAME} -p ${PYPI_TEST_PASSWORD} -r https://testpypi.python.org/pypi dist/Copycheck-6.6.6-py3-none-any.whlGoto:.. code-block:: bash$ https://testpypi.python.org/pypi/Copycheck/6.6.6An check that everything looks nice.You can check the HTML by running:.. code-block:: bash$ python setup.py --long-description | rst2html.py --no-raw > output.htmlTest if it installs (do it in a different environment):.. code-block:: bash$ pip install -i https://testpypi.python.org/pypi copycheckReal upload to Pypi~~~~~~~~~~~~~~~~~~~Upload.. code-block:: bash$ twine upload -u ${PYPI_USERNAME} -p ${PYPI_PASSWORD} -r https://pypi.python.org/pypi dist/copycheck-6.6.6-py3-none-any.whlGoto:.. code-block:: bash$ https://pypi.python.org/pypi/copycheck/6.6.6And check that everything looks nice.Thanks------A bug thank you goes to the author of the *pathspec* package. Using *pathspec*made it a lot easier to build this tool.Change Log==========All notable changes to the copycheck tool will bedocumented in this file.This project adheres to [Semantic Versioning](http://semver.org/).See http://keepachangelog.com for information on how to update this file.[Unreleased]------------[1.0.3]-------Fixed~~~~~- Typos and formatting in README[1.0.2]-------Fixed~~~~~- Typos and formatting in README[1.0.1]-------Added~~~~~- Initial version[1.0.0]-------Added~~~~~- Initial versionChanged~~~~~~~- No changesDeprecated~~~~~~~~~~- No changesRemoved~~~~~~~- No changesFixed~~~~~- No changesSecurity~~~~~~~~- No changes