|
2 | 2 | channels = ["conda-forge"] |
3 | 3 | platforms = ["linux-64", "osx-arm64"] |
4 | 4 |
|
5 | | -[feature.docs.dependencies] |
6 | | -python = ">=3.13.3,<3.14" |
| 5 | +[dependencies] |
| 6 | +python = ">=3.11.3,<3.12" |
| 7 | +# Add some useful development dependencies to most environments |
| 8 | +pip = ">=25.1.1" |
| 9 | +ipython = ">=9.2.0" |
| 10 | +# Ensure these packages are installed using conda instead of pip |
| 11 | +python-gfal2 = "*" |
| 12 | +m2crypto = "*" |
7 | 13 |
|
8 | | -[feature.docs.pypi-dependencies] |
| 14 | +# DiracX features for providing dependencies |
| 15 | +[feature.diracx.pypi-dependencies] |
| 16 | +diracx = { path = ".", editable = true, extras = ["testing"] } |
| 17 | +[feature.diracx-core.pypi-dependencies] |
| 18 | +diracx-core = { path = "diracx-core", editable = true, extras = ["testing"] } |
| 19 | +diracx-testing = { path = "diracx-testing", editable = true } |
| 20 | +[feature.diracx-cli.pypi-dependencies] |
| 21 | +diracx-cli = { path = "diracx-cli", editable = true, extras = ["testing"] } |
| 22 | +[feature.diracx-api.pypi-dependencies] |
| 23 | +diracx-api = { path = "diracx-api", editable = true, extras = ["testing"] } |
| 24 | +[feature.diracx-client.pypi-dependencies] |
| 25 | +diracx-client = { path = "diracx-client", editable = true, extras = ["testing"] } |
| 26 | +[feature.diracx-db.pypi-dependencies] |
| 27 | +diracx-db = { path = "diracx-db", editable = true, extras = ["testing"] } |
| 28 | +[feature.diracx-logic.pypi-dependencies] |
| 29 | +diracx-logic = { path = "diracx-logic", editable = true, extras = ["testing"] } |
| 30 | +[feature.diracx-routers.pypi-dependencies] |
| 31 | +diracx-routers = { path = "diracx-routers", editable = true, extras = ["testing"] } |
| 32 | + |
| 33 | +# DiracX features for providing tasks. This is needed to make it so that running |
| 34 | +# "pixi run pytest-diracx-core -vvv --pdb" passes the arguments as expected. |
| 35 | +# See: https://github.com/prefix-dev/pixi/issues/1519#issuecomment-2651078457 |
| 36 | +[feature.task-diracx.tasks.pytest-diracx] |
| 37 | +cmd = "pytest" |
| 38 | +[feature.task-diracx-core.tasks.pytest-diracx-core] |
| 39 | +cmd = "cd diracx-core/ && pytest" |
| 40 | +[feature.task-diracx-cli.tasks.pytest-diracx-cli] |
| 41 | +cmd = "cd diracx-cli/ && pytest" |
| 42 | +[feature.task-diracx-api.tasks.pytest-diracx-api] |
| 43 | +cmd = "cd diracx-api/ && pytest" |
| 44 | +[feature.task-diracx-client.tasks.pytest-diracx-client] |
| 45 | +cmd = "cd diracx-client/ && pytest" |
| 46 | +[feature.task-diracx-db.tasks.pytest-diracx-db] |
| 47 | +cmd = "cd diracx-db/ && pytest" |
| 48 | +[feature.task-diracx-logic.tasks.pytest-diracx-logic] |
| 49 | +cmd = "cd diracx-logic/ && pytest" |
| 50 | +[feature.task-diracx-routers.tasks.pytest-diracx-routers] |
| 51 | +cmd = "cd diracx-routers/ && pytest" |
| 52 | + |
| 53 | +# Gubbins features for providing dependencies |
| 54 | +[feature.gubbins.pypi-dependencies] |
| 55 | +gubbins = { path = "extensions/gubbins", editable = true, extras = ["testing"] } |
| 56 | +[feature.gubbins-core.pypi-dependencies] |
| 57 | +gubbins-core = { path = "extensions/gubbins/gubbins-core", editable = true, extras = ["testing"] } |
| 58 | +gubbins-testing = { path = "extensions/gubbins/gubbins-testing", editable = true } |
| 59 | +[feature.gubbins-cli.pypi-dependencies] |
| 60 | +gubbins-cli = { path = "extensions/gubbins/gubbins-cli", editable = true, extras = ["testing"] } |
| 61 | +[feature.gubbins-api.pypi-dependencies] |
| 62 | +gubbins-api = { path = "extensions/gubbins/gubbins-api", editable = true, extras = ["testing"] } |
| 63 | +[feature.gubbins-client.pypi-dependencies] |
| 64 | +gubbins-client = { path = "extensions/gubbins/gubbins-client", editable = true, extras = ["testing"] } |
| 65 | +[feature.gubbins-db.pypi-dependencies] |
| 66 | +gubbins-db = { path = "extensions/gubbins/gubbins-db", editable = true, extras = ["testing"] } |
| 67 | +[feature.gubbins-logic.pypi-dependencies] |
| 68 | +gubbins-logic = { path = "extensions/gubbins/gubbins-logic", editable = true, extras = ["testing"] } |
| 69 | +[feature.gubbins-routers.pypi-dependencies] |
| 70 | +gubbins-routers = { path = "extensions/gubbins/gubbins-routers", editable = true, extras = ["testing"] } |
| 71 | + |
| 72 | +# Gubbins features for providing tasks. This is needed to make it so that running |
| 73 | +# "pixi run pytest-diracx-core -vvv --pdb" passes the arguments as expected. |
| 74 | +# See: https://github.com/prefix-dev/pixi/issues/1519#issuecomment-2651078457 |
| 75 | +[feature.task-gubbins.tasks.pytest-gubbins] |
| 76 | +cmd = "pytest" |
| 77 | +[feature.task-gubbins-core.tasks.pytest-gubbins-core] |
| 78 | +cmd = "cd extensions/gubbins/gubbins-core/ && pytest" |
| 79 | +[feature.task-gubbins-cli.tasks.pytest-gubbins-cli] |
| 80 | +cmd = "cd extensions/gubbins/gubbins-cli/ && pytest" |
| 81 | +[feature.task-gubbins-api.tasks.pytest-gubbins-api] |
| 82 | +cmd = "cd extensions/gubbins/gubbins-api/ && pytest" |
| 83 | +[feature.task-gubbins-client.tasks.pytest-gubbins-client] |
| 84 | +cmd = "cd extensions/gubbins/gubbins-client/ && pytest" |
| 85 | +[feature.task-gubbins-db.tasks.pytest-gubbins-db] |
| 86 | +cmd = "cd extensions/gubbins/gubbins-db/ && pytest" |
| 87 | +[feature.task-gubbins-logic.tasks.pytest-gubbins-logic] |
| 88 | +cmd = "cd extensions/gubbins/gubbins-logic/ && pytest" |
| 89 | +[feature.task-gubbins-routers.tasks.pytest-gubbins-routers] |
| 90 | +cmd = "cd extensions/gubbins/gubbins-routers/ && pytest" |
| 91 | + |
| 92 | +# Features for generating the documentation |
| 93 | +[feature.mkdocs.pypi-dependencies] |
9 | 94 | mkdocs-material = "*" |
10 | 95 | mkdocs-diracx-plugin = { git = "https://github.com/DIRACGrid/mkdocs-diracx-plugin.git", branch = "master"} |
| 96 | +[feature.mkdocs.tasks] |
| 97 | +mkdocs = "mkdocs serve" |
| 98 | + |
| 99 | +# Features for running pre-commit hooks |
| 100 | +[feature.pre-commit.dependencies] |
| 101 | +pre-commit = "*" |
| 102 | +[feature.pre-commit.tasks] |
| 103 | +pre-commit = "pre-commit" |
| 104 | + |
| 105 | +# Features for generating the clients |
| 106 | +[feature.client-gen.dependencies] |
| 107 | +nodejs = ">=10.9.2" |
| 108 | +pre-commit = "*" |
| 109 | +[feature.client-gen.tasks.generate-client] |
| 110 | +cmd = "python -m diracx.testing.client_generation" |
| 111 | +env = { AUTOREST_HOME = "$CONDA_PREFIX/.autorest" } |
| 112 | + |
| 113 | +# Features for running shellcheck |
| 114 | +[feature.shellcheck.dependencies] |
| 115 | +shellcheck = "*" |
| 116 | +[feature.shellcheck.tasks] |
| 117 | +shellcheck = "find . -not -wholename './.pixi/*' -name '*.sh' -print -exec shellcheck --exclude=SC1090,SC1091 --external-source '{}' ';'" |
11 | 118 |
|
12 | 119 | [environments] |
13 | | -docs = ["docs"] |
| 120 | +# DiracX environments |
| 121 | +default = {features = ["task-diracx", "diracx", "diracx-core", "diracx-api", "diracx-cli", "diracx-client", "diracx-db", "diracx-logic", "diracx-routers"], solve-group = "diracx"} |
| 122 | +diracx-core = {features = ["task-diracx-core", "diracx-core"], solve-group = "diracx"} |
| 123 | +diracx-api = {features = ["task-diracx-api", "diracx-api", "diracx-client", "diracx-core"], solve-group = "diracx"} |
| 124 | +diracx-cli = {features = ["task-diracx-cli", "diracx-cli", "diracx-api", "diracx-client", "diracx-core"], solve-group = "diracx"} |
| 125 | +diracx-client = {features = ["task-diracx-client", "diracx-client", "diracx-core"], solve-group = "diracx"} |
| 126 | +diracx-db = {features = ["task-diracx-db", "diracx-db", "diracx-core"], solve-group = "diracx"} |
| 127 | +diracx-logic = {features = ["task-diracx-logic", "diracx-logic", "diracx-db", "diracx-core"], solve-group = "diracx"} |
| 128 | +diracx-routers = {features = ["task-diracx-routers", "diracx-routers", "diracx-logic", "diracx-db", "diracx-core"], solve-group = "diracx"} |
| 129 | + |
| 130 | +# Gubbins environments |
| 131 | +default-gubbins = {features = ["task-gubbins", "gubbins", "gubbins-core", "gubbins-api", "gubbins-cli", "gubbins-client", "gubbins-db", "gubbins-logic", "gubbins-routers"], solve-group = "gubbins"} |
| 132 | +gubbins-core = {features = ["task-gubbins-core", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 133 | +gubbins-api = {features = ["task-gubbins-api", "diracx-api", "gubbins-api", "diracx-client", "gubbins-client", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 134 | +gubbins-cli = {features = ["task-gubbins-cli", "diracx-cli", "gubbins-cli", "diracx-api", "gubbins-api", "diracx-client", "gubbins-client", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 135 | +gubbins-client = {features = ["task-gubbins-client", "diracx-client", "gubbins-client", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 136 | +gubbins-db = {features = ["task-gubbins-db", "diracx-db", "gubbins-db", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 137 | +gubbins-logic = {features = ["task-gubbins-logic", "diracx-logic", "gubbins-logic", "diracx-db", "gubbins-db", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 138 | +gubbins-routers = {features = ["task-gubbins-routers", "diracx-routers", "gubbins-routers", "diracx-logic", "gubbins-logic", "diracx-db", "gubbins-db", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 139 | + |
| 140 | +diracx-generate-client = {features = ["client-gen", "diracx-client", "diracx-routers", "diracx-logic", "diracx-db", "diracx-core"], solve-group = "diracx"} |
| 141 | +gubbins-generate-client = {features = ["client-gen", "diracx-client", "gubbins-client", "diracx-routers", "gubbins-routers", "diracx-logic", "gubbins-logic", "diracx-db", "gubbins-db", "diracx-core", "gubbins-core"], solve-group = "gubbins"} |
| 142 | + |
| 143 | +# Tooling environments |
| 144 | +mkdocs = ["mkdocs"] |
| 145 | +shellcheck = {features = ["shellcheck"], no-default-feature = true} |
| 146 | +pre-commit = {features = ["pre-commit"], no-default-feature = true} |
14 | 147 |
|
15 | | -[tasks] |
16 | | -docs = { cmd = "mkdocs {{ args }}", args = [{ arg = "args" }]} |
| 148 | +# Meta-tasks for running many tests at once |
| 149 | +[tasks.pytest-diracx-all-one-by-one] |
| 150 | +depends-on = [ |
| 151 | + { task = "pytest-diracx-core", environment = "diracx-core" }, |
| 152 | + { task = "pytest-diracx-api", environment = "diracx-api" }, |
| 153 | + { task = "pytest-diracx-cli", environment = "diracx-cli" }, |
| 154 | + { task = "pytest-diracx-client", environment = "diracx-client" }, |
| 155 | + { task = "pytest-diracx-db", environment = "diracx-db" }, |
| 156 | + { task = "pytest-diracx-logic", environment = "diracx-logic" }, |
| 157 | + { task = "pytest-diracx-routers", environment = "diracx-routers" }, |
| 158 | +] |
17 | 159 |
|
18 | | -[tasks.docs-serve] |
19 | | -depends-on = [{ task = "docs", environment = "docs", args = ["serve"]}] |
| 160 | +[tasks.pytest-gubbins-all-one-by-one] |
| 161 | +depends-on = [ |
| 162 | + { task = "pytest-gubbins-core", environment = "gubbins-core" }, |
| 163 | + { task = "pytest-gubbins-api", environment = "gubbins-api" }, |
| 164 | + { task = "pytest-gubbins-cli", environment = "gubbins-cli" }, |
| 165 | + { task = "pytest-gubbins-client", environment = "gubbins-client" }, |
| 166 | + { task = "pytest-gubbins-db", environment = "gubbins-db" }, |
| 167 | + { task = "pytest-gubbins-logic", environment = "gubbins-logic" }, |
| 168 | + { task = "pytest-gubbins-routers", environment = "gubbins-routers" }, |
| 169 | +] |
0 commit comments