Skip to content

Commit 51ca4f2

Browse files
Merge pull request #29 from nikolainobadi/update-change-log
Update change log
2 parents 340b900 + 4671db1 commit 51ca4f2

File tree

4 files changed

+80
-92
lines changed

4 files changed

+80
-92
lines changed

CHANGELOG.md

Lines changed: 74 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,97 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
## [0.10.0] - 2025-09-10
10+
## [0.9.2] - 2025-09-10
1111

1212
### Added
13-
- AI-powered release notes generation using Claude Code CLI
14-
- Configuration option to enable/disable AI release functionality
15-
- Comprehensive test suite reorganization and base classes for shared folder management
16-
- New `nnex config set-ai-release-enabled` and `nnex config show-ai-release-enabled` commands
17-
- Changelog guidelines documentation for consistent release notes
18-
19-
### Changed
20-
- Test infrastructure improved to use `xcodebuild` instead of `swift test` for SwiftData compatibility
21-
- Publish workflow now includes optional AI-generated release notes as fourth option
22-
- Test suite architecture consolidated with shared patterns and utilities
23-
- Enhanced mock shell command mapping for better test reliability
13+
- Project changelog documentation
2414

2515
### Fixed
26-
- Flaky tests related to temporary folder cleanup in publish tests
27-
- Formula path update restored in PublishInfoLoader for proper Homebrew integration
28-
- Test environment issues with proper mock factory parameter passing
29-
30-
### Security
31-
- Removed unused AI changelog generator functionality to reduce attack surface
16+
- Formula path update in publish workflow for proper Homebrew integration
3217

3318
## [0.9.1] - 2025-09-02
3419

3520
### Fixed
36-
- Test hang bug with comprehensive error handling improvements in ProjectBuilder
21+
- Application hang during project building operations
3722

3823
## [0.9.0] - 2025-08-26
3924

4025
### Added
4126
- Binary archiving with tar.gz compression for releases
4227
- Binary stripping functionality to reduce executable size
43-
- Comprehensive execution manager architecture for build, publish, and create-tap operations
44-
- Executable name resolution service for automatic binary naming
4528
- Binary copy utilities with desktop and custom output location support
46-
- Enhanced SwiftData test isolation with unique stores per test
47-
48-
### Changed
49-
- Major folder reorganization with improved separation between Commands, Core, Domain, and Infrastructure layers
50-
- Build command moved from `BuildExecutable/` to `BuildCommand/` folder structure
51-
- All helper classes reorganized into appropriate domain layers (Handlers, Services, Utilities)
52-
- Consistent manager pattern implementation across all major commands
53-
- Enhanced test architecture with better mock factory support
5429

5530
### Fixed
5631
- Binary uploading to ensure consistent SHA256 between formula and GitHub releases
5732
- GitHub release creation workflow with proper tar.gz asset handling
58-
- Test suite reliability with improved SwiftData context management
59-
- CreateTap command functionality and associated test coverage
33+
- CreateTap command functionality
34+
35+
### Security
36+
- Binary stripping removes debug symbols reducing attack surface
37+
38+
## [0.8.12] - 2025-08-25
39+
40+
### Added
41+
- Binary stripping functionality to reduce executable size
42+
43+
## [0.8.11] - 2025-08-25
44+
45+
### Fixed
46+
- Binary uploading to ensure consistent SHA256 between formula and GitHub releases
47+
48+
## [0.8.10] - 2025-08-25
49+
50+
### Added
51+
- Binary archiving with tar.gz compression format
52+
53+
## [0.8.9] - 2025-08-25
54+
55+
### Fixed
56+
- GitHub release creation workflow with proper binary uploading
57+
58+
## [0.8.8] - 2025-08-25
59+
60+
### Added
61+
- Support for uploading multiple binaries in single GitHub release
6062

61-
### Security
62-
- Binary stripping removes debug symbols reducing attack surface
63+
## [0.8.7] - 2025-08-16
64+
65+
### Fixed
66+
- Auto version incrementing bug
67+
68+
## [0.8.6] - 2025-08-16
69+
70+
### Added
71+
- Auto version incrementing with commit and push during publish workflow
72+
73+
## [0.8.5] - 2025-08-11
74+
75+
### Added
76+
- Automatic version incrementing functionality
77+
78+
## [0.8.4] - 2025-08-11
79+
80+
### Added
81+
- Archive command for macOS binary packaging
82+
- Formula name sanitation for proper Homebrew formula generation
83+
84+
## [0.8.3] - 2025-07-13
85+
86+
### Added
87+
- Version command to display current tool version
88+
- Enhanced build command with improved error handling
89+
90+
## [0.8.2] - 2025-04-27
91+
92+
### Fixed
93+
- Formula path synchronization bug during publish workflow
94+
95+
## [0.8.1] - 2025-04-27
96+
97+
### Fixed
98+
- Project folder path consistency issues
99+
100+
## [0.8.0] - 2025-04-21
101+
102+
### Added
103+
- Enhanced build command functionality

