aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST.in4
-rw-r--r--anteater/src/patch_scan.py6
-rw-r--r--anteater/src/project_scan.py6
-rw-r--r--exceptions/octopus.yaml3
-rw-r--r--requirements.txt2
-rwxr-xr-xsetup.py4
-rw-r--r--tasks.py53
7 files changed, 52 insertions, 26 deletions
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..e043fed
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,4 @@
+include LICENSE README.md
+include anteater.conf
+include master_list.yaml
+exclude exceptions/*
diff --git a/anteater/src/patch_scan.py b/anteater/src/patch_scan.py
index 0a32f3e..1deb68f 100644
--- a/anteater/src/patch_scan.py
+++ b/anteater/src/patch_scan.py
@@ -147,9 +147,9 @@ def licence_check(project, licence_ext,
# Note: Hardcoded use of 'copyright' & 'spdx' is the result
# of a decision made at 2017 plugfest to limit searches to
# just these two strings.
- if re.search("copyright", content, re.IGNORECASE):
- logger.info('Contains needed Licence string: %s', patch_file)
- elif re.search("spdx", content, re.IGNORECASE):
+ patterns = ['copyright', 'spdx',
+ 'http://creativecommons.org/licenses/by/4.0']
+ if any(i in content.lower() for i in patterns):
logger.info('Contains needed Licence string: %s', patch_file)
else:
logger.error('Licence header missing in file: %s', patch_file)
diff --git a/anteater/src/project_scan.py b/anteater/src/project_scan.py
index f33ccca..5ac8b10 100644
--- a/anteater/src/project_scan.py
+++ b/anteater/src/project_scan.py
@@ -159,9 +159,9 @@ def licence_check(licence_ext, licence_ignore, project, project_dir):
# Note: Hardcoded use of 'copyright' & 'spdx' is the result
# of a decision made at 2017 plugfest to limit searches to
# just these two strings.
- if re.search("copyright", content, re.IGNORECASE):
- logger.info('Licence string present: %s', full_path)
- elif re.search("spdx", content, re.IGNORECASE):
+ patterns = ['copyright', 'spdx',
+ 'http://creativecommons.org/licenses/by/4.0']
+ if any(i in content.lower() for i in patterns):
logger.info('Licence string present: %s', full_path)
else:
logger.error('Licence header missing: %s', full_path)
diff --git a/exceptions/octopus.yaml b/exceptions/octopus.yaml
index dde146d..66dd0bb 100644
--- a/exceptions/octopus.yaml
+++ b/exceptions/octopus.yaml
@@ -6,7 +6,8 @@
# of escaping YAML delimiters too (such as `:`) using double quotes "".
binaries:
- binary_ignore: [nullvalue]
+ dynamic-flow.png:
+ - d0d7dfc73e0fac09d920ebbdf8cd4e0ef623f15d6246ff20d7a6d12c9a48bf41
file_audits:
file_names: [nullvalue]
file_contents:
diff --git a/requirements.txt b/requirements.txt
index 7a52654..201b07f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,8 +2,10 @@ appdirs==1.4.3
binaryornot==0.4.3
chardet==3.0.2
docopt==0.6.2
+invoke==0.18.0
packaging==16.8
pyaml==16.12.2
pyparsing==2.2.0
PyYAML==3.12
six==1.10.0
+twine==1.9.1
diff --git a/setup.py b/setup.py
index d392231..c791175 100755
--- a/setup.py
+++ b/setup.py
@@ -7,6 +7,9 @@ from setuptools import setup, find_packages
REQUIRES = [
'docopt',
+ 'six',
+ 'binaryornot',
+ 'PyYAML',
]
@@ -71,7 +74,6 @@ setup(
'Programming Language :: Python :: Implementation :: PyPy'
],
packages=find_packages(),
- py_modules=["anteater"],
entry_points={
'console_scripts': [
"anteater = anteater.main:main"
diff --git a/tasks.py b/tasks.py
index 55ac340..30bef4c 100644
--- a/tasks.py
+++ b/tasks.py
@@ -11,47 +11,64 @@ build_dir = os.path.join(docs_dir, '_build')
@task
-def test():
+def test(ctx):
run('python setup.py test', pty=True)
@task
-def clean():
- run("rm -rf build")
- run("rm -rf dist")
- run("rm -rf anteater.egg-info")
- clean_docs()
+def clean(ctx):
+ ctx.run("rm -rf build")
+ ctx.run("rm -rf dist")
+ ctx.run("rm -rf anteater.egg-info")
+ clean_docs(ctx)
print("Cleaned up.")
@task
-def clean_docs():
- run("rm -rf %s" % build_dir)
+def clean_docs(ctx):
+ ctx.run("rm -rf %s" % build_dir)
@task
-def browse_docs():
- run("open %s" % os.path.join(build_dir, 'index.html'))
+def browse_docs(ctx):
+ ctx.run("open %s" % os.path.join(build_dir, 'index.html'))
@task
-def build_docs(clean=False, browse=False):
+def build_docs(ctx, clean=False, browse=False):
if clean:
clean_docs()
- run("sphinx-build %s %s" % (docs_dir, build_dir), pty=True)
+ ctx.run("sphinx-build %s %s" % (docs_dir, build_dir), pty=True)
if browse:
browse_docs()
@task
-def readme(browse=False):
- run('rst2html.py README.rst > README.html')
+def readme(ctx, browse=False):
+ ctx.run('rst2html.py README.rst > README.html')
@task
-def publish(test=False):
- """Publish to the cheeseshop."""
+def build(ctx):
+ """Build source distribution and wheels."""
+ ctx.run('python setup.py sdist bdist_wheel')
+
+
+@task
+def publish(ctx, test=False):
+ """Publish to the cheeseshop.
+
+ This command follows the Python packaging guidelines:
+ https://packaging.python.org/tutorials/distributing-packages
+
+ Information on configuration required for '--test' can be found
+ here: https://wiki.python.org/moin/TestPyPI
+
+ Before uploading please ensure you've signed the release using:
+
+ gpg --detach-sign -a dist/package-1.0.1.tar.gz
+ """
if test:
- run('python setup.py register -r test sdist upload -r test')
+ ctx.run('twine upload -r test dist/*')
else:
- run("python setup.py register sdist upload")
+ ctx.run("twine upload dist/*")