Skip to content

Commit

Permalink
Bump to version 1.5.1 and add changelog entry
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucretiel committed May 4, 2023
1 parent 8bcc8c6 commit 2687f8d
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 42 deletions.
94 changes: 58 additions & 36 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
# Version 1.5.1

This release brings support for standalone installations into Nix, as well as corrections for certain unusual edge case behaviors.

- Added a Nix flake, which allows for installing typeshare outside of NixPkgs
- `typeshare-core`
- Now supports types in inline modules. [#109]
- Now throws an error if `#[serde(flatten)]` is used, instead of silently generating incorrect types [#108]
- When generating the `CodableVoid` type in swift, we now always include the `Codable` decorator, even if it's omitted from the list of `default_decorators` in `typeshare.toml` [#107]

### Community contributors

Thank you to the following community contributors for your work on this release:

- [nguarracino](https://github.com/nguarracino)

# Version 1.5.0

This release brings support for fixed-length arrays and fixes some premature changes made in 1.4.0 involving the
representation of unit types and enum variants in Typescript.

* `typeshare-core`
* Fixed-length arrays in the form of `[T; N]` are now supported.
* Reverted changes made to the representation of unit types in Typescript.<sup>1</sup>
- `typeshare-core`
- Fixed-length arrays in the form of `[T; N]` are now supported.
- Reverted changes made to the representation of unit types in Typescript.<sup>1</sup>

<sup>1</sup> We apologize for the premature changes to the representation of unit types. This was done to improve
correctness and compatibility with various JSON libraries, however it ended up causing a regression by invalidating
Expand All @@ -15,72 +31,78 @@ these improvements while mitigating the issues discovered. Thank you for bringin
### Community contributors

Thank you to the following community contributors for your work on this release:
* [ccouzens](https://github.com/ccouzens)

- [ccouzens](https://github.com/ccouzens)

# Version 1.4.0

This release brings topological sorting of types based on dependencies to generated files, as well as fixes several bugs.

* `typeshare-core`
* Types are now outputted in order of dependency - types depending on others will be written after those without dependencies.
* Unit types are now represented as null in Typescript
* Deserialization for optional associated types in enum variants has been fixed.
- `typeshare-core`
- Types are now outputted in order of dependency - types depending on others will be written after those without dependencies.
- Unit types are now represented as null in Typescript
- Deserialization for optional associated types in enum variants has been fixed.

### Community contributors

Thank you to the following community contributors for your work on this release:
* [adriangb](https://github.com/adriangb)

- [adriangb](https://github.com/adriangb)

# Version 1.3.0

This release brings minor changes to snapshot testing by adding an additional option to remove version headers from generated code. This will make our snapshot tests more robust by preventing test breakage that used to occur when updating our version.

* `typeshare-core`
* Each language implementation now has an additional public variable that can be set to remove version headers from generated code.
- `typeshare-core`
- Each language implementation now has an additional public variable that can be set to remove version headers from generated code.

# Version 1.2.0

This release brings Scala functionality to the CLI, support for Apple Silicon as a pre-built binary, and refactors how
we handle language variants internally to be more type-safe.

* `typeshare-cli`
* Scala is now a language generation target! Try it out with `typeshare --lang=scala --scala-package=com.your.package.here some/file.rs`
* Future releases (including this one) now support aarch64-apple-darwin as an additional architecture.
* `typeshare-core`
* Language variants are now represented as enums instead of strings.
- `typeshare-cli`
- Scala is now a language generation target! Try it out with `typeshare --lang=scala --scala-package=com.your.package.here some/file.rs`
- Future releases (including this one) now support aarch64-apple-darwin as an additional architecture.
- `typeshare-core`
- Language variants are now represented as enums instead of strings.

### Community contributors

Thank you to the following community contributors for your work on this release:
* [jclmnop](https://github.com/jclmnop)
* [oeb25](https://github.com/oeb25)
* [DuhPesky](https://github.com/DuhPesky)
* [exoego](https://github.com/exoego)

- [jclmnop](https://github.com/jclmnop)
- [oeb25](https://github.com/oeb25)
- [DuhPesky](https://github.com/DuhPesky)
- [exoego](https://github.com/exoego)

# Version 1.1.0

This release brings major new additions, the largest of which is support for Scala as a language generation target.
This release brings major new additions, the largest of which is support for Scala as a language generation target.
Additionally, the code generation API has been expanded/revised, and many bugs have been fixed.

* `typeshare-cli`
* Kotlin now uses `val` consistently for defining fields.
* Some issues with the command line options have been corrected.
* Unit structs that don't use bracket syntax are now supported.
* Typescript can now handle type aliases of optional types.
* Empty structs are now represented as objects in Kotlin.
* You can now define read-only Typescript properties with `#[typeshare(typescript(readonly))]`.
* Doubly-nested option types (`Option<Option<T>>`) are now supported in Typescript.
- `typeshare-cli`

* `typeshare-core`
* The `Language` trait now takes `self` mutably for more flexibility in implementations.
* Scala is now a supported language for code generation, though the CLI does not use it yet.
* The attribute parser has been reworked to be more robust and flexible for future additions.
- Kotlin now uses `val` consistently for defining fields.
- Some issues with the command line options have been corrected.
- Unit structs that don't use bracket syntax are now supported.
- Typescript can now handle type aliases of optional types.
- Empty structs are now represented as objects in Kotlin.
- You can now define read-only Typescript properties with `#[typeshare(typescript(readonly))]`.
- Doubly-nested option types (`Option<Option<T>>`) are now supported in Typescript.

* Miscellaneous
* We now have a proper release system and prebuilt binaries for anyone to download 🎉
* Releases will be weekly on every Thursday.
- `typeshare-core`

- The `Language` trait now takes `self` mutably for more flexibility in implementations.
- Scala is now a supported language for code generation, though the CLI does not use it yet.
- The attribute parser has been reworked to be more robust and flexible for future additions.

- Miscellaneous
- We now have a proper release system and prebuilt binaries for anyone to download 🎉
- Releases will be weekly on every Thursday.

### Community Contributors

Thank you to the following community contributors for your work on this release:

[exoego](https://github.com/exoego), [Czocher](https://github.com/Czocher), [ccouzens](https://github.com/ccouzens),
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "typeshare-cli"
version = "1.5.0"
version = "1.5.1"
rust-version = "1.57"
edition = "2021"
description = "Command Line Tool for generating language files with typeshare"
Expand All @@ -16,11 +16,11 @@ path = "src/main.rs"
go = []

[dependencies]
clap = {version = "3", features = ["cargo"] }
clap = { version = "3", features = ["cargo"] }
clap_complete_command = "0.3"
ignore = "0.4"
once_cell = "1"
rayon = "1.5"
serde = { version = "1.0", features = ["derive"] }
toml = "0.5"
typeshare-core = { path = "../core", version = "1.3.0" }
typeshare-core = { path = "../core", version = "1.5.1" }
2 changes: 1 addition & 1 deletion core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "typeshare-core"
version = "1.5.0"
version = "1.5.1"
rust-version = "1.57"
license = "MIT OR Apache-2.0"
edition = "2021"
Expand Down

0 comments on commit 2687f8d

Please sign in to comment.