diff --git a/.github/workflows/check_github_pages_docs_for_feature_branch.yaml b/.github/workflows/check_github_pages_docs_for_feature_branch.yaml index 1beb4a56..c01bfb95 100644 --- a/.github/workflows/check_github_pages_docs_for_feature_branch.yaml +++ b/.github/workflows/check_github_pages_docs_for_feature_branch.yaml @@ -25,6 +25,9 @@ jobs: uses: abatilo/actions-poetry@v2.0.0 with: poetry-version: 1.1.4 + - name: Install lapack/blas for Numpy from source + run: sudo apt-get update && sudo apt-get install -y liblapack-dev libblas-dev + #highly recommended for numpy from source, check https://numpy.org/devdocs/user/building.html#prerequisites - name: Poetry install run: poetry install - name: Test documentation deployment for current feature branch diff --git a/.github/workflows/check_setup_py.yaml b/.github/workflows/check_setup_py.yaml index 1a930674..90792ddc 100644 --- a/.github/workflows/check_setup_py.yaml +++ b/.github/workflows/check_setup_py.yaml @@ -21,6 +21,9 @@ jobs: - uses: abatilo/actions-poetry@v2.0.0 with: poetry-version: 1.1.4 + - name: Install lapack/blas for Numpy from source + run: sudo apt-get update && sudo apt-get install -y liblapack-dev libblas-dev + #highly recommended for numpy from source, check https://numpy.org/devdocs/user/building.html#prerequisites - name: Poetry install run: poetry install - name: Run packaging update diff --git a/.github/workflows/deploy_github_pages_docs_for_main.yaml b/.github/workflows/deploy_github_pages_docs_for_main.yaml index a98769a9..b973c6f1 100644 --- a/.github/workflows/deploy_github_pages_docs_for_main.yaml +++ b/.github/workflows/deploy_github_pages_docs_for_main.yaml @@ -23,6 +23,9 @@ jobs: uses: abatilo/actions-poetry@v2.0.0 with: poetry-version: 1.1.4 + - name: Install lapack/blas for Numpy from source + run: sudo apt-get update && sudo apt-get install -y liblapack-dev libblas-dev + #highly recommended for numpy from source, check https://numpy.org/devdocs/user/building.html#prerequisites - name: Poetry install run: poetry install - name: Deploy documentation to github-pages-main branch diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index 3dd71c49..046f79fe 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -21,6 +21,9 @@ jobs: - uses: abatilo/actions-poetry@v2.0.0 with: poetry-version: 1.1.4 + - name: Install lapack/blas for Numpy from source + run: sudo apt-get update && sudo apt-get install -y liblapack-dev libblas-dev + #highly recommended for numpy from source, check https://numpy.org/devdocs/user/building.html#prerequisites - name: Poetry install run: poetry install - name: Poetry build diff --git a/.github/workflows/release_droid_upload_github_release_assets.yml b/.github/workflows/release_droid_upload_github_release_assets.yml index 01fe3e10..6e95d0b3 100644 --- a/.github/workflows/release_droid_upload_github_release_assets.yml +++ b/.github/workflows/release_droid_upload_github_release_assets.yml @@ -43,6 +43,9 @@ jobs: - uses: abatilo/actions-poetry@v2.0.0 with: poetry-version: 1.1.4 + - name: Install lapack/blas for Numpy from source + run: sudo apt-get update && sudo apt-get install -y liblapack-dev libblas-dev + #highly recommended for numpy from source, check https://numpy.org/devdocs/user/building.html#prerequisites - name: Poetry install run: poetry install - name: Poetry build diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index 1fbeff71..d9aff654 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,5 +1,6 @@ # Changes +* [0.2.0](changes_0.2.0.md) * [0.1.0](changes_0.1.0.md) @@ -7,5 +8,6 @@ --- hidden: --- +changes_0.2.0 changes_0.1.0 ``` diff --git a/doc/changes/changes_0.2.0.md b/doc/changes/changes_0.2.0.md new file mode 100644 index 00000000..cb8c1914 --- /dev/null +++ b/doc/changes/changes_0.2.0.md @@ -0,0 +1,18 @@ +# BucketFs Utils Python 0.2.0, released t.b.d +Code name: t.b.d + +## Summary + t.b.d + +## Features / Enhancements + +## Bug Fixes + +## Documentation + +## Refactoring + +## Security + + - #51: Added fixed numpy version build from source because of Buffer Overflow vulnerability in NumPy + diff --git a/poetry.lock b/poetry.lock index a499cfa8..2ea2f70e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -49,7 +49,7 @@ python-versions = "*" [[package]] name = "charset-normalizer" -version = "2.0.10" +version = "2.0.11" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false @@ -107,13 +107,14 @@ develop = false [package.dependencies] dill = "^0.3.2" -pandas = "^1.1.3" +numpy = {git = "https://github.com/numpy/numpy.git", branch = "maintenance/1.19.x"} +pandas = "1.1.5" [package.source] type = "git" url = "https://github.com/exasol/udf-mock-python.git" -reference = "master" -resolved_reference = "c9be02c2938b27f02d1cf057f4e3f57aedaf94bc" +reference = "22-update-pandas-dependecy-quickfix" +resolved_reference = "e05c3cc0814969f948b03969aedb69b898645535" [[package]] name = "gitdb" @@ -269,11 +270,18 @@ testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest [[package]] name = "numpy" -version = "1.19.5" +version = "1.19.6.dev0+fdcb2e4" description = "NumPy is the fundamental package for array computing with Python." category = "dev" optional = false python-versions = ">=3.6" +develop = false + +[package.source] +type = "git" +url = "https://github.com/numpy/numpy.git" +reference = "maintenance/1.19.x" +resolved_reference = "fdcb2e4a2260d1e884101327b516a5d5bc1e1de2" [[package]] name = "packaging" @@ -382,7 +390,7 @@ python-versions = ">=3.5" [[package]] name = "pyparsing" -version = "3.0.6" +version = "3.0.7" description = "Python parsing module" category = "dev" optional = false @@ -621,7 +629,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "tomlkit" -version = "0.8.0" +version = "0.9.1" description = "Style preserving TOML library" category = "dev" optional = false @@ -688,7 +696,7 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytes [metadata] lock-version = "1.1" python-versions = ">=3.6.1,<4.0" -content-hash = "7ab0021e7f06b208084bb81d046efbf4dcc56142b1e34fa7c7765758e5d801d8" +content-hash = "0190ed0232ccf1ade812b2fdac4bd77d2b40bdb07415fca9f3810b06945dd065" [metadata.files] alabaster = [ @@ -712,8 +720,8 @@ certifi = [ {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, ] charset-normalizer = [ - {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, - {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, + {file = "charset-normalizer-2.0.11.tar.gz", hash = "sha256:98398a9d69ee80548c762ba991a4728bfc3836768ed226b3945908d1a688371c"}, + {file = "charset_normalizer-2.0.11-py3-none-any.whl", hash = "sha256:2842d8f5e82a1f6aa437380934d5e1cd4fcf2003b06fed6940769c164a480a45"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, @@ -892,42 +900,7 @@ myst-parser = [ {file = "myst-parser-0.14.0.tar.gz", hash = "sha256:fc262959a74cdc799d7fa9b30c320c17187485b9a1e8c39e988fc12f3adff63c"}, {file = "myst_parser-0.14.0-py3-none-any.whl", hash = "sha256:8d7db76e2f33cd1dc1fe0c76af9f09e5cf19ce2c2e85074bc82f272c0f7c08ce"}, ] -numpy = [ - {file = "numpy-1.19.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc6bd4fd593cb261332568485e20a0712883cf631f6f5e8e86a52caa8b2b50ff"}, - {file = "numpy-1.19.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:aeb9ed923be74e659984e321f609b9ba54a48354bfd168d21a2b072ed1e833ea"}, - {file = "numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8b5e972b43c8fc27d56550b4120fe6257fdc15f9301914380b27f74856299fea"}, - {file = "numpy-1.19.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:43d4c81d5ffdff6bae58d66a3cd7f54a7acd9a0e7b18d97abb255defc09e3140"}, - {file = "numpy-1.19.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:a4646724fba402aa7504cd48b4b50e783296b5e10a524c7a6da62e4a8ac9698d"}, - {file = "numpy-1.19.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:2e55195bc1c6b705bfd8ad6f288b38b11b1af32f3c8289d6c50d47f950c12e76"}, - {file = "numpy-1.19.5-cp36-cp36m-win32.whl", hash = "sha256:39b70c19ec771805081578cc936bbe95336798b7edf4732ed102e7a43ec5c07a"}, - {file = "numpy-1.19.5-cp36-cp36m-win_amd64.whl", hash = "sha256:dbd18bcf4889b720ba13a27ec2f2aac1981bd41203b3a3b27ba7a33f88ae4827"}, - {file = "numpy-1.19.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:603aa0706be710eea8884af807b1b3bc9fb2e49b9f4da439e76000f3b3c6ff0f"}, - {file = "numpy-1.19.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cae865b1cae1ec2663d8ea56ef6ff185bad091a5e33ebbadd98de2cfa3fa668f"}, - {file = "numpy-1.19.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:36674959eed6957e61f11c912f71e78857a8d0604171dfd9ce9ad5cbf41c511c"}, - {file = "numpy-1.19.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:06fab248a088e439402141ea04f0fffb203723148f6ee791e9c75b3e9e82f080"}, - {file = "numpy-1.19.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6149a185cece5ee78d1d196938b2a8f9d09f5a5ebfbba66969302a778d5ddd1d"}, - {file = "numpy-1.19.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:50a4a0ad0111cc1b71fa32dedd05fa239f7fb5a43a40663269bb5dc7877cfd28"}, - {file = "numpy-1.19.5-cp37-cp37m-win32.whl", hash = "sha256:d051ec1c64b85ecc69531e1137bb9751c6830772ee5c1c426dbcfe98ef5788d7"}, - {file = "numpy-1.19.5-cp37-cp37m-win_amd64.whl", hash = "sha256:a12ff4c8ddfee61f90a1633a4c4afd3f7bcb32b11c52026c92a12e1325922d0d"}, - {file = "numpy-1.19.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cf2402002d3d9f91c8b01e66fbb436a4ed01c6498fffed0e4c7566da1d40ee1e"}, - {file = "numpy-1.19.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1ded4fce9cfaaf24e7a0ab51b7a87be9038ea1ace7f34b841fe3b6894c721d1c"}, - {file = "numpy-1.19.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:012426a41bc9ab63bb158635aecccc7610e3eff5d31d1eb43bc099debc979d94"}, - {file = "numpy-1.19.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:759e4095edc3c1b3ac031f34d9459fa781777a93ccc633a472a5468587a190ff"}, - {file = "numpy-1.19.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a9d17f2be3b427fbb2bce61e596cf555d6f8a56c222bd2ca148baeeb5e5c783c"}, - {file = "numpy-1.19.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:99abf4f353c3d1a0c7a5f27699482c987cf663b1eac20db59b8c7b061eabd7fc"}, - {file = "numpy-1.19.5-cp38-cp38-win32.whl", hash = "sha256:384ec0463d1c2671170901994aeb6dce126de0a95ccc3976c43b0038a37329c2"}, - {file = "numpy-1.19.5-cp38-cp38-win_amd64.whl", hash = "sha256:811daee36a58dc79cf3d8bdd4a490e4277d0e4b7d103a001a4e73ddb48e7e6aa"}, - {file = "numpy-1.19.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c843b3f50d1ab7361ca4f0b3639bf691569493a56808a0b0c54a051d260b7dbd"}, - {file = "numpy-1.19.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d6631f2e867676b13026e2846180e2c13c1e11289d67da08d71cacb2cd93d4aa"}, - {file = "numpy-1.19.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7fb43004bce0ca31d8f13a6eb5e943fa73371381e53f7074ed21a4cb786c32f8"}, - {file = "numpy-1.19.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2ea52bd92ab9f768cc64a4c3ef8f4b2580a17af0a5436f6126b08efbd1838371"}, - {file = "numpy-1.19.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:400580cbd3cff6ffa6293df2278c75aef2d58d8d93d3c5614cd67981dae68ceb"}, - {file = "numpy-1.19.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:df609c82f18c5b9f6cb97271f03315ff0dbe481a2a02e56aeb1b1a985ce38e60"}, - {file = "numpy-1.19.5-cp39-cp39-win32.whl", hash = "sha256:ab83f24d5c52d60dbc8cd0528759532736b56db58adaa7b5f1f76ad551416a1e"}, - {file = "numpy-1.19.5-cp39-cp39-win_amd64.whl", hash = "sha256:0eef32ca3132a48e43f6a0f5a82cb508f22ce5a3d6f67a8329c81c8e226d3f6e"}, - {file = "numpy-1.19.5-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:a0d53e51a6cb6f0d9082decb7a4cb6dfb33055308c4c44f53103c073f649af73"}, - {file = "numpy-1.19.5.zip", hash = "sha256:a76f502430dd98d7546e1ea2250a7360c065a5fdea52b2dffe8ae7180909b6f4"}, -] +numpy = [] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, @@ -998,8 +971,8 @@ pygments = [ {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"}, ] pyparsing = [ - {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, - {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, + {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, + {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, ] pytest = [ {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, @@ -1105,8 +1078,8 @@ toml = [ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] tomlkit = [ - {file = "tomlkit-0.8.0-py3-none-any.whl", hash = "sha256:b824e3466f1d475b2b5f1c392954c6cb7ea04d64354ff7300dc7c14257dc85db"}, - {file = "tomlkit-0.8.0.tar.gz", hash = "sha256:29e84a855712dfe0e88a48f6d05c21118dbafb283bb2eed614d46f80deb8e9a1"}, + {file = "tomlkit-0.9.1-py3-none-any.whl", hash = "sha256:01407892165b513969231085a33d4be2cb41f186d9fd072c975b6bd1435371b0"}, + {file = "tomlkit-0.9.1.tar.gz", hash = "sha256:3bdbfffc3ae6c8628b5fb6ed7b459edb8476472eae15033b705bc7d1380b3e3d"}, ] typeguard = [ {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, diff --git a/pyproject.toml b/pyproject.toml index 98ed4f7a..ad725879 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "exasol-bucketfs-utils-python" -version = "0.1.0" +version = "0.2.0" description = "BucketFS utilities for the Python programming language" license = "MIT" diff --git a/scripts/build/check_release.py b/scripts/build/check_release.py index 1dd3bc95..cf2e0ffe 100644 --- a/scripts/build/check_release.py +++ b/scripts/build/check_release.py @@ -47,7 +47,7 @@ def get_change_log_version(): if latest_tag is None and poetry_version != "0.1.0": raise ValueError("You don't have yet a release. Your Poetry version needs to be 0.1.0!") - # We expect that the current version in pyproject.toml is alway greater than the latest tag. + # We expect that the current version in pyproject.toml is always greater than the latest tag. # Thus we avoid creating a release without having the version number updated. if poetry_version == latest_tag: raise ValueError("Poetry version needs to be updated!") diff --git a/setup.py b/setup.py index e5642051..9c8c3825 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ setup_kwargs = { 'name': 'exasol-bucketfs-utils-python', - 'version': '0.1.0', + 'version': '0.2.0', 'description': 'BucketFS utilities for the Python programming language', 'long_description': '#####################\nBucketFS Utils Python\n#####################\n\n********\nOverview\n********\n\nThis project provides a python library for accessing the Exasol BucketFS system.\nIt provides functions to upload and download files to and from the BucketFS.\n\nIn a Nutshell\n=============\n\nPrerequisites\n-------------\n\n- Python 3.6+\n\nInstallation\n-------------\n\nInstall the package from Github via `pip`::\n\n pip install -e git://github.com/exasol/bucketfs-utils-python.git@{tag name}#egg=exasol-bucketfs-utils-python\n\nDocumentation\n-------------\n\n`Documentation for the latest release `_ is hosted on the Github Pages of this project.\n\nFeatures\n========\n\n* Download or upload files from/to the Exasol BucketFS\n* Supported sources and targets for the uploads and downloads:\n\n * Files on the local Filesystem\n * Python file objects\n * Python Strings\n * Python objects ((De-)Serialization with [Joblib](https://joblib.readthedocs.io/en/latest/persistence.html))\n\n* Loading an artefact from a public Github Release into the BucketFS\n', 'author': 'Torsten Kilias',