mirror of
https://github.com/mattermost/mattermost.git
synced 2026-08-27 05:37:15 -05:00
* Add benchmarks for image transformation functions Covers GeneratePreview, GenerateThumbnail, GenerateMiniPreviewImage, FillCenter, and MakeImageUpright — all functions that delegate to the external imaging library. Baseline before/after the library swap. * Replace anthonynsimon/bild with boxes-ltd/imaging Reverts the imaging library swap from PR #29657 (disintegration/imaging → anthonynsimon/bild) and replaces it with github.com/boxes-ltd/imaging, the maintained fork of disintegration/imaging with the same API. - emoji.go: restore direct use of imaging.Fit with Lanczos filter - orientation.go: restore FlipH/FlipV/Rotate90/180/270/Transpose/Transverse - preview.go: restore imaging.Resize calls with Lanczos filter - utils.go: remove bild-based Resize/Fit/CropCenter helpers; restore the original FillCenter using imaging.Fill - Remove tests and test images added for the bild-specific helpers - Regenerate orientation test expected images (2,3,6,7,8) and GIF thumbnail to match boxes-ltd/imaging output https://claude.ai/code/session_012f5wLSCRQrQeRraPj282sT * gofmt imaging package files * Add tests and fixtures for the boxes-ltd/imaging-backed functions Cover MakeImageUpright across all 8 EXIF orientations, GeneratePreview, GenerateMiniPreviewImage, and FillCenter against fixtures regenerated under the new library. * Contain boxes-ltd/imaging behind the local imaging wrapper Add a Fit wrapper alongside FillCenter and route emoji.go through the local package so boxes-ltd/imaging is only imported from channels/app/imaging. * Add TestFit to cover the local Fit wrapper Dimensional checks for the Fit wrapper used by emoji.go, mirroring TestGenerateThumbnail. Pixel correctness is covered by the upstream boxes-ltd/imaging tests; this guards against wrapper-level mistakes (transposed args, wrong filter). * Address CodeRabbit nits in TestFillCenter and TestFit Decode a fresh source image per TestFillCenter subtest so cases stay isolated even if the wrapper ever mutates input. Rename the TestFit "smaller than bounds (clone)" case to "no resize when smaller than bounds" since the assertion only checks dimensions, not clone semantics. * Revert per-subtest decode in TestFillCenter imaging.Fill never mutates its input — it always returns a fresh *image.NRGBA — so re-decoding the source for every subtest was unnecessary work. Decode once, share across subtests. * Compare decoded pixels instead of raw PNG/JPEG bytes in tests image/png isn't byte-stable across Go versions, so comparing re-encoded byte streams against checked-in fixtures is brittle to toolchain bumps and re-encoding. Decode both sides and compare RGBA pixels via a shared requireSameImage helper. Fixtures stay on disk unchanged. Covers TestFillCenter, TestGeneratePreview, TestGenerateMiniPreviewImage, and TestMakeImageUpright. TestFillImageTransparency is left alone since its byte-comparison pattern predates this branch. * Report total diff rate when requireSameImage fails Walk every pixel before failing instead of stopping at the first mismatch. The failure message now includes how many pixels differ, the percentage of the image that's off, and the first divergence. --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Mattermost Build <build@mattermost.com>
236 lines
11 KiB
AMPL
236 lines
11 KiB
AMPL
module github.com/mattermost/mattermost/server/v8
|
|
|
|
go 1.25.9
|
|
|
|
require (
|
|
code.sajari.com/docconv/v2 v2.0.0-pre.4
|
|
github.com/Masterminds/semver/v3 v3.4.0
|
|
github.com/boxes-ltd/imaging v1.7.5
|
|
github.com/avct/uasurfer v0.0.0-20250915105040-a942f6fb6edc
|
|
github.com/aws/aws-sdk-go-v2 v1.41.5
|
|
github.com/aws/aws-sdk-go-v2/config v1.32.13
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.13
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.21
|
|
github.com/aws/aws-sdk-go-v2/service/marketplacemetering v1.36.3
|
|
github.com/bep/imagemeta v0.12.0
|
|
github.com/blang/semver/v4 v4.0.0
|
|
github.com/cespare/xxhash/v2 v2.3.0
|
|
github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3
|
|
github.com/dyatlov/go-opengraph/opengraph v0.0.0-20220524092352-606d7b1e5f8a
|
|
github.com/elastic/go-elasticsearch/v8 v8.19.3
|
|
github.com/fatih/color v1.19.0
|
|
github.com/getsentry/sentry-go v0.44.1
|
|
github.com/goccy/go-yaml v1.19.2
|
|
github.com/golang-jwt/jwt/v5 v5.3.1
|
|
github.com/golang-migrate/migrate/v4 v4.19.1
|
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
|
|
github.com/golang/mock v1.6.0
|
|
github.com/gorilla/handlers v1.5.2
|
|
github.com/gorilla/mux v1.8.1
|
|
github.com/gorilla/schema v1.4.1
|
|
github.com/gorilla/websocket v1.5.3
|
|
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c
|
|
github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b
|
|
github.com/hashicorp/go-multierror v1.1.1
|
|
github.com/hashicorp/memberlist v0.5.4
|
|
github.com/icrowley/fake v0.0.0-20240710202011-f797eb4a99c0
|
|
github.com/isacikgoz/prompt v0.1.0
|
|
github.com/jmoiron/sqlx v1.4.0
|
|
github.com/klauspost/compress v1.18.5
|
|
github.com/ledongthuc/pdf v0.0.0-20250511090121-5959a4027728
|
|
github.com/lib/pq v1.12.0
|
|
github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404
|
|
github.com/mattermost/gosaml2 v0.10.0
|
|
github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956
|
|
github.com/mattermost/logr/v2 v2.0.22
|
|
github.com/mattermost/mattermost-plugin-ai v1.14.0
|
|
github.com/mattermost/mattermost/server/public v0.3.0
|
|
github.com/mattermost/morph v1.1.0
|
|
github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0
|
|
github.com/mattermost/squirrel v0.5.0
|
|
github.com/mholt/archives v0.1.5
|
|
github.com/microcosm-cc/bluemonday v1.0.27
|
|
github.com/minio/minio-go/v7 v7.0.99
|
|
github.com/opensearch-project/opensearch-go/v4 v4.6.0
|
|
github.com/pkg/errors v0.9.1
|
|
github.com/prometheus/client_golang v1.23.2
|
|
github.com/prometheus/client_model v0.6.2
|
|
github.com/prometheus/common v0.67.5
|
|
github.com/redis/rueidis v1.0.73
|
|
github.com/reflog/dateconstraints v0.2.1
|
|
github.com/rs/cors v1.11.1
|
|
github.com/sirupsen/logrus v1.9.4
|
|
github.com/spf13/cobra v1.10.2
|
|
github.com/spf13/viper v1.21.0
|
|
github.com/splitio/go-client/v6 v6.10.0
|
|
github.com/stretchr/testify v1.11.1
|
|
github.com/throttled/throttled/v2 v2.15.0
|
|
github.com/tinylib/msgp v1.6.3
|
|
github.com/tylerb/graceful v1.2.15
|
|
github.com/vmihailenco/msgpack/v5 v5.4.1
|
|
github.com/wiggin77/merror v1.0.5
|
|
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c
|
|
github.com/yuin/goldmark v1.8.2
|
|
golang.org/x/crypto v0.49.0
|
|
golang.org/x/image v0.38.0
|
|
golang.org/x/net v0.52.0
|
|
golang.org/x/sync v0.20.0
|
|
golang.org/x/sys v0.42.0
|
|
golang.org/x/term v0.41.0
|
|
golang.org/x/text v0.35.0
|
|
gopkg.in/mail.v2 v2.3.1
|
|
)
|
|
|
|
require (
|
|
filippo.io/edwards25519 v1.2.0 // indirect
|
|
github.com/JalfResi/justext v0.0.0-20221106200834-be571e3e3052 // indirect
|
|
github.com/PuerkitoBio/goquery v1.12.0 // indirect
|
|
github.com/STARRY-S/zip v0.2.3 // indirect
|
|
github.com/advancedlogic/GoOse v0.0.0-20231203033844-ae6b36caf275 // indirect
|
|
github.com/andybalholm/brotli v1.2.0 // indirect
|
|
github.com/andybalholm/cascadia v1.3.3 // indirect
|
|
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect
|
|
github.com/armon/go-metrics v0.4.1 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.9 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.18 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.41.10 // indirect
|
|
github.com/aws/smithy-go v1.24.2 // indirect
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
github.com/beevik/etree v1.6.0 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/bits-and-blooms/bitset v1.24.4 // indirect
|
|
github.com/bits-and-blooms/bloom/v3 v3.7.1 // indirect
|
|
github.com/bodgit/plumbing v1.3.0 // indirect
|
|
github.com/bodgit/sevenzip v1.6.1 // indirect
|
|
github.com/bodgit/windows v1.0.1 // indirect
|
|
github.com/clipperhouse/displaywidth v0.11.0 // indirect
|
|
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
|
|
github.com/corpix/uarand v0.2.0 // indirect
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
|
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/elastic/elastic-transport-go/v8 v8.9.0 // indirect
|
|
github.com/fatih/set v0.2.1 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/francoispqt/gojay v1.2.13 // indirect
|
|
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
|
github.com/gigawattio/window v0.0.0-20180317192513-0f5467e35573 // indirect
|
|
github.com/go-asn1-ber/asn1-ber v1.5.7 // indirect
|
|
github.com/go-ini/ini v1.67.0 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-resty/resty/v2 v2.17.2 // indirect
|
|
github.com/go-sql-driver/mysql v1.9.3 // indirect
|
|
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
|
|
github.com/goccy/go-json v0.10.6 // indirect
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
|
github.com/gomodule/redigo v2.0.0+incompatible // indirect
|
|
github.com/google/btree v1.1.3 // indirect
|
|
github.com/google/jsonschema-go v0.4.2 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gorilla/css v1.0.1 // indirect
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
|
github.com/hashicorp/go-hclog v1.6.3 // indirect
|
|
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
|
github.com/hashicorp/go-metrics v0.5.4 // indirect
|
|
github.com/hashicorp/go-msgpack/v2 v2.1.5 // indirect
|
|
github.com/hashicorp/go-plugin v1.7.0 // indirect
|
|
github.com/hashicorp/go-sockaddr v1.0.7 // indirect
|
|
github.com/hashicorp/golang-lru v1.0.2 // indirect
|
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
|
github.com/hashicorp/yamux v0.1.2 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/isacikgoz/fuzzy v0.2.0 // indirect
|
|
github.com/jaytaylor/html2text v0.0.0-20260303211410-1a4bdc82ecec // indirect
|
|
github.com/jonboulle/clockwork v0.5.0 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
|
github.com/klauspost/crc32 v1.3.0 // indirect
|
|
github.com/klauspost/pgzip v1.2.6 // indirect
|
|
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
|
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
|
|
github.com/levigross/exp-html v0.0.0-20120902181939-8df60c69a8f5 // indirect
|
|
github.com/mattermost/xml-roundtrip-validator v0.1.0 // indirect
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-runewidth v0.0.21 // indirect
|
|
github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
|
|
github.com/miekg/dns v1.1.72 // indirect
|
|
github.com/mikelolasagasti/xz v1.0.1 // indirect
|
|
github.com/minio/crc64nvme v1.1.1 // indirect
|
|
github.com/minio/md5-simd v1.1.2 // indirect
|
|
github.com/minio/minlz v1.1.0 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/ncruces/go-strftime v1.0.0 // indirect
|
|
github.com/nwaples/rardecode/v2 v2.2.2 // indirect
|
|
github.com/oklog/run v1.2.0 // indirect
|
|
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
|
|
github.com/olekukonko/errors v1.2.0 // indirect
|
|
github.com/olekukonko/ll v0.1.8 // indirect
|
|
github.com/olekukonko/tablewriter v1.1.4 // indirect
|
|
github.com/otiai10/gosseract/v2 v2.4.1 // indirect
|
|
github.com/pborman/uuid v1.2.1 // indirect
|
|
github.com/pelletier/go-toml v1.9.5 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.3.0 // indirect
|
|
github.com/philhofer/fwd v1.2.0 // indirect
|
|
github.com/pierrec/lz4/v4 v4.1.26 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/procfs v0.20.1 // indirect
|
|
github.com/redis/go-redis/v9 v9.18.0 // indirect
|
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
github.com/richardlehane/mscfb v1.0.6 // indirect
|
|
github.com/richardlehane/msoleps v1.0.6 // indirect
|
|
github.com/rs/xid v1.6.0 // indirect
|
|
github.com/russellhaering/goxmldsig v1.6.0 // indirect
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
github.com/sagikazarmark/locafero v0.12.0 // indirect
|
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect
|
|
github.com/sorairolake/lzip-go v0.3.8 // indirect
|
|
github.com/spf13/afero v1.15.0 // indirect
|
|
github.com/spf13/cast v1.10.0 // indirect
|
|
github.com/spf13/pflag v1.0.10 // indirect
|
|
github.com/splitio/go-split-commons/v9 v9.1.0 // indirect
|
|
github.com/splitio/go-toolkit/v5 v5.4.1 // indirect
|
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
|
github.com/stretchr/objx v0.5.3 // indirect
|
|
github.com/subosito/gotenv v1.6.0 // indirect
|
|
github.com/ulikunitz/xz v0.5.15 // indirect
|
|
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
|
|
github.com/wiggin77/srslog v1.0.1 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
|
go.opentelemetry.io/otel v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.42.0 // indirect
|
|
go.uber.org/atomic v1.11.0 // indirect
|
|
go.yaml.in/yaml/v2 v2.4.4 // indirect
|
|
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
|
go4.org v0.0.0-20260112195520-a5071408f32f // indirect
|
|
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect
|
|
golang.org/x/mod v0.34.0 // indirect
|
|
golang.org/x/tools v0.43.0 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260319201613-d00831a3d3e7 // indirect
|
|
google.golang.org/grpc v1.79.3 // indirect
|
|
google.golang.org/protobuf v1.36.11 // indirect
|
|
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
modernc.org/libc v1.70.0 // indirect
|
|
modernc.org/mathutil v1.7.1 // indirect
|
|
modernc.org/memory v1.11.0 // indirect
|
|
modernc.org/sqlite v1.48.0 // indirect
|
|
)
|
|
|
|
// See MM-66167, MM-68222 for more details.
|
|
replace github.com/vmihailenco/msgpack/v5 => github.com/mattermost/msgpack/v5 v5.0.0-20260408165622-cadfad56a815
|
|
|
|
// See MM-63434 for more details.
|
|
replace github.com/ledongthuc/pdf => github.com/jgheithcock/pdf v0.0.0-20260404175814-28cd6530c1fe
|