Flask-AppBuilder icon indicating copy to clipboard operation
Flask-AppBuilder copied to clipboard

chore: Increase upper-bound on apispec

Open tm-drtina opened this issue 2 years ago • 1 comments

Description

My local tests (postgres and mongodb) pass with apispec 5.2.2 (currently latest). I don't think we need to limit apispec<4. If there are issues for consumers of this lib, they can put stronger constraints to their requirements. Still kept some upper bound to avoid any breaking change from future major versions.

Also had to upgrade pip-tools, since current version breaks on pip progress bar

ADDITIONAL INFORMATION

  • [ ] Has associated issue:
  • [ ] Is CRUD MVC related.
  • [ ] Is Auth, RBAC security related.
  • [ ] Changes the security db schema.
  • [ ] Introduces new feature
  • [ ] Removes existing feature

tm-drtina avatar Aug 11 '22 20:08 tm-drtina

I've ran nosetests -v flask_appbuilder.tests.test_api which should use the ModelRestApi and all tests passed.

I haven't checked the OpenAPI spec.

I don't think newer apispec breaks anything in how FAB uses it. It still might break something in consumers of this lib, but they can simply put more strict requirements in their setup.cfg

tm-drtina avatar Aug 16 '22 13:08 tm-drtina

Could we upgrade to v6? That would fix the warning about

/home/ash/.virtualenvs/airflow/lib/python3.10/site-packages/apispec/utils.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternative

ashb avatar Dec 06 '22 11:12 ashb

According to the changelog following are backwards incompatible changes:

  • Change MarshmallowPlugin.map_to_openapi_type from a decorator to a classic function, taking a field as first argument (#804).
  • Remove validate_spec from public API. Users may call their validator of choice directly (#803).
  • Remove OpenAPIVersion and use packaging.Version instead (#801).

I don't see any of these used in the codebase, so I think it shouldn't break the lib, but still can break consumers. I still think it should be ok to increase the version range and let consumers limit the version range themselves.

tm-drtina avatar Dec 06 '22 12:12 tm-drtina