Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

80 changes: 80 additions & 0 deletions Docs/implementation_progress_2025-05-19.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## Completed

- Added file association for .wfl files in MSI installer
- Created MSI build launcher script in Tools directory (`launch_msi_build.py`)
- Created automated MSI installer build script for Windows (`build_msi.ps1`)
- Resolved version conflict issues in WiX Toolset configuration
- Implemented proper dependency checking for WiX Toolset and cargo-wix
Expand All @@ -23,7 +25,13 @@

## Technical Details

- Created new MSI build launcher (`launch_msi_build.py`) with version management and documentation features
- Added automatic implementation progress updating to track build attempts
- Provided a unified command-line interface for version control and MSI building
- MSI installer now properly packages WFL with version 2025.4
- Added .wfl file association to MSI installer for seamless script execution
- Configured file icons for WFL script files
- Added both Open and Edit verbs to allow direct execution or editing of .wfl files
- Default configuration file is included in the installer
- Installer properly updates system PATH variable
- WiX source files are automatically generated if missing
Expand Down Expand Up @@ -87,3 +95,75 @@
4. Enhance automated testing for the installer
5. Add telemetry collection option (opt-in)
6. Add automated release notes generation based on commits

## MSI Build - 08:53:23

- Version: 2025.6

## MSI Build - 08:53:49

- Version: 2025.6

## MSI Build - 09:01:49

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`


## MSI Build - 09:02:06

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`

## MSI Build - 09:14:54

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`


## MSI Build - 09:19:44

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`


## MSI Build - 09:20:39

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`


## MSI Build - 09:22:20

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`


## MSI Build - 09:23:01

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`


## MSI Build - 09:28:04

- Version: 2025.6
- Status: SUCCESS
- Output: `target/x86_64-pc-windows-msvc/release/wfl-2025.6.msi`

## Parser Enhancement - 2025-05-20

- Added support for the `open file at "path" as variable` syntax in the parser
- This enhances the file handling capabilities to support both:
- `open file at "path" and read content as variable` (for reading)
- `open file at "path" as variable` (for obtaining a file handle)
- Updated error messages to be more descriptive when parsing file operations
- Added comprehensive tests to verify both syntaxes work properly
- Fixed compatibility with Nexus.wfl integration test script
29 changes: 29 additions & 0 deletions Docs/wfl-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,32 @@ if (-not (Test-Path "wix")) {
}
```

### 5. File Association Configuration

**Issue**: Custom file associations may not be correctly registered or may conflict with existing applications.
**Solution**: The WiX configuration in `wix/main.wxs` handles file associations through ProgId elements.

```xml
<!-- Example file association configuration -->
<Component Id='binary0' Guid='*'>
<File Id='exe0' Name='wfl.exe' KeyPath='yes'/>

<!-- File association is defined at the Component level, not inside the File element -->
<ProgId Id='wfl.wflfile' Description='WFL Script File'>
<Extension Id='wfl' ContentType='application/x-wfl'>
<Verb Id='open' Command='Open' TargetFile='exe0' Argument='"%1"' />
<Verb Id='edit' Command='Edit' TargetFile='exe0' Argument='--edit "%1"' />
</Extension>
</ProgId>
</Component>
```

Key components:
- `ProgId`: Defines the program identifier for the file type
- `Extension`: Specifies the file extension to associate (.wfl)
- `Verb`: Defines actions that can be performed (Open, Edit)
- `Icon` attribute on ProgId: References the executable file (with IconIndex) to use as the file type icon

Copilot AI May 19, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bullet mentions an Icon attribute on ProgId, but the example snippet doesn’t include it. Update the code sample to show the Icon attribute or remove this item to keep docs in sync.

Copilot uses AI. Check for mistakes.

## Versioning

The WFL project uses a comprehensive versioning system that manages version consistency across multiple files:
Expand Down Expand Up @@ -171,6 +197,9 @@ The WFL MSI installer includes the following features:
- WFL compiler and runtime
- Default configuration file
- VS Code extension (optional)
- .wfl file association with application icon
- Double-click to execute .wfl files directly
- Right-click options for opening or editing .wfl files
- PATH environment variable integration
- Customizable installation directory
- Support for 64-bit Windows systems
Expand Down
Loading