Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump type_check from 0.9.0 to 0.13.4 #75

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 21, 2023

Bumps type_check from 0.9.0 to 0.13.4.

Release notes

Sourced from type_check's releases.

v0.12.0

Additions:

  • The default options used are now fetched from the application configuration. This means that you can configure a default for your app as well as for each of your dependencies(!) by adding config :app_name, :type_check [...] to your configuration file(s). (c.f. #61)
  • TypeCheck.External module, with functions to work with typespecs in modules outside of your control. Thank you very much, @​orsinium! (c.f. #113)
    • fetch_spec to build a TypeCheck type from any function that has a @spec.
    • fetch_type to build a TypeCheck type from any @type.
    • enforce_spec! to wrap a call to any function that has a @spec with a runtime type-check on the input parameters and return value.
    • apply and apply! to wrap a call to any function with the function spec type that you give it.
  • TypeCheck.Defstruct.defstruct!, a way to combine defstruct, @enforce_keys and the creation of the struct's type, reducing boilerplate and the possibility of mistakes. (c.f. #118 )

Fixes:

  • Long-standing issue where Dialyzer would sometimes complain in apps using TypeCheck is resolved. (c.f. #95)
  • Creation of the new maybe_nonempty_list type will no longer get stuck in an infinite loop on creation. (c.f. #120)

v0.11.0

Wooh, this is a big release!

Most important features:

  • We now support all of Elixir's builtin basic types!
  • We now support all of the remote types of the Elixir standard library!
  • Support for most of the map-type syntactic sugars.
  • An optional Credo check to enforce that all your functions have a spec.

Full changelog

Additions

  • Support for fancier map syntaxes:
    • %{required(key_type) => value_type} Maps with a single kind of required key-value type.
    • %{optional(key_type) => value_type} Maps with a single kind of optional key-value type.
    • %{:some => a(), :fixed => b(), :keys => c(), optional(atom()) => any()} Maps with any number of fixed keys and a single optional key-value type.
    • TypeCheck now supports nearly all kinds of map types that see use. Archaic combinations of optional and required are not supported, but also not very useful types in practice.
    • Because of this, the inspection of the builtin type map(key, value) has been changed to look the same as an optional map. This is a minor backwards-incompatible change.
  • Desugaring %{} has changed from 'any map' to 'the empty map' in line with Elixir's Typespecs. This is a minor backwards-incompatible change.
  • Support for the builtin types port(), reference() and (based on these) identifier().
  • Support for the builtin type struct().
  • Support for the builtin type timeout().
  • Support for the builtin type nonempty_charlist() and maybe_improper_list and (based on these) iolist() and iodata().
  • Adding types depending on these builtins to the default type overrides. We now support all modules of the full standard library!
  • TypeCheck.Credo.Check.Readability.Specs: an opt-in alternative Credo check which will check whether all functions have either a @spec! or 'normal' @spec. (Fixes #102).

Fixes

  • The TypeCheck.Builtin module is now actually spectested itself. Some consistency bugs were found and solved as a result.

v0.10.7

Fixes:

  • Ensures fixed-maps are checked for superfluous keys (c.f. #96). Thank you very much, @​spatrik!

v0.10.4

Fixes

... (truncated)

Changelog

Sourced from type_check's changelog.

  • 0.13.4 -

    • No code changes, but two small improvements to the documentation:
      • Changelog has been split off from the README file.
      • A link to Marten's ElixirConf EU 2022 talk about TypeCheck has been added.
  • 0.13.3 -

    • Fixes:
      • Ensures that TypeCheck can be used in Erlang-style modules (that do not start with 'Elixir.') (c.f. #174).
  • 0.13.2 -

    • Fixes:
      • Fixes issue when unions are used as type arguments in remote types. Than you very much, @​dvic! (c.f. #164).
  • 0.13.1 -

    • Fixes:
      • Fixes issues with aliases to remote types not being followed. (c.f. #160)
  • 0.13.0 -

    • Additions:
      • Support for maps with multiple optional atom keys. Thank you very much, @​dvic! (c.f. #165)
    • Fixes:
      • Fixes 'Enumerable not implemented' crash when passing a struct to a type expecting a fixed map. (c.f. #161)
  • 0.12.4 -

    • Fixes:
      • Allow syntax %{String.t() => any()} as shorthand for %{required(String.t()) => any()}. (c.f. #152)
      • Situations in which the fully qualified name of a type defined in the current module were not picked up (Example.t() not being found inside specs in Example. even though Example defined a type called t()). (c.f. #154)
      • A problem with using types with type guards in other modules. (c.f. #147)
  • 0.12.3 -

    • Fixes:
      • Compatibility problems with Elixir v1.14. (Code.Identifier.inspect_as_key, working with the AST of imported functions) Thank you very much, @​marcandre! (c.f. #150)
  • 0.12.2 -

    • Fixes:
      • Compilation error in a new Phoenix 1.16 project. Thank you very much, @​assimelha! (c.f. #114)
  • 0.12.1 -

    • Performance:
      • Significant reduction on generated code size of runtime type checks. This will speed up compilation roughly ~10-50%.
    • Fixes:
      • No longer use white ANSI color in exception formatting, ensuring messages of the DefaultFormatter are also visible on white backgrounds (Livebook, anyone? :D)
      • Skip OTP app lookup (used to fetch per OTP app compile-time configuration) if we're not compiled inside an OTP app (such as inside a Livebook).
      • Improve generator for Regex.t() to generate only correct regular expressions. Thank you very much, @​skwerlman!(c.f. #133)
  • 0.12.0 -

    • Additions:
      • The default options used are now fetched from the application configuration. This means that you can configure a default for your app as well as for each of your dependencies(!) by adding config :app_name, :type_check [...] to your configuration file(s). (c.f. #61)
      • TypeCheck.External module, with functions to work with typespecs in modules outside of your control. Thank you very much, @​orsinium! (c.f. #113)
        • fetch_spec to build a TypeCheck type from any function that has a @spec.
        • fetch_type to build a TypeCheck type from any @type.
        • enforce_spec! to wrap a call to any function that has a @spec with a runtime type-check on the input parameters and return value.
        • apply and apply! to wrap a call to any function with the function spec type that you give it.
      • TypeCheck.Defstruct.defstruct!, a way to combine defstruct, @enforce_keys and the creation of the struct's type, reducing boilerplate and the possibility of mistakes. (c.f. #118)
    • Fixes:
      • Long-standing issue where Dialyzer would sometimes complain in apps using TypeCheck is resolved. (c.f. #95)
      • Creation of the new maybe_nonempty_list type will no longer get stuck in an infinite loop on creation. (c.f. #120)
  • 0.11.0 -

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [type_check](https://github.com/Qqwy/elixir-type_check) from 0.9.0 to 0.13.4.
- [Release notes](https://github.com/Qqwy/elixir-type_check/releases)
- [Changelog](https://github.com/Qqwy/elixir-type_check/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Qqwy/elixir-type_check/commits)

---
updated-dependencies:
- dependency-name: type_check
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants