Gusted
fa37a211fb
[GITEA] Drop sha256-simd in favor of stdlib
...
- In Go 1.21 the crypto/sha256 [got a massive
improvement](https://go.dev/doc/go1.21#crypto/sha256 ) by utilizing the
SHA instructions for AMD64 CPUs, which sha256-simd already was doing.
The performance is now on par and I think it's preferable to use the
standard library rather than a package when possible.
```
cpu: AMD Ryzen 5 3600X 6-Core Processor
│ simd.txt │ go.txt │
│ sec/op │ sec/op vs base │
Hash/8Bytes-12 63.25n ± 1% 73.38n ± 1% +16.02% (p=0.002 n=6)
Hash/64Bytes-12 98.73n ± 1% 105.30n ± 1% +6.65% (p=0.002 n=6)
Hash/1K-12 567.2n ± 1% 572.8n ± 1% +0.99% (p=0.002 n=6)
Hash/8K-12 4.062µ ± 1% 4.062µ ± 1% ~ (p=0.396 n=6)
Hash/1M-12 512.1µ ± 0% 510.6µ ± 1% ~ (p=0.485 n=6)
Hash/5M-12 2.556m ± 1% 2.564m ± 0% ~ (p=0.093 n=6)
Hash/10M-12 5.112m ± 0% 5.127m ± 0% ~ (p=0.093 n=6)
geomean 13.82µ 14.27µ +3.28%
│ simd.txt │ go.txt │
│ B/s │ B/s vs base │
Hash/8Bytes-12 120.6Mi ± 1% 104.0Mi ± 1% -13.81% (p=0.002 n=6)
Hash/64Bytes-12 618.2Mi ± 1% 579.8Mi ± 1% -6.22% (p=0.002 n=6)
Hash/1K-12 1.682Gi ± 1% 1.665Gi ± 1% -0.98% (p=0.002 n=6)
Hash/8K-12 1.878Gi ± 1% 1.878Gi ± 1% ~ (p=0.310 n=6)
Hash/1M-12 1.907Gi ± 0% 1.913Gi ± 1% ~ (p=0.485 n=6)
Hash/5M-12 1.911Gi ± 1% 1.904Gi ± 0% ~ (p=0.093 n=6)
Hash/10M-12 1.910Gi ± 0% 1.905Gi ± 0% ~ (p=0.093 n=6)
geomean 1.066Gi 1.032Gi -3.18%
```
(cherry picked from commit abd94ff5b59c86e793fd9bf12187ea6cfd1f3fa1)
(cherry picked from commit 15e81637abf70576a564cf9eecaa9640228afb5b)
Conflicts:
go.mod
https://codeberg.org/forgejo/forgejo/pulls/1581
(cherry picked from commit 325d92917f655c999b81b08832ee623d6b669f0f)
Conflicts:
modules/context/context_cookie.go
https://codeberg.org/forgejo/forgejo/pulls/1617
(cherry picked from commit 358819e8959886faa171ac16541097500d0a703e)
(cherry picked from commit 362fd7aae17832fa922fa017794bc564ca43060d)
(cherry picked from commit 4f64ee294ee05c93042b6ec68f0a179ec249dab9)
(cherry picked from commit 4bde77f7b13c5f961c141c01b6da1f9eda5ec387)
(cherry picked from commit 1311e30a811675eb623692349e4e808a85aabef6)
(cherry picked from commit 57b69e334c2973118488b9b5dbdc8a2c88135756)
(cherry picked from commit 52dc892fadecf39e89c3c351edc9efb42522257b)
(cherry picked from commit 77f54f4187869c6eabcc837742fd3f908093a76c)
(cherry picked from commit 0d0392f3a510ce3683bb649dee1e65b45dd91354)
Conflicts:
go.mod
https://codeberg.org/forgejo/forgejo/pulls/2034
(cherry picked from commit 92798364e8fe3188a2100b54f3adea943f8309e9)
(cherry picked from commit 43d218127752aa9251c4c3ef71b9c060f109dffc)
(cherry picked from commit 45c88b86a35729fc0b2dc6b72bc33caf9f69265f)
(cherry picked from commit a1cd6f4e3a7956773cbc0aef8abb80d17b62eb49)
(cherry picked from commit 01191dc2adf8c57ae448be37e73158005a8ff74d)
(cherry picked from commit 151e07f37e2854ad633f1352fb0ce3cd06f4b2ae)
2024-02-05 16:09:40 +01:00
harryzcy
ec227d6682
Remove nfnt/resize and oliamb/cutter ( #25999 )
...
The package `github.com/nfnt/resize` is deprecated and archived by the
author. `github.com/oliamb/cutter` is not maintained since 2018. We
could use `golang.org/x/image/draw` instead.
2023-07-20 19:52:42 +08:00
Earl Warren
43c9a84ae5
Add unit test for HashAvatar
( #25662 )
...
- Add 100% unit test for this function.
---------
Co-authored-by: Gusted <postmaster@gusted.xyz>
2023-07-04 12:43:38 +00:00
wxiaoguang
82224c54e0
Improve avatar uploading / resizing / compressing, remove Fomantic card module ( #24653 )
...
Fixes : #8972
Fixes : #24263
And I think it also (partially) fix #24263 (no need to convert) ,
because users could upload any supported image format if it isn't larger
than AVATAR_MAX_ORIGIN_SIZE
The main idea:
* if the uploaded file size is not larger than AVATAR_MAX_ORIGIN_SIZE,
use the origin
* if the resized size is larger than the origin, use the origin
Screenshots:
JPG:
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/70e98bb0-ecb9-4c4e-a89f-4a37d4e37f8e )
</details>
APNG:
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/9055135b-5e2d-4152-bd72-596fcb7c6671 )
![image](https://github.com/go-gitea/gitea/assets/2114189/50364caf-f7f6-4241-a289-e485fe4cd582 )
</details>
WebP (animated)
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/f642eb85-498a-49a5-86bf-0a7b04089ae0 )
</details>
The only exception: if a WebP image is larger than MaxOriginSize and it
is animated, then current `webp` package can't decode it, so only in
this case it isn't supported. IMO no need to support such case: why a
user would upload a 1MB animated webp as avatar? crazy .....
---------
Co-authored-by: silverwind <me@silverwind.io>
2023-05-13 20:59:11 +02:00
JakobDev
65fe0fb22c
Allow webp
images as avatars ( #24248 )
...
Users can now upload `webp` images.
Browsers supporting webp images then display this as the avatar of this
user (every major browser except IE).
---------
Co-authored-by: silverwind <me@silverwind.io>
2023-04-21 13:15:49 -04:00
zeripath
1319ba6742
Use minio/sha256-simd for accelerated SHA256 ( #23052 )
...
minio/sha256-simd provides additional acceleration for SHA256 using
AVX512, SHA Extensions for x86 and ARM64 for ARM.
It provides a drop-in replacement for crypto/sha256 and if the
extensions are not available it falls back to standard crypto/sha256.
---------
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-02-22 14:21:46 -05:00
Gusted
96797fed31
Unify hashing for avatar ( #22289 )
...
- Unify the hashing code for repository and user avatars into a
function.
- Use a sane hash function instead of MD5.
- Only require hashing once instead of twice(w.r.t. hashing for user
avatar).
- Improve the comment for the hashing code of why it works.
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Yarden Shoham <hrsi88@gmail.com>
2023-01-02 22:46:39 +01:00
flynnnnnnnnnn
e81ccc406b
Implement FSFE REUSE for golang files ( #21840 )
...
Change all license headers to comply with REUSE specification.
Fix #16132
Co-authored-by: flynnnnnnnnnn <flynnnnnnnnnn@github>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2022-11-27 18:20:29 +00:00
delvh
0ebb45cfe7
Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) ( #21551 )
...
Found using
`find . -type f -name '*.go' -print -exec vim {} -c
':%s/fmt\.Errorf(\(.*\)%v\(.*\)err/fmt.Errorf(\1%w\2err/g' -c ':wq' \;`
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2022-10-24 20:29:17 +01:00
John Olheiser
a48d6ba4b4
Go 1.19 format ( #20758 )
...
* 1.19 gofumpt
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Change CSV test
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Commit whitespace fixes from @zeripath
Co-authored-by: zeripath <art27@cantab.net>
* Update emoji
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* bump swagger & fix generate-swagger
Signed-off-by: jolheiser <john.olheiser@gmail.com>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lauris BH <lauris@nix.lv>
2022-08-30 21:15:45 -05:00
wxiaoguang
c18d8d6968
Remove legacy +build:
constraint ( #19582 )
...
Go 1.17 and later use modern `//go:build` constraints, the old `// +build:` constraints should be removed.
2022-05-02 23:22:45 +08:00
6543
54e9ee37a7
format with gofumpt ( #18184 )
...
* gofumpt -w -l .
* gofumpt -w -l -extra .
* Add linter
* manual fix
* change make fmt
2022-01-20 18:46:10 +01:00
luzpaz
8c647bf0f6
Fix various typos ( #18219 )
...
Found via `codespell -q 3 -S ./options/locale,./vendor -L ba,pullrequest,pullrequests,readby,te,unknwon`
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2022-01-10 17:32:37 +08:00
Gusted
ff2fd08228
Simplify parameter types ( #18006 )
...
Remove repeated type declarations in function definitions.
2021-12-20 04:41:31 +00:00
techknowlogick
499b05da22
Add user settings key/value DB table ( #16834 )
2021-11-22 04:47:23 -05:00
wxiaoguang
a8fd76557b
Better builtin avatar generator ( #17707 )
...
This PR fixes the builtin avatar generator.
1. The random background color makes some images very dirty. So now we only use white background for avatars.
2. We use left-right mirror avatars to satisfy #14799
3. Fix a small padding error in the algorithm
2021-11-20 01:10:41 +08:00
Eng Zer Jun
f2e7d5477f
refactor: move from io/ioutil to io and os package ( #17109 )
...
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil . This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
2021-09-22 13:38:34 +08:00
KN4CK3R
8e262104c2
Add Image Diff for SVG files ( #14867 )
...
* Added type sniffer.
* Switched content detection from base to typesniffer.
* Added GuessContentType to Blob.
* Moved image info logic to client.
Added support for SVG images in diff.
* Restore old blocked svg behaviour.
* Added missing image formats.
* Execute image diff only when container is visible.
* add margin to spinner
* improve BIN tag on image diffs
* Default to render view.
* Show image diff on incomplete diff.
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
2021-06-05 15:32:19 +03:00
silverwind
1e6fa57acb
Use single shared random string generation function ( #15741 )
...
* Use single shared random string generation function
- Replace 3 functions that do the same with 1 shared one
- Use crypto/rand over math/rand for a stronger RNG
- Output only alphanumerical for URL compatibilty
Fixes : #15536
* use const string method
* Update modules/avatar/avatar.go
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: a1012112796 <1012112796@qq.com>
2021-05-10 07:45:17 +01:00
Lunny Xiao
80a6b0f5bc
Avatars and Repo avatars support storing in minio ( #12516 )
...
* Avatar support minio
* Support repo avatar minio storage
* Add missing migration
* Fix bug
* Fix test
* Add test for minio store type on avatars and repo avatars; Add documents
* Fix bug
* Fix bug
* Add back missed avatar link method
* refactor codes
* Simplify the codes
* Code improvements
* Fix lint
* Fix test mysql
* Fix test mysql
* Fix test mysql
* Fix settings
* Fix test
* fix test
* Fix bug
2020-10-14 21:07:51 +08:00
6543
f7b3e06026
Fix Avatar Resize (resize algo NearestNeighbor -> Bilinear) ( #12745 )
...
* Update Vendor github.com/nfnt/resize
* switch resize algo NearestNeighbor -> Bilinear
2020-09-06 20:53:33 +01:00
Rob Watson
df2557835b
Improve handling of non-square avatars ( #7025 )
...
* Crop avatar before resizing (#1268 )
Signed-off-by: Rob Watson <rfwatson@users.noreply.github.com>
* Fix spelling error
Signed-off-by: Rob Watson <rfwatson@users.noreply.github.com>
2019-05-25 14:46:14 +03:00
Ethan Koenig
d2329e1c26
Use assert in legacy unit tests ( #867 )
2017-02-08 14:29:07 +08:00
Lunny Xiao
3c87c57d96
golint fixed for modules/avatar
2016-11-25 16:37:04 +08:00
Dennis Chen
6488ee12be
avatar: make custom and generated avatars equal ( #3301 )
...
Sets all avatars to use PNG image format.
Keeps avatars consistent at 290x290px resolution.
Signed-off-by: Dennis Chen <barracks510@gmail.com>
2016-07-21 15:31:14 +08:00
Unknwon
d5a3021a7d
Make markdown as an independent module
2016-02-20 17:10:05 -05:00
Unknwon
58e004f7da
Remove cache avatar support and add its tests
2016-02-14 23:14:55 -05:00
Unknwon
5dc3dd1704
fix #1960
2015-11-16 11:11:59 -05:00
Unknwon
1559bd58e7
save custom avatar as PNG
2015-11-13 16:43:43 -05:00
Unknwon
a205acf829
drop go 1.2 support
2015-09-26 17:54:02 -04:00
Unknwon
384fbeca80
#1474 logic fix
2015-08-29 14:44:38 +08:00
Unknwon
5ddcd8420b
#1474 minor fix
2015-08-29 12:03:40 +08:00
Unknwon
4cfa2ca40d
#1474 Edit New issue UpdateGravatarSource() assumes insecure protocol
2015-08-28 14:35:08 +08:00
Unknwon
68b9d78386
remove sync.Pool and support go1.2 again
2015-08-09 12:06:08 +08:00
Unknwon
4b43ffc96c
Generate random avatar based on e-mail when disable Gravatar
2015-08-09 11:46:10 +08:00
Vitaliy Vasilenko
cf59057ef3
fix if service.ENABLE_CACHE_AVATAR is true
2015-01-20 05:20:33 +02:00
Joseph Crail
39c068400e
Fix spelling errors in comments.
2014-12-06 20:22:48 -05:00
Andrew Burns
adc1ac689e
HashEmail function should also remove spaces
...
According to the [Gravatar API](https://en.gravatar.com/site/implement/hash/ ) whitespace should also be removed from the email, it was not doing this previously.
2014-12-05 10:58:49 -07:00
Unknwon
55dfe2c978
custom avatar upload
2014-11-21 10:58:08 -05:00
Unknwon
a0f9197b45
GetFile api
2014-11-16 21:32:26 -05:00
Unknown
c3a52f7dd0
Mirror bug fix on downloading zip
2014-04-15 20:01:20 -04:00
Unknown
eb6021f73f
Fix issue pages URL params
2014-03-27 19:42:10 -04:00
skyblue
4662a73ac3
name change of avatar
2014-03-26 21:26:31 +08:00
Unknown
2fa8d0c8dd
Added create issue
2014-03-25 12:12:27 -04:00
skyblue
7048ea4527
update avatar, remove gzip request header
2014-03-25 18:34:57 +08:00
shxsun
8376b0d53c
use modeles/log instead log
2014-03-24 21:16:00 +08:00
Gogs
964e537479
append route to web
2014-03-23 18:13:23 +08:00
skyblue
79604f553f
fix download part problem, add png support
2014-03-23 15:55:27 +08:00
skyblue
8e47ae2102
add avatar inorder to view code on github
2014-03-23 12:24:09 +08:00