Skip to content

Releases: CreateAPI/CreateAPI

0.2.0

15 May 08:33
2d858af
Compare
Choose a tag to compare

What's Changed

  • Update Get dependency to require 2.1.x or later by @mgrider in #160
  • Support multipart/form-data as opt-in feature by @ainame in #172
  • Fix bug where object schemas representing an allOf type with more than one schema but only one property were inferred as the wrong type by @liamnichols in #181

New Contributors

Full Changelog: 0.1.1...0.2.0

Artifact Bundle

Checksum: 6f8a3ce099f07eb2655ccaf6f66d8c9a09b74bb2307781c4adec36609ddac009

.binaryTarget(
    name: "create-api",
    url: "https://github.com/CreateAPI/CreateAPI/releases/download/0.2.0/create-api.artifactbundle.zip",
    checksum: "6f8a3ce099f07eb2655ccaf6f66d8c9a09b74bb2307781c4adec36609ddac009"
)

0.1.1

05 Oct 11:01
862e482
Compare
Choose a tag to compare

What's Changed

  • List jellyfin-sdk-swift as a project using CreateAPI by @LePips in #148
  • Add Xcode 14 and Swift 5.7 to CI by @liamnichols in #156
  • Fix issue with Discriminator type resolution that impacted the decoding of oneOf types in some conditions by @liamnichols in #158
  • Improve error messages that are used when oneOf object decoding fails by @liamnichols in #159

Full Changelog: 0.1.0...0.1.1

Artifact Bundle

Checksum: 0f0cfe7300580ef3062aacf4c4936d942f5a24ab971e722566f937fa7714369a

.binaryTarget(
    name: "create-api",
    url: "https://github.com/CreateAPI/CreateAPI/releases/download/0.1.1/create-api.artifactbundle.zip",
    checksum: "0f0cfe7300580ef3062aacf4c4936d942f5a24ab971e722566f937fa7714369a"
)

0.1

16 Aug 22:44
e500861
Compare
Choose a tag to compare
0.1

CreateAPI 0.1 makes some big changes to help prepare for even more features and enhancements. To make this possible, we've had to revisit a lot of parts of the way that the generator is used and while at the core there hasn't been much change, it's likely that you will need to adjust your configuration files and the way that you use the cli. For more details, please refer to the release notes below.

As always, if you have any problems then please feel free to create a new issue!

Enhancements

  • #69 - Publish release to Homebrew.
  • #48 - Support Swift Package Plugins.
  • #58 - Improve readme, add usage documentation and contributing guides.
  • #47 - Override any option in the configuration file from the command line using --config-option.
  • #85 - Add custom package dependencies in generated package.
  • #114 - Allow custom mapping between schema data types/formats and Swift types used in generation.
  • #125 - Raise an error if the --config file doesn't exist instead of silently falling back to the default options.
  • #90 - Produce warnings when configuration files contain unknown or deprecated options.
  • #76 - Add --version option/command.
  • #71 - Support excluding individual properties on entities.
  • #116, #141 - Write extension source files into Extensions directory and improve their filenames.
  • #131 - Raise an error if you use --clean when the --output directory also contains the schema or config file.
  • #138 - Trim whitespace from the fileHeaderComment.
  • #140 - Run path generation in parallel.

Breaking Changes

  • #83 - Generated packages and paths now depend on Get 1.0.2 or later. If you don't use Get, your Request type must expose an initializer that matches the initializer defined in Get.
  • #88 - When generating a Swift Package, the Package.swift file and all other sources are written to the root of the --output directory instead of being nested inside a subdirectory.
  • #132 Default output directory is now ./CreateAPI when --output is not specified.
  • #112 - The rename.properties option now understands property names as defined in the original schema and not after applying CreateAPI transformations (such as case conversion or swifty style booleans).
  • #125 - The generator will now error if the path defined using --config did not contain a valid file (prior behaviour was to fallback to the default configuration).
  • #47 - Command Line Argument options that alter the generate output have now been moved into the configuration file and the behaviour may have also been adjusted.
    • --split (-s) is now the default behavior. Use the mergeSources option to merge generated source files.
    • --filename-template has been replaced by the entities.filenameTemplate and paths.filenameTemplate options.
    • --entityname-template has been replaced by the entities.nameTemplate option.
    • --generate has been replaced by the generate option and now accepts paths, entities, enums and package to customize which components are generated.
    • --package and --module have been incorporated as part of the generate option (see above) for controlling the generated outputs and the module/package name is configured using the module option.
    • --vendor has been replaced by the vendor option.
  • #100 - For entities, isGeneratingStructs and isMakingClassesFinal have merged into a single defaultType option (accepted values struct, class or finalClass).
    • isGeneratingMutableClassProperties and isGeneratingMutableStructProperties have been replaced by a single mutableProperties option. Specify true, false, structs or classes instead.
    • entitiesGeneratedAsClasses and entitiesGeneratedAsStructs have been replaced by a single typeOverrides option.
  • #98 - comments options have been replaced with a single commentOptions property that accepts false, true or an array containing any of [title, description, example, externalDocumentation, capitalized].
  • #97 - isReplacingCommonAcronyms, addedAcronyms and ignoredAcronyms have been replaced with a single acronyms option.
  • #94 - isSwiftLintDisabled has been removed. Use fileHeaderComment if you want to replicate this behavior.
  • #93 - isAdditionalPropertiesOnByDefault has been removed with no replacement.
  • #92 - Every generated Request now includes its operationId and the isAddingOperationIds option has now been removed.
  • #91 - Fixed a spelling mistake in overridenResponses and overridenBodyTypes.
  • #63 - isInliningPropertiesFromReferencedSchemas behavior is now enabled by default and the option has renamed to inlineReferencedSchemas.
  • #75 - isGeneratingCustomCodingKeys behavior is now enabled by default and the option has been renamed to optimizeCodingKeys.
  • #66 - access no longer accepts an open string. The value must be either internal or public.
  • #114, #145 - isUsingIntegersWithPredefinedCapacity has been removed. You can now configure data type mappings to Swift types using the dataTypes option.
  • #134 - isGeneratingEnums has been removed and is now configurable as part of the new generate option.
  • #89 - Swifty style boolean properties in the configuration file have been renamed.
    • isNaiveDateEnabled useNaiveDate
    • isPluralizationEnabled pluralizeProperties
    • isInliningTypealiases inlineTypealiases
    • isGeneratingSwiftyBooleanPropertyNames useSwiftyPropertyNames
    • isAddingDeprecations annotateDeprecations
    • entities
      • isStrippingParentNameInNestedObjects stripParentNameInNestedObjects
      • isAddingDefaultValues includeDefaultValues
      • isSortingPropertiesAlphabetically sortPropertiesAlphabetically
      • isGeneratingEncodeWithEncoder alwaysIncludeEncodableImplementation
      • isGeneratingInitWithDecoder alwaysIncludeDecodableImplementation
      • isGeneratingInitializers includeInitializer
      • isSkippingRedundantProtocols skipRedundantProtocols
      • isGeneratingIdentifiableConformance includeIdentifiableConformance
    • paths
      • isRemovingRedundantPaths removeRedundantPaths
      • isMakingOptionalPatchParametersDoubleOptional makeOptionalPatchParametersDoubleOptional
      • isInliningSimpleQueryParameters inlineSimpleQueryParameters
      • isInliningSimpleRequests inlineSimpleRequests
      • isGeneratingResponseHeaders includeResponseHeaders
      • isGeneratingCustomCodingKeys optimizeCodingKeys
      • isInliningPropertiesFromReferencedSchemas inlineReferencedSchemas

