Skip to content

Release v2.6.10 - Organize build output to bin/ directory#38

Merged
ziembor merged 5 commits intomainfrom
b2.6.10
Jan 31, 2026
Merged

Release v2.6.10 - Organize build output to bin/ directory#38
ziembor merged 5 commits intomainfrom
b2.6.10

Conversation

@ziembor
Copy link
Copy Markdown
Owner

@ziembor ziembor commented Jan 31, 2026

Summary

This release improves build organization by centralizing all binary outputs to a dedicated bin/ subdirectory, following Go community best practices.

Changes

Build Organization

  • Build Script: Updated build-all.ps1 to automatically create bin/ directory and output all executables there
  • .gitignore: Added bin/ to ignore list, keeping the repository clean
  • Documentation: Updated BUILD.md with new bin/ paths in all examples
  • CI/CD: Updated GitHub Actions workflow to build to bin/ and package from there

Benefits

  • Cleaner root directory - No more scattered .exe files in project root
  • Standard Go structure - Follows Go community conventions for build output
  • Easier cleanup - Simply delete bin/ to remove all build artifacts
  • CI/CD consistency - Same output location locally and in GitHub Actions

Build Output Location

All 5 tools now build to:

  • bin/msgraphtool.exe
  • bin/smtptool.exe
  • bin/imaptool.exe
  • bin/pop3tool.exe
  • bin/jmaptool.exe

Usage

# Build all tools
.\build-all.ps1

# Run from bin directory
.\bin\msgraphtool.exe -version
.\bin\smtptool.exe -action testconnect -host smtp.example.com -port 25

Files Changed

  • .github/workflows/build.yml - Updated CI/CD pipeline
  • .gitignore - Added bin/ directory
  • BUILD.md - Updated documentation with bin/ paths
  • build-all.ps1 - Updated to create and use bin/
  • internal/common/version/version.go - Bumped to 2.6.10

Testing

✅ All 5 tools built successfully to bin/ directory
✅ Version verification passed (2.6.10)
✅ Build script output correct

Generated with Claude Code

ziembor and others added 5 commits January 31, 2026 04:51
Improved build organization by centralizing all binary outputs to a dedicated bin/ directory:

Changes:
- Updated build-all.ps1 to create and output all binaries to bin/
- Updated .gitignore to exclude bin/ directory
- Updated BUILD.md documentation with new bin/ paths in all examples
- Updated GitHub Actions workflow to build to bin/ and package from there
- Added automatic bin/ directory creation in build script

Benefits:
- Cleaner project root directory
- Consistent local and CI/CD build output location
- Standard Go project structure
- Easier to manage and clean build artifacts

All 5 tools now build to:
- bin/msgraphtool.exe
- bin/smtptool.exe
- bin/imaptool.exe
- bin/pop3tool.exe
- bin/jmaptool.exe

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Version update for build output organization improvements.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@ziembor ziembor merged commit b9094ae into main Jan 31, 2026
4 of 5 checks passed
@ziembor ziembor deleted the b2.6.10 branch January 31, 2026 10:41
@claude
Copy link
Copy Markdown

claude bot commented Jan 31, 2026

Pull Request Review: Release v2.6.10 - Organize build output to bin/ directory

Overall Assessment

APPROVED - This is a well-executed refactoring that improves build organization and follows Go community best practices.

Code Quality and Best Practices

✅ Strengths

  1. Follows Go Conventions: Moving build artifacts to bin/ directory aligns with standard Go project structure
  2. Consistent Implementation: Changes are applied uniformly across all 5 tools
  3. Documentation Updated: BUILD.md properly reflects all new paths and usage examples
  4. CI/CD Consistency: GitHub Actions workflow updated to match local build behavior
  5. Clean .gitignore: Properly ignores bin/ directory while maintaining backward compatibility comments

📝 Minor Observations

  1. Version Jump: Version bumped from 2.6.7 → 2.6.10 (skipping 2.6.8 and 2.6.9)
    • Issue: Missing changelog entries for 2.6.8, 2.6.9, and 2.6.10
    • Repository Policy Violation: According to AGENTS.md lines 69-76, version updates require creating changelog entries
    • Recommendation: Add ChangeLog/2.6.10.md documenting these build organization changes

Potential Bugs or Issues

🔴 CRITICAL ISSUE: Inconsistent ZIP Archive Structure Between Platforms

Location: .github/workflows/build.yml:136-142

  • Windows ZIP: Will contain bin\ subdirectory with executables
  • Linux/macOS ZIP: Will have executables at root level

The Windows Compress-Archive command uses paths like bin\msgraphtool.exe which will create a bin\ folder in the ZIP, while the Linux/macOS version does cd bin first, so binaries end up at root level.

Recommendation: Update Windows ZIP creation to match Linux/macOS structure by cd into bin first, then use relative paths.

✅ No Other Bugs Found

  • All path references properly updated
  • Build script correctly creates bin/ directory before use
  • Error handling preserved in verification steps

Performance Considerations

✅ No performance impact - changes are purely organizational

Security Concerns

✅ No security issues identified

Test Coverage

⚠️ Missing Test Coverage:

  1. Archive structure verification - no evidence that extracted ZIPs were tested
  2. Cross-platform testing - unclear if both Windows and Linux/macOS archive creation was tested
  3. CI/CD pipeline - should verify GitHub Actions workflow runs successfully

Summary of Recommendations

🔴 Critical (Fix Before Merge)

  1. Fix Windows ZIP archive creation to match Linux/macOS structure (binaries at root level)

🟡 Important (Should Fix)

  1. Add missing changelog: Create ChangeLog/2.6.10.md
  2. Verify CI/CD: Ensure GitHub Actions workflow runs successfully

🟢 Nice-to-Have

  1. Consider adding a comment in build.yml explaining the two-step ZIP creation process

Conclusion

This PR represents a positive improvement to project organization. The main concern is the platform-inconsistent ZIP archive structure which should be addressed before merging.

Great work on maintaining consistent documentation updates across BUILD.md!

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