69 lines
1.2 KiB
Markdown
69 lines
1.2 KiB
Markdown
# Development
|
|
|
|
Install `uv`, and then execute
|
|
|
|
``` sh
|
|
uv sync
|
|
```
|
|
|
|
## Environment
|
|
|
|
To get a development environment, run
|
|
``` sh
|
|
uv venv
|
|
```
|
|
|
|
Then, either follow the instruction to activate this venv, or install `direnv`
|
|
and create the file
|
|
|
|
``` sh
|
|
# .envrc
|
|
source .venv/bin/activate
|
|
```
|
|
|
|
Test the environment with `python3 -c "import nhf"`
|
|
|
|
To visualize an object, create a file `visualize.py`, and run `cq-editor`:
|
|
|
|
``` sh
|
|
CQ-editor visualize.py
|
|
```
|
|
|
|
## Folder Structure
|
|
|
|
- `nhf/parts/`: Ready-made parts
|
|
- `nhf/$WORK/$CHARACTER`: Design for an individual character
|
|
|
|
For each individual character, the `__main__.py` script stores the overall build
|
|
entry point and the entry point for all unit tests. Do not put build scripts in
|
|
`__init__.py`
|
|
|
|
### Testing
|
|
|
|
Run all tests with
|
|
``` sh
|
|
unittest-parallel
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Wayland
|
|
|
|
If there is the error
|
|
```
|
|
X Error of failed request: BadWindow (invalid Window parameter)
|
|
Major opcode of failed request: 3 (X_GetWindowAttributes)
|
|
Resource id in failed request: 0x3
|
|
Serial number of failed request: 28
|
|
Current serial number in output stream: 29
|
|
```
|
|
Export the environment variable
|
|
|
|
``` sh
|
|
export QT_QPA_PLATFORM=xcb
|
|
```
|
|
|
|
|
|
|
|
|