init
This commit is contained in:
parent
fa539105e1
commit
13cdff1e78
|
@ -0,0 +1,4 @@
|
|||
*.pyc
|
||||
*.egg-info
|
||||
.pytest_cache/
|
||||
/debian/.debhelper/
|
|
@ -0,0 +1,18 @@
|
|||
# See https://pre-commit.com for more information
|
||||
# See https://pre-commit.com/hooks.html for more hooks
|
||||
repos:
|
||||
- repo: https://github.com/psf/black
|
||||
rev: 22.3.0
|
||||
hooks:
|
||||
- id: black
|
||||
args: ['--target-version', 'py37', '--skip-string-normalization', '--line-length', '110']
|
||||
- repo: https://github.com/PyCQA/isort
|
||||
rev: 5.7.0
|
||||
hooks:
|
||||
- id: isort
|
||||
args: ['--profile', 'black', '--line-length', '110']
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v2.20.0
|
||||
hooks:
|
||||
- id: pyupgrade
|
||||
args: ['--keep-percent-format', '--py37-plus']
|
|
@ -0,0 +1,44 @@
|
|||
@Library('eo-jenkins-lib@main') import eo.Utils
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
}
|
||||
stages {
|
||||
stage('Unit Tests') {
|
||||
steps {
|
||||
sh 'tox -rv'
|
||||
}
|
||||
post {
|
||||
always {
|
||||
mergeJunitResults()
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Packaging') {
|
||||
steps {
|
||||
script {
|
||||
if (env.JOB_NAME == 'publik-django-templatetags' && env.GIT_BRANCH == 'origin/main') {
|
||||
sh 'sudo -H -u eobuilder /usr/local/bin/eobuilder -d buster,bullseye publik-django-templatetags'
|
||||
} else if (env.GIT_BRANCH.startsWith('hotfix/')) {
|
||||
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d buster,bullseye --branch ${env.GIT_BRANCH} --hotfix publik-django-templatetags"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
utils = new Utils()
|
||||
utils.mail_notify(currentBuild, env, 'ci+jenkins-publik-django-templatetags@entrouvert.org')
|
||||
}
|
||||
}
|
||||
success {
|
||||
cleanWs()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
include MANIFEST.in
|
||||
include COPYING
|
||||
include README
|
||||
include VERSION
|
|
@ -0,0 +1,40 @@
|
|||
publik-django-templatetags
|
||||
==========================
|
||||
|
||||
Template tags and filters shared between Publik projects.
|
||||
|
||||
Code Style
|
||||
----------
|
||||
|
||||
black is used to format the code, using thoses parameters:
|
||||
|
||||
black --target-version py35 --skip-string-normalization --line-length 110
|
||||
|
||||
isort is used to format the imports, using those parameters:
|
||||
|
||||
isort --profile black --line-length 110
|
||||
|
||||
pyupgrade is used to automatically upgrade syntax, using those parameters:
|
||||
|
||||
pyupgrade --keep-percent-format --py37-plus
|
||||
|
||||
There is .pre-commit-config.yaml to use pre-commit to automatically run black,
|
||||
isort and pyupgrade before commits. (execute `pre-commit install` to install
|
||||
the git hook.)
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it under
|
||||
the terms of the GNU Affero General Public License as published by the Free
|
||||
Software Foundation, either version 3 of the License, or (at your option) any
|
||||
later version.
|
||||
|
||||
This program 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 Affero General Public License for more
|
||||
details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License along
|
||||
with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -0,0 +1,5 @@
|
|||
publik-django-templatetags (0-1) unstable; urgency=low
|
||||
|
||||
* initial release
|
||||
|
||||
-- Frederic Peters <fpeters@entrouvert.com> Tue, 03 May 2022 08:42:40 +0200
|
|
@ -0,0 +1,13 @@
|
|||
Source: publik-django-templatetags
|
||||
Maintainer: Entr’ouvert <info@entrouvert.com>
|
||||
Section: python
|
||||
Priority: optional
|
||||
Build-Depends: debhelper-compat (= 12), dh-python, python3-all, python3-setuptools, python3-django
|
||||
Standards-Version: 3.9.1
|
||||
|
||||
Package: python3-publik-django-templatetags
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, ${python3:Depends}
|
||||
Description: Template tags and filters shared between Publik projects
|
||||
Django shared application with custom template tags and filters
|
||||
useful in multiple Publik modules.
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export PYBUILD_NAME=publik-django-templatetags
|
||||
export PYBUILD_DISABLE=test
|
||||
|
||||
%:
|
||||
dh $@ --with python3 --buildsystem=pybuild
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1,2 @@
|
|||
[pytest]
|
||||
DJANGO_SETTINGS_MODULE = tests.project.settings
|
|
@ -0,0 +1,114 @@
|
|||
#! /usr/bin/env python
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from distutils.cmd import Command
|
||||
from distutils.command.build import build as _build
|
||||
from distutils.command.sdist import sdist
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
from setuptools.command.install_lib import install_lib as _install_lib
|
||||
|
||||
|
||||
class eo_sdist(sdist):
|
||||
def run(self):
|
||||
if os.path.exists('VERSION'):
|
||||
os.remove('VERSION')
|
||||
version = get_version()
|
||||
with open('VERSION', 'w') as fd:
|
||||
fd.write(version)
|
||||
sdist.run(self)
|
||||
if os.path.exists('VERSION'):
|
||||
os.remove('VERSION')
|
||||
|
||||
|
||||
def get_version():
|
||||
if os.path.exists('VERSION'):
|
||||
with open('VERSION') as v:
|
||||
return v.read()
|
||||
if os.path.exists('.git'):
|
||||
p = subprocess.Popen(
|
||||
['git', 'describe', '--dirty=.dirty', '--match=v*'],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
)
|
||||
result = p.communicate()[0]
|
||||
if p.returncode == 0:
|
||||
result = result.decode('ascii').strip()[1:] # strip spaces/newlines and initial v
|
||||
if '-' in result: # not a tagged version
|
||||
real_number, commit_count, commit_hash = result.split('-', 2)
|
||||
version = '%s.post%s+%s' % (real_number, commit_count, commit_hash)
|
||||
else:
|
||||
version = result
|
||||
return version
|
||||
else:
|
||||
return '0.0.post%s' % len(subprocess.check_output(['git', 'rev-list', 'HEAD']).splitlines())
|
||||
return '0.0'
|
||||
|
||||
|
||||
class compile_translations(Command):
|
||||
description = 'compile message catalogs to MO files via django compilemessages'
|
||||
user_options = []
|
||||
|
||||
def initialize_options(self):
|
||||
pass
|
||||
|
||||
def finalize_options(self):
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
from django.core.management import call_command
|
||||
|
||||
for path, dirs, files in os.walk('publik_django_templatetags'):
|
||||
if 'locale' not in dirs:
|
||||
continue
|
||||
curdir = os.getcwd()
|
||||
os.chdir(os.path.realpath(path))
|
||||
call_command('compilemessages')
|
||||
os.chdir(curdir)
|
||||
except ImportError:
|
||||
sys.stderr.write('!!! Please install Django >= 2.2 to build translations\n')
|
||||
|
||||
|
||||
class build(_build):
|
||||
sub_commands = [('compile_translations', None)] + _build.sub_commands
|
||||
|
||||
|
||||
class install_lib(_install_lib):
|
||||
def run(self):
|
||||
self.run_command('compile_translations')
|
||||
_install_lib.run(self)
|
||||
|
||||
|
||||
setup(
|
||||
name='publik_django_templatetags',
|
||||
version=get_version(),
|
||||
description='Publik Django Templatetags',
|
||||
author='Lauréline Guérin',
|
||||
author_email='lguerin@entrouvert.com',
|
||||
packages=find_packages(),
|
||||
include_package_data=True,
|
||||
url='https://dev.entrouvert.org/projects/publik-django-templatetags',
|
||||
classifiers=[
|
||||
'Development Status :: 2 - Pre-Alpha',
|
||||
'Environment :: Web Environment',
|
||||
'Framework :: Django',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
],
|
||||
install_requires=[
|
||||
'django',
|
||||
'requests',
|
||||
],
|
||||
zip_safe=False,
|
||||
cmdclass={
|
||||
'build': build,
|
||||
'compile_translations': compile_translations,
|
||||
'install_lib': install_lib,
|
||||
'sdist': eo_sdist,
|
||||
},
|
||||
)
|
|
@ -0,0 +1,45 @@
|
|||
import os
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': os.environ.get('DB_ENGINE', 'django.db.backends.postgresql_psycopg2'),
|
||||
'NAME': 'publik-django-templatetags-test-%s'
|
||||
% os.environ.get("BRANCH_NAME", "").replace('/', '-')[:45],
|
||||
}
|
||||
}
|
||||
|
||||
KNOWN_SERVICES = {
|
||||
'wcs': {
|
||||
'default': {
|
||||
'title': 'test',
|
||||
'url': 'http://127.0.0.1:8999/',
|
||||
'secret': 'combo',
|
||||
'orig': 'combo',
|
||||
'backoffice-menu-url': 'http://127.0.0.1:8999/backoffice/',
|
||||
'secondary': False,
|
||||
},
|
||||
'other': {
|
||||
'title': 'test2',
|
||||
'url': 'http://127.0.0.2:8999/',
|
||||
'secret': 'combo',
|
||||
'orig': 'combo',
|
||||
'backoffice-menu-url': 'http://127.0.0.2:8999/backoffice/',
|
||||
'secondary': True,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
REQUESTS_TIMEOUT = 25
|
||||
|
||||
DEBUG = True
|
||||
USE_TZ = True
|
||||
INSTALLED_APPS = [
|
||||
"django.contrib.auth",
|
||||
"django.contrib.contenttypes",
|
||||
"django.contrib.sites",
|
||||
]
|
||||
STATIC_URL = "/static/"
|
||||
SITE_ID = 1
|
||||
MIDDLEWARE_CLASSES = ()
|
||||
LOGGING = {}
|
||||
SECRET_KEY = "yay"
|
|
@ -0,0 +1,25 @@
|
|||
[tox]
|
||||
envlist = py3-django{22,32}-codestyle-coverage
|
||||
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/publik-django-templatetags/{env:BRANCH_NAME:}
|
||||
|
||||
[testenv]
|
||||
usedevelop =
|
||||
coverage: True
|
||||
nocoverage: False
|
||||
setenv =
|
||||
SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
JUNIT=--junitxml=junit-{envname}.xml
|
||||
coverage: COVERAGE=--cov-report xml --cov-report html --cov=publik_django_templatetags/
|
||||
deps =
|
||||
django22: django>=2.2,<2.3
|
||||
django32: django>=3.2,<3.3
|
||||
pytest
|
||||
pytest-cov
|
||||
pytest-django
|
||||
WebTest
|
||||
psycopg2-binary<2.9
|
||||
psycopg2<2.9
|
||||
pre-commit
|
||||
commands =
|
||||
pytest {posargs: {env:JUNIT:} {env:COVERAGE:} tests/}
|
||||
codestyle: pre-commit run --all-files --show-diff-on-failure
|
Loading…
Reference in New Issue