CLAUDE.md

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -112,39 +112,13 @@ The tool supports multiple build configurations:
112112
- macOS 14+ minimum deployment target
113113
- Swift 6.0+ required
114114
- Requires Homebrew and GitHub CLI (`gh`) for full functionality
115-
- Optional: Claude Code CLI for AI release notes generation
116-
117-
## AI Integration
118-
119-
### AI Release Notes
120-
The publish workflow includes optional AI-powered release notes generation using Claude Code:
121-
122-
- **Enable AI**: Configure `aiReleaseEnabled` in app settings to show AI option
123-
- **Automatic generation**: AI analyzes git history and project context to create release notes
124-
- **Integration**: Uses `claude code edit` command to generate markdown files
125-
- **Conditional UI**: AI option only appears in picker when feature is enabled
126-
- **Fallback handling**: Graceful degradation when Claude Code CLI unavailable
127-
128-
### AI Architecture
129-
- `AIReleaseNotesHandler`: Core AI functionality for release notes generation
130-
- `ReleaseNotesHandler`: Orchestrates all release notes options including AI
131-
- Conditional enum cases: `NoteContentType.aiGenerated` only available when enabled
132-
- Error handling: `ReleaseNotesError.missingAIRequirements` for validation
133-
- Testing: Comprehensive coverage of AI scenarios in `ReleaseNotesHandlerTests`
134115

135116
## Recent Improvements
136117

137-
### September 2025 - AI Release Notes Integration
138-
- **AI-powered release notes**: Integrated AI release notes generation into the publish workflow
139-
- **Conditional feature availability**: AI options only appear when `aiReleaseEnabled` is configured
140-
- **Comprehensive testing**: Added complete test coverage for AI functionality scenarios
141-
- **Clean architecture**: AI integration follows existing dependency injection patterns
142-
143-
### Key AI Features
144-
- Four release notes options: Direct input, file path, create new file, and AI generation
145-
- AI option uses Claude Code to generate release notes from git history and project context
146-
- Backward compatibility maintained - existing workflows unchanged when AI disabled
147-
- Error handling for missing AI requirements (release number, project path, shell)
118+
### September 2025 - Documentation and Maintenance
119+
- **Project changelog**: Added comprehensive changelog documentation with complete project history
120+
- **Test infrastructure**: Improved test suite reliability and organization
121+
- **Documentation updates**: Updated project documentation and removed unused features
148122

149123
### August 2024 - Architecture Refactoring
150124
- **Improved folder organization**: Clear separation between Commands, Core, Domain, and Infrastructure layers
@@ -156,7 +130,6 @@ The publish workflow includes optional AI-powered release notes generation using
156130
- Test infrastructure improved with `@MainActor` pattern for SwiftData compatibility
157131
- Fixed test environment issues with proper mock factory parameter passing
158132
- All execution managers now have comprehensive unit test coverage
159-
- Removed legacy `AIChangeLogGenerator` functionality from publish workflow
160133

161134
### Known Issues
162135
- SwiftData may show "Unable to determine Bundle Name" errors at the end of test runs (tests still execute successfully)

README.md

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,13 @@ With a single command, **nnex** handles it all:
1313
- ✅ Create a new Homebrew tap if needed.
1414
- ✅ Create a GitHub release and attach the binary asset.
1515
- ✅ Generate and upload a Homebrew formula to your Homebrew tap.
16-
- ✅ AI-powered release notes generation (optional).
1716

1817
Instead of manually managing taps and formulae, let **nnex** do the heavy lifting for you.
1918
**nnex** also supports importing your own Homebrew taps to leverage existing setups.
2019

2120
**nnex** requires both **Homebrew** and the **GitHub CLI (gh)** to function properly. Please ensure they are installed and configured on your system before using **nnex** (you'll be prompted to install them if you use **nnex** without them).
2221

23-
For AI-powered release notes generation, **Claude Code CLI** is also required and can be enabled in app settings.
24-
25-
**Stability Notice (v0.9.1)**
22+
**Stability Notice (v0.9.2)**
2623
`nnex` is functional and ready to use, but its features and API may evolve as it becomes more flexible and robust.
2724
Breaking changes are possible before reaching v1.0.0.
2825
Your feedback and suggestions are welcome as the project continues to improve!
@@ -85,19 +82,6 @@ If a required option is not specified, `nnex` will prompt you to enter it intera
8582

8683
If both `--notes` and `--notes-file` are provided, the command will throw an error since they are mutually exclusive.
8784

88-
#### AI Release Notes
89-
When enabled in app settings, the publish command offers an additional AI-powered option for generating release notes:
90-
91-
- **Automatic Generation**: AI analyzes git history, commits, and project context
92-
- **Claude Code Integration**: Uses the Claude Code CLI to create comprehensive release notes
93-
- **Smart Parsing**: Can extract existing release notes from CHANGELOG.md if available
94-
- **Fallback Support**: Gracefully handles missing dependencies or configuration
95-
96-
To enable AI release notes:
97-
1. Install Claude Code CLI
98-
2. Configure `aiReleaseEnabled` setting in the app
99-
3. During publish, select "Generate with AI" from the release notes options
100-
10185
For more details and advanced usage, refer to the [Command Reference](./docs/COMMANDS.md).
10286

10387
## Config Commands
@@ -121,16 +105,6 @@ To set the default binary build type:
121105
nnex config set-build-type release
122106
```
123107

124-
To enable AI-powered release notes generation:
125-
```bash
126-
nnex config set-ai-release-enabled true
127-
```
128-
129-
To check if AI release notes are enabled:
130-
```bash
131-
nnex config show-ai-release-enabled
132-
```
133-
134108
## Contributing
135109

136110
Contributions are welcome! If you'd like to improve a command, add new integrations, or fix bugs:

Sources/nnex/Commands/Main/nnex.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import ArgumentParser
99
struct Nnex: ParsableCommand {
1010
static let configuration = CommandConfiguration(
1111
abstract: "Utility to manage swift command line tools and streamline distrubution with Homebrew.",
12-
version: "v0.10.0",
12+
version: "v0.9.2",
1313
subcommands: [
1414
Brew.self,
1515
Build.self,

0 commit comments

Comments
 (0)