Refer to the Configuration Options documentation for more information.

Internal

  • #79 - Lint project using SwiftLint.
  • #81 - Compile generated test snapshots on Linux as part of CI checks.
  • #117 - Refactor file writing responsibility out of the Generate command.
  • #122 - Cleanup tests with new snapshot(spec:name:testCompilationOnLinux:arguments:configuration:) method.
  • #120 - Use swift-configuration-parser library.
  • #128 - Refactor CreateAPITests structure and rewrite snapshotter.
  • #123 - Automatically update AllPackages package when rerecording snapshots.
  • #129 - Introduce 'Record Snapshots' scheme to simplify rerecording snapshots.

Full Changelog: 0.0.5...0.1.0

Arti...

Read more

0.0.5

30 Jul 21:05
9823342
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.0.4...0.0.5

Artifact Bundle

Checksum: 89c75ec3b2938d08b961b94e70e6dd6fa0ff52a90037304d41718cd5fb58bd24

.binaryTarget(
    name: "create-api",
    url: "https://github.com/CreateAPI/CreateAPI/releases/download/0.0.5/create-api.artifactbundle.zip",
    checksum: "89c75ec3b2938d08b961b94e70e6dd6fa0ff52a90037304d41718cd5fb58bd24"
)

0.0.4

10 Jun 15:53
5225618
Compare
Choose a tag to compare
0.0.4 Pre-release
Pre-release

What's Changed

  • Discriminator Support by @PhilipTrauner in #10
  • Strip parent name of enum cases within nested objects by @PhilipTrauner in #15
  • Added options for mutable properties in classes and structs by @JanC in #17
  • Add entities name template by @imjn in #14
  • Added imports option for entities by @JanC in #19
  • Fix shouldGenerate check for entities.include option by @ainame in #20
  • Fix namespace when using operations style by @simorgh3196 in #21
  • Fix String type with byte format by @mattia in #25
  • Fixed fileHeader option to fileHeaderComment by @imjn in #22
  • Fixed test failures for string with byte format by @imjn in #26
  • Fix test failures in comparing Package.swift by @imjn in #28
  • Update repository links to github.com/CreateAPI/CreateAPI by @liamnichols in #35
  • Support multiple discriminator mappings to share one type by @imjn in #36
  • Update GitHub Workflow CI by @liamnichols in #37
  • Fix allOf decoding issue by @imjn in #27
  • Removed redundant space before struct and class declaration by @imjn in #38
  • Decode JSON input specs using YAMLDecoder by @liamnichols in #34
  • Treat single element allOf/oneOf/anyOf schemas as the nested schema by @liamnichols in #39

New Contributors

Full Changelog: 0.0.2...0.0.4

0.0.3

02 Feb 16:21
Compare
Choose a tag to compare
0.0.3 Pre-release
Pre-release

What's Changed

  • Fix an issue with entities.include not being used correctly

Full Changelog: 0.0.2...0.0.3

0.0.2

29 Jan 23:13
Compare
Choose a tag to compare
0.0.2 Pre-release
Pre-release

What's Changed

  • Add support for installation by Mint by @simorgh3196 in #1
  • Fixed small typos in README.md by @imjn in #2
  • Fixed wrong example in readme yaml by @imjn in #4
  • Add Entities.include by @imjn in #5
  • Revert "Added entityPrefix and entitySuffix to GenerateOptions.Rename" by @imjn in #8
  • Added --clean to readme by @imjn in #7
  • Use builtin UUID type for uuid format in schemas by @PhilipTrauner in #11
  • Fix tests by @PhilipTrauner in #13

Full Changelog: 0.0.1...0.0.2

0.0.1

04 Jan 00:38
Compare
Choose a tag to compare
0.0.1 Pre-release
Pre-release

Initial pre-release