Repository: beartype/bearboto3 (language: python)

Issue:
beartype 0.10.0
Hi! I love the beartype-ecosystem and want to start using your package, but I'm getting errors that it doesn't support 0.10.0, which I'm using for the new beartype.typing:

Could you relax this version constraint?

https://github.com/beartype/bearboto3/blob/998ee1807792580862620f406f61bff654b7156d/pyproject.toml#L12

```sh
> poetry add bearboto3                                                                                                                     
Using version ^0.1.1 for bearboto3

Updating dependencies

Resolving dependencies... (4.0s)
  SolverProblemError

  Because bearboto3 (0.1.1) depends on beartype (>=0.9.0,<0.10.0)
   and no versions of bearboto3 match >0.1.1,<0.2.0, bearboto3 (>=0.1.1,<0.2.0) requires beartype (>=0.9.0,<0.10.0).
  So, because calcipy depends on both beartype (>=0.10.0) and bearboto3 (^0.1.1), version solving failed.
```

Thanks for building this!!
beartype 0.10.0
Hi! I love the beartype-ecosystem and want to start using your package, but I'm getting errors that it doesn't support 0.10.0, which I'm using for the new beartype.typing:

Could you relax this version constraint?

https://github.com/beartype/bearboto3/blob/998ee1807792580862620f406f61bff654b7156d/pyproject.toml#L12

```sh
> poetry add bearboto3                                                                                                                     
Using version ^0.1.1 for bearboto3

Updating dependencies

Resolving dependencies... (4.0s)
  SolverProblemError

  Because bearboto3 (0.1.1) depends on beartype (>=0.9.0,<0.10.0)
   and no versions of bearboto3 match >0.1.1,<0.2.0, bearboto3 (>=0.1.1,<0.2.0) requires beartype (>=0.9.0,<0.10.0).
  So, because calcipy depends on both beartype (>=0.10.0) and bearboto3 (^0.1.1), version solving failed.
```

Thanks for building this!!
beartype 0.10.0
Hi! I love the beartype-ecosystem and want to start using your package, but I'm getting errors that it doesn't support 0.10.0, which I'm using for the new beartype.typing:

Could you relax this version constraint?

https://github.com/beartype/bearboto3/blob/998ee1807792580862620f406f61bff654b7156d/pyproject.toml#L12

```sh
> poetry add bearboto3                                                                                                                     
Using version ^0.1.1 for bearboto3

Updating dependencies

Resolving dependencies... (4.0s)
  SolverProblemError

  Because bearboto3 (0.1.1) depends on beartype (>=0.9.0,<0.10.0)
   and no versions of bearboto3 match >0.1.1,<0.2.0, bearboto3 (>=0.1.1,<0.2.0) requires beartype (>=0.9.0,<0.10.0).
  So, because calcipy depends on both beartype (>=0.10.0) and bearboto3 (^0.1.1), version solving failed.
```

Thanks for building this!!


Discussion / hints:
**Sorta my fault.** I'm hanging my head. `beartype` currently follows feels-based versioning rather than [semver](https://semver.org), which is why the `^` operator unexpectedly failed here.

Semver's a great <sup>arguably, mandatory</sup> fit for webdev, where strict version provisioning is the difference between your investors throwing you over a bridge in a sack versus them not doing that. By the same token, semver's *not* so great <sup>arguably, awful</sup> outside of webdev, where strict version provisioning continually breaks compatibility with everything outside a walled garden.

So. `beartype` is *probably* going to continue following feels-based versioning. Explosive tectonic activity ensues. :volcano: 
Hey thanks for reporting this (and sorry that you ran into trouble!). 

@leycec I'm a little confused on what in `beartype`s "feels-based" versioning (as you call it) breaks the `^` in `bearboto3`s `pyproject.toml` in this circumstance. I'm thinking changing `^` to `>=` here is the proper way to ensure compatibility moving forward?
**Sorta my fault.** I'm hanging my head. `beartype` currently follows feels-based versioning rather than [semver](https://semver.org), which is why the `^` operator unexpectedly failed here.

