Skip to content

feat: add Nix support for reproducible builds #386

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

willyrgf
Copy link

@willyrgf willyrgf commented Jun 30, 2025

Packaging the repository apps with Nix enables people to easily run these apps and extend them for other workflows.
A few tests pointing to my fork and commit (correct path if merged is in committed README.md):

# running gdformat
nix run 'github:willyrgf/godot-gdscript-toolkit/4fe2a357831130d774f74942809577e7408f6742#gdformat' script.gd
0 files reformatted, 1 file left unchanged.
# running default app will show a helper
❯ nix run 'github:willyrgf/godot-gdscript-toolkit/4fe2a357831130d774f74942809577e7408f6742'

GDScript Toolkit - Available commands:

Usage: nix run github:Scony/godot-gdscript-toolkit#<command> -- [args]

Available commands:
  gdparse   - GDScript parser for debugging and educational purposes
  gdlint    - GDScript linter that performs static analysis
  gdformat  - GDScript formatter that formats code according to predefined rules
  gd2py     - GDScript to Python transpiler
  gdradon   - GDScript code complexity analysis (calculates cyclomatic complexity)

Examples:
  nix run github:Scony/godot-gdscript-toolkit#gdformat -- --help
  nix run github:Scony/godot-gdscript-toolkit#gdlint -- myfile.gd
  nix run github:Scony/godot-gdscript-toolkit#gdparse -- myfile.gd -p

For local development:
  nix develop  # Enter development shell with all tools available
# all apps for --all-systems
❯ nix flake show 'github:willyrgf/godot-gdscript-toolkit/4fe2a357831130d774f74942809577e7408f6742' --all-systems
github:willyrgf/godot-gdscript-toolkit/4fe2a357831130d774f74942809577e7408f6742?narHash=sha256-rtyKi7OtZrxfXUw55Gu8i5nvDGSPBH1Ycz5FAXJpThg%3D
├───apps
│   ├───aarch64-darwin
│   │   ├───default: app: Show available GDScript Toolkit commands
│   │   ├───gdformat: app: GDScript formatter
│   │   ├───gdlint: app: GDScript linter
│   │   ├───gdparse: app: GDScript parser
│   │   ├───gdradon: app: GDScript code complexity analysis
│   │   └───help: app: Show available GDScript Toolkit commands
│   ├───aarch64-linux
│   │   ├───default: app: Show available GDScript Toolkit commands
│   │   ├───gdformat: app: GDScript formatter
│   │   ├───gdlint: app: GDScript linter
│   │   ├───gdparse: app: GDScript parser
│   │   ├───gdradon: app: GDScript code complexity analysis
│   │   └───help: app: Show available GDScript Toolkit commands
│   ├───x86_64-darwin
│   │   ├───default: app: Show available GDScript Toolkit commands
│   │   ├───gdformat: app: GDScript formatter
│   │   ├───gdlint: app: GDScript linter
│   │   ├───gdparse: app: GDScript parser
│   │   ├───gdradon: app: GDScript code complexity analysis
│   │   └───help: app: Show available GDScript Toolkit commands
│   └───x86_64-linux
│       ├───default: app: Show available GDScript Toolkit commands
│       ├───gdformat: app: GDScript formatter
│       ├───gdlint: app: GDScript linter
│       ├───gdparse: app: GDScript parser
│       ├───gdradon: app: GDScript code complexity analysis
│       └───help: app: Show available GDScript Toolkit commands
├───devShells
│   ├───aarch64-darwin
│   │   └───default: development environment 'gdtoolkit-dev-env'
│   ├───aarch64-linux
│   │   └───default: development environment 'gdtoolkit-dev-env'
│   ├───x86_64-darwin
│   │   └───default: development environment 'gdtoolkit-dev-env'
│   └───x86_64-linux
│       └───default: development environment 'gdtoolkit-dev-env'
└───packages
    ├───aarch64-darwin
    │   ├───default: package 'python3.13-gdtoolkit-4.3.4'
    │   └───gdtoolkit: package 'python3.13-gdtoolkit-4.3.4'
    ├───aarch64-linux
    │   ├───default: package 'python3.13-gdtoolkit-4.3.4'
    │   └───gdtoolkit: package 'python3.13-gdtoolkit-4.3.4'
    ├───x86_64-darwin
    │   ├───default: package 'python3.13-gdtoolkit-4.3.4'
    │   └───gdtoolkit: package 'python3.13-gdtoolkit-4.3.4'
    └───x86_64-linux
        ├───default: package 'python3.13-gdtoolkit-4.3.4'
        └───gdtoolkit: package 'python3.13-gdtoolkit-4.3.4'

Really useful apps btw, thank you for all your work.

@willyrgf willyrgf changed the title nixifying project feat: add Nix support for reproducible builds Jun 30, 2025
@willyrgf willyrgf marked this pull request as ready for review June 30, 2025 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant