Commit b80204d
feat: Migrate CLI to haskell.nix Infrastructure for Enhanced Build Capabilities (#199)
* feat(cli): Organize event model into enterprise-grade structure
Refactor the monolithic event model in Neo.hs into a proper layered architecture:
- Domain layer: Types, Commands, Events, and Entity logic
- ReadModels layer: Query-optimized views separated by concern
- Maintain clean separation between write and read models
This structure improves maintainability and scalability for enterprise applications.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* wip
* wip
* Enhances Nix development shell with HLS configuration
Adds automatic hie.yaml generation for improved Haskell Language Server integration
Configures direct cradle with proper package database paths and dependencies
Includes informative shell hook messages for better developer experience
Fixes source override path construction for nhcore dependency
* fix build for cli-next
* refactor(nix): extract common configuration into reusable module
Creates shared configuration for GHC options and language extensions
Consolidates project setup logic to reduce code duplication
Streamlines cabal file generation with centralized formatting
Improves maintainability across build and shell environments
* format
* move cli-next out of main repo
* bump
* bump
* Migrate to haskell.nix for user projects
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix CLI parameter naming for remote SHA approach
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* add back a project
* Revert "feat(cli): Use nix instead of file generation for builds (#191)"
This reverts commit be27451.
* docs: improve formatting and remove outdated migration files
Enhances documentation readability by adding proper spacing around headers and sections
Removes obsolete haskell.nix migration documentation and associated Nix configuration files that are no longer needed
* necromancy
* bump
* fix old compilation
* add module to iignore
* bring back haskell.nix
* bump
* Moves static file embedding from File to Text module
Relocates file embedding functionality to better align with its primary use case of generating text content at compile time
Renames the quasi-quoter for clearer intent and adds UTF-8 decoding to handle text files properly
Removes embedding feature from file I/O module to maintain separation of concerns between runtime file operations and compile-time content generation
* Refactors Nix configuration to create reusable project template
Extracts hardcoded project configuration into a generic function that accepts project name and source path as parameters
Moves original project-specific configuration to a new wrapper file that uses the generic template
Enables code reuse across multiple Haskell projects while maintaining the same build configuration
* Adds nixfmt formatting and fixes trailing whitespace
Enables nixfmt-rfc-style hook for consistent Nix code formatting
Removes trailing whitespace from shell function definitions
* compile
* Refactors Haskell project function interface
Changes function signature from positional arguments to named parameters using attribute set
Improves code clarity and maintainability by making function calls more explicit and self-documenting
* refactor(build): consolidate nix configuration and update templates
Moves haskell-project.nix into cli directory and embeds it directly in templates
Removes dependency on external nix files by inlining haskell.nix configuration
Adds cabal.project template for improved dependency management
Updates import formatting for consistency
Simplifies build system by reducing file dependencies and improving portability
* chore(cli-next): remove Nix build configuration
Cleans up project by removing unused Haskell.nix build setup
Adds file to gitignore to prevent future tracking
* Generates cabal project file during build process
Removes hardcoded cabal project configuration and adds dynamic generation through template system
Improves build flexibility by allowing project-specific cabal configurations
* Moves launcher to hidden directory
Relocates executable source from app to .launcher folder
Updates build configuration to use new launcher location
Adds .launcher directory to gitignore
Improves project organization by hiding build artifacts
* Passes Nix expression directly to nix-build command
Removes file-based Nix workflow by eliminating default.nix file creation and writing operations
Passes Nix template directly as command line argument using -E flag instead of creating temporary file
Streamlines build process and reduces filesystem operations
* fix shell
* feat(install): add binary cache support for faster builds
Enhances installation script with configurable binary cache setup to reduce build times from hours to minutes
Prompts user for permission before modifying system Nix configuration
Safely handles existing cache configurations without duplicates
Improves user experience with better feedback and troubleshooting guidance
* fixes
* Use main for now
* bump version
* typo
* use correct path
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent cdb68ce commit b80204d
29 files changed
Lines changed: 530 additions & 345 deletions
File tree
- .vscode
- cli-next
- src
- Neo
- cli
- nix
- src
- Neo
- Build/Templates
- core
- core
- nix
- generators
- utils
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
| 15 | + | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | | - | |
17 | 19 | | |
18 | 20 | | |
19 | 21 | | |
| |||
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
35 | | - | |
36 | | - | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| 26 | + | |
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
| 38 | + | |
35 | 39 | | |
36 | 40 | | |
37 | 41 | | |
38 | 42 | | |
39 | 43 | | |
40 | 44 | | |
| 45 | + | |
41 | 46 | | |
| 47 | + | |
42 | 48 | | |
43 | 49 | | |
44 | 50 | | |
| |||
48 | 54 | | |
49 | 55 | | |
50 | 56 | | |
| 57 | + | |
51 | 58 | | |
52 | 59 | | |
53 | 60 | | |
54 | 61 | | |
55 | 62 | | |
56 | 63 | | |
57 | 64 | | |
| 65 | + | |
58 | 66 | | |
| 67 | + | |
59 | 68 | | |
60 | 69 | | |
61 | 70 | | |
62 | 71 | | |
63 | 72 | | |
64 | 73 | | |
| 74 | + | |
65 | 75 | | |
66 | 76 | | |
67 | 77 | | |
68 | 78 | | |
69 | 79 | | |
| 80 | + | |
70 | 81 | | |
71 | 82 | | |
72 | 83 | | |
| |||
77 | 88 | | |
78 | 89 | | |
79 | 90 | | |
| 91 | + | |
80 | 92 | | |
81 | 93 | | |
82 | 94 | | |
| |||
88 | 100 | | |
89 | 101 | | |
90 | 102 | | |
91 | | - | |
| 103 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
54 | 58 | | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
58 | 62 | | |
59 | 63 | | |
| 64 | + | |
60 | 65 | | |
61 | 66 | | |
62 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
0 commit comments