From 8954ce4fb775fec7c7c89bcd1deb7fd90b60b52e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Orhun=20Parmaks=C4=B1z?= Date: Wed, 11 Dec 2024 15:00:23 +0300 Subject: [PATCH] chore(release): prepare for v0.16.0 --- CHANGELOG.md | 62 +++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- cliff.toml | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 cliff.toml diff --git a/CHANGELOG.md b/CHANGELOG.md index 35780ee..cea1246 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,68 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.16.0] - 2024-12-11 + +### Added + +- Support `max_upload_dir_size` by @Narayanbhat166 + +Now you can configure the server to limit the total size of the uploaded files as follows: + +```toml +[server] +max_upload_dir_size = "100G" +``` + +This would help with e.g. public instances in terms of avoiding a storage attack where a single user uploads a bunch of big/small files. + +- Add support for multiple auth tokens via env vars by @nydragon in [#339](https://github.com/orhun/rustypaste/pull/339) + +In addition to `[server].auth_tokens` and `[server].delete_tokens` in the configuration file, it has been made possible to set multiple tokens for authentication and deletion via their respective environment variables. + +- `AUTH_TOKENS_FILE`: Points to a file containing a list of tokens for authentication, one per line. +- `DELETE_TOKENS_FILE`: Points to a file containing a list of tokens for deletion, one per line. + +For example: + +`export AUTH_TOKENS_FILE=./auth_file` + +and `auth_file` contains: + +```plaintext +bread +brioche +baguette +naan +``` + +### Changed + +- Allow shortening URLs with a filename by @Vaelatern in [#373](https://github.com/orhun/rustypaste/pull/373) + +This enable naming shortened URLs beyond using a random string or the text "url". For example: + +```sh +$ curl -s -F "url=https://shorten.this" -H "filename: abc" "" +``` + +The shortened URL will be saved as `abc` in the server. + +- Update all dependencies + +### Removed + +- Remove shuttle code and deps by @tessus in [#328](https://github.com/orhun/rustypaste/pull/328) + +I'm looking for a service to publicly host a rustypaste instance. +If you have any suggestions or want to sponsor this, please let me know [in this issue](https://github.com/orhun/rustypaste/issues/326)! + +## New Contributors + +- @Narayanbhat166 made their first contribution +- @Vaelatern made their first contribution in [#374](https://github.com/orhun/rustypaste/pull/374) +- @nydragon made their first contribution in [#339](https://github.com/orhun/rustypaste/pull/339) + ## [0.15.1] - 2024-07-29 ### Added diff --git a/Cargo.lock b/Cargo.lock index e88d616..edff873 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1953,7 +1953,7 @@ dependencies = [ [[package]] name = "rustypaste" -version = "0.15.1" +version = "0.16.0" dependencies = [ "actix-files", "actix-multipart", diff --git a/Cargo.toml b/Cargo.toml index bdc5947..1f33784 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rustypaste" -version = "0.15.1" +version = "0.16.0" edition = "2021" description = "A minimal file upload/pastebin service" authors = ["Orhun Parmaksız "] diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 0000000..1a8f2f2 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,98 @@ +# git-cliff ~ configuration file +# https://git-cliff.org/docs/configuration + +[changelog] +# template for the changelog header +header = """ +# Changelog\n +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n +""" +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% if version -%} + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else -%} + ## [Unreleased] +{% endif -%} + +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | upper_first }} + {%- for commit in commits %} + - {{ commit.message | split(pat="\n") | first | upper_first | trim }}\ + {% if commit.remote.username %} by @{{ 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.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} + ## New Contributors +{%- endif -%} + +{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} + * @{{ contributor.username }} made their first contribution + {%- if contributor.pr_number %} in \ + [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \ + {%- endif %} +{%- endfor %}\n +""" +# template for the changelog footer +footer = """ +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% for release in releases -%} + {% if release.version -%} + {% if release.previous.version -%} + [{{ release.version | trim_start_matches(pat="v") }}]: \ + {{ self::remote_url() }}/compare/{{ release.previous.version }}..{{ release.version }} + {% endif -%} + {% else -%} + [unreleased]: {{ self::remote_url() }}/compare/{{ release.previous.version }}..HEAD + {% endif -%} +{% endfor %} + +""" +# remove the leading and trailing whitespace from the templates +trim = true + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# filter out the commits that are not conventional +filter_unconventional = false +# regex for preprocessing the commit messages +commit_preprocessors = [ + # remove issue numbers from commits + { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" }, +] +# regex for parsing and grouping commits +commit_parsers = [ + { message = "^[a|A]dd", group = "Added" }, + { message = "^[s|S]upport", group = "Added" }, + { message = "^[r|R]emove", group = "Removed" }, + { message = "^.*: add", group = "Added" }, + { message = "^.*: support", group = "Added" }, + { message = "^.*: remove", group = "Removed" }, + { message = "^.*: delete", group = "Removed" }, + { message = "^test", group = "Fixed" }, + { message = "^fix", group = "Fixed" }, + { message = "^.*: fix", group = "Fixed" }, + { message = "^.*", group = "Changed" }, +] +# filter out the commits that are not matched by commit parsers +filter_commits = false +# sort the tags topologically +topo_order = false +# sort the commits inside sections by oldest/newest order +sort_commits = "newest"