Skip to content

Commit 72bb3c1

Browse files
committed
Add kown issue(s) regarding nox task runner
1 parent 6dba4a8 commit 72bb3c1

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

doc/design.rst

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,8 @@ _________________
211211
- Sets up an appropriate poetry based python environment
212212

213213

214-
Known Issues (Sins)
215-
--------------------
214+
Known Issues
215+
------------
216216

217217
This section documents flaws, sins, and known issues with the current design and/or its current implementation that were either known upfront or surfaced through the course of implementing it. Additionally, it attempts to explain why certain choices were made at the time, so one can better understand whether it may be reasonable to make changes now or in the future.
218218

@@ -299,22 +299,41 @@ Refinement:
299299
Nox Task Runner
300300
+++++++++++++++
301301

302+
**Description:**
303+
While Nox isn't a perfect fit, it still meets most of our requirements for a task runner.
304+
302305
**Downsides:**
303306

304-
- Imports over top-level modules are problematic as all are imported.
307+
- Imports over top-level modules are problematic as all contained tasks are imported.
308+
- Passing and receiving additional arguments to a task is clunky.
309+
- The default behavior of creating a venv for tasks is undesirable.
310+
- Nox does not support grouping.
305311

306-
**Rationale:**
312+
**Rationale/History:**
307313

308-
- Nox serves as a task runner or means to define tasks.
314+
Why Nox was choosen:
309315

310-
**History:**
316+
- No Additional Language(s) Required: There was no need to introduce extra programming languages or binaries, simplifying the development process.
317+
- Python-based: Being Python-based, Nox can be extended and understood by Python developers.
318+
- Python code: As Nox tasks are defined via Python code, existing scripts can be reused and code can be shared easily.
319+
- Simplicity: Nox is relatively "small" in functionality, making it somewhat simple to use and understand.
320+
321+
**Ideas/Solutions:**
311322

312-
- Use of Nox needed for task assignment. However, it presented issues with handling module imports at the top level.
323+
Grouping:
313324

314-
**Ideas/Possible Solutions:**
325+
Since Nox doesn't natively support task grouping, we need a strategy to group commands.
326+
Therefore, a naming convention to indicate grouping should be adopted.
327+
328+
Suggestion: Groups will be separated using a :code:`:` (colon) because :code:`-` (dash) might already be used within task names.
329+
330+
Imports:
331+
332+
Consider modularizing tasks to handle top-level imports better.
333+
334+
Others Issues:
315335

316-
- Investigate other task runners that might address these import issues more efficiently.
317-
- Consider modularization of tasks to handle top-level imports better.
336+
Generally, one may consider addressing the other issues by choosing another task runner or creating a small set of CLI tools and extension points manually provided by the toolbox.
318337

319338

320339
Poetry for Project Management

0 commit comments

Comments
 (0)