diff --git a/.github/workflows/python-pypi-test-upload.yml b/.github/workflows/python-pypi-test-upload.yml deleted file mode 100644 index 456304f..0000000 --- a/.github/workflows/python-pypi-test-upload.yml +++ /dev/null @@ -1,35 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: Upload CrystalPol to PyPI Test - -on: - push: - branches: [ devel ] - -permissions: - contents: read - -jobs: - - pypi-upload-test: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.8 - uses: actions/setup-python@v3 - with: - python-version: "3.8" - - name: Install dependencies - run: | - python -m pip install --upgrade pip poetry - python -m poetry install - - name: Test with unittest - run: | - python -m poetry run python -m unittest -v - - name: Upload Pip Package - run: | - python -m poetry config repositories.testpypi https://test.pypi.org/legacy/ - python -m poetry publish --build --username __token__ --password ${{secrets.PYPI_TEST_TOKEN}} --repository testpypi \ No newline at end of file diff --git a/.github/workflows/python-pypi-upload.yml b/.github/workflows/python-pypi-upload.yml deleted file mode 100644 index d0dfcbe..0000000 --- a/.github/workflows/python-pypi-upload.yml +++ /dev/null @@ -1,35 +0,0 @@ - # This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: Upload CrystalPol to PyPI - -on: - push: - branches: [ main ] - -permissions: - contents: read - -jobs: - - pypi-upload: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.8 - uses: actions/setup-python@v3 - with: - python-version: "3.8" - - name: Install dependencies - run: | - python -m pip install --upgrade pip poetry - python -m poetry install - - name: Test with unittest - run: | - python -m poetry run python -m unittest -v - - name: Upload Pip Package - run: | - python -m poetry config repositories.pypi https://upload.pypi.org/legacy/ - python -m poetry publish --build --username __token__ --password ${{secrets.PYPI_TOKEN}} --repository pypi \ No newline at end of file diff --git a/.github/workflows/python-test-and-build.yml b/.github/workflows/python-test-and-build.yml new file mode 100644 index 0000000..41424e0 --- /dev/null +++ b/.github/workflows/python-test-and-build.yml @@ -0,0 +1,65 @@ + # This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: Upload DicePlayer to PyPI + +on: + push + +permissions: + contents: read + +jobs: + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install poetry + run: pipx install poetry + + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + poetry self add "poetry-dynamic-versioning[plugin]" + if [ -f pyproject.toml ]; then poetry install; fi + - name: Run unittest + run: | + poetry run python -m unittest + + pypi-upload: + needs: [test] + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install poetry + run: pipx install poetry + + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + poetry self add "poetry-dynamic-versioning[plugin]" + if [ -f pyproject.toml ]; then poetry install; fi + - name: Build Python Package + run: | + poetry build -f sdist + poetry install + echo "Builded yoshi-seals - $(poetry version)" + - name: Configure PyPI + run: | + poetry config repositories.pypi https://upload.pypi.org/legacy/ + poetry config pypi-token.pypi ${{secrets.PYPI_TOKEN}} + - name: Upload Python Package + run: | + poetry publish --repository pypi \ No newline at end of file diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml deleted file mode 100644 index 897e0fb..0000000 --- a/.github/workflows/python-tests.yml +++ /dev/null @@ -1,30 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: Python application - -on: - push - -permissions: - contents: read - -jobs: - - run-unitest: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.8 - uses: actions/setup-python@v3 - with: - python-version: "3.8" - - name: Install dependencies - run: | - python -m pip install --upgrade pip poetry - python -m poetry install - - name: Test with unittest - run: | - poetry run python -m unittest -v \ No newline at end of file diff --git a/diceplayer/__init__.py b/diceplayer/__init__.py index b8fea4a..904f49e 100644 --- a/diceplayer/__init__.py +++ b/diceplayer/__init__.py @@ -1,3 +1,7 @@ from diceplayer.shared.utils.logger import Logger +from importlib import metadata + +VERSION = metadata.version("diceplayer") + logger = Logger(__name__) diff --git a/diceplayer/__main__.py b/diceplayer/__main__.py index d07ccac..53480c8 100644 --- a/diceplayer/__main__.py +++ b/diceplayer/__main__.py @@ -1,14 +1,8 @@ -from diceplayer import logger +from diceplayer import VERSION, logger from diceplayer.player import Player -from diceplayer.shared.interface.dice_interface import DiceInterface import argparse import logging -import pickle -import sys -from pathlib import Path - -__VERSION = "v0.0.1" def main(): @@ -22,7 +16,7 @@ def main(): "-c", "--continue", dest="opt_continue", default=False, action="store_true" ) parser.add_argument( - "-v", "--version", action="version", version="diceplayer-" + __VERSION + "-v", "--version", action="version", version="diceplayer-" + VERSION ) parser.add_argument( "-i", diff --git a/diceplayer/player.py b/diceplayer/player.py index 021202e..5241093 100644 --- a/diceplayer/player.py +++ b/diceplayer/player.py @@ -1,4 +1,4 @@ -from diceplayer import logger +from diceplayer import VERSION, logger from diceplayer.shared.config.dice_config import DiceConfig from diceplayer.shared.config.gaussian_config import GaussianDTO from diceplayer.shared.config.player_config import PlayerConfig @@ -118,9 +118,9 @@ class Player: logger.info(f"{key} = {getattr(config, key)}") logger.info( - "##########################################################################################\n" - "############# Welcome to DICEPLAYER version 1.0 #############\n" - "##########################################################################################\n" + f"##########################################################################################\n" + f"############# Welcome to DICEPLAYER version {VERSION} #############\n" + f"##########################################################################################\n" ) logger.info("Your python version is {}\n".format(sys.version)) logger.info("Program started on {}\n".format(weekday_date_time())) diff --git a/poetry.lock b/poetry.lock index 9996054..7591818 100644 --- a/poetry.lock +++ b/poetry.lock @@ -168,6 +168,20 @@ files = [ {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] +[[package]] +name = "dunamai" +version = "1.21.2" +description = "Dynamic version generation" +optional = false +python-versions = ">=3.5" +files = [ + {file = "dunamai-1.21.2-py3-none-any.whl", hash = "sha256:87db76405bf9366f9b4925ff5bb1db191a9a1bd9f9693f81c4d3abb8298be6f0"}, + {file = "dunamai-1.21.2.tar.gz", hash = "sha256:05827fb5f032f5596bfc944b23f613c147e676de118681f3bb1559533d8a65c4"}, +] + +[package.dependencies] +packaging = ">=20.9" + [[package]] name = "filelock" version = "3.15.4" @@ -591,4 +605,4 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [metadata] lock-version = "2.0" python-versions = ">=3.9,<4.0" -content-hash = "80ecbda1b826475e5eef19c940136c907a9687c7f4a6a0577a65ddd9b8a3343b" +content-hash = "9725a4cd55a5fc1ae0ac3f5d8bb5c6f6a35275e50b30365843f7fa2e5a3b5037" diff --git a/pyproject.toml b/pyproject.toml index b423c3d..a0b6a03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "diceplayer" -version = "1.1a0" +version = "0.0.0" description = "" authors = ["Vitor Hideyoshi ", "Herbert Georg "] license = "GPL-2.0-only" @@ -13,6 +13,7 @@ argparse = "^1.4.0" setproctitle = "^1.3.2" pyyaml = "^6.0" nptyping = "^2.5.0" +dunamai = "^1.21.2" [tool.poetry.scripts] diceplayer = "diceplayer.__main__:main" @@ -24,26 +25,16 @@ black = "^24.4.2" pre-commit = "^3.7.1" poethepoet = "^0.27.0" +[tool.poetry-dynamic-versioning] +enable = true +vcs = "git" + [build-system] requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +build-backend = "poetry_dynamic_versioning.backend" [tool.poe.tasks] -hooks = "pre-commit install" - -[tool.coverage.run] -omit = [ - "mega_conversao/src/utilidades/trata.py", - "mega_conversao/src/modulos/*", - "tests/*", -] -data_file = "coverage/.coverage" - -[tool.coverage.html] -directory = "coverage/html" - -[tool.coverage.lcov] -output = "coverage/lcov.info" +hooks = "pre-commit install --config .pre-commit-config.yaml" [tool.isort] profile = "black" diff --git a/tests/test_player.py b/tests/test_player.py index c793767..b53112b 100644 --- a/tests/test_player.py +++ b/tests/test_player.py @@ -1,4 +1,4 @@ -from diceplayer import logger +from diceplayer import VERSION, logger from diceplayer.player import Player from tests.mocks.mock_inputs import mock_open @@ -51,9 +51,10 @@ class TestPlayer(unittest.TestCase): self.assertTrue(mock_path.called) + @mock.patch("builtins.open", mock_open) + @mock.patch("diceplayer.player.VERSION", "test") @mock.patch("diceplayer.player.sys") @mock.patch("diceplayer.player.weekday_date_time") - @mock.patch("builtins.open", mock_open) def test_print_keywords(self, mock_date_func, mock_sys): player = Player("control.test.yml") @@ -64,7 +65,7 @@ class TestPlayer(unittest.TestCase): player.print_keywords() expected_output = [ - "INFO:diceplayer:##########################################################################################\n############# Welcome to DICEPLAYER version 1.0 #############\n##########################################################################################\n", + "INFO:diceplayer:##########################################################################################\n############# Welcome to DICEPLAYER version test #############\n##########################################################################################\n", "INFO:diceplayer:Your python version is TEST\n", "INFO:diceplayer:Program started on 00 Test 0000 at 00:00:00\n", "INFO:diceplayer:Environment variables:",