From 1cfd30a21178525a5ac21312ebde035a9b2ad73f Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 6 Jun 2024 18:17:26 -0500 Subject: [PATCH 01/11] Fix default dist filename for release task not sure why this fix was needed, did setuptools behavior change? --- tasks.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tasks.py b/tasks.py index 6454e3f..d411697 100644 --- a/tasks.py +++ b/tasks.py @@ -2,7 +2,7 @@ ################################################################################ # # Rattail -- Retail Software Framework -# Copyright © 2010-2022 Lance Edgar +# Copyright © 2010-2024 Lance Edgar # # This file is part of Rattail. # @@ -35,14 +35,14 @@ exec(open(os.path.join(here, 'rattail_harvest', '_version.py')).read()) @task -def release(ctx): +def release(c): """ Release a new version of rattail-harvest """ # rebuild local tar.gz file for distribution shutil.rmtree('rattail_harvest.egg-info') - ctx.run('python setup.py sdist --formats=gztar') + c.run('python setup.py sdist --formats=gztar') # upload to public PyPI - filename = 'rattail-harvest-{}.tar.gz'.format(__version__) - ctx.run('twine upload dist/{}'.format(filename)) + filename = f'rattail_harvest-{__version__}.tar.gz' + c.run(f'twine upload dist/{filename}') From 5ae7db78a51cf80511975ebce6d9972d5a35b2b4 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 6 Jun 2024 18:53:15 -0500 Subject: [PATCH 02/11] Add alembic scripts to project manifest --- MANIFEST.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MANIFEST.in b/MANIFEST.in index cf92731..d765c69 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,5 @@ include *.md include *.rst + recursive-include rattail_harvest/db/alembic *.mako +recursive-include rattail_harvest/db/alembic *.py From 70f496893b74648257f3750180b4c9ba445998ab Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 6 Jun 2024 18:53:43 -0500 Subject: [PATCH 03/11] Update changelog --- CHANGELOG.md | 4 ++++ rattail_harvest/_version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62ab236..7ee2579 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to rattail-harvest will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [0.2.1] - 2024-06-06 +### Changed +- Add alembic scripts to project manifest. + ## [0.2.0] - 2024-06-06 ### Changed - Add typer equivalents for `rattail` commands. diff --git a/rattail_harvest/_version.py b/rattail_harvest/_version.py index 08b390b..53d3efe 100644 --- a/rattail_harvest/_version.py +++ b/rattail_harvest/_version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8; -*- -__version__ = '0.2.0' +__version__ = '0.2.1' From ffe33b20bc2836d2b708c1fd8cde17d29c73f8d3 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Mon, 10 Jun 2024 19:31:21 -0500 Subject: [PATCH 04/11] feat: switch from setup.cfg to pyproject.toml + hatchling --- .gitignore | 3 ++ pyproject.toml | 57 +++++++++++++++++++++++++++++++++++++ rattail_harvest/_version.py | 5 +++- setup.cfg | 45 ----------------------------- setup.py | 29 ------------------- tasks.py | 18 ++++++++++-- 6 files changed, 79 insertions(+), 78 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/.gitignore b/.gitignore index 21277ed..129bcb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ +*~ +*.pyc +dist/ rattail_harvest.egg-info/ diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..66149a9 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,57 @@ + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + + +[project] +name = "rattail-harvest" +version = "0.2.1" +description = "Rattail integration package for Harvest" +readme = "README.rst" +authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] +license = {text = "GNU GPL v3+"} +classifiers = [ + "Development Status :: 3 - Alpha", + "Environment :: Console", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Topic :: Office/Business", + "Topic :: Software Development :: Libraries :: Python Modules", +] +dependencies = [ + "invoke", + "rattail[db]", +] + + +[project.urls] +Homepage = "https://rattailproject.org" +Repository = "https://kallithea.rattailproject.org/rattail-project/rattail-harvest" +Changelog = "https://kallithea.rattailproject.org/rattail-project/rattail-harvest/files/master/CHANGELOG.md" + + +[project.entry-points."rattail.subcommands"] +import-harvest = "rattail_harvest.commands:ImportHarvest" + + +[project.entry-points."rattail.typer_imports"] +rattail_harvest = "rattail_harvest.commands" + + +[project.entry-points."rattail.config.extensions"] +rattail_harvest = "rattail_harvest.config:RattailHarvestExtension" + + +[project.entry-points."rattail.importing"] +"to_rattail.from_harvest.import" = "rattail_harvest.importing.harvest:FromHarvestToRattail" + + +[tool.commitizen] +version_provider = "pep621" +tag_format = "v$version" +update_changelog_on_bump = true diff --git a/rattail_harvest/_version.py b/rattail_harvest/_version.py index 53d3efe..885cd51 100644 --- a/rattail_harvest/_version.py +++ b/rattail_harvest/_version.py @@ -1,3 +1,6 @@ # -*- coding: utf-8; -*- -__version__ = '0.2.1' +from importlib.metadata import version + + +__version__ = version('rattail-harvest') diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 72936e7..0000000 --- a/setup.cfg +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8; -*- - -[metadata] -name = rattail-harvest -version = attr: rattail_harvest.__version__ -author = Lance Edgar -author_email = lance@edbob.org -url = https://rattailproject.org/ -description = Rattail integration package for Harvest -long_description = file: README.rst -classifiers = - Development Status :: 3 - Alpha - Environment :: Console - Intended Audience :: Developers - License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) - Natural Language :: English - Operating System :: OS Independent - Programming Language :: Python - Programming Language :: Python :: 3 - Topic :: Office/Business - Topic :: Software Development :: Libraries :: Python Modules - - -[options] -install_requires = - invoke - rattail[db] - -packages = find: -include_package_data = True - - -[options.entry_points] - -rattail.subcommands = - import-harvest = rattail_harvest.commands:ImportHarvest - -rattail.typer_imports = - rattail_harvest = rattail_harvest.commands - -rattail.config.extensions = - rattail_harvest = rattail_harvest.config:RattailHarvestExtension - -rattail.importing = - to_rattail.from_harvest.import = rattail_harvest.importing.harvest:FromHarvestToRattail diff --git a/setup.py b/setup.py deleted file mode 100644 index 71a5a0a..0000000 --- a/setup.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8; -*- -################################################################################ -# -# Rattail -- Retail Software Framework -# Copyright © 2010-2023 Lance Edgar -# -# This file is part of Rattail. -# -# Rattail is free software: you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation, either version 3 of the License, or (at your option) any later -# version. -# -# Rattail 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 General Public License for more -# details. -# -# You should have received a copy of the GNU General Public License along with -# Rattail. If not, see . -# -################################################################################ -""" -rattail-harvest setup script -""" - -from setuptools import setup - -setup() diff --git a/tasks.py b/tasks.py index d411697..3ed6102 100644 --- a/tasks.py +++ b/tasks.py @@ -25,13 +25,24 @@ Tasks for rattail-harvest """ import os +import re import shutil from invoke import task here = os.path.abspath(os.path.dirname(__file__)) -exec(open(os.path.join(here, 'rattail_harvest', '_version.py')).read()) +__version__ = None +pattern = re.compile(r'^version = "(\d+\.\d+\.\d+)"$') +with open(os.path.join(here, 'pyproject.toml'), 'rt') as f: + for line in f: + line = line.rstrip('\n') + match = pattern.match(line) + if match: + __version__ = match.group(1) + break +if not __version__: + raise RuntimeError("could not parse version!") @task @@ -40,8 +51,9 @@ def release(c): Release a new version of rattail-harvest """ # rebuild local tar.gz file for distribution - shutil.rmtree('rattail_harvest.egg-info') - c.run('python setup.py sdist --formats=gztar') + if os.path.exists('rattail_harvest.egg-info'): + shutil.rmtree('rattail_harvest.egg-info') + c.run('python -m build --sdist') # upload to public PyPI filename = f'rattail_harvest-{__version__}.tar.gz' From d419bc18544d7bb3f850948328ac5543453a3183 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Mon, 10 Jun 2024 19:31:34 -0500 Subject: [PATCH 05/11] =?UTF-8?q?bump:=20version=200.2.1=20=E2=86=92=200.3?= =?UTF-8?q?.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ pyproject.toml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ee2579..626eb8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to rattail-harvest will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## v0.3.0 (2024-06-10) + +### Feat + +- switch from setup.cfg to pyproject.toml + hatchling + ## [0.2.1] - 2024-06-06 ### Changed - Add alembic scripts to project manifest. diff --git a/pyproject.toml b/pyproject.toml index 66149a9..ab41dfa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] name = "rattail-harvest" -version = "0.2.1" +version = "0.3.0" description = "Rattail integration package for Harvest" readme = "README.rst" authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] From ff202415e330a2d26f3797f556b29ff57391bc44 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Mon, 1 Jul 2024 12:32:20 -0500 Subject: [PATCH 06/11] fix: remove legacy command definitions --- pyproject.toml | 4 ---- rattail_harvest/commands.py | 11 +---------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ab41dfa..3d93740 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,10 +35,6 @@ Repository = "https://kallithea.rattailproject.org/rattail-project/rattail-harve Changelog = "https://kallithea.rattailproject.org/rattail-project/rattail-harvest/files/master/CHANGELOG.md" -[project.entry-points."rattail.subcommands"] -import-harvest = "rattail_harvest.commands:ImportHarvest" - - [project.entry-points."rattail.typer_imports"] rattail_harvest = "rattail_harvest.commands" diff --git a/rattail_harvest/commands.py b/rattail_harvest/commands.py index 7cc804b..c54848c 100644 --- a/rattail_harvest/commands.py +++ b/rattail_harvest/commands.py @@ -26,7 +26,7 @@ rattail-harvest commands import typer -from rattail.commands import rattail_typer, ImportSubcommand +from rattail.commands import rattail_typer from rattail.commands.typer import importer_command, typer_get_runas_user from rattail.commands.importing import ImportCommandHandler @@ -46,12 +46,3 @@ def import_harvest( config, import_handler_key='to_rattail.from_harvest.import') kwargs['user'] = typer_get_runas_user(ctx) handler.run(kwargs, progress=progress) - - -class ImportHarvest(ImportSubcommand): - """ - Import data to Rattail, from Harvest API - """ - name = 'import-harvest' - description = __doc__.strip() - handler_key = 'to_rattail.from_harvest.import' From 0521f5e38cfae6266223c61c50537eb5187811fc Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Mon, 1 Jul 2024 14:00:10 -0500 Subject: [PATCH 07/11] =?UTF-8?q?bump:=20version=200.3.0=20=E2=86=92=200.3?= =?UTF-8?q?.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ pyproject.toml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 626eb8f..d35b2c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to rattail-harvest will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## v0.3.1 (2024-07-01) + +### Fix + +- remove legacy command definitions + ## v0.3.0 (2024-06-10) ### Feat diff --git a/pyproject.toml b/pyproject.toml index 3d93740..59a22d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] name = "rattail-harvest" -version = "0.3.0" +version = "0.3.1" description = "Rattail integration package for Harvest" readme = "README.rst" authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] From 9687c8552954b864141d6c522d3689f1dd93dfe9 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Fri, 16 Aug 2024 13:32:56 -0500 Subject: [PATCH 08/11] fix: avoid deprecated base class for config extension --- rattail_harvest/config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rattail_harvest/config.py b/rattail_harvest/config.py index 9fedb3e..93cc4d1 100644 --- a/rattail_harvest/config.py +++ b/rattail_harvest/config.py @@ -2,7 +2,7 @@ ################################################################################ # # Rattail -- Retail Software Framework -# Copyright © 2010-2022 Lance Edgar +# Copyright © 2010-2024 Lance Edgar # # This file is part of Rattail. # @@ -24,10 +24,10 @@ Config Extension """ -from rattail.config import ConfigExtension +from wuttjamaican.conf import WuttaConfigExtension -class RattailHarvestExtension(ConfigExtension): +class RattailHarvestExtension(WuttaConfigExtension): """ Config extension for rattail-harvest. """ From df324159ba8809f8a19c3a860d8f26d5faa5f16b Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Sun, 18 Aug 2024 20:09:43 -0500 Subject: [PATCH 09/11] =?UTF-8?q?bump:=20version=200.3.1=20=E2=86=92=200.3?= =?UTF-8?q?.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ pyproject.toml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d35b2c5..c1c7891 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to rattail-harvest will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## v0.3.2 (2024-08-18) + +### Fix + +- avoid deprecated base class for config extension + ## v0.3.1 (2024-07-01) ### Fix diff --git a/pyproject.toml b/pyproject.toml index 59a22d4..0880bb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] name = "rattail-harvest" -version = "0.3.1" +version = "0.3.2" description = "Rattail integration package for Harvest" readme = "README.rst" authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] From 69ce07a778efa44bcf937f14498ed70b466bbd8e Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Fri, 13 Sep 2024 18:38:44 -0500 Subject: [PATCH 10/11] docs: use markdown for readme file --- README.md | 11 +++++++++++ README.rst | 14 -------------- pyproject.toml | 2 +- 3 files changed, 12 insertions(+), 15 deletions(-) create mode 100644 README.md delete mode 100644 README.rst diff --git a/README.md b/README.md new file mode 100644 index 0000000..3a6e08e --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ + +# rattail-harvest + +Rattail is a retail software framework, released under the GNU General +Public License. + +This package contains software interfaces for +[Harvest](https://www.getharvest.com/). + +Please see the [Rattail Project](https://rattailproject.org/) for more +information. diff --git a/README.rst b/README.rst deleted file mode 100644 index ab02203..0000000 --- a/README.rst +++ /dev/null @@ -1,14 +0,0 @@ - -rattail-harvest -=============== - -Rattail is a retail software framework, released under the GNU General -Public License. - -This package contains software interfaces for `Harvest`_. - -.. _`Harvest`: https://www.getharvest.com/ - -Please see the `Rattail Project`_ for more information. - -.. _`Rattail Project`: https://rattailproject.org/ diff --git a/pyproject.toml b/pyproject.toml index 0880bb8..c862f63 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "hatchling.build" name = "rattail-harvest" version = "0.3.2" description = "Rattail integration package for Harvest" -readme = "README.rst" +readme = "README.md" authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] license = {text = "GNU GPL v3+"} classifiers = [ From e0b8797046c5d679bcac5c91b679d0580053883e Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Sat, 14 Sep 2024 13:20:04 -0500 Subject: [PATCH 11/11] docs: update project links, kallithea -> forgejo --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c862f63..8002dd2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,8 +31,8 @@ dependencies = [ [project.urls] Homepage = "https://rattailproject.org" -Repository = "https://kallithea.rattailproject.org/rattail-project/rattail-harvest" -Changelog = "https://kallithea.rattailproject.org/rattail-project/rattail-harvest/files/master/CHANGELOG.md" +Repository = "https://forgejo.wuttaproject.org/rattail/rattail-harvest" +Changelog = "https://forgejo.wuttaproject.org/rattail/rattail-harvest/src/branch/master/CHANGELOG.md" [project.entry-points."rattail.typer_imports"]