From efac5516e2b429b941160e209a40eb0d2b6a09e8 Mon Sep 17 00:00:00 2001 From: Leonardo Cavallucci Date: Wed, 20 Sep 2023 12:46:41 +0200 Subject: [PATCH] Migrate to bump-my-version, remove unsupported python/django/djangocms versions from README (#177) --- .bumpversion.cfg | 25 ------- CONTRIBUTING.rst | 160 +------------------------------------------- README.rst | 6 +- changes/176.feature | 1 + pyproject.toml | 32 +++++++++ setup.cfg | 4 +- tasks.py | 15 +++-- 7 files changed, 46 insertions(+), 197 deletions(-) delete mode 100644 .bumpversion.cfg create mode 100644 changes/176.feature diff --git a/.bumpversion.cfg b/.bumpversion.cfg deleted file mode 100644 index aea634d..0000000 --- a/.bumpversion.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[bumpversion] -current_version = 1.4.1.dev1 -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:part:relver] -first_value = 1 - -[bumpversion:file:djangocms_page_meta/__init__.py] diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 6c7a84c..9522d9a 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -5,162 +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/djangocms-page-meta/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 -=================== - -djangocms-page-meta could always use more documentation, whether as part of the -official djangocms-page-meta 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/djangocms-page-meta/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 ``djangocms-page-meta`` for local development. - -1. Fork the ``djangocms-page-meta`` repo on GitHub. -2. Clone your fork locally:: - - $ git clone git@github.com:your_name_here/djangocms-page-meta.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 djangocms-page-meta - $ cd djangocms-page-meta/ - $ 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. - - -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 `djangocms-page-meta`. diff --git a/README.rst b/README.rst index 23196c9..028d8af 100644 --- a/README.rst +++ b/README.rst @@ -6,11 +6,11 @@ djangocms-page-meta Meta tag information for django CMS 3 pages -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.1, 4.2 -django CMS: 3.7 - 3.10 +django CMS: 3.9, 3.11 ********** diff --git a/changes/176.feature b/changes/176.feature new file mode 100644 index 0000000..1f2effa --- /dev/null +++ b/changes/176.feature @@ -0,0 +1 @@ +Migrate to bump-my-version, fix python/django/djangocms versions in README diff --git a/pyproject.toml b/pyproject.toml index 64914c0..a6e03f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,3 +46,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 = "1.2.0" +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 = "taiga/__init__.py" +search = "{current_version}" diff --git a/setup.cfg b/setup.cfg index 7689be8..a574bac 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,8 +23,6 @@ classifiers = Framework :: Django :: 4.1 Framework :: Django :: 4.2 Programming Language :: Python :: 3 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 @@ -38,7 +36,7 @@ install_requires = setup_requires = setuptools packages = djangocms_page_meta -python_requires = >=3.7 +python_requires = >=3.9 test_suite = cms_helper.run zip_safe = False diff --git a/tasks.py b/tasks.py index bbeaea0..280059b 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( @@ -52,10 +52,8 @@ def towncrier_check(c): # NOQA ), ) ) - print("Candidate branches", ", ".join(output.getvalue().split("\n"))) if not branches: # if no branch name matches, we are in one of the excluded branches above, so we just exit - print("Skip check, branch excluded by configuration") return branch = branches[0] towncrier_file = None @@ -113,15 +111,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])