You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/design.rst
+29-10Lines changed: 29 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -211,8 +211,8 @@ _________________
211
211
- Sets up an appropriate poetry based python environment
212
212
213
213
214
-
Known Issues (Sins)
215
-
--------------------
214
+
Known Issues
215
+
------------
216
216
217
217
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.
218
218
@@ -299,22 +299,41 @@ Refinement:
299
299
Nox Task Runner
300
300
+++++++++++++++
301
301
302
+
**Description:**
303
+
While Nox isn't a perfect fit, it still meets most of our requirements for a task runner.
304
+
302
305
**Downsides:**
303
306
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.
305
311
306
-
**Rationale:**
312
+
**Rationale/History:**
307
313
308
-
- Nox serves as a task runner or means to define tasks.
314
+
Why Nox was choosen:
309
315
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:**
311
322
312
-
- Use of Nox needed for task assignment. However, it presented issues with handling module imports at the top level.
323
+
Grouping:
313
324
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:
315
335
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.
0 commit comments