{"id":18041253,"url":"https://github.com/cblavier/changix","last_synced_at":"2025-04-09T16:45:03.889Z","repository":{"id":56841813,"uuid":"221056599","full_name":"cblavier/changix","owner":"cblavier","description":"Compile-time changelog features for Elixir","archived":false,"fork":false,"pushed_at":"2020-03-10T07:57:58.000Z","size":69,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T18:54:16.809Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/changix","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cblavier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-11T19:41:35.000Z","updated_at":"2024-04-22T09:11:56.000Z","dependencies_parsed_at":"2022-08-29T07:41:57.832Z","dependency_job_id":null,"html_url":"https://github.com/cblavier/changix","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fchangix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fchangix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fchangix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblavier%2Fchangix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cblavier","download_url":"https://codeload.github.com/cblavier/changix/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248070099,"owners_count":21042760,"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-30T15:08:55.319Z","updated_at":"2025-04-09T16:45:03.867Z","avatar_url":"https://github.com/cblavier.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Changix\n\n![](https://github.com/cblavier/changix/workflows/CI/badge.svg)\n\nElixir library that gives you changelog features based on markdown files.\nIt leverages on Elixir _metaprogramming_ features, so that everything is done at compile time, with following benefits:\n\n- **fast**: no filesystem access or Markdown parsing at runtime. HTML is directly embedded in your compiled code.\n- **reliable**: any error in your changelog files will be reported at compile time\n\nChangix does not provide any UI widget, but you will be in good direction to write one into your Phoenix app.\n\nChangix comes with no runtime dependencies, and can be used with any _Markdown_ parser. \nA default behavior is implemented if [earmark](https://github.com/pragdave/earmark) markdown library is present.\n\n## Demo\n\n![](https://github.com/cblavier/changix-demo/raw/master/assets/static/images/changix-demo.gif)\n\nSee the code for the demo app [here](https://github.com/cblavier/changix-demo)\n\n## Installation\n\nAdd `changix` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:changix, \"~\u003e 1.0.0\"}\n  ]\nend\n```\n\nIf you don't use any Markdown library, I recommand you also add [earmark](https://github.com/pragdave/earmark) to your dependencies.\n\n\n## Usage\n\nCreate a `changelog` folder at the root of your project and write separate changelog files after each of your release.\n\nA changelog file must contain a _YAML Front Matter_ header with `changed_at` and `kind` attributes. `title` is optional. \n\nRun `mix changix.gen.changelog Fixed Lorem --kind bugfix` to generate a new changelog entry such as:\n\n```yaml\nchanged_at: 2019-11-10T17:10:05\nkind: bugfix\ntitle: Fixed Lorem\n---\n## Your change summary in whatever Markdown you want\nLorem _ipsum dolor_ sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n\u003c!--more--\u003e\n\n## Further details in the read-more section\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n```\n\nThen including `Changix` will give you access to all your changelog entries.\n\n```elixir\ndefmodule MyModule do\n\n  include Changix\n  \n  def list_entries do\n    for entry \u003c- changelog_entries() do\n      IO.inspect(entry)\n    end\n  end\n\n  def show_entry(entry_changed_at) do\n    entry_changed_at\n    |\u003e changelog_entry()\n    |\u003e IO.inspect\n  end\n\nend\n```\n\n## Documentation\n\nDocs can be found at [https://hexdocs.pm/changix](https://hexdocs.pm/changix).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcblavier%2Fchangix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcblavier%2Fchangix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcblavier%2Fchangix/lists"}