v2.0.0
After a month of work and over 120 commits, I have finished rewriting and improving the entirety of Swift Bundler 🎉
For a nice overview of the changes go and read my blog post.
Improvements
- Better configuration format
- Help messages are more useful
- Error messages are more descriptive
- Commands are more intuitive
- Command line output is colourful!
- Improved consistency between SwiftPM and Xcode builds
- Automatic migration from old configuration format (
Bundle.json
) to new configuration format (Bundler.toml
) - Swift Bundler is now released under the more permissive
Apache 2.0
- Swift Bundler is less opinionated about the layout of your project and the only requirement is that
Bundler.toml
is in the root directory - The chance of fatal errors occurring has been significantly reduced by avoiding all force unwraps (and similar), and removing many other sources of fatal errors
New features
- Package templates
- Commands give tips on what to do next
- Multi-app packages
- Plist entries can contain variables (e.g.
{COMMIT_HASH}
can be used to insert the current commit hash into the Info.plist at build time) - Option to set indentation style when creating a new package
- Stylish and helpful command-line output
- Documentation site
Internal changes
- Swift Bundler is now written in a functional style for maximum reusability and maintainability
Result
-based error handling is now used instead ofthrows
to ensure that error messages are always descriptive and always have user-friendly error messages- All errors implement
errorDescription
- The monolithic
Bundler
type has been split into several smaller self-contained utilities - All child processes are terminated when the
swift-bundler
process is killed - Errors are now propagated instead of just terminating the process when the error occurs, allowing for centralised error handling