Semver's a great <sup>arguably, mandatory</sup> fit for webdev, where strict version provisioning is the difference between your investors throwing you over a bridge in a sack versus them not doing that. By the same token, semver's *not* so great <sup>arguably, awful</sup> outside of webdev, where strict version provisioning continually breaks compatibility with everything outside a walled garden.

So. `beartype` is *probably* going to continue following feels-based versioning. Explosive tectonic activity ensues. :volcano: 
Hey thanks for reporting this (and sorry that you ran into trouble!). 

@leycec I'm a little confused on what in `beartype`s "feels-based" versioning (as you call it) breaks the `^` in `bearboto3`s `pyproject.toml` in this circumstance. I'm thinking changing `^` to `>=` here is the proper way to ensure compatibility moving forward?
**Sorta my fault.** I'm hanging my head. `beartype` currently follows feels-based versioning rather than [semver](https://semver.org), which is why the `^` operator unexpectedly failed here.

Semver's a great <sup>arguably, mandatory</sup> fit for webdev, where strict version provisioning is the difference between your investors throwing you over a bridge in a sack versus them not doing that. By the same token, semver's *not* so great <sup>arguably, awful</sup> outside of webdev, where strict version provisioning continually breaks compatibility with everything outside a walled garden.

So. `beartype` is *probably* going to continue following feels-based versioning. Explosive tectonic activity ensues. :volcano: 
Hey thanks for reporting this (and sorry that you ran into trouble!). 

@leycec I'm a little confused on what in `beartype`s "feels-based" versioning (as you call it) breaks the `^` in `bearboto3`s `pyproject.toml` in this circumstance. I'm thinking changing `^` to `>=` here is the proper way to ensure compatibility moving forward?

Fix patch:
diff --git a/pyproject.toml b/pyproject.toml
index e169f32..1d38a0b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "bearboto3"
-version = "0.1.1"
+version = "0.1.2"
 description = "Facilitates using beartype runtime type-checking with the AWS SDK"
 authors = ["Paul Hutchings <dev@studiop.page>"]
 license = "MIT"
@@ -9,7 +9,7 @@ homepage = "https://github.com/beartype/bearboto3"
 
 [tool.poetry.dependencies]
 python = "^3.7"
-beartype = "^0.9.0"
+beartype = ">=0.9.0"
 
 # Optional type stubs (will be installed as runtime dependencies this way)
 mypy-boto3-s3 = {version = "^1.21.0", optional = true}


Test patch:
diff --git a/tests/integration/bearboto3.whl b/tests/integration/bearboto3.whl
index 3a5431f..b66ebc2 120000
--- a/tests/integration/bearboto3.whl
+++ b/tests/integration/bearboto3.whl
@@ -1,1 +1,1 @@
-../../dist/bearboto3-0.1.0-py3-none-any.whl
\ No newline at end of file
+../../dist/bearboto3-0.1.2-py3-none-any.whl
\ No newline at end of file
diff --git a/tests/integration/poetry.lock b/tests/integration/poetry.lock
index fe68001..3706636 100644
--- a/tests/integration/poetry.lock
+++ b/tests/integration/poetry.lock
@@ -1,25 +1,30 @@
 [[package]]
 name = "bearboto3"
-version = "0.1.0"
+version = "0.1.2"
 description = "Facilitates using beartype runtime type-checking with the AWS SDK"
 category = "main"
 optional = false
 python-versions = ">=3.7,<4.0"
 
 [package.dependencies]
-beartype = ">=0.9.0,<0.10.0"
-mypy-boto3-s3 = {version = ">=1.21.0,<2.0.0", optional = true, markers = "extra == \"s3\""}
+beartype = ">=0.9.0"
 
 [package.extras]
