diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..7cb3a3f --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,20 @@ +# .github/release.yml + +changelog: + exclude: + labels: + - ignore-for-release + authors: + - octocat + categories: + - title: Breaking Changes πŸ›  + labels: + - Semver-Major + - breaking-change + - title: Exciting New Features πŸŽ‰ + labels: + - Semver-Minor + - enhancement + - title: Other Changes + labels: + - "*" \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..841b728 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,41 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: tests + +on: + pull_request: + paths-ignore: + - LICENSE + - AUTHORS + - README.md + + push: + branches: [master] + +jobs: + tests: + name: test with Py${{ matrix.python-version }} + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ['3.8', '3.9', '3.10', '3.11'] + + steps: + - name: Checkout changes + uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + pip3 install -e ".[tests]" + + - name: Test with pytest + run: | + python -m pytest \ No newline at end of file diff --git a/README.md b/README.md index 7b62d90..597cf55 100644 --- a/README.md +++ b/README.md @@ -278,10 +278,3 @@ result = chart.run( ```bash python -m pytest tests ``` - -### ΠŸΡ€Π°Π²ΠΈΠ»Π° сСмантичСского Ρ€Π΅Π»ΠΈΠ·Π° - -1. Для сборки Π² ci ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° `go-semrel-gitlab-release` -2. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ рСквСстС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎ [Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ](https://juhani.gitlab.io/go-semrel-gitlab/commit-message/) - -Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ [здСсь](https://juhani.gitlab.io/go-semrel-gitlab/) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..3d2aada --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,45 @@ +[project] +name = "ml-pipeline-engine" +readme = "README.md" +dynamic = ["version"] +requires-python = ">= 3.8" +dependencies = [ + "networkx>=3.1,<4.0", + "python-ulid>=1.1.0,<2.0", + "cloudpickle>=2.2.1,<3.0", +] +authors = [ + {name = "Konyaev Matvey"}, + {name = "Vasiliy Pankov"}, +] +description = "Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ ML ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ" +license = {text = "MIT"} +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", +] + +[project.optional-dependencies] +tests = [ + "pytest>=4.0.0", + "pytest-mock>=3.10.0", + "pre-commit>=2.0.0", + "flake8>=3.8.3", + "pytest-cov>=2.11.0", + "pytest-asyncio>=0.18.3", +] + +[tool.pytest.ini_options] +asyncio_mode = "auto" +addopts = "-s -vv" + +[tool.setuptools.dynamic] +version = {attr = "version.version"} + +[build-system] +requires = ["setuptools >= 69.0"] # nice +build-backend = "setuptools.build_meta" diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 22fd791..0000000 --- a/pytest.ini +++ /dev/null @@ -1,10 +0,0 @@ -[pytest] -addopts = -s -vv -asyncio_mode = auto - -[run] -omit = - venv/* - tests/* - ci/* - dist/* diff --git a/setup.py b/setup.py deleted file mode 100644 index 2cbcfbd..0000000 --- a/setup.py +++ /dev/null @@ -1,43 +0,0 @@ -from os.path import dirname, join - -import setuptools - -from version import version - -install_requires = [ - 'networkx==3.1', - 'python-ulid==1.1.0', - 'cloudpickle==2.2.1', -] -tests_requires = [ - 'pytest>=4.0.0', - 'pytest-mock>=3.10.0', - 'pre-commit>=2.0.0', - 'flake8>=3.8.3', - 'pytest-cov>=2.11.0', - 'pytest-asyncio==0.18.3', -] - -with open(join(dirname(__file__), 'README.md'), encoding='utf-8') as f: - long_description = f.read() - -setuptools.setup( - name='ml-pipeline-engine', - version=version, - packages=setuptools.find_packages(), - description='Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ ML ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ', - long_description=long_description, - license='MIT', - install_requires=install_requires, - tests_require=tests_requires, - extras_require={'tests': [tests_requires]}, - setup_requires=['wheel'], - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - ], -) diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index c9fa606..0000000 --- a/sonar-project.properties +++ /dev/null @@ -1,15 +0,0 @@ -sonar.projectKey=ml_pipeline_engine -sonar.projectName=ml_pipeline_engine - -sonar.sources=. -sonar.sourceEncoding=UTF-8 - -sonar.exclusions=\ - tests/**, venv/**, htmlcov/**, coverage.xml, setup.py, version.py -sonar.coverage.exclusions=\ - tests/**, venv/**, htmlcov/**, coverage.xml, setup.py, version.py -sonar.test.exclusions=\ - tests/**, venv/**, example/**, htmlcov/**, coverage.xml, setup.py, version.py - -sonar.python.xunit.reportPaths=.junit.xml -sonar.python.coverage.reportPaths=coverage.xml diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 838afee..0000000 --- a/tox.ini +++ /dev/null @@ -1,28 +0,0 @@ -[metadata] -description-file = README.md - -[tool:pytest] -addopts = --disable-warnings - -[flake8] -max-line-length = 120 -exclude = - site-packages, - __pycache__, - venv, -filename = *.py - -[pytest] -addopts = --doctest-modules -testpaths = tests -norecursedirs = venv -asyncio_mode = auto - -[pep8] -max-line-length = 120 - -[run] -omit = - venv/*, - test/*, - setup.py,