Skip to content

v2.0.0

Compare
Choose a tag to compare
@stackotter stackotter released this 02 Apr 11:52
· 160 commits to main since this release
0f03132

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 of throws 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