style(changelog): format the changelog

This commit is contained in:
Orhun Parmaksız 2023-05-17 12:25:12 +03:00
parent 00d46b4b21
commit b092b0047d
No known key found for this signature in database
GPG key ID: F83424824B3E4B90

View file

@ -1,4 +1,5 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. 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/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
@ -13,18 +14,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- This is useful when e.g. you want to be able to share the link to a file that would play in the browser (like `.mp4`) but also share a link that will auto-download as well. - This is useful when e.g. you want to be able to share the link to a file that would play in the browser (like `.mp4`) but also share a link that will auto-download as well.
## [0.8.3] - 2023-01-30 ## [0.8.3] - 2023-01-30
### Updated ### Updated
- Bump dependencies - Bump dependencies
- Switch to [Rust](https://hub.docker.com/_/rust) image for the Dockerfile - Switch to [Rust](https://hub.docker.com/_/rust) image for the Dockerfile
- Remove unused `clap` dependency - Remove unused `clap` dependency
## [0.8.2] - 2022-10-04 ## [0.8.2] - 2022-10-04
### Updated ### Updated
- Don't expose version endpoint in default config - Don't expose version endpoint in default config
- Set `expose_version` to `false` in the configuration file - Set `expose_version` to `false` in the configuration file
## [0.8.1] - 2022-10-04 ## [0.8.1] - 2022-10-04
### Added ### Added
- Add `<server_address>/version` endpoint for retrieving the server version - Add `<server_address>/version` endpoint for retrieving the server version
```toml ```toml
@ -35,11 +42,14 @@ expose_version=true
If `expose_version` entry is not present in the configuration file, `/version` is not exposed. It is recommended to use this feature with authorization enabled. If `expose_version` entry is not present in the configuration file, `/version` is not exposed. It is recommended to use this feature with authorization enabled.
### Fixed ### Fixed
- Replace unmaintained `dotenv` crate with `dotenvy` - Replace unmaintained `dotenv` crate with `dotenvy`
- Fixes [RUSTSEC-2021-0141](https://rustsec.org/advisories/RUSTSEC-2021-0141.html) - Fixes [RUSTSEC-2021-0141](https://rustsec.org/advisories/RUSTSEC-2021-0141.html)
## [0.8.0] - 2022-10-03 ## [0.8.0] - 2022-10-03
### Added ### Added
- Support adding a landing page - Support adding a landing page
You can now specify a landing page text in the configuration file as follows: You can now specify a landing page text in the configuration file as follows:
@ -56,6 +66,7 @@ welcome!
If the landing page entry is not present in the configuration file, visiting the index page will redirect to the repository. If the landing page entry is not present in the configuration file, visiting the index page will redirect to the repository.
### Updated ### Updated
- Do not check for duplicate files by default - Do not check for duplicate files by default
- Set `duplicate_files` to `true` in the configuration file - Set `duplicate_files` to `true` in the configuration file
- It is an expensive operation to do on slower hardware and can take an unreasonable amount of time for bigger files - It is an expensive operation to do on slower hardware and can take an unreasonable amount of time for bigger files
@ -63,13 +74,17 @@ If the landing page entry is not present in the configuration file, visiting the
- Consider supporting me for my open-source work 💖 - Consider supporting me for my open-source work 💖
## [0.7.1] - 2022-05-21 ## [0.7.1] - 2022-05-21
### Added ### Added
- Aggressively test everything - Aggressively test everything
- Add the missing unit tests for the server endpoints (code coverage is increased to 84%) - Add the missing unit tests for the server endpoints (code coverage is increased to 84%)
- Create a custom testing framework (written in Bash) for adding [test fixtures](https://github.com/orhun/rustypaste/tree/master/fixtures) - Create a custom testing framework (written in Bash) for adding [test fixtures](https://github.com/orhun/rustypaste/tree/master/fixtures)
## [0.7.0] - 2022-03-26 ## [0.7.0] - 2022-03-26
### Added ### Added
- Support auto-deletion of expired files - Support auto-deletion of expired files
`rustypaste` can now delete the expired files by itself. To enable this feature, add the following line to the `[paste]` section in the configuration file: `rustypaste` can now delete the expired files by itself. To enable this feature, add the following line to the `[paste]` section in the configuration file:
@ -86,26 +101,33 @@ For users who want to have this feature disabled, there is an alternative [shell
- For the installation and usage, see the Arch Linux [PKGBUILD](https://github.com/archlinux/svntogit-community/blob/packages/rustypaste/trunk/PKGBUILD). - For the installation and usage, see the Arch Linux [PKGBUILD](https://github.com/archlinux/svntogit-community/blob/packages/rustypaste/trunk/PKGBUILD).
### Updated ### Updated
- Upgrade Actix dependencies - Upgrade Actix dependencies
- `actix-web` is updated to [`4.0.*`](https://github.com/actix/actix-web/blob/master/actix-web/CHANGES.md#401---2022-02-25) - `actix-web` is updated to [`4.0.*`](https://github.com/actix/actix-web/blob/master/actix-web/CHANGES.md#401---2022-02-25)
- Strip the binaries during automated builds - Strip the binaries during automated builds
- Size of the Docker image is reduced by ~20% - Size of the Docker image is reduced by ~20%
### Fixed ### Fixed
- Prevent invalid attempts of serving directories - Prevent invalid attempts of serving directories
- This fixes an issue where requesting a directory was possible via e.g. `curl --path-as-is 0.0.0.0:8080/.` - This fixes an issue where requesting a directory was possible via e.g. `curl --path-as-is 0.0.0.0:8080/.`
- This issue had no security impact (path traversal wasn't possible) since internal server error was returned. - This issue had no security impact (path traversal wasn't possible) since internal server error was returned.
## [0.6.5] - 2022-03-13 ## [0.6.5] - 2022-03-13
### Added ### Added
- Add instructions for installing [rustypaste](https://archlinux.org/packages/community/x86_64/rustypaste/) on Arch Linux - Add instructions for installing [rustypaste](https://archlinux.org/packages/community/x86_64/rustypaste/) on Arch Linux
- `pacman -S rustypaste` 🎉 - `pacman -S rustypaste` 🎉
### Fixed ### Fixed
- Fix a bug where the use of `CONFIG` environment variable causes a conflict between the configuration file path and `[config]` section - Fix a bug where the use of `CONFIG` environment variable causes a conflict between the configuration file path and `[config]` section
## [0.6.4] - 2022-03-11 ## [0.6.4] - 2022-03-11
### Added ### Added
- Support setting the refresh rate for hot-reloading the configuration file. - Support setting the refresh rate for hot-reloading the configuration file.
```toml ```toml
@ -121,11 +143,14 @@ timeout="30s"
``` ```
### Security ### Security
- Bump [regex crate](https://github.com/rust-lang/regex) to **1.5.5** - Bump [regex crate](https://github.com/rust-lang/regex) to **1.5.5**
- Fixes [CVE-2022-24713](https://github.com/advisories/GHSA-m5pq-gvj9-9vr8) - Fixes [CVE-2022-24713](https://github.com/advisories/GHSA-m5pq-gvj9-9vr8)
## [0.6.3] - 2022-02-24 ## [0.6.3] - 2022-02-24
### Added ### Added
- Support setting the authentication token in the configuration file. - Support setting the authentication token in the configuration file.
- This is an alternative (but not recommended) way of setting up authentication when the use of `AUTH_TOKEN` environment variable is not applicable. - This is an alternative (but not recommended) way of setting up authentication when the use of `AUTH_TOKEN` environment variable is not applicable.
@ -135,28 +160,37 @@ auth_token="hunter2"
``` ```
## [0.6.2] - 2021-12-05 ## [0.6.2] - 2021-12-05
### Updated ### Updated
- Improve the concurrency - Improve the concurrency
- Shrink the scope of non-suspendable types (`#[must_not_suspend]`) for dropping them before reaching a suspend point (`.await` call). This avoids possible deadlocks, delays, and situations where `Future`s not implementing `Send`. - Shrink the scope of non-suspendable types (`#[must_not_suspend]`) for dropping them before reaching a suspend point (`.await` call). This avoids possible deadlocks, delays, and situations where `Future`s not implementing `Send`.
- Reference: https://rust-lang.github.io/rfcs/3014-must-not-suspend-lint.html - Reference: https://rust-lang.github.io/rfcs/3014-must-not-suspend-lint.html
## [0.6.1] - 2021-11-16 ## [0.6.1] - 2021-11-16
### Fixed ### Fixed
- Gracefully handle the hot-reloading errors. - Gracefully handle the hot-reloading errors.
- Errors that may occur while locking the [Mutex](https://doc.rust-lang.org/std/sync/struct.Mutex.html) are handled properly hence a single configuration change cannot take down the whole service due to [poisoning](https://doc.rust-lang.org/std/sync/struct.Mutex.html#poisoning). - Errors that may occur while locking the [Mutex](https://doc.rust-lang.org/std/sync/struct.Mutex.html) are handled properly hence a single configuration change cannot take down the whole service due to [poisoning](https://doc.rust-lang.org/std/sync/struct.Mutex.html#poisoning).
## [0.6.0] - 2021-11-07 ## [0.6.0] - 2021-11-07
### Added ### Added
- Support pasting files from remote URLs (via `remote=` form field) - Support pasting files from remote URLs (via `remote=` form field)
- `{server.max_content_length}` is used for download limit - `{server.max_content_length}` is used for download limit
- See [README.md#paste-file-from-remote-url](https://github.com/orhun/rustypaste#paste-file-from-remote-url) - See [README.md#paste-file-from-remote-url](https://github.com/orhun/rustypaste#paste-file-from-remote-url)
- Hot reload configuration file to apply configuration changes instantly without restarting the server - Hot reload configuration file to apply configuration changes instantly without restarting the server
### Changed ### Changed
- Library: Switch to Rust 2021 edition - Library: Switch to Rust 2021 edition
### Security ### Security
- Prevent serving an already expired file - Prevent serving an already expired file
In the previous versions, it was possible to view an expired file by using the correct extension (timestamp). e.g. `paste.com/expired_file.txt.1630094518049` will serve the file normally although `paste.com/expired_file.txt` says that it is expired. This version fixes this vulnerability by regex-checking the requested file's extension. In the previous versions, it was possible to view an expired file by using the correct extension (timestamp). e.g. `paste.com/expired_file.txt.1630094518049` will serve the file normally although `paste.com/expired_file.txt` says that it is expired. This version fixes this vulnerability by regex-checking the requested file's extension.
@ -164,7 +198,9 @@ In the previous versions, it was possible to view an expired file by using the c
reference: [f078a9afa74f8608ee3f2a6e705159df15915c78](https://github.com/orhun/rustypaste/commit/f078a9afa74f8608ee3f2a6e705159df15915c78) reference: [f078a9afa74f8608ee3f2a6e705159df15915c78](https://github.com/orhun/rustypaste/commit/f078a9afa74f8608ee3f2a6e705159df15915c78)
## [0.5.0] - 2021-10-12 ## [0.5.0] - 2021-10-12
### Added ### Added
- Added an entry in the configuration file to disable "duplicate uploads": - Added an entry in the configuration file to disable "duplicate uploads":
```toml ```toml
@ -176,13 +212,17 @@ duplicate_files = false
Under the hood, it checks the SHA256 digest of the uploaded files. Under the hood, it checks the SHA256 digest of the uploaded files.
## [0.4.1] - 2021-09-19 ## [0.4.1] - 2021-09-19
### Changed ### Changed
- Update README.md: - Update README.md:
- Mention the new standalone tool: [rustypaste-cli](https://github.com/orhun/rustypaste-cli) - Mention the new standalone tool: [rustypaste-cli](https://github.com/orhun/rustypaste-cli)
- Add [installation](https://github.com/orhun/rustypaste#installation) section. - Add [installation](https://github.com/orhun/rustypaste#installation) section.
## [0.4.0] - 2021-08-27 ## [0.4.0] - 2021-08-27
### Added ### Added
- Support [expiring links](README.md#expiration) (via `expire:` header) - Support [expiring links](README.md#expiration) (via `expire:` header)
- Timestamps are used as extension for expiring files - Timestamps are used as extension for expiring files
- Expired files can be cleaned up with [this command](README.md#cleaning-up-expired-files) - Expired files can be cleaned up with [this command](README.md#cleaning-up-expired-files)
@ -190,28 +230,39 @@ Under the hood, it checks the SHA256 digest of the uploaded files.
- `{server.upload_path}/oneshot` is used for storage - `{server.upload_path}/oneshot` is used for storage
## [0.3.1] - 2021-08-10 ## [0.3.1] - 2021-08-10
### Fixed ### Fixed
- Switch to [upload-release-action](https://github.com/svenstaro/upload-release-action) for uploading releases - Switch to [upload-release-action](https://github.com/svenstaro/upload-release-action) for uploading releases
## [0.3.0] - 2021-08-09 ## [0.3.0] - 2021-08-09
### Added ### Added
- Support overriding MIME types (config: `mime_override`) - Support overriding MIME types (config: `mime_override`)
- Support blacklisting MIME types (config: `mime_blacklist`) - Support blacklisting MIME types (config: `mime_blacklist`)
## [0.2.0] - 2021-08-04 ## [0.2.0] - 2021-08-04
### Added ### Added
- Support shortening URLs (via `url=` form field) - Support shortening URLs (via `url=` form field)
- `{server.upload_path}/url` is used for storage - `{server.upload_path}/url` is used for storage
## [0.1.3] - 2021-07-28 ## [0.1.3] - 2021-07-28
### Fixed ### Fixed
- Prevent sending empty file name and zero bytes - Prevent sending empty file name and zero bytes
- Prevent path traversal on upload directory ([#2](https://github.com/orhun/rustypaste/issues/2)) - Prevent path traversal on upload directory ([#2](https://github.com/orhun/rustypaste/issues/2))
- Check the content length while reading bytes for preventing OOM ([#1](https://github.com/orhun/rustypaste/issues/1)) - Check the content length while reading bytes for preventing OOM ([#1](https://github.com/orhun/rustypaste/issues/1))
## [0.1.2] - 2021-07-27 ## [0.1.2] - 2021-07-27
### Changed ### Changed
- Update Continuous Deployment workflow to publish Docker images - Update Continuous Deployment workflow to publish Docker images
## [0.1.1] - 2021-07-27 ## [0.1.1] - 2021-07-27
Initial release. Initial release.