diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9a98fdb8..251592b3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,6 +57,9 @@ chs-sw: vsim-compile: stage: build + extends: + - .cache-deps + - .init-env needs: - generate-rtl variables: diff --git a/.gitlab/common.yml b/.gitlab/common.yml index 1cc395b4..c22a2b96 100644 --- a/.gitlab/common.yml +++ b/.gitlab/common.yml @@ -13,7 +13,7 @@ variables: key: files: - Bender.lock - - requirements.txt + - pyproject.toml paths: - .bender - .cache/pip diff --git a/Makefile b/Makefile index a18dbf3b..7ef875ac 100644 --- a/Makefile +++ b/Makefile @@ -221,8 +221,7 @@ python-venv: .venv .venv: $(BASE_PYTHON) -m venv $@ . $@/bin/activate && \ - python -m pip install --upgrade pip setuptools && \ - python -m pip install --cache-dir $(PIP_CACHE_DIR) -r requirements.txt && \ + python -m pip install --cache-dir $(PIP_CACHE_DIR) . && \ python -m pip install --cache-dir $(PIP_CACHE_DIR) $(shell $(BENDER) path floo_noc) --no-deps && \ python -m pip install --cache-dir $(PIP_CACHE_DIR) "$(shell $(BENDER) path snitch_cluster)[kernels]" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..fd4d68c1 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,46 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +[build-system] +requires = ["setuptools<81", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "picobello" +version = "0.0.0" +description = "whatever it means" +readme = "README.md" +requires-python = ">=3.11" +authors = [{ name = "Tim Fischer", email = "fischeti@iis.ee.ethz.ch" }] +dependencies = [ + # FlooNoC requirements + "click", + "mako", + "matplotlib", + "networkx", + "pydantic", + "ruamel.yaml", + + # Snitch cluster requirements + "json5", + "jsonref", + "jsonschema", + + # Cheshire requirements + "pyyaml", + "flatdict", + "tabulate", + + # Miscellaneous requirements + "hjson", + + # For peakrdl + "peakrdl", + "peakrdl-rawheader @ git+https://github.com/colluca/PeakRDL-rawheader.git@7b8dbc9ad5854dc1cdaf36d4ea024c29ffb00a4c", + "peakrdl-markdown", +] + +[tool.setuptools] +packages = [] +include-package-data = false diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 78565385..00000000 --- a/requirements.txt +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2025 ETH Zurich and University of Bologna. -# Solderpad Hardware License, Version 0.51, see LICENSE for details. -# SPDX-License-Identifier: SHL-0.51 - -# FlooNoC requirements -click -mako -matplotlib -networkx -pydantic -ruamel.yaml - -# Snitch cluster requirements -json5 -jsonref -jsonschema - -# Cheshire requirements -pyyaml -flatdict -tabulate - -# Miscellaneous requirements -hjson # for reggen - -# For peakrdl -peakrdl -peakrdl-rawheader @ git+https://github.com/colluca/PeakRDL-rawheader.git@7b8dbc9ad5854dc1cdaf36d4ea024c29ffb00a4c -peakrdl-markdown