{"id":13507492,"url":"https://github.com/carlosedp/rebar3_diameter_compiler","last_synced_at":"2025-10-05T14:58:04.103Z","repository":{"id":49712221,"uuid":"38125933","full_name":"carlosedp/rebar3_diameter_compiler","owner":"carlosedp","description":"Compile Diameter .dia files on Erlang Rebar3 projects","archived":false,"fork":false,"pushed_at":"2025-08-22T23:02:18.000Z","size":3846,"stargazers_count":7,"open_issues_count":0,"forks_count":13,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-25T21:22:52.673Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlosedp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"carlosedp","patreon":"carlosedp"}},"created_at":"2015-06-26T18:02:08.000Z","updated_at":"2025-09-18T18:14:07.000Z","dependencies_parsed_at":"2024-01-05T21:53:48.407Z","dependency_job_id":"25ff7166-6efc-4538-8985-1217cfb796a2","html_url":"https://github.com/carlosedp/rebar3_diameter_compiler","commit_stats":{"total_commits":46,"total_committers":10,"mean_commits":4.6,"dds":0.3695652173913043,"last_synced_commit":"f0c9f23eade79d105853fbf17f85d74964917f8f"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/carlosedp/rebar3_diameter_compiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosedp%2Frebar3_diameter_compiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosedp%2Frebar3_diameter_compiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosedp%2Frebar3_diameter_compiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosedp%2Frebar3_diameter_compiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlosedp","download_url":"https://codeload.github.com/carlosedp/rebar3_diameter_compiler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosedp%2Frebar3_diameter_compiler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278470181,"owners_count":25992203,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-01T02:00:35.086Z","updated_at":"2025-10-05T14:58:04.099Z","avatar_url":"https://github.com/carlosedp.png","language":"Erlang","funding_links":["https://github.com/sponsors/carlosedp","https://patreon.com/carlosedp"],"categories":["Build Tools"],"sub_categories":[],"readme":"# rebar3_diameter_compiler\n\nCompile [diameter](http://erlang.org/doc/man/diameter.html) `.dia` files in rebar3 projects.\n\nBrowse the [plugin documentation](https://carlosedp.github.io/rebar3_diameter_compiler/).\n\n[![Erlang CI](https://github.com/carlosedp/rebar3_diameter_compiler/actions/workflows/erlang.yml/badge.svg)](https://github.com/carlosedp/rebar3_diameter_compiler/actions/workflows/erlang.yml)\n [![Hex pm](http://img.shields.io/hexpm/v/rebar3_diameter_compiler.svg?style=flat)](https://hex.pm/packages/rebar3_diameter_compiler)\n\n## Build\n\n    ./rebar3 compile\n\n## Use\n\nAdd the plugin to your rebar config from Hex.pm (published version):\n\n```erlang\n{plugins, [\n    rebar3_diameter_compiler\n]}.\n\n{provider_hooks, [\n    {pre, [\n        {compile, {diameter, compile}},\n        {clean, {diameter, clean}}\n    ]}\n]}.\n```\n\nOr fetch the plugin using Github (to use the latest pushes):\n\n```erlang\n{plugins, [\n    { rebar3_diameter_compiler, {git, \"https://github.com/carlosedp/rebar3_diameter_compiler.git\", {branch, \"main\"}}}\n]}.\n\n{provider_hooks, [\n    {pre, [\n        {compile, {diameter, compile}},\n        {clean, {diameter, clean}}\n    ]}\n]}.\n```\n\nThe plugin will run on compile and clean commands (like `rebar3 compile` and `rebar3 clean`). You can also call your plugin directly in an existing application:\n\n    $ rebar3 diameter compile\n    ===\u003e Fetching rebar3_diameter_compiler\n    ===\u003e Compiling rebar3_diameter_compiler\n    ===\u003e Compiling diameter...\n\n    $ rebar3 diameter clean\n    ===\u003e Cleaning diameter compiled files...\n\n\nThe plugin will compile all `.dia` files by default. You can use the option below to compile only specific diameter dictionaries\n\n```erlang\n{dia_only_files, [\n    your_dictionary_name\n    ]}.\n```\n\n## Testing\n\nOne test compiles a `.dia` file for validation, another compares the generated erl/hrl files with the expected files in `test/expected` directory.\n\n    rebar3 eunit\n\nIf the format changes in the future(for example due a compiler change), the expected files can be re-generated with `GOLDEN_RUN=1 rebar3 eunit`. This will overwrite the existing expected files.\n\nThe test filters out simple differences between OTP versions like blank lines and `-moduledoc(false).` in more recent versions.\n\n## Publishing new versions to hex.pm\n\nThis is mostly a reminder on how to bump and publish a new version.\n\n    # Reformat code and generate docs\n    rebar3 do edoc, format\n    # Run tests\n    rebar3 eunit\n    # Login to Hex\n    rebar3 hex user auth\n    # Cut new version with hex\n    rebar3 hex cut\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosedp%2Frebar3_diameter_compiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlosedp%2Frebar3_diameter_compiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosedp%2Frebar3_diameter_compiler/lists"}