Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-ipware for
openSUSE:Factory checked in at 2023-10-05 20:04:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-ipware (Old)
and /work/SRC/openSUSE:Factory/.python-django-ipware.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-ipware"
Thu Oct 5 20:04:56 2023 rev:5 rq:1115779 version:5.0.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-ipware/python-django-ipware.changes
2023-05-08 17:24:11.596663064 +0200
+++
/work/SRC/openSUSE:Factory/.python-django-ipware.new.28202/python-django-ipware.changes
2023-10-05 20:06:06.453117065 +0200
@@ -1,0 +2,9 @@
+Thu Oct 5 09:20:34 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 5.0.1:
+ * Add HTTP_X_CLIENT_IP to defaults.py
+ * feat: support for python/django versions
+ * Add Missing Comma and Extend Private IPv6 Prefix List
+ * add deprecation notice
+
+-------------------------------------------------------------------
Old:
----
django-ipware-5.0.0.tar.gz
New:
----
django-ipware-5.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-ipware.spec ++++++
--- /var/tmp/diff_new_pack.5IwGzH/_old 2023-10-05 20:06:07.653160419 +0200
+++ /var/tmp/diff_new_pack.5IwGzH/_new 2023-10-05 20:06:07.657160564 +0200
@@ -16,11 +16,9 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%define skip_python2 1
-%define skip_python36 1
+%{?sle15_python_module_pythons}
Name: python-django-ipware
-Version: 5.0.0
+Version: 5.0.1
Release: 0
Summary: Django utility application that returns client's real IP
address
License: MIT
++++++ django-ipware-5.0.0.tar.gz -> django-ipware-5.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/.github/workflows/ci.yml
new/django-ipware-5.0.1/.github/workflows/ci.yml
--- old/django-ipware-5.0.0/.github/workflows/ci.yml 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/.github/workflows/ci.yml 2023-10-03
02:46:28.000000000 +0200
@@ -1,34 +1,31 @@
# https://devguide.python.org/versions
# https://www.djangoproject.com/download/#supported-versions
-name: (CI)
+name: ci
on:
push:
branches:
- ci
+ - dev
+ - master
pull_request:
branches:
- ci
+ - dev
- master
jobs:
- build:
+ ci:
name: Python ${{ matrix.python-version }}, django ${{
matrix.django-version }}
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.7, 3.8, 3.9, "3.10", 3.11, pypy3.9]
- django-version: [3.2, 4.0, 4.1]
+ python-version: [3.8, 3.9, "3.10", "3.11"]
+ django-version: [3.2, 4.1, 4.2]
exclude:
# excludes list
- - python-version: 3.7
- django-version: 4.0
- - python-version: 3.7
- django-version: 4.1
- python-version: 3.11
django-version: 3.2
- - python-version: 3.11
- django-version: 4.0
steps:
- uses: actions/checkout@v3
@@ -40,19 +37,12 @@
run: |
python -m pip install --upgrade pip
pip install -e .
- pip install --upgrade coveralls
- pip install "django~=${{ matrix.django-version }}.0"
- - name: Run flake8
- run: |
- pip install --upgrade flake8
- flake8 --exclude=migrations,tests --ignore=E501,E241,E225,E128 .
- - name: Run pycodestyle
- run: |
- pip install --upgrade pycodestyle
- pycodestyle --exclude=migrations,tests --ignore=E501,E241,E225,E128 .
+ pip install --upgrade coveralls ruff
+ pip install "django~=${{ matrix.django-version }}"
+ - name: Run ruff
+ run: ruff --format=github .
- name: Run test
- run: |
- coverage run --source=ipware manage.py test
+ run: coverage run --source=ipware manage.py test
- name: Coveralls
run: coveralls --service=github
env:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/.github/workflows/dev.yml
new/django-ipware-5.0.1/.github/workflows/dev.yml
--- old/django-ipware-5.0.0/.github/workflows/dev.yml 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/.github/workflows/dev.yml 1970-01-01
01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
-name: DEV
-
-# Run on push only for dev/sandbox
-# Otherwise it may trigger concurrently `push & pull_request` on PRs.
-on:
- push:
- branches:
- - sandbox
- - dev
-
-jobs:
- build:
- name: Python ${{ matrix.python-version }}, django ${{
matrix.django-version }}
- runs-on: ubuntu-latest
- strategy:
- matrix:
- python-version: [3.7, 3.8, 3.9, "3.10", 3.11, pypy3.9]
- django-version: [3.2, 4.0, 4.1]
- exclude:
- # excludes list
- - python-version: 3.7
- django-version: 4.0
- - python-version: 3.7
- django-version: 4.1
- - python-version: 3.11
- django-version: 3.2
- - python-version: 3.11
- django-version: 4.0
-
- steps:
- - uses: actions/checkout@v3
- - name: setup python
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install -e .
- pip install --upgrade coveralls
- pip install "django~=${{ matrix.django-version }}.0"
- - name: Run flake8
- run: |
- pip install --upgrade flake8
- flake8 --exclude=migrations,tests --ignore=E501,E241,E225,E128 .
- - name: Run pycodestyle
- run: |
- pip install --upgrade pycodestyle
- pycodestyle --exclude=migrations,tests --ignore=E501,E241,E225,E128 .
- - name: Run test
- run: |
- coverage run --source=ipware manage.py test
- - name: Coveralls
- run: coveralls --service=github
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/.github/workflows/main.yml
new/django-ipware-5.0.1/.github/workflows/main.yml
--- old/django-ipware-5.0.0/.github/workflows/main.yml 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/.github/workflows/main.yml 1970-01-01
01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-name: MAIN
-
-# Run on push only for main
-# Otherwise it may trigger concurrently `push & pull_request` on PRs.
-on:
- push:
- branches:
- - master
-
-jobs:
- build:
- name: Python ${{ matrix.python-version }}, django ${{
matrix.django-version }}
- runs-on: ubuntu-latest
- strategy:
- matrix:
- python-version: [3.7, 3.8, 3.9, "3.10", 3.11, pypy3.9]
- django-version: [3.2, 4.0, 4.1]
- exclude:
- # excludes list
- - python-version: 3.7
- django-version: 4.0
- - python-version: 3.7
- django-version: 4.1
- - python-version: 3.11
- django-version: 3.2
- - python-version: 3.11
- django-version: 4.0
-
- steps:
- - uses: actions/checkout@v3
- - name: setup python
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install -e .
- pip install --upgrade coveralls
- pip install "django~=${{ matrix.django-version }}.0"
- - name: Run flake8
- run: |
- pip install --upgrade flake8
- flake8 --exclude=migrations,tests --ignore=E501,E241,E225,E128 .
- - name: Run pycodestyle
- run: |
- pip install --upgrade pycodestyle
- pycodestyle --exclude=migrations,tests --ignore=E501,E241,E225,E128 .
- - name: Run test
- run: |
- coverage run --source=ipware manage.py test
- - name: Coveralls
- run: coveralls --service=github
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/CHANGELOG.md
new/django-ipware-5.0.1/CHANGELOG.md
--- old/django-ipware-5.0.0/CHANGELOG.md 2023-03-05 15:20:24.000000000
+0100
+++ new/django-ipware-5.0.1/CHANGELOG.md 2023-10-03 02:46:28.000000000
+0200
@@ -1,3 +1,12 @@
+# Unreleased
+
+Enhancement:
+
+- Drop Python 3.7 support
+- Add support for Django 4.2
+- Drop support for Django 4.0
+- Drop support for PyPy
+
# 5.0.0
Enhancement:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/README.md
new/django-ipware-5.0.1/README.md
--- old/django-ipware-5.0.0/README.md 2023-03-05 15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/README.md 2023-10-03 02:46:28.000000000 +0200
@@ -1,4 +1,13 @@
-# Django IPware (Read [Notice](README.md#Notice))
+# Django IPware
+## Deprecated
+
+This package is no longer maintained. Please use
[python-ipware](https://github.com/un33k/python-ipware) instead.
+
+`python-ipware` is a newer package, with more advanced features. While this a
Django specific package, `python-ipware` can be used with Django, Flask, etc.
+
+While this package is no longer maintained, it will continue to work as is. If
you are using this package, you are encouraged to migrate to `python-ipware` as
soon as possible.
+
+=====================================================================================
**A Django application to retrieve client's IP address**
@@ -10,6 +19,10 @@
**Best attempt** to get client's IP address while keeping it **DRY**.
+# Alternative package
+
+If you prefer a python version, you can use the
[python-ipware](https://github.com/un33k/python-ipware) package instead.
`python-ipware` is a newer package, with more advanced features. While this a
Django specific package, `python-ipware` can be used with Django, Flask, etc.
+
# Notice
There is no perfect `out-of-the-box` solution against fake IP addresses, aka
`IP Address Spoofing`.
@@ -119,13 +132,13 @@
'233.', '234.', '235.', '236.', '237.', '238.', '239.', # multicast
'240.', '241.', '242.', '243.', '244.', '245.', '246.', '247.', '248.',
'249.', '250.', '251.', '252.', '253.', '254.', '255.', # reserved
- ) + (
'::', # Unspecified address
- '::ffff:', '2001:10:', '2001:20:' # messages to software
+ '::ffff:', '2001:10:', '2001:20:', # messages to software
'2001::', # TEREDO
'2001:2::', # benchmarking
'2001:db8:', # reserved for documentation and example code
- 'fc00:', # IPv6 private block
+ 'fc', # IPv6 ULA (RFC4193) - NOTE: Reserved for future use, not
currently in widespread use.
+ 'fd', # IPv6 ULA (RFC4193) - Mainly used for private network addressing
'fe80:', # link-local unicast
'ff00:', # IPv6 multicast
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/__version__.py
new/django-ipware-5.0.1/ipware/__version__.py
--- old/django-ipware-5.0.0/ipware/__version__.py 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/ipware/__version__.py 2023-10-03
02:46:28.000000000 +0200
@@ -5,4 +5,4 @@
__url__ = 'https://github.com/un33k/django-ipware'
__license__ = 'MIT'
__copyright__ = 'Copyright 2020 Val Neekman @ Neekware Inc.'
-__version__ = '5.0.0'
+__version__ = '5.0.1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/defaults.py
new/django-ipware-5.0.1/ipware/defaults.py
--- old/django-ipware-5.0.0/ipware/defaults.py 2023-03-05 15:20:24.000000000
+0100
+++ new/django-ipware-5.0.1/ipware/defaults.py 2023-10-03 02:46:28.000000000
+0200
@@ -1,6 +1,5 @@
from django.conf import settings
-
# Search for the real IP address in the following order
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For
# X-Forwarded-For: <client>, <proxy1>, <proxy2>
@@ -15,6 +14,7 @@
'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED',
'HTTP_VIA',
+ 'HTTP_X_CLIENT_IP',
'REMOTE_ADDR',
)
)
@@ -58,13 +58,13 @@
'233.', '234.', '235.', '236.', '237.', '238.', '239.', # multicast
'240.', '241.', '242.', '243.', '244.', '245.', '246.', '247.', '248.',
'249.', '250.', '251.', '252.', '253.', '254.', '255.', # reserved
- ) + (
'::', # Unspecified address
- '::ffff:', '2001:10:', '2001:20:' # messages to software
+ '::ffff:', '2001:10:', '2001:20:', # messages to software
'2001::', # TEREDO
'2001:2::', # benchmarking
'2001:db8:', # reserved for documentation and example code
- 'fc00:', # IPv6 private block
+ 'fc', # IPv6 ULA (RFC4193) - NOTE: Reserved for future use, not
currently in widespread use.
+ 'fd', # IPv6 ULA (RFC4193) - Mainly used for private network
addressing
'fe80:', # link-local unicast
'ff00:', # IPv6 multicast
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/ip.py
new/django-ipware-5.0.1/ipware/ip.py
--- old/django-ipware-5.0.0/ipware/ip.py 2023-03-05 15:20:24.000000000
+0100
+++ new/django-ipware-5.0.1/ipware/ip.py 2023-10-03 02:46:28.000000000
+0200
@@ -1,5 +1,5 @@
-from . import utils as util
from . import defaults as defs
+from . import utils as util
def get_client_ip(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/tests/tests_common.py
new/django-ipware-5.0.1/ipware/tests/tests_common.py
--- old/django-ipware-5.0.0/ipware/tests/tests_common.py 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/ipware/tests/tests_common.py 2023-10-03
02:46:28.000000000 +0200
@@ -2,6 +2,7 @@
from django.http import HttpRequest
from django.test import TestCase
+
from .. import utils as util
@@ -80,3 +81,16 @@
ip = '74dc::02ba'
result = util.get_ip_info(ip)
self.assertTrue(result, (ip, True))
+
+ def test_is_ipv6_private_block(self):
+ ip = 'fc00::1'
+ self.assertTrue(util.is_private_ip(ip))
+
+ ip = 'fd00::1'
+ self.assertTrue(util.is_private_ip(ip))
+
+ # Test an address that is outside the fc00::/7 private block range
+ ip = 'fb00::1'
+ self.assertFalse(util.is_private_ip(ip))
+ ip = 'fe00::1'
+ self.assertFalse(util.is_private_ip(ip))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/tests/tests_ipv4.py
new/django-ipware-5.0.1/ipware/tests/tests_ipv4.py
--- old/django-ipware-5.0.0/ipware/tests/tests_ipv4.py 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/ipware/tests/tests_ipv4.py 2023-10-03
02:46:28.000000000 +0200
@@ -2,6 +2,7 @@
from django.http import HttpRequest
from django.test import TestCase
+
from ipware import get_client_ip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/tests/tests_ipv6.py
new/django-ipware-5.0.1/ipware/tests/tests_ipv6.py
--- old/django-ipware-5.0.0/ipware/tests/tests_ipv6.py 2023-03-05
15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/ipware/tests/tests_ipv6.py 2023-10-03
02:46:28.000000000 +0200
@@ -2,6 +2,7 @@
from django.http import HttpRequest
from django.test import TestCase
+
from ipware import get_client_ip
@@ -189,4 +190,4 @@
'HTTP_X_FORWARDED_FOR': '::ffff:177.139.233.139',
}
result = get_client_ip(request)
- self.assertEqual(result, ('177.139.233.139', True))
\ No newline at end of file
+ self.assertEqual(result, ('177.139.233.139', True))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/ipware/utils.py
new/django-ipware-5.0.1/ipware/utils.py
--- old/django-ipware-5.0.0/ipware/utils.py 2023-03-05 15:20:24.000000000
+0100
+++ new/django-ipware-5.0.1/ipware/utils.py 2023-10-03 02:46:28.000000000
+0200
@@ -91,9 +91,8 @@
ip_list.append(clean_ip)
ip_count = len(ip_list)
- if ip_count > 0:
- if is_valid_ip(ip_list[0]) and is_valid_ip(ip_list[-1]):
- return ip_list, ip_count
+ if ip_count > 0 and is_valid_ip(ip_list[0]) and is_valid_ip(ip_list[-1]):
+ return ip_list, ip_count
return [], 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/pyproject.toml
new/django-ipware-5.0.1/pyproject.toml
--- old/django-ipware-5.0.0/pyproject.toml 2023-03-05 15:20:24.000000000
+0100
+++ new/django-ipware-5.0.1/pyproject.toml 2023-10-03 02:46:28.000000000
+0200
@@ -4,3 +4,34 @@
"wheel"
]
build-backend = "setuptools.build_meta"
+
+[tool.ruff]
+select = [
+ "B",
+ "C4",
+ "C9",
+ "DJ",
+ "E",
+ "EM",
+ "F",
+ "I",
+ "N",
+ "PGH",
+ "PLC",
+ "PLE",
+ "PLW",
+ "RSE",
+ "RET",
+ "RUF",
+ "SLF",
+ "SIM",
+ "TCH",
+ "TID",
+ "W",
+]
+ignore = ["PGH004", "TID252"]
+line-length = 107
+target-version = "py311"
+
+[tool.ruff.mccabe]
+max-complexity = 16
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/requirement-dev.txt
new/django-ipware-5.0.1/requirement-dev.txt
--- old/django-ipware-5.0.0/requirement-dev.txt 2023-03-05 15:20:24.000000000
+0100
+++ new/django-ipware-5.0.1/requirement-dev.txt 2023-10-03 02:46:28.000000000
+0200
@@ -1,4 +1,4 @@
-Django==4.0
-pycodestyle==2.7.0
-flake8==3.9.2
-twine==3.4.2
+Django==4.2.4
+pycodestyle==2.11.0
+flake8==6.1.0
+twine==4.0.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-ipware-5.0.0/setup.py
new/django-ipware-5.0.1/setup.py
--- old/django-ipware-5.0.0/setup.py 2023-03-05 15:20:24.000000000 +0100
+++ new/django-ipware-5.0.1/setup.py 2023-10-03 02:46:28.000000000 +0200
@@ -2,14 +2,13 @@
# Learn more: https://github.com/un33k/setup.py
import os
import sys
-
from codecs import open
from shutil import rmtree
-from setuptools import setup
+from setuptools import setup
package = 'ipware'
-python_requires = ">=3.7"
+python_requires = ">=3.8"
here = os.path.abspath(os.path.dirname(__file__))
requires = []
@@ -70,7 +69,6 @@
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',