All Versions
56
Latest Version
Avg Release Cycle
88 days
Latest Release
-

Changelog History
Page 1

  • v6.6.2 Changes

    πŸ”„ Changes in core dependencies of SwiftGen

    πŸ› Bug Fixes

    Internal Changes

    • 🐎 Strings: greatly improve the performance of the new comments parser.
      David Jennes #987 #989
  • v6.6.1 Changes

    πŸ”„ Changes in core dependencies of SwiftGen

    πŸ› Bug Fixes

    • πŸ“œ CLI: fixed run parser when no params or options are provided (broken in 6.6.0).
      David Jennes #983
    • πŸ›  JSON/Plist/YAML: fixed code generation (broken in 6.6.0).
      David Jennes #983
  • v6.6.0 Changes

    πŸ”„ Changes in core dependencies of SwiftGen

    πŸ’₯ Breaking Changes

    • πŸ›  Strings: due to the bugfix for fallback translations, custom lookupFunctions will need to accept 3 arguments (table, key and value), up from 2 arguments (table and key).
      David Jennes #964

    πŸ—„ Deprecations

    • βœ… The Swift 4 templates are now deprecated. This means we will no longer test if the generated output is valid Swift code. We will still try to keep these up-to-date with context changes.
      David Jennes #955
    • πŸ“š Our spacing & trimming "hack" is now considered deprecated, and in the next major version we'll switch to Stencil's new "smart" trimming behaviour (see Stencil documentation for more information). Our built-in templates have already switched to this modern behaviour, you can try it with your own templates by using the --experimental-modern-spacing flag.
      David Jennes #977
    • 🍱 XCAssets: some old properties & parameters are being deprecated. Read the migration guides for more information.
      David Jennes #978

    πŸ†• New Features

    • βž• Added support for --quiet/-q flag, to suppress all logs (except errors).
      Andre113 #823 #846
    • CoreData: ensure generated classes are final when model isn't abstract.
      grsouza #940
    • βž• Added .artifactbundle release uploads to support SE-0325 Swift Plugins.
      nicorichard #913 #926
    • 🌐 Strings: added support for .strings files comments. The built-in templates will now use them for comments instead of the translation of a key.
      CraigSiemens #563 #813
    • πŸ‘ CoreData: support derived attributes.
      David Jennes #928 #961
    • βž• Added an experimental flag --experimental-modern-spacing to enable modern spacing control, see Stencil documentation for more information. It will disable our own trimming "hack", and enable Stencil's "smart" trimming.
      David Jennes #977
    • 🍱 XCAssets & Fonts: added support for SwiftUI. You can now easily access colors images, symbols and custom fonts from your SwiftUI code.
      David Jennes #979

    πŸ› Bug Fixes

    • CoreData: ensure fetched properties use the right class name.
      David Jennes #936 #960
    • CoreData: now correctly generate code for OptionSet attributes by setting the "User Info" key nonOptionalInit to true.
      David Jennes #727 #965
    • Fonts: fix file-type check in sandboxed environments.
      David Jennes #952 #967
    • πŸ›  Fixed Stencil tags that can refer to other templates, such as the include tag.
      David Jennes #950 #959
    • 🌐 Strings: now correctly provides the default translation as fallback.
      David Jennes #381 #937 #964

    Internal Changes

  • v6.5.1 Changes

    πŸ› Bug Fixes

    • β†ͺ Workaround for Mint that does not yet support the SPM resource bundle.
      @tid-kijyun #883 #885

    Internal Changes

    • πŸš€ Tweak release script to handle both universal & slim builds.
      David Jennes #884
  • v6.5.0 Changes

    πŸ”„ Changes in core dependencies of SwiftGen

    πŸ†• New Features

    • 🍱 XCAssets: the parser now supports Symbol sets, so you can safely use custom symbols.
      David Jennes #788
    • 🍱 XCAssets: you can now provide a trait collection when initializing a color or image asset (on iOS/tvOS).
      David Jennes #790
    • πŸ“œ Files: Add new parser for accessing loose files in your project.
      Mike Gray David Jennes #665 #734
    • πŸ“œ Colors: The XML parser now supports Android color aliases (using @color/...).
      David Jennes #562 #797
    • πŸ‘Œ Support M1 and Intel devices (universal binary).
      David Jennes #805 #880

    πŸ› Bug Fixes

    • 🍱 XCAssets: fixed some availability annotations that were incorrect.
      David Jennes #789
    • πŸ“š Strings: objc-h template now emits valid documentation comments.
      @szotp #822
    • Generate xcfilelist: Adds the template file path to the inputs xcfilelist (for custom templates).
      Craig Siemens #815
    • 🌐 Strings: built-in templates now have better handling of multi-line translations.
      @mrackwitz #774

    Internal Changes

  • v6.4.0 Changes

    October 07, 2020

    πŸ†• New Features

    • πŸ“¦ The built-in templates will now correctly handle Swift Package Manager resources, using Bundle.module if it's available. As before, you can override the used Bundle using the bundle or lookupFunction template parameters.
      Arnaud Dorgans #763
    • βž• Added config generate-xcfilelist subcommand to generate input and output xcfilelists based on your configuration file. These files should then be used in an Xcode build step that executes swiftgen config run. Don't forget to regenerate the file lists after adding/removing resources in your project in a way that might impact them.
      @CraigSiemens #441
    • 0️⃣ Colors: the XML parser now accepts a colorFormat option, used to change the color format. The default format is rgba.
      @kevinstier #562 #768
    • 🍎 IB: Added support for instantiating scenes while providing a creator block, commonly used for dependency injection. This feature is available in generated code starting from iOS 13, tvOS 13 and macOS 10.15.
      @matsune David Jennes #778

    πŸ› Bug Fixes

    • ⚑️ Plist: Update the parsing strategy (using Codable) to fix parsing of Bool values as Integer in some cases.
      @fortmarek Olivier Halligon #779
    • πŸ›  JSON/Plist/YAML: fixed issue with inline templates which incorrectly generated 1/0 as values, instead of true/false as expected.
      David Jennes #779 #783
    • πŸ“œ JSON: the parser now correctly recognizes 0 and 1 as Int (instead of Bool).
      David Jennes #786

    Internal Changes

    • ⚑️ Update the Swift version in .swift-version so that the right version is used when building manually (using swiftenv).
      @cfiken #764
    • ⚑️ Update Yams from 3.0.0 to 4.0.0.
      @hungrxyz #772
    • ⚑️ Updated Pods and Gems dependencies, and Xcode 12.
      David Jennes #782
  • v6.3.0 Changes

    August 04, 2020

    πŸ—„ Deprecations

    • πŸš€ Fonts: the generated Font typealias (to UIFont/NSFont) is deprecated and will be removed in the next major release.
      David Jennes
      #728

    πŸ†• New Features

    • πŸ‘ Strings: support for plurals declared in .stringsdict files.
      Florian Fittschen
      #184
      #634
    • πŸ‘ Fonts: the templates now support a new fontTypeName template parameter that you can use to change the name of the struct representing a font to something else.
      David Jennes
      #728
    • πŸš€ Fonts: the templates now support a new fontAliasName that you can use to change the typealias's name from Font to something else. For example: this is useful when working with SwiftUI which already defines a Font type. Note that as this typealias is deprecated (see deprecations above), this template parameter will also be removed in the next major release.
      David Jennes
      #647
      #728
    • πŸ—„ CoreData: Deprecates fetchRequest() and adds makeFetchRequest() to avoid ambiguous function usage.
      David Rothera
      #726
    • 🍎 XCAssets: image assets now load faster on macOS if they're in the main bundle. MacOS only provides a caching mechanism for images in the main bundle, for other cases you may need to provide your own caching mechanism as needed.
      David Jennes
      #648
      #733
    • πŸ“š Fonts/IB/JSON/Plist/Strings/XCAssets: all templates that load data at runtime from a bundle now support a bundle template parameter, which you can use to override the bundle from which resources are loaded. Check out the template specific documentation for more information. For an in-depth explanation, also check the customize loading of resources article.
      David Jennes
      #737
    • πŸ“š Fonts/IB/JSON/Plist: Similar to the strings templates, these templates now support a lookupFunction template parameter, which allows you to provide your own resource lookup mechanism at runtime. Check the template specific documentation for more information. For an in-depth explanation, also check the customize loading of resources article.
      David Jennes
      #738

    πŸ› Bug Fixes

    • Strings: fix incorrect interpretation of format placeholders when there were missing positional parameters (e.g. "%2$@" without a %1$… defined).
      @AliSoftware
      #634
  • v6.2.1 Changes

    July 05, 2020

    πŸ“š There are no major changes in this release, although JSON & Plist template writers may want to read the small migration guide to prepare for upcoming context changes.

    πŸ—„ Deprecations

    • πŸš€ JSON & Plist: if you wrote your own templates, know that the documents property of a file has been deprecated in favour of document. The old documents property will be removed in the next major release.
      David Jennes
      #702
      #732

    πŸ› Bug Fixes

    • 0️⃣ Prevent generating default.profraw (code coverage) files.
      David Jennes
      #722
    • JSON/Plist/YAML: Fix issue with homogeneous Arrays in the Inline templates (such as [String]).
      #687
      @fjtrujy
    • 🍎 Avoid breaking the system swift installation when installing SwiftGen via Homebrew on macOS 10.14.4 or higher.
      David Jennes
      #686
      #730

    Internal Changes

    • πŸ”§ Parsers are now executed in parallel, making SwiftGen faster when multiple parsers are used. Note: only applies when using a configuration file.
      Marcelo Fabri
      #699
    • πŸ“œ Use JSONSerialization instead of Yams for parsing JSONs, making the json parser faster.
      Marcelo Fabri
      #698
    • πŸ“‡ JSON/Plist/YAML: Lazily evaluate metadata of documents, making SwiftGen faster if the metadata field is never used in a template.
      Marcelo Fabri
      #700
  • v6.2.0 Changes

    June 18, 2020

    πŸ”§ ⚠️ This minor version contains a lot of deprecations that may apply to your configuration and how you use SwiftGen. With the exception of swift3 templates (which have been removed), everything should still work as before. But be warned that all features marked as deprecated will be removed in SwiftGen 7.0.

    πŸ“š Read the [SwiftGen 6.2 Migration Guide](Documentation/MigrationGuide.md#migrating-to-swiftgen-62) for a list of changes you'll need to apply.

    πŸ’₯ Breaking Changes

    • As Swift 3 is officially no longer maintained, we're obsoleting the Swift 3 templates and they are no longer included with SwiftGen. You can still use the old swift 3 templates by getting them from older SwiftGen versions, or from GitHub by browsing older tags.
      David Jennes #601 #691

    πŸ—„ Deprecations

    • πŸš€ XCAssets: the colorAliasName and imageAliasName template parameters are now deprecated and will be removed in the next major release.
      David Jennes #614
    • πŸ‘€ The use of swiftgen <parser> (e.g. swiftgen strings, swiftgen xcassets, …) command line for running individual parsers is now deprecated in favor of swiftgen run <parser>. See "New Features" below.
      Olivier Halligon #705
    • 🚚 The subcommand swiftgen templates has been renamed swiftgen template (singular); the plural form of the command has been deprecated and will be removed in next major version.
      Olivier Halligon #697
    • 🚚 The ability for SwiftGen to search custom named templates in ~/Library/Application Support has been deprecated and will be removed in SwiftGen 7.0. This little known feature made SwiftGen dependent on the machine it was running on. Use templatePath to reference custom templates by path instead.
      Olivier Halligon #717

    πŸ†• New Features

    • 🐎 Invoking individual parsers from the command line is now done via swiftgen run <parser>. We still highly recommend to use a configuration file for flexibility and performance reasons in your projects, and only use swiftgen run <parser> for things like quick iterations when writing your own custom templates.
      Olivier Halligon #705
    • You can now easily create a new config file using swiftgen config init. This will create an example and commented config file and open it to let you edit it to your needs. Note that the generated config file is static content which doesn't take the user's project into account (though that might change in the future).
      Olivier Halligon #694
    • πŸ“š You can now use swiftgen template doc [parser] [templateName] on the command line to quickly open the documentation for templates on GitHub directly from your terminal.
      Olivier Halligon #697
    • πŸ“š Each parser now accepts an options dictionary, with which you can set internal parser settings to change its behaviour. See the parser's specific documentation for available options.
      David Jennes #587 #597
    • πŸ“š Strings: the parser now accepts a separator option, used to split keys into structured components. The default separator remains .. For more information, check the [parser's documentation](Documentation/Parsers/strings.md#customization).
      David Jennes #576 #588
    • πŸ“š Core Data: the built-in templates now support an optional extraImports parameter. With this you can provide a list of modules to additionally import, for when you have properties with types from external modules. For more information, check the [template's documentation](Documentation/templates/coredata/swift4.md#customization).
      David Jennes #591 #592
    • πŸ“š Core Data: the built-in templates now support RawRepresentable attributes (such as enum, OptionSet, …). They'll check the "User Info" of an attribute for a RawType key, which should be set to the type name you want to use for that attribute. To avoid optional attributes, you can also add the unwrapOptional user info key. For more information, check the [template's documentation](Documentation/templates/coredata/swift4.md#userinfo-keys).
      David Jennes #566 #609 #593 #610
    • πŸ“š Strings: the built-in templates now accept a parameter lookupFunction for customizing the localization function, check the [template documentation](Documentation/templates/strings/) for more information.
      Steven Magdy 426 468 573 716
    • πŸ“š Strings: templates to generate Objective-C. Please check [the template's documentation](Documentation/templates/strings/objc.md) for more information.
      Eric Slosser SwiftGen/SwiftGen#378
    • 🍱 XCAssets: the parser now supports AR Resource Groups, together with reference images and objects.
      David Jennes #614
    • 🐎 Templates: Bundle now use static property on BundleToken for better performance.
      shuoli84 #623
    • πŸ“œ All parsers now have built-in Swift 5 templates.
      David Jennes #595 #600
    • Most templates now accept a parameter to force having the file name used as namespace (enum <FileName>) in generated code even if there's only one single input file.
      Viktoras Laukevičius #669 Olivier Halligon #693

    πŸ› Bug Fixes

    • πŸ‘ SwiftGen now properly shows a better help message and the command usage when running an incomplete command, instead of complaining about a config file.
      Olivier Halligon #706
    • 🐎 XCAssets: improved the performance for color assets by caching the resolved colors.
      David Jennes #578 #589
    • Core Data: entityName is now correctly a class var instead of a class func.
      David Jennes #590
    • Strings: we now correctly generate the type Any (instead of String) for %@ placeholders.
      David Jennes 620
    • 🐎 Colors: Reduce initializer type inference for improved compilation performance.
      Markus Faßbender #663
    • πŸ‘• Config Lint: fix config lint not processing relative paths containing ".." correctly.
      Wolfgang Lutz #688
    • Core Data: the generated code was missing , (comma) for fetch requests with multiple arguments.
      David Jennes #692
    • ⚠ Colors: Fix compile time warning when long expression type checking is enabled.
      Ryan Mason-Davies #704 #710

    Internal Changes

    • πŸš€ The main branch of the repository has been renamed from master to stable. If you pointed your Podfile or dependency managment tool to master instead of an official release/tag, you will have to update the branch name in your dependency file.
      Olivier Halligon #714
    • πŸ“š Documentation: Improved doc for creating custom templates, and added a Documentation Table of Contents.
      Olivier Halligon #713
    • πŸ”¨ Refactoring: Reduce globals & rearrange CLI code.
      Olivier Halligon #586
    • 🚚 Moved generated test output files into subdirectories per template.
      David Jennes #598
    • πŸ”§ Compile generated output using configuration files for easier management.
      David Jennes #365 #599
    • 🍱 XCAssets: renamed the catalogs we use for sample code & testing to avoid some confusion.
      David Jennes #613
    • ⚑️ Update SwiftLint and enable some extra SwiftLint rules.
      David Jennes #617
    • πŸ‘· Some CI fixes related to software versions.
      Patrick Nollet #645
    • ⚑️ Updated to CocoaPods 1.9.0.
      David Jennes #619
    • ⚑️ Updated Pods and Gems dependencies.
      David Jennes #684
  • v6.1.0 Changes

    January 29, 2019

    πŸ”„ Changes in core dependencies of SwiftGen

    πŸ†• New Features

    πŸ› Bug Fixes

    • 🚚 Colors: Fix an issue where the public access modifier was not being added correctly in the literals-swift3 and literals-swift4 templates when the publicAccess parameter was specified. Also remove some uneccessary public access modifiers from the swift3 and swift4 templates.
      Isaac Halvorson #549

    Internal Changes

    • Resolve path if the binary is a symbolic link in order to find bundled templates.
      Liquidsoul #559
    • ⚑️ Update to SwiftLint 0.30.1 and enable some extra SwiftLint rules.
      David Jennes #574 #583