def scm_version():
def local_scheme(version):
- return version.format_choice("+{node}", "+{node}.dirty")
+ if version.tag and not version.distance:
+ return version.format_with("")
+ else:
+ return version.format_choice("+{node}", "+{node}.dirty")
return {
"relative_to": __file__,
"version_scheme": "guess-next-dev",
}
+def doc_version():
+ try:
+ from setuptools_scm.git import parse as parse_git
+ except ImportError:
+ return ""
+
+ git = parse_git(".")
+ if not git:
+ return ""
+ elif git.exact:
+ return git.format_with("{tag}")
+ else:
+ return "latest"
+
+
setup(
name="nmigen",
use_scm_version=scm_version(),
#long_description="""TODO""",
license="BSD",
python_requires="~=3.6",
- setup_requires=["setuptools_scm"],
- install_requires=["setuptools", "pyvcd>=0.1.4", "bitarray", "Jinja2"],
- packages=find_packages(),
+ setup_requires=["wheel", "setuptools", "setuptools_scm"],
+ install_requires=[
+ "importlib_metadata; python_version<'3.8'", # for __version__ and nmigen._yosys
+ "importlib_resources; python_version<'3.9'", # for nmigen._yosys
+ "pyvcd~=0.2.2", # for nmigen.pysim
+ "Jinja2~=2.11", # for nmigen.build
+ ],
+ extras_require={
+ # this version requirement needs to be synchronized with the one in nmigen.back.verilog!
+ "builtin-yosys": ["nmigen-yosys>=0.9.post3527.*"],
+ "remote-build": ["paramiko~=2.7"],
+ },
+ packages=find_packages(exclude=["tests*"]),
entry_points={
"console_scripts": [
"nmigen-rpc = nmigen.rpc:main",
]
},
project_urls={
- #"Documentation": "https://nmigen.readthedocs.io/",
- "Source Code": "https://github.com/m-labs/nmigen",
- "Bug Tracker": "https://github.com/m-labs/nmigen/issues",
+ "Documentation": "https://nmigen.info/nmigen/{}".format(doc_version()),
+ "Source Code": "https://github.com/nmigen/nmigen",
+ "Bug Tracker": "https://github.com/nmigen/nmigen/issues",
},
)