Hi. The semver proposal makes sense to me. There is arguably a case the that maximum major version constraints should be provided since the semver definition of a major version change specifically implies a breaking change of some form.
w.r.t the discussion around requirements.txt, common convention and best practice encourages that:
- install_requires: provide abstract, minimal, requirements for a specific package
- requirements.txt: provides exhaustive pinned versions for a compete environment
There is a general overview here: https://packaging.python.org/discussions/install-requires-vs-requirements/
The end user experience is defined by how we manage install_requires, rather than what we provide in a requirements.txt. While requirements.txt foo is a viable way to share fixed environments within the tvm projects own developer community, we should focus on the install_requires mechanism for tvm end users, because, that is the one they will use by default.