content: # git-cliff ~ configuration file
  # https://git-cliff.org/docs/configuration
  
  [remote.github]
  owner = "MostroP2P"
  repo = "mostro"
  
  [changelog]
  # A Tera template to be rendered for each release in the changelog.
  # See https://keats.github.io/tera/docs/#introduction
  body = """
  ## Verifying the Release
  In order to verify the release, you'll need to have gpg or gpg2 installed on your system. Once you've obtained a copy (and hopefully verified that as well), you'll first need to import the keys that have signed this release if you haven't done so already:
  ```bash
  curl https://raw.githubusercontent.com/MostroP2P/mostro/main/keys/negrunch.asc | gpg --import
  curl https://raw.githubusercontent.com/MostroP2P/mostro/main/keys/arkanoider.asc | gpg --import
  ```
  Once you have the required PGP keys, you can verify the release (assuming manifest.txt.sig.negrunch, manifest.txt.sig.arkanoider and manifest.txt are in the current directory) with:
  ```bash
  gpg --verify manifest.txt.sig.negrunch manifest.txt
  gpg --verify manifest.txt.sig.arkanoider manifest.txt
  
  gpg: Signature made fri 10 oct 2025 11:28:03 -03
  gpg:                using RSA key 1E41631D137BA2ADE55344F73852B843679AD6F0
  gpg: Good signature from "Francisco Calderón <fjcalderon@gmail.com>" [ultimate]
  
  gpg: Signature made fri 10 oct 2025 11:28:03 -03
  gpg:                using RSA key 2E986CA1C5E7EA1635CD059C4989CC7415A43AEC
  gpg: Good signature from "Arkanoider <github.913zc@simplelogin.com>" [ultimate]
  
  ```
  That will verify the signature of the manifest file, which ensures integrity and authenticity of the archive you've downloaded locally containing the binaries. Next, depending on your operating system, you should then re-compute the sha256 hash of the archive with `shasum -a 256 <filename>`, compare it with the corresponding one in the manifest file, and ensure they match exactly.
  
  
  ## What's Changed{%- if version %} in {{ version }}{%- endif -%}
  {% for group, commits in commits | group_by(attribute="group") %}
  {% if group != "" %}
  ### {{ group }}
  {% endif %}
  {% for commit in commits %}
    {% if commit.remote.pr_title -%}
      {%- set commit_message = commit.remote.pr_title -%}
    {%- else -%}
      {%- set commit_message = commit.message -%}
    {%- endif -%}
    * {{ commit_message | split(pat="\n") | first | trim }}\
      {% if commit.remote.username %} by [@{{ commit.remote.username }}](https://github.com/{{ commit.remote.username }}){%- endif -%}
      {% if commit.remote.pr_number %} in \
        [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }}) \
      {%- endif %}
  {%- endfor %}
  {%- endfor -%}
  
  {%- if github -%}
  {% if github.contributors | length != 0 %}
    {% raw %}\n{% endraw -%}
    ## Contributors
  {%- endif %}\
  {% for contributor in github.contributors %}
    * [@{{ contributor.username }}](https://github.com/{{ contributor.username }}) made their contribution
      {%- if contributor.pr_number %} in \
        [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
      {%- endif %}
  {%- endfor -%}
  {%- endif -%}
  
  {% if version %}
      {% if previous.version %}
        **Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
      {% endif %}
  {% else -%}
    {% raw %}\n{% endraw %}
  {% endif %}
  
  {%- macro remote_url() -%}
    https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
  {%- endmacro -%}
  """
  # Remove leading and trailing whitespaces from the changelog's body.
  trim = true
  # A Tera template to be rendered as the changelog's footer.
  # See https://keats.github.io/tera/docs/#introduction
  footer = """
  <!-- generated by git-cliff -->
  """
  # An array of regex based postprocessors to modify the changelog.
  # Strip numeric HTML comment placeholders like '<!-- 123 -->' left by tooling.
  postprocessors = [{ pattern = "<!-- \\d+ -->", replace = "" }]
  # regex for parsing and grouping commits
  commit_parsers = [
    { message = "^feat(\\(.+\\))?!?:", group = "🚀 Features" },
    { message = "^fix(\\(.+\\))?!?:", group = "🐛 Bug Fixes" },
    { message = "^merge(\\(.+\\))?!?:", group = "🔀 Merges" },
    { message = "^docs(\\(.+\\))?!?:", group = "📚 Documentation" },
    { message = "^perf(\\(.+\\))?!?:", group = "⚡ Performance" },
    { message = "^refactor(\\(.+\\))?!?:", group = "🚜 Refactor" },
    { message = "^style(\\(.+\\))?!?:", group = "🎨 Styling" },
    { message = "^test(\\(.+\\))?!?:", group = "🧪 Testing" },
    { message = "^ci(\\(.+\\))?!?:", group = "⚙️ CI/CD" },
    { message = "^build(\\(.+\\))?!?:", group = "🔨 Build" },
    { message = "^chore\\(release\\): prepare for", skip = true },
    { message = "^chore\\(deps.*\\)", skip = true },
    { message = "^chore\\(pr\\)", skip = true },
    { message = "^chore\\(pull\\)", skip = true },
    { message = "^chore(\\(.+\\))?!?:", group = "⚙️ Miscellaneous Tasks" },
    { body = "(?i)security", group = "🛡️ Security" },
    { message = "^revert", group = "◀️ Revert" },
    { message = ".*", group = "💼 Other" },
  ]
  
  [git]
  # Parse commits according to the conventional commits specification.
  # See https://www.conventionalcommits.org
  conventional_commits = true
  # Exclude commits that do not match the conventional commits specification.
  filter_unconventional = false
  # Split commits on newlines, treating each line as an individual commit.
  split_commits = false
  # An array of regex based parsers to modify commit messages prior to further processing.
  commit_preprocessors = [
    { pattern = 'Merge pull request #([0-9]+)', replace = "merge: pull request #$1" },
  ]
  # Exclude commits that are not matched by any commit parser.
  filter_commits = false
  # Order releases topologically instead of chronologically.
  topo_order = false
  # Order of commits in each group/release within the changelog.
  # Allowed values: newest, oldest
  sort_commits = "newest"
  tag_pattern = "v[0-9]+\\.[0-9]+\\.[0-9]+"
  # Enable link parsing for PR references and user mentions
  link_parsers = [
    { pattern = "Merge pull request #([0-9]+)", href = "https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}/pull/$1" },
    { pattern = "#([0-9]+)", href = "https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}/issues/$1" },
    { pattern = "@([a-zA-Z0-9_-]+(?:\\[[^\\]]+\\])?)", href = "https://github.com/$1" },
  ]
  