{"id":16710723,"url":"https://github.com/overminddl1/gradualixir","last_synced_at":"2025-03-21T20:33:11.913Z","repository":{"id":149888504,"uuid":"156452419","full_name":"OvermindDL1/gradualixir","owner":"OvermindDL1","description":"Gradualizer Mix Wrapper","archived":false,"fork":false,"pushed_at":"2019-10-31T14:56:41.000Z","size":12,"stargazers_count":68,"open_issues_count":1,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-13T20:09:19.738Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OvermindDL1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-06T21:48:19.000Z","updated_at":"2023-09-01T12:14:22.000Z","dependencies_parsed_at":"2024-01-16T09:17:40.984Z","dependency_job_id":"fe4b834a-3d98-4e97-ba7e-7f5b8aff8c69","html_url":"https://github.com/OvermindDL1/gradualixir","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fgradualixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fgradualixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fgradualixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fgradualixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OvermindDL1","download_url":"https://codeload.github.com/OvermindDL1/gradualixir/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221818605,"owners_count":16885782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T20:09:25.049Z","updated_at":"2024-10-28T10:47:43.991Z","avatar_url":"https://github.com/OvermindDL1.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradualixir\n\nMix integration with [Gradualizer](https://github.com/josefs/Gradualizer).\n\nGradualizer is an enforced static typing checker based on BEAM specs.\n\n## Installation\n\nThe package can currently be installed from github by adding `gradualixir`\nto your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:gradualixir, github: \"overminddl1/gradualixir\", ref: \"master\"}\n  ]\nend\n```\n\n## Usage\n\nOnce added to a mix project dependencies and `mix deps.get` is run to acquire the dependencies, then just run the `mix gradualizer` command to check the files on the existing project, such as:\n\n```zsh\n╰─➤  mix gradualizer\n/home/overminddl1/elixir/gradualixir/_build/dev/lib/gradualixir/ebin/Elixir.Gradualixir.beam: The binary [{bin_element,0,{string,0,\"*.beam\"},default,default}] on line 0 does not have type t()\n/home/overminddl1/elixir/gradualixir/_build/dev/lib/gradualixir/ebin/Elixir.Mix.Tasks.Gradualizer.beam: The binary [{bin_element,0,{string,0,\"*.beam\"},default,default}] on line 0 does not have type t()\n```\n\nCurrently Gradualizer is in early development and it's only output is currently just to `stdout` so the syntax is currently in Erlang format.  Hope to parse it out in short order however.\n\n### Options\n\nThe currently supported options are:\n\n* `--gradualize-preload` will preload all beam files known to the erlang runtime and all known paths to the gradualizer db process, otherwise it looks to load them on-demand.\n* `--no-compile` will not compile the project before running gradualizer.\n* `--quiet` will silence all shell output, will still set the return code to the shell however.\n\nIn addition it takes 0 or more position rest arguments:\n\n* 0 arguments -\u003e Gradualize just the current project's BEAM files but no consolidated files, this is the same as passing in `:project-ebin`.\n* A single `:all` argument will gradualize all BEAM files **everywhere** known to the system, do note that a lot of erlang and elixir specs may not be 'good' for such a purpose, but it's great for testing and reporting and fixing bugs to them!\n* A single `:project-ebin` argument will gradualize the non-consolidated BEAM files of the current project.  This is the default value if no arguments.\n* A single `:project` argument will gradualize all BEAM files of the current project, including consolidated files (which Elixir does not generate very cleanly so expect errors in those).\n* A single `:deps` argument will gradualize all BEAM files of the current project and all dependencies of the current project, essentially everything but the OTP and Elixir itself.\n* Or 1 or more arguments of the paths to specific BEAM files to gradualize.\n\n## Name?\n\nGradualixir is to Gradualizer as Dialyxir is to Dialyzer, and I hope Gradualizer will get a usable interface on par to that of Dialyzer for tool use in time.  :-)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverminddl1%2Fgradualixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foverminddl1%2Fgradualixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverminddl1%2Fgradualixir/lists"}