diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 05b9600..512fe34 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -22,21 +22,21 @@ repos:
hooks:
- id: isort
- repo: https://github.com/psf/black
- rev: 23.7.0
+ rev: 23.9.1
hooks:
- id: black
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: 'v0.0.286'
+ rev: 'v0.0.292'
hooks:
- id: ruff
- repo: https://github.com/asottile/pyupgrade
- rev: v3.10.1
+ rev: v3.14.0
hooks:
- id: pyupgrade
args:
- --py3-plus
- repo: https://github.com/adamchainz/django-upgrade
- rev: "1.14.1"
+ rev: "1.15.0"
hooks:
- id: django-upgrade
args: [--target-version, "3.2"]
diff --git a/.readthedocs.yml b/.readthedocs.yml
index 0086f8a..a076dba 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yml
@@ -20,4 +20,3 @@ python:
path: .
extra_requirements:
- docs
- system_packages: false
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index b1a7179..ea81533 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -5,167 +5,4 @@ Contributing
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.
-You can contribute in many ways:
-
-Types of Contributions
-**********************
-
-Report Bugs
-===========
-
-Report bugs at https://github.com/nephila/django-app-helper/issues.
-
-If you are reporting a bug, please include:
-
-* Your operating system name and version.
-* Any details about your local setup that might be helpful in troubleshooting.
-* Detailed steps to reproduce the bug.
-
-Fix Bugs
-========
-
-Look through the GitHub issues for bugs. Anything tagged with "bug"
-is open to whoever wants to implement it.
-
-Implement Features
-==================
-
-Look through the GitHub issues for features. Anything tagged with "feature"
-is open to whoever wants to implement it.
-
-Write Documentation
-===================
-
-django-app-helper could always use more documentation, whether as part of the
-official django-app-helper docs, in docstrings, or even on the web in blog posts,
-articles, and such.
-
-Submit Feedback
-===============
-
-The best way to send feedback is to file an issue at https://github.com/nephila/django-app-helper/issues.
-
-If you are proposing a feature:
-
-* Explain in detail how it would work.
-* Keep the scope as narrow as possible, to make it easier to implement.
-* Remember that this is a volunteer-driven project, and that contributions
- are welcome :)
-
-************
-Get Started!
-************
-
-Ready to contribute? Here's how to set up ``django-app-helper`` for local development.
-
-1. Fork the ``django-app-helper`` repo on GitHub.
-2. Clone your fork locally::
-
- $ git clone git@github.com:your_name_here/django-app-helper.git
-
-3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper
- installed, this is how you set up your fork for local development::
-
- $ mkvirtualenv django-app-helper
- $ cd django-app-helper/
- $ pip install -r requirements-test.txt
- $ pip install -e .
-
-4. Create a branch for local development::
-
- $ git checkout -b name-of-your-bugfix-or-feature
-
-Now you can make your changes locally.
-
-5. When you're done making changes, check that your changes pass flake8 and the
-tests, including testing other Python versions with tox::
-
- $ tox
-
-To get tox, pip install it into your virtualenv.
-
-6. Commit your changes and push your branch to GitHub::
-
- $ git add .
- $ git commit -m "Your detailed description of your changes."
- $ git push origin name-of-your-bugfix-or-feature
-
-7. Submit a pull request through the GitHub website.
-
-Development tips
-----------------
-
-This project allows you to use `pre-commit `_ to ensure an easy compliance
-to the project code styles.
-
-If you want to use it, install it globally (for example with ``pip3 install --user precommit``,
-but check `installation instruction `.
-When first cloning the project ensure you install the git hooks by running ``pre-commit install``.
-
-From now on every commit will be checked against our code style.
-
-Check also the available tox environments with ``tox -l``: the ones not marked with a python version number are tools
-to help you work on the project buy checking / formatting code style, running docs etc.
-
-Testing tips
-----------------
-You can test your project using any specific combination of python, django and django cms.
-
-For example ``tox -py37-django30-cms37`` runs the tests on python 3.7, Django 3.0 and django CMS 3.7.
-
-You can pass via tox all the options to the test runner by appending them after the tox environments after
-``--`` separator. Example::
-
- tox -epy38-django30-cms37 -- -s app_helper.tests.test_commands.CommandTests.test_compilemessages
-
-
-Pull Request Guidelines
-=======================
-
-Before you submit a pull request, check that it meets these guidelines:
-
-#. Pull request must be named with the following naming scheme:
-
- ``/(-)-description``
-
- See below for available types.
-
-#. The pull request should include tests.
-#. If the pull request adds functionality, the docs should be updated.
- Documentation must be added in ``docs`` directory, and must include usage
- information for the end user.
- In case of public API method, add extended docstrings with full parameters
- description and usage example.
-#. Add a changes file in ``changes`` directory describing the contribution in
- one line. It will be added automatically to the history file upon release.
- File must be named as ``.`` with type being:
-
- * ``.feature``: For new features.
- * ``.bugfix``: For bug fixes.
- * ``.doc``: For documentation improvement.
- * ``.removal``: For deprecation or removal of public API.
- * ``.misc``: For general issues.
-
- Check `towncrier`_ documentation for more details.
-
-#. The pull request should work for all python / django / django CMS versions
- declared in tox.ini.
- Check the CI and make sure that the tests pass for all supported versions.
-
-Release a version
-=================
-
-#. Update authors file
-#. Merge ``develop`` on ``master`` branch
-#. Bump release via task: ``inv tag-release (major|minor|patch)``
-#. Update changelog via towncrier: ``towncrier --yes``
-#. Commit changelog with ``git commit --amend`` to merge with bumpversion commit
-#. Create tag ``git tag ``
-#. Push tag to github
-#. Publish the release from the tags page
-#. If pipeline succeeds, push ``master``
-#. Merge ``master`` back on ``develop``
-#. Bump developement version via task: ``inv tag-dev -l (major|minor|patch)``
-#. Push ``develop``
-
-.. _towncrier: https://pypi.org/project/towncrier/#news-fragments
+Please read the instructions `here `_ to start contributing to `django-app-helper`.
diff --git a/HISTORY.rst b/HISTORY.rst
index 63d4c9a..9973d7f 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -6,6 +6,21 @@ History
.. towncrier release notes start
+3.3.2 (2023-09-26)
+==================
+
+Features
+--------
+
+- Migrate to bump-my-version (#237)
+
+
+Bugfixes
+--------
+
+- Fix ruff linting (#232)
+
+
3.3.1 (2023-07-09)
==================
diff --git a/README.rst b/README.rst
index 32da446..cf22b05 100644
--- a/README.rst
+++ b/README.rst
@@ -4,7 +4,10 @@ Django App helper
|Gitter| |PyPiVersion| |PyVersion| |GAStatus| |TestCoverage| |CodeClimate| |License|
-.. warning:: Starting 3.0 django-app-helper only supports Django 2.2+ and django CMS 3.7+. If you need support for older (unsupported) versions, use django-app-helper 2.
+.. warning::
+ Starting from 3.3 django-app-helper only supports Django 3.2+ and django CMS 3.11. If you need support for older (unsupported) versions, use django-app-helper<3.3
+
+ Starting from 3 django-app-helper only supports Django 2.2+ and django CMS 3.7+. If you need support for older (unsupported) versions, use django-app-helper 2.
******************************************
Helper for django applications development
@@ -25,11 +28,11 @@ It supports both tests writted using Django ``TestCase`` and pytest ones
Supported versions
==================
-Python: 3.7, 3.8, 3.9, 3.10
+Python: 3.9, 3.10, 3.11
-Django: 2.2, 3.2
+Django: 3.2, 4.0, 4.1, 4.2
-django CMS: 3.7 - 3.11
+django CMS: 3.11
Newer versions might work but are not tested yet.
diff --git a/app_helper/__init__.py b/app_helper/__init__.py
index f226189..2cac1d8 100644
--- a/app_helper/__init__.py
+++ b/app_helper/__init__.py
@@ -1,4 +1,4 @@
-__version__ = "3.3.2.dev0"
+__version__ = "3.3.3.dev1"
__author__ = "Iacopo Spalletti "
__all__ = ["runner"]
diff --git a/changes/232.bugfix b/changes/232.bugfix
deleted file mode 100644
index c1a37d4..0000000
--- a/changes/232.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix ruff linting
diff --git a/pyproject.toml b/pyproject.toml
index 7e89d11..c90ec41 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -47,3 +47,35 @@ target-version = "py310"
[tool.ruff.mccabe]
max-complexity = 10
+
+[tool.bumpversion]
+allow_dirty = false
+commit = true
+message = "Release {new_version}"
+commit_args = "--no-verify"
+tag = false
+current_version = "3.3.3.dev1"
+parse = """(?x)
+ (?P[0-9]+)
+ \\.(?P[0-9]+)
+ \\.(?P[0-9]+)
+ (?:
+ .(?Pdev)
+ (?:(?P[0-9]+))?
+ )?
+"""
+serialize = [
+ "{major}.{minor}.{patch}.{release}{relver}",
+ "{major}.{minor}.{patch}"
+]
+
+[tool.bumpversion.parts.release]
+values = [
+ "dev",
+ ""
+]
+optional_value = "dev"
+
+[[tool.bumpversion.files]]
+filename = "app_helper/__init__.py"
+search = "{current_version}"
diff --git a/setup.cfg b/setup.cfg
index 804d344..dc487f2 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,26 +1,3 @@
-[bumpversion]
-current_version = 3.3.2.dev0
-parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\.?)(?P[a-z]*)(?P\d*)
-serialize =
- {major}.{minor}.{patch}.{release}{relver}
- {major}.{minor}.{patch}
-commit = True
-tag = False
-sign_tags = True
-tag_name = {new_version}
-message = Release {new_version}
-
-[bumpversion:part:release]
-optional_value = gamma
-values =
- dev
- a
- b
- rc
- gamma
-
-[bumpversion:file:app_helper/__init__.py]
-
[metadata]
name = django-app-helper
version = attr: app_helper.__version__
@@ -81,6 +58,8 @@ cms = django-cms>=3.7,<3.12
async =
channels
daphne
+docs =
+ sphinx-rtd-theme
[upload]
repository = https://upload.pypi.org/legacy/
diff --git a/tasks.py b/tasks.py
index 22d63a4..113ecf2 100644
--- a/tasks.py
+++ b/tasks.py
@@ -39,8 +39,8 @@ def format(c): # NOQA
def towncrier_check(c): # NOQA
"""Check towncrier files."""
output = io.StringIO()
- c.run("git branch --contains HEAD", out_stream=output)
- skipped_branch_prefix = ["pull/", "develop", "master", "HEAD"]
+ c.run("git branch -a --contains HEAD", out_stream=output)
+ skipped_branch_prefix = ["pull/", "release/", "develop", "master", "HEAD"]
# cleanup branch names by removing PR-only names in local, remote and disconnected branches to ensure the current
# (i.e. user defined) branch name is used
branches = list(
@@ -113,15 +113,18 @@ def tag_release(c, level, new_version=""):
"""Tag release version."""
if new_version:
new_version = f" --new-version {new_version}"
- c.run(f"bumpversion --list {level} --no-tag{new_version}")
+ c.run(f"bump-my-version bump {level}{new_version}")
@task
-def tag_dev(c, level="patch", new_version=""):
+def tag_dev(c, level, new_version=""):
"""Tag development version."""
if new_version:
new_version = f" --new-version {new_version}"
- c.run(f"bumpversion --list {level} --message='Bump develop version [ci skip]' --no-tag{new_version}")
+ elif level == "release":
+ c.run("bump-my-version bump patch --no-commit")
+ level = "relver"
+ c.run(f"bump-my-version bump {level} --message='Bump develop version [ci skip]' {new_version} --allow-dirty")
@task(pre=[clean])