+dynamodb = ["mypy-boto3-dynamodb (>=1.21.4,<2.0.0)"]
+ec2 = ["mypy-boto3-ec2 (>=1.21.1,<2.0.0)"]
+iam = ["mypy-boto3-iam (>=1.21.2,<2.0.0)"]
+lambda = ["mypy-boto3-lambda (>=1.21.0,<2.0.0)"]
 s3 = ["mypy-boto3-s3 (>=1.21.0,<2.0.0)"]
+sns = ["mypy-boto3-sns (>=1.21.0,<2.0.0)"]
+sqs = ["mypy-boto3-sqs (>=1.21.0,<2.0.0)"]
 
 [package.source]
 type = "file"
-url = "../../dist/bearboto3-0.1.0-py3-none-any.whl"
+url = "../../dist/bearboto3-0.1.2-py3-none-any.whl"
 
 [[package]]
 name = "beartype"
-version = "0.9.1"
+version = "0.10.2"
 description = "Unbearably fast runtime type checking in pure Python."
 category = "main"
 optional = false
@@ -34,14 +39,14 @@ test-tox-coverage = ["coverage (>=5.5)"]
 
 [[package]]
 name = "boto3"
-version = "1.21.4"
+version = "1.21.13"
 description = "The AWS SDK for Python"
 category = "main"
 optional = false
 python-versions = ">= 3.6"
 
 [package.dependencies]
-botocore = ">=1.24.4,<1.25.0"
+botocore = ">=1.24.13,<1.25.0"
 jmespath = ">=0.7.1,<1.0.0"
 s3transfer = ">=0.5.0,<0.6.0"
 
@@ -50,7 +55,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
 
 [[package]]
 name = "botocore"
-version = "1.24.4"
+version = "1.24.13"
 description = "Low-level, data-driven core of boto 3."
 category = "main"
 optional = false
@@ -72,17 +77,6 @@ category = "main"
 optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
 
-[[package]]
-name = "mypy-boto3-s3"
-version = "1.21.0"
-description = "Type annotations for boto3.S3 1.21.0 service generated by mypy-boto3-builder 7.0.4"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-typing-extensions = {version = "*", markers = "python_version < \"3.9\""}
-
 [[package]]
 name = "python-dateutil"
 version = "2.8.2"
@@ -96,7 +90,7 @@ six = ">=1.5"
 
 [[package]]
 name = "s3transfer"
-version = "0.5.1"
+version = "0.5.2"
 description = "An Amazon S3 Transfer Manager"
 category = "main"
 optional = false
@@ -116,14 +110,6 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
 
-[[package]]
-name = "typing-extensions"
-version = "4.1.1"
-description = "Backported and Experimental Type Hints for Python 3.6+"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
 [[package]]
 name = "urllib3"
 version = "1.26.8"
