38d5f18577
Fix copy+paste bug in alias access
...
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m3s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m42s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m29s
/ clippy (push) Successful in 1m43s
/ deny (push) Successful in 14s
/ tests (push) Successful in 10m15s
This manifests as proxied images not having correct access times after
migrating from sled to postgres. This could lead to high resource use as
all proxied media will be marked as 'accessed' at the time of migration,
causing cleanup of all proxied media to happen at around the same time,
which is 7 days after last access by default.
2025-04-26 13:59:14 -05:00
ca7c6f7ba0
Prepare 0.5.17 release
/ deny (push) Successful in 32s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m27s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m35s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m29s
/ clippy (push) Successful in 1m53s
/ publish-crate (push) Successful in 2m17s
/ tests (push) Successful in 7m5s
/ build (map[artifact:linux-amd64 platform:linux/amd64 target:x86_64-unknown-linux-musl]) (push) Successful in 6m37s
/ build (map[artifact:linux-arm32v7 platform:linux/arm/v7 target:armv7-unknown-linux-musleabihf]) (push) Successful in 6m52s
/ build (map[artifact:linux-arm64v8 platform:linux/arm64 target:aarch64-unknown-linux-musl]) (push) Successful in 3m59s
/ publish-docker (push) Successful in 13s
/ publish-forgejo (push) Successful in 31s
2025-04-21 13:56:16 -05:00
e62a0769cf
metrics-exporter-prometheus 0.17
/ deny (push) Successful in 12s
/ clippy (push) Successful in 1m44s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m55s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m47s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m26s
/ tests (push) Successful in 11m47s
2025-04-21 12:55:52 -05:00
f6b87ebb46
Update dependencies (minor & point)
2025-04-21 12:54:37 -05:00
31463434ca
Fix deny
/ clippy (push) Successful in 2m30s
/ deny (push) Successful in 13s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m5s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m28s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m44s
/ tests (push) Successful in 12m14s
2025-04-17 15:47:14 -05:00
3e29dea11a
Opentelemetry 0.29
/ check (x86_64-unknown-linux-musl) (push) Waiting to run
/ deny (push) Waiting to run
/ tests (push) Waiting to run
/ check (aarch64-unknown-linux-musl) (push) Waiting to run
/ check (armv7-unknown-linux-musleabihf) (push) Waiting to run
/ clippy (push) Has been cancelled
2025-04-17 15:46:00 -05:00
7f0756099d
Update dependencies (minor & point)
2025-04-17 15:38:41 -05:00
c76554a378
v0.5.17-pre.11
/ deny (push) Successful in 29s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m29s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m35s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m25s
/ clippy (push) Successful in 1m52s
/ publish-forgejo (push) Successful in 19s
/ publish-crate (push) Successful in 2m10s
/ publish-docker (push) Successful in 2m43s
/ tests (push) Successful in 7m8s
/ build (map[artifact:linux-amd64 platform:linux/amd64 target:x86_64-unknown-linux-musl]) (push) Successful in 7m40s
/ build (map[artifact:linux-arm32v7 platform:linux/arm/v7 target:armv7-unknown-linux-musleabihf]) (push) Successful in 7m44s
/ build (map[artifact:linux-arm64v8 platform:linux/arm64 target:aarch64-unknown-linux-musl]) (push) Successful in 3m58s
2025-04-04 19:14:30 -05:00
e01c0af292
Merge pull request 'Fix UTF-8 Errors in Repo Migrations' ( #85 ) from asonix/repo-migration-fixes into main
...
/ deny (push) Successful in 21s
/ clippy (push) Successful in 2m18s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m26s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m33s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m25s
/ tests (push) Successful in 10m12s
Reviewed-on: #85
2025-04-04 23:31:06 +00:00
805e3b5ca5
Fix UTF8 errors in repo migrations
...
/ check (armv7-unknown-linux-musleabihf) (pull_request) Successful in 2m10s
/ clippy (pull_request) Successful in 1m39s
/ deny (pull_request) Successful in 13s
/ check (aarch64-unknown-linux-musl) (pull_request) Successful in 2m11s
/ tests (pull_request) Successful in 6m58s
/ check (x86_64-unknown-linux-musl) (pull_request) Successful in 2m5s
As it turns out, sometimes UUIDs are made entirely of bytes that are
valid utf-8. This causes problems if a repo migration takes place (and
in some other scenarios, such as deleting aliases).
Here is an example of the problem
1. A UUID is generated which is valid utf8 for an Alias and stored in
sled.
2. A migration is triggered, and this Alias is read out of sled as a
Name, rather than a UUID.
3. This alias is inserted into postgres with a representation that isn't
formatted like a UUID.
4. That alias is requested by a user, and doesn't match because the
representation is different.
Another example of the problem is the following
1. A Delete Token is generated which is valid utf8 and contains a null
byte. Rust says this is fine. This delete token is stored in sled.
2. A migration is triggered, and this Delete Token is read out of sled
as a Name, rather than a UUID.
3. This Delete Token is not inserted into postgres, because postgres
does not permit null bytes in utf8 strings.
Of these scenarios, only the first can be fixed retroactively. This
commit includes a script which runs on pict-rs' first launch to find and
fix any aliases or tokens that have improper representations in the
postgres database.
Any aliases lost to null bytes in past migrations cannot be recovered
without running the migration a second time, but it's likely that a
given postgres install has diverged enough from it's previous database
that a new migration would cause more problems than it would solve.
In order to fix this going forward, pict-rs always represents aliases
and delete tokens that are 16 bytes long as UUIDs in memory, which
matches the expected format in the repos. This means any future
migrations will not experience this problem.
2025-04-04 17:57:39 -05:00
aa6b4b47e6
Add postgres to flake
2025-04-04 17:18:43 -05:00
c9fae6d36e
try adding concurrency to repo migration
2025-04-04 13:59:59 -05:00
0633784f8b
Remove generator key from migration. It isn't required anymore
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m10s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m5s
/ clippy (push) Successful in 1m39s
/ deny (push) Successful in 12s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m11s
/ tests (push) Successful in 6m58s
2025-04-04 13:18:45 -05:00
0856c2eb1b
Include service.version in tracing context
/ tests (push) Successful in 10m9s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m32s
/ deny (push) Successful in 20s
/ clippy (push) Successful in 2m20s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m33s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m25s
2025-04-02 11:40:06 -05:00
e9ab28a962
Move integration tests into script
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m5s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m11s
/ clippy (push) Successful in 1m40s
/ deny (push) Successful in 13s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m10s
/ tests (push) Successful in 6m56s
2025-03-29 21:10:01 -05:00
73afada7e7
Fix string trimming for bash
/ deny (push) Successful in 23s
/ clippy (push) Successful in 2m20s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m31s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m41s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m25s
/ tests (push) Successful in 10m10s
2025-03-29 17:33:51 -05:00
5e670710eb
Test each suite individually
/ deny (push) Successful in 19s
/ clippy (push) Successful in 2m22s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m39s
/ tests (push) Failing after 4m4s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m20s
/ check (x86_64-unknown-linux-musl) (push) Successful in 3m9s
2025-03-29 17:26:48 -05:00
85ac9ec5aa
Use same rustflags for all tests
/ deny (push) Successful in 14s
/ clippy (push) Successful in 1m40s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m12s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m12s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m6s
/ tests (push) Successful in 7m0s
2025-03-29 17:09:45 -05:00
65fd38682b
Split tests into individual steps
/ deny (push) Successful in 20s
/ check (aarch64-unknown-linux-musl) (push) Waiting to run
/ check (armv7-unknown-linux-musleabihf) (push) Waiting to run
/ check (x86_64-unknown-linux-musl) (push) Waiting to run
/ clippy (push) Has been cancelled
/ tests (push) Has been cancelled
2025-03-29 17:08:42 -05:00
d7e83c5d6e
Enable integration tests in publish workflow
/ deny (push) Successful in 18s
/ clippy (push) Successful in 2m20s
/ check (aarch64-unknown-linux-musl) (push) Successful in 4m52s
/ tests (push) Successful in 8m2s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m11s
/ check (x86_64-unknown-linux-musl) (push) Has been cancelled
2025-03-29 16:58:13 -05:00
5c9d419cc8
Add basic integration tests for process endpoint
/ deny (push) Waiting to run
/ tests (push) Waiting to run
/ check (aarch64-unknown-linux-musl) (push) Waiting to run
/ check (armv7-unknown-linux-musleabihf) (push) Waiting to run
/ check (x86_64-unknown-linux-musl) (push) Waiting to run
/ clippy (push) Has been cancelled
2025-03-29 16:57:07 -05:00
b81eb306c0
Use install-imagemagick action
/ clippy (push) Successful in 1m39s
/ deny (push) Successful in 13s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m13s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m16s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m49s
/ tests (push) Successful in 4m52s
2025-03-29 15:16:18 -05:00
2f24476ae3
re-enable cargo cache. link problem was OOM
/ deny (push) Successful in 19s
/ clippy (push) Successful in 2m18s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m42s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m26s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m8s
/ tests (push) Successful in 9m4s
2025-03-29 14:55:27 -05:00
c60b0f727a
No cache in tests
/ deny (push) Successful in 14s
/ clippy (push) Successful in 2m8s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m11s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 4m12s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m21s
/ tests (push) Successful in 6m16s
2025-03-29 12:24:25 -05:00
f9b1cf961c
Add details integration test
/ deny (push) Successful in 13s
/ clippy (push) Successful in 1m39s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m4s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m8s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m47s
/ tests (push) Failing after 5m13s
2025-03-29 12:16:18 -05:00
3adec92cff
Run integration tests in nix derivation
/ deny (push) Successful in 14s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m48s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m54s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m46s
/ clippy (push) Successful in 2m32s
/ tests (push) Successful in 2m35s
/ publish-docker (push) Successful in 13s
/ publish-forgejo (push) Successful in 19s
/ publish-crate (push) Successful in 2m7s
/ build (map[artifact:linux-amd64 platform:linux/amd64 target:x86_64-unknown-linux-musl]) (push) Successful in 4m8s
/ build (map[artifact:linux-arm32v7 platform:linux/arm/v7 target:armv7-unknown-linux-musleabihf]) (push) Successful in 3m54s
/ build (map[artifact:linux-arm64v8 platform:linux/arm64 target:aarch64-unknown-linux-musl]) (push) Successful in 3m50s
2025-03-28 22:04:48 -05:00
76a8097920
Consistency in release notes
/ deny (push) Successful in 17s
/ clippy (push) Successful in 2m26s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m53s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m37s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m25s
/ tests (push) Successful in 8m19s
2025-03-28 21:44:19 -05:00
13d506d7eb
Update dependencies (minor & point)
/ deny (push) Waiting to run
/ tests (push) Waiting to run
/ check (aarch64-unknown-linux-musl) (push) Waiting to run
/ check (armv7-unknown-linux-musleabihf) (push) Waiting to run
/ check (x86_64-unknown-linux-musl) (push) Waiting to run
/ clippy (push) Has been cancelled
2025-03-28 21:40:50 -05:00
b3aadbef8a
Prepare 0.5.17-pre.10 release
2025-03-28 21:40:04 -05:00
99c260f69d
Enable comma-separated filters in environment variables
/ deny (push) Successful in 14s
/ clippy (push) Successful in 1m38s
/ tests (push) Successful in 5m37s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m11s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m0s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m26s
2025-03-28 19:48:36 -05:00
fd5ee28224
Merge pull request 'Disable chunked transfer encoding of responses' ( #82 ) from Nothing4You/pict-rs:content-length into main
...
/ deny (push) Successful in 18s
/ clippy (push) Successful in 2m13s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m34s
/ tests (push) Failing after 7m31s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m57s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m27s
Reviewed-on: #82
Reviewed-by: asonix <asonix@asonix.dog>
2025-03-29 00:23:14 +00:00
8833951b56
Merge pull request 'Add tests with system deps' ( #84 ) from asonix/integration-tests into main
...
/ clippy (push) Successful in 1m39s
/ deny (push) Successful in 12s
/ check (aarch64-unknown-linux-musl) (push) Waiting to run
/ check (armv7-unknown-linux-musleabihf) (push) Waiting to run
/ check (x86_64-unknown-linux-musl) (push) Waiting to run
/ tests (push) Has been cancelled
Reviewed-on: #84
2025-03-29 00:18:49 +00:00
6063347b0d
add tests for content-length and content-range headers, as well as returned body size
...
/ deny (pull_request) Successful in 15s
/ clippy (pull_request) Successful in 2m43s
/ check (aarch64-unknown-linux-musl) (pull_request) Successful in 3m28s
/ check (armv7-unknown-linux-musleabihf) (pull_request) Successful in 3m41s
/ tests (pull_request) Successful in 8m49s
/ check (x86_64-unknown-linux-musl) (pull_request) Successful in 2m21s
this uses the content-length header returned by a non-ranged HEAD request as a reference value
2025-03-29 00:13:29 +01:00
4fcb878f2b
Implement dummy stream for HEAD responses to allow actix to calculate correct content-length headers
2025-03-28 22:12:21 +01:00
3063346b9c
Disable chunked transfer encoding of responses
...
This also implicitly adds the content-length header, which improves
compatibility with CDN caches such as Cloudflare when using range requests.
2025-03-28 22:12:21 +01:00
a71812930e
Add tests with system deps
...
/ deny (pull_request) Successful in 19s
/ clippy (pull_request) Successful in 2m10s
/ check (aarch64-unknown-linux-musl) (pull_request) Successful in 3m26s
/ check (armv7-unknown-linux-musleabihf) (pull_request) Successful in 3m2s
/ check (x86_64-unknown-linux-musl) (pull_request) Successful in 2m15s
/ tests (pull_request) Successful in 7m39s
These new tests each spin up their own instance of pict-rs. This allows
for configuring pict-rs differently depending on the test that needs to
be run. It also opens the possibility of writing tests with object
storage and postgres requirements in the future.
So far there's pretty minimal test coverage. Just uploading,
downloading, deleting, and checking validation errors for images and
animations. In the future, tests need to be added for videos, many
variations of the process endpoint, and the admin endpoints.
The new tests are locked behind a configuration option (not a feature)
called `system_deps`. They can be enabled by passing
`RUSTFLAGS='--cfg system_deps'`
This is to prevent tests from running and failing in environments where
the exiftool, imagemagick, and ffmpeg binaries are not present.
This builds imagemagick from source for a few reasons
1. binaries for imagemagick 7 are not available for debian 12
2. the imagemagick appimage does not support avif files
3. the imagemagick appimage is limited to x86_64
2025-03-28 10:30:03 -05:00
742677fff6
Fix blurhash computation for some animations
...
/ deny (push) Successful in 12s
/ tests (push) Successful in 2m0s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m8s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m4s
/ clippy (push) Successful in 1m40s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m9s
In the pure-rust blurhash path, I recently added byte streaming for the
image reader, which for some formats (like gif) can produce and operate
on the first frame of an animation without downloading the whole file.
This means that a blurhash could be calculated and the reader dropped
before the writer had written all the bytes to the channel. Erroring in
this case is incorrect.
2025-03-27 11:47:24 -05:00
7483ca43f9
object_store 0.12
/ clippy (push) Successful in 1m47s
/ deny (push) Successful in 12s
/ tests (push) Successful in 2m2s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m9s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m8s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m3s
2025-03-25 15:21:49 -05:00
d506f38b78
Opentelemetry 0.28
2025-03-25 15:18:09 -05:00
2059d7aaf5
Update dependencies (minor & point)
2025-03-25 15:12:09 -05:00
cfaf6d70ef
update rustls-channel-resolver
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m8s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m3s
/ tests (push) Successful in 2m1s
/ deny (push) Successful in 12s
/ clippy (push) Successful in 1m43s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m7s
2025-02-09 13:34:53 -06:00
6eea4bcf2e
Update deny.toml
/ tests (push) Successful in 2m29s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m20s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m21s
/ deny (push) Successful in 17s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m10s
/ clippy (push) Successful in 2m28s
2025-02-08 16:11:50 -06:00
2c84bb2092
Add release notes
/ deny (push) Successful in 18s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m18s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m21s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m47s
/ tests (push) Successful in 2m5s
/ clippy (push) Successful in 2m34s
/ publish-docker (push) Successful in 15s
/ publish-forgejo (push) Successful in 19s
/ publish-crate (push) Successful in 2m8s
/ build (map[artifact:linux-amd64 platform:linux/amd64 target:x86_64-unknown-linux-musl]) (push) Successful in 6m30s
/ build (map[artifact:linux-arm32v7 platform:linux/arm/v7 target:armv7-unknown-linux-musleabihf]) (push) Successful in 6m49s
/ build (map[artifact:linux-arm64v8 platform:linux/arm64 target:aarch64-unknown-linux-musl]) (push) Successful in 4m1s
2025-02-08 16:03:23 -06:00
e4d213fb49
rand 0.9.0
/ tests (push) Successful in 2m27s
/ deny (push) Successful in 24s
/ clippy (push) Successful in 2m29s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m14s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m16s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m11s
2025-02-08 15:53:37 -06:00
6473e37f27
config 0.15
2025-02-08 15:49:17 -06:00
9000152fe5
0.5.17-pre.9
2025-02-08 15:42:56 -06:00
071a541300
Update nixpkgs
/ tests (push) Successful in 2m1s
/ deny (push) Successful in 13s
/ clippy (push) Successful in 1m37s
/ check (aarch64-unknown-linux-musl) (push) Successful in 2m7s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 2m7s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m3s
2025-02-08 14:55:19 -06:00
ae785fa8fc
BytesReader: Remove unneeded try_recv
/ deny (push) Successful in 19s
/ tests (push) Successful in 2m30s
/ clippy (push) Successful in 2m40s
/ check (aarch64-unknown-linux-musl) (push) Successful in 3m25s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 3m24s
/ check (x86_64-unknown-linux-musl) (push) Successful in 2m14s
2025-02-08 14:39:21 -06:00
c8817db997
BytesReader: implement in terms of BufReader
/ tests (push) Waiting to run
/ check (aarch64-unknown-linux-musl) (push) Waiting to run
/ check (armv7-unknown-linux-musleabihf) (push) Waiting to run
/ check (x86_64-unknown-linux-musl) (push) Waiting to run
/ clippy (push) Successful in 1m47s
/ deny (push) Has been cancelled
2025-02-08 14:36:51 -06:00
939cd7955c
Add BytesReader for streaming image decoding for blurhashes
2025-02-08 14:21:52 -06:00