@@ -140,48 +126,40 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.7"
-content-hash = "742c4242c508cb70865262bacfe021b09fc3ac5ab1eaa8ef0e077ca88c34c7cd"
+content-hash = "aee44204e6c82821d1bc49e3c7a74ee52306660c31174aedd68ca82af836a852"
 
 [metadata.files]
 bearboto3 = [
-    {file = "bearboto3-0.1.0-py3-none-any.whl", hash = "sha256:892b17696f4fdf3c470b7737ff5fd362c96ebec2a865e3d3d746e316d896addc"},
+    {file = "bearboto3.whl", hash = "sha256:af8dfaea8b372e3c6173d446245454748eefeec158a3f33140d095e540436398"},
 ]
 beartype = [
-    {file = "beartype-0.9.1-py3-none-any.whl", hash = "sha256:fb23f59b709dd29c4bff25ede0969cdd76aa7e7812abef704d08007ea07372e0"},
-    {file = "beartype-0.9.1.tar.gz", hash = "sha256:623630dc243b0da5a84f0fa414e6aaaf2613e567ad19abfe6a81c17ea5ab62f1"},
+    {file = "beartype-0.10.2-py3-none-any.whl", hash = "sha256:6e05f9825917219d9380f76a4ba31d8ff29de36556abed70ddc8da7ac59f6d13"},
+    {file = "beartype-0.10.2.tar.gz", hash = "sha256:2e8d405318fe411ecdd937627f9f33181312a793ebd239b3da769c4439cb4b98"},
 ]
 boto3 = [
-    {file = "boto3-1.21.4-py3-none-any.whl", hash = "sha256:6ad9a2837fb89eb9084ed545af7f29a5e099db93776f1aafe5c08bc15933704a"},
-    {file = "boto3-1.21.4.tar.gz", hash = "sha256:bbe4f4ddfc13469d306f0ca5fa77441ec37ad50dc270755e93260aeafb06d3d1"},
+    {file = "boto3-1.21.13-py3-none-any.whl", hash = "sha256:e17d994d222162dac02ec32fde6ae910d819ebf239a94dddcee47def2c82b9c9"},
+    {file = "boto3-1.21.13.tar.gz", hash = "sha256:16fae86d0c4993fd5112128bb4622a879f02363bccd045153cc0bbd7722cc9a5"},
 ]
 botocore = [
-    {file = "botocore-1.24.4-py3-none-any.whl", hash = "sha256:692fcad31733674c8faffc65da8ddc8ab4839f407ad8470c103e0e7aed9c7556"},
-    {file = "botocore-1.24.4.tar.gz", hash = "sha256:8e9ae6b718ca318b4aeeee45aa9fad5f52e882a2291d919cfa4b753928223abb"},
+    {file = "botocore-1.24.13-py3-none-any.whl", hash = "sha256:7b166096f9413b41caf7cc6f4edfd5b3c3ab9d7c61eb120a649e69485c98131a"},
+    {file = "botocore-1.24.13.tar.gz", hash = "sha256:46e51f56f1c5784e4245e036503635fa71b722775657b6e1acf21ec5b906974c"},
 ]
 jmespath = [
     {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
     {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
 ]
-mypy-boto3-s3 = [
-    {file = "mypy-boto3-s3-1.21.0.tar.gz", hash = "sha256:dcfddd4e1617a66b59fdc9fe3420d2f5136dbba378f156fbf19aa609d9132b9d"},
-    {file = "mypy_boto3_s3-1.21.0-py3-none-any.whl", hash = "sha256:b2544aa02fc0fa345dcd9d4f1a2bbe8f4975a66a41e148324f22728483f3cb20"},
-]
 python-dateutil = [
     {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
     {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
 ]
 s3transfer = [
-    {file = "s3transfer-0.5.1-py3-none-any.whl", hash = "sha256:25c140f5c66aa79e1ac60be50dcd45ddc59e83895f062a3aab263b870102911f"},
-    {file = "s3transfer-0.5.1.tar.gz", hash = "sha256:69d264d3e760e569b78aaa0f22c97e955891cd22e32b10c51f784eeda4d9d10a"},
+    {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"},
+    {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"},
 ]
 six = [
     {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
     {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
 ]
-typing-extensions = [
-    {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"},
-    {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"},
-]
 urllib3 = [
     {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
     {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
diff --git a/tests/integration/pyproject.toml b/tests/integration/pyproject.toml
index f4d2c11..1d5b1a8 100644
--- a/tests/integration/pyproject.toml
+++ b/tests/integration/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "bearboto3-integration"
-version = "0.1.0"
+version = "0.1.1"
 description = "Bearboto3 integration tests"
 authors = ["Paul <dev@studiop.page>"]
 license = "MIT"
@@ -8,8 +8,8 @@ license = "MIT"
 [tool.poetry.dependencies]
 python = "^3.7"
 boto3 = "^1.20.42"
-
-bearboto3 = {path = "bearboto3.whl", extras = ["s3"]}
+beartype = "^0.10.2"
+bearboto3 = {path = "bearboto3.whl"}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]