@@ -1,4 +1,3 @@ | |||
https://github.com/heroku/heroku-buildpack-apt | |||
https://github.com/Scalingo/ffmpeg-buildpack | |||
https://github.com/Scalingo/nodejs-buildpack | |||
https://github.com/Scalingo/ruby-buildpack |
@@ -72,11 +72,12 @@ aliases: | |||
- run: | |||
name: Set bundler settings | |||
command: | | |||
bundle config clean 'true' | |||
bundle config deployment 'true' | |||
bundle config with 'pam_authentication' | |||
bundle config without 'development production' | |||
bundle config frozen 'true' | |||
bundle config --local clean 'true' | |||
bundle config --local deployment 'true' | |||
bundle config --local with 'pam_authentication' | |||
bundle config --local without 'development production' | |||
bundle config --local frozen 'true' | |||
bundle config --local path $BUNDLE_PATH | |||
- run: | |||
name: Install bundler dependencies | |||
command: bundle check || (bundle install && bundle clean) | |||
@@ -1,28 +0,0 @@ | |||
version: 1 | |||
update_configs: | |||
- package_manager: "ruby:bundler" | |||
directory: "/" | |||
update_schedule: "weekly" | |||
# Supported update schedule: live daily weekly monthly | |||
version_requirement_updates: "auto" | |||
# Supported version requirements: auto widen_ranges increase_versions increase_versions_if_necessary | |||
allowed_updates: | |||
- match: | |||
dependency_type: "all" | |||
# Supported dependency types: all indirect direct production development | |||
update_type: "all" | |||
# Supported update types: all security | |||
- package_manager: "javascript" | |||
directory: "/" | |||
update_schedule: "weekly" | |||
# Supported update schedule: live daily weekly monthly | |||
version_requirement_updates: "auto" | |||
# Supported version requirements: auto widen_ranges increase_versions increase_versions_if_necessary | |||
allowed_updates: | |||
- match: | |||
dependency_type: "all" | |||
# Supported dependency types: all indirect direct production development | |||
update_type: "all" | |||
# Supported update types: all security |
@@ -1,262 +1,60 @@ | |||
# Service dependencies | |||
# You may set REDIS_URL instead for more advanced options | |||
# You may also set REDIS_NAMESPACE to share Redis between multiple Mastodon servers | |||
REDIS_HOST=redis | |||
REDIS_PORT=6379 | |||
# You may set DATABASE_URL instead for more advanced options | |||
DB_HOST=db | |||
DB_USER=postgres | |||
DB_NAME=postgres | |||
DB_PASS= | |||
DB_PORT=5432 | |||
# Optional ElasticSearch configuration | |||
# You may also set ES_PREFIX to share the same cluster between multiple Mastodon servers (falls back to REDIS_NAMESPACE if not set) | |||
# ES_ENABLED=true | |||
# ES_HOST=es | |||
# ES_PORT=9200 | |||
# This is a sample configuration file. You can generate your configuration | |||
# with the `rake mastodon:setup` interactive setup wizard, but to customize | |||
# your setup even further, you'll need to edit it manually. This sample does | |||
# not demonstrate all available configuration options. Please look at | |||
# https://docs.joinmastodon.org/admin/config/ for the full documentation. | |||
# Federation | |||
# Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation. | |||
# LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com. | |||
# ---------- | |||
# This identifies your server and cannot be changed safely later | |||
# ---------- | |||
LOCAL_DOMAIN=example.com | |||
# Changing LOCAL_HTTPS in production is no longer supported. (Mastodon will always serve https:// links) | |||
# Redis | |||
# ----- | |||
REDIS_HOST=localhost | |||
REDIS_PORT=6379 | |||
# Use this only if you need to run mastodon on a different domain than the one used for federation. | |||
# You can read more about this option on https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Serving_a_different_domain.md | |||
# DO *NOT* USE THIS UNLESS YOU KNOW *EXACTLY* WHAT YOU ARE DOING. | |||
# WEB_DOMAIN=mastodon.example.com | |||
# PostgreSQL | |||
# ---------- | |||
DB_HOST=/var/run/postgresql | |||
DB_USER=mastodon | |||
DB_NAME=mastodon_production | |||
DB_PASS= | |||
DB_PORT=5432 | |||
# Use this if you want to have several aliases [email protected] | |||
# [email protected] etc. for the same user. LOCAL_DOMAIN should not | |||
# be added. Comma separated values | |||
# ALTERNATE_DOMAINS=example1.com,example2.com | |||
# ElasticSearch (optional) | |||
# ------------------------ | |||
ES_ENABLED=true | |||
ES_HOST=localhost | |||
ES_PORT=9200 | |||
# Application secrets | |||
# Generate each with the `RAILS_ENV=production bundle exec rake secret` task (`docker-compose run --rm web bundle exec rake secret` if you use docker compose) | |||
# Secrets | |||
# ------- | |||
# Make sure to use `rake secret` to generate secrets | |||
# ------- | |||
SECRET_KEY_BASE= | |||
OTP_SECRET= | |||
# VAPID keys (used for push notifications | |||
# You can generate the keys using the following command (first is the private key, second is the public one) | |||
# You should only generate this once per instance. If you later decide to change it, all push subscription will | |||
# be invalidated, requiring the users to access the website again to resubscribe. | |||
# | |||
# Generate with `RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key` task (`docker-compose run --rm web bundle exec rake mastodon:webpush:generate_vapid_key` if you use docker compose) | |||
# | |||
# For more information visit https://rossta.net/blog/using-the-web-push-api-with-vapid.html | |||
# Web Push | |||
# -------- | |||
# Generate with `rake mastodon:webpush:generate_vapid_key` | |||
# -------- | |||
VAPID_PRIVATE_KEY= | |||
VAPID_PUBLIC_KEY= | |||
# Registrations | |||
# Single user mode will disable registrations and redirect frontpage to the first profile | |||
# SINGLE_USER_MODE=true | |||
# Prevent registrations with following e-mail domains | |||
# EMAIL_DOMAIN_BLACKLIST=example1.com|example2.de|etc | |||
# Only allow registrations with the following e-mail domains | |||
# EMAIL_DOMAIN_WHITELIST=example1.com|example2.de|etc | |||
# Optionally change default language | |||
# DEFAULT_LOCALE=de | |||
# E-mail configuration | |||
# Note: Mailgun and SparkPost (https://sparkpo.st/smtp) each have good free tiers | |||
# If you want to use an SMTP server without authentication (e.g local Postfix relay) | |||
# then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and | |||
# *comment* SMTP_LOGIN and SMTP_PASSWORD (leaving them blank is not enough). | |||
# Sending mail | |||
# ------------ | |||
SMTP_SERVER=smtp.mailgun.org | |||
SMTP_PORT=587 | |||
SMTP_LOGIN= | |||
SMTP_PASSWORD= | |||
[email protected] | |||
#SMTP_REPLY_TO= | |||
#SMTP_DOMAIN= # defaults to LOCAL_DOMAIN | |||
#SMTP_DELIVERY_METHOD=smtp # delivery method can also be sendmail | |||
#SMTP_AUTH_METHOD=plain | |||
#SMTP_CA_FILE=/etc/ssl/certs/ca-certificates.crt | |||
#SMTP_OPENSSL_VERIFY_MODE=peer | |||
#SMTP_ENABLE_STARTTLS_AUTO=true | |||
#SMTP_TLS=true | |||
# Optional user upload path and URL (images, avatars). Default is :rails_root/public/system. If you set this variable, you are responsible for making your HTTP server (eg. nginx) serve these files. | |||
# PAPERCLIP_ROOT_PATH=/var/lib/mastodon/public-system | |||
# PAPERCLIP_ROOT_URL=/system | |||
# Optional asset host for multi-server setups | |||
# The asset host must allow cross origin request from WEB_DOMAIN or LOCAL_DOMAIN | |||
# if WEB_DOMAIN is not set. For example, the server may have the | |||
# following header field: | |||
# Access-Control-Allow-Origin: https://example.com/ | |||
# CDN_HOST=https://assets.example.com | |||
# S3 (optional) | |||
# The attachment host must allow cross origin request from WEB_DOMAIN or | |||
# LOCAL_DOMAIN if WEB_DOMAIN is not set. For example, the server may have the | |||
# following header field: | |||
# Access-Control-Allow-Origin: https://192.168.1.123:9000/ | |||
# S3_ENABLED=true | |||
# S3_BUCKET= | |||
# AWS_ACCESS_KEY_ID= | |||
# AWS_SECRET_ACCESS_KEY= | |||
# S3_REGION= | |||
# S3_PROTOCOL=http | |||
# S3_HOSTNAME=192.168.1.123:9000 | |||
# S3 (Minio Config (optional) Please check Minio instance for details) | |||
# The attachment host must allow cross origin request - see the description | |||
# above. | |||
# S3_ENABLED=true | |||
# S3_BUCKET= | |||
# AWS_ACCESS_KEY_ID= | |||
# AWS_SECRET_ACCESS_KEY= | |||
# S3_REGION= | |||
# S3_PROTOCOL=https | |||
# S3_HOSTNAME= | |||
# S3_ENDPOINT= | |||
# S3_SIGNATURE_VERSION= | |||
# Google Cloud Storage (optional) | |||
# Use S3 compatible API. Since GCS does not support Multipart Upload, | |||
# increase the value of S3_MULTIPART_THRESHOLD to disable Multipart Upload. | |||
# The attachment host must allow cross origin request - see the description | |||
# above. | |||
# S3_ENABLED=true | |||
# AWS_ACCESS_KEY_ID= | |||
# AWS_SECRET_ACCESS_KEY= | |||
# S3_REGION= | |||
# S3_PROTOCOL=https | |||
# S3_HOSTNAME=storage.googleapis.com | |||
# S3_ENDPOINT=https://storage.googleapis.com | |||
# S3_MULTIPART_THRESHOLD=52428801 # 50.megabytes | |||
# Swift (optional) | |||
# The attachment host must allow cross origin request - see the description | |||
# above. | |||
# SWIFT_ENABLED=true | |||
# SWIFT_USERNAME= | |||
# For Keystone V3, the value for SWIFT_TENANT should be the project name | |||
# SWIFT_TENANT= | |||
# SWIFT_PASSWORD= | |||
# Some OpenStack V3 providers require PROJECT_ID (optional) | |||
# SWIFT_PROJECT_ID= | |||
# Keystone V2 and V3 URLs are supported. Use a V3 URL if possible to avoid | |||
# issues with token rate-limiting during high load. | |||
# SWIFT_AUTH_URL= | |||
# SWIFT_CONTAINER= | |||
# SWIFT_OBJECT_URL= | |||
# SWIFT_REGION= | |||
# Defaults to 'default' | |||
# SWIFT_DOMAIN_NAME= | |||
# Defaults to 60 seconds. Set to 0 to disable | |||
# SWIFT_CACHE_TTL= | |||
# Optional alias for S3 (e.g. to serve files on a custom domain, possibly using Cloudfront or Cloudflare) | |||
# S3_ALIAS_HOST= | |||
# Streaming API integration | |||
# STREAMING_API_BASE_URL= | |||
# Advanced settings | |||
# If you need to use pgBouncer, you need to disable prepared statements: | |||
# PREPARED_STATEMENTS=false | |||
# Cluster number setting for streaming API server. | |||
# If you comment out following line, cluster number will be `numOfCpuCores - 1`. | |||
STREAMING_CLUSTER_NUM=1 | |||
# Docker mastodon user | |||
# If you use Docker, you may want to assign UID/GID manually. | |||
# UID=1000 | |||
# GID=1000 | |||
# LDAP authentication (optional) | |||
# LDAP_ENABLED=true | |||
# LDAP_HOST=localhost | |||
# LDAP_PORT=389 | |||
# LDAP_METHOD=simple_tls | |||
# LDAP_BASE= | |||
# LDAP_BIND_DN= | |||
# LDAP_PASSWORD= | |||
# LDAP_UID=cn | |||
# LDAP_MAIL=mail | |||
# LDAP_SEARCH_FILTER=(|(%{uid}=%{email})(%{mail}=%{email})) | |||
# LDAP_UID_CONVERSION_ENABLED=true | |||
# LDAP_UID_CONVERSION_SEARCH=., - | |||
# LDAP_UID_CONVERSION_REPLACE=_ | |||
# PAM authentication (optional) | |||
# PAM authentication uses for the email generation the "email" pam variable | |||
# and optional as fallback PAM_DEFAULT_SUFFIX | |||
# The pam environment variable "email" is provided by: | |||
# https://github.com/devkral/pam_email_extractor | |||
# PAM_ENABLED=true | |||
# Fallback email domain for email address generation (LOCAL_DOMAIN by default) | |||
# PAM_EMAIL_DOMAIN=example.com | |||
# Name of the pam service (pam "auth" section is evaluated) | |||
# PAM_DEFAULT_SERVICE=rpam | |||
# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) | |||
# PAM_CONTROLLED_SERVICE=rpam | |||
# Global OAuth settings (optional) : | |||
# If you have only one strategy, you may want to enable this | |||
# OAUTH_REDIRECT_AT_SIGN_IN=true | |||
# Optional CAS authentication (cf. omniauth-cas) : | |||
# CAS_ENABLED=true | |||
# CAS_URL=https://sso.myserver.com/ | |||
# CAS_HOST=sso.myserver.com/ | |||
# CAS_PORT=443 | |||
# CAS_SSL=true | |||
# CAS_VALIDATE_URL= | |||
# CAS_CALLBACK_URL= | |||
# CAS_LOGOUT_URL= | |||
# CAS_LOGIN_URL= | |||
# CAS_UID_FIELD='user' | |||
# CAS_CA_PATH= | |||
# CAS_DISABLE_SSL_VERIFICATION=false | |||
# CAS_UID_KEY='user' | |||
# CAS_NAME_KEY='name' | |||
# CAS_EMAIL_KEY='email' | |||
# CAS_NICKNAME_KEY='nickname' | |||
# CAS_FIRST_NAME_KEY='firstname' | |||
# CAS_LAST_NAME_KEY='lastname' | |||
# CAS_LOCATION_KEY='location' | |||
# CAS_IMAGE_KEY='image' | |||
# CAS_PHONE_KEY='phone' | |||
# Optional SAML authentication (cf. omniauth-saml) | |||
# SAML_ENABLED=true | |||
# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback | |||
# SAML_ISSUER=https://example.com | |||
# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO | |||
# SAML_IDP_CERT= | |||
# SAML_IDP_CERT_FINGERPRINT= | |||
# SAML_NAME_IDENTIFIER_FORMAT= | |||
# SAML_CERT= | |||
# SAML_PRIVATE_KEY= | |||
# SAML_SECURITY_WANT_ASSERTION_SIGNED=true | |||
# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true | |||
# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true | |||
# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" | |||
# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" | |||
# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.16.840.1.113730.3.1.241" | |||
# SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME="urn:oid:2.5.4.42" | |||
# SAML_ATTRIBUTES_STATEMENTS_LAST_NAME="urn:oid:2.5.4.4" | |||
#ย SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" | |||
# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= | |||
# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= | |||
# Use HTTP proxy for outgoing request (optional) | |||
# http_proxy=http://gateway.local:8118 | |||
# Access control for hidden service. | |||
# ALLOW_ACCESS_TO_HIDDEN_SERVICE=true | |||
# Authorized fetch mode (optional) | |||
# Require remote servers to authentify when fetching toots, see | |||
# https://docs.joinmastodon.org/admin/config/#authorized_fetch | |||
# AUTHORIZED_FETCH=true | |||
# Whitelist mode (optional) | |||
# Only allow federation with whitelisted domains, see | |||
# https://docs.joinmastodon.org/admin/config/#whitelist_mode | |||
# WHITELIST_MODE=true | |||
[email protected] | |||
# File storage (optional) | |||
# ----------------------- | |||
S3_ENABLED=true | |||
S3_BUCKET=files.example.com | |||
AWS_ACCESS_KEY_ID= | |||
AWS_SECRET_ACCESS_KEY= | |||
S3_ALIAS_HOST=files.example.com |
@@ -1,3 +1,4 @@ | |||
VAGRANT=true | |||
LOCAL_DOMAIN=mastodon.local | |||
BIND=0.0.0.0 | |||
DB_HOST=/var/run/postgresql/ |
@@ -199,6 +199,11 @@ module.exports = { | |||
'import/no-unresolved': 'error', | |||
'import/no-webpack-loader-syntax': 'error', | |||
'promise/catch-or-return': 'error', | |||
'promise/catch-or-return': [ | |||
'error', | |||
{ | |||
allowFinally: true, | |||
}, | |||
], | |||
}, | |||
}; |
@@ -1,2 +1,3 @@ | |||
patreon: mastodon | |||
open_collective: mastodon | |||
github: [Gargron] |
@@ -0,0 +1,22 @@ | |||
# To get started with Dependabot version updates, you'll need to specify which | |||
# package ecosystems to update and where the package manifests are located. | |||
# Please see the documentation for all configuration options: | |||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates | |||
version: 2 | |||
updates: | |||
- package-ecosystem: npm | |||
directory: "/" | |||
schedule: | |||
interval: weekly | |||
open-pull-requests-limit: 99 | |||
allow: | |||
- dependency-type: all | |||
- package-ecosystem: bundler | |||
directory: "/" | |||
schedule: | |||
interval: weekly | |||
open-pull-requests-limit: 99 | |||
allow: | |||
- dependency-type: all |
@@ -17,31 +17,36 @@ | |||
/log/* | |||
!/log/.keep | |||
/tmp | |||
coverage | |||
public/system | |||
public/assets | |||
public/packs | |||
public/packs-test | |||
/coverage | |||
/public/system | |||
/public/assets | |||
/public/packs | |||
/public/packs-test | |||
.env | |||
.env.production | |||
.env.development | |||
node_modules/ | |||
build/ | |||
/node_modules/ | |||
/build/ | |||
# Ignore Vagrant files | |||
.vagrant/ | |||
# Ignore Capistrano customizations | |||
config/deploy/* | |||
/config/deploy/* | |||
# Ignore IDE files | |||
.vscode/ | |||
.idea/ | |||
# Ignore postgres + redis + elasticsearch volume optionally created by docker-compose | |||
postgres | |||
redis | |||
elasticsearch | |||
/postgres | |||
/redis | |||
/elasticsearch | |||
# ignore Helm lockfile, dependency charts, and local values file | |||
/chart/Chart.lock | |||
/chart/charts/*.tgz | |||
/chart/values.yaml | |||
# Ignore Apple files | |||
.DS_Store | |||
@@ -28,6 +28,10 @@ Layout/EmptyLineAfterMagicComment: | |||
Layout/SpaceInsideHashLiteralBraces: | |||
EnforcedStyle: space | |||
Lint/UselessAccessModifier: | |||
ContextCreatingMethods: | |||
- class_methods | |||
Metrics/AbcSize: | |||
Max: 100 | |||
@@ -5,62 +5,66 @@ Mastodon is available on [GitHub](https://github.com/tootsuite/mastodon) | |||
and provided thanks to the work of the following contributors: | |||
* [Gargron](https://github.com/Gargron) | |||
* [dependabot-preview[bot]](https://github.com/apps/dependabot-preview) | |||
* [ThibG](https://github.com/ThibG) | |||
* [ykzts](https://github.com/ykzts) | |||
* [dependabot[bot]](https://github.com/apps/dependabot) | |||
* [akihikodaki](https://github.com/akihikodaki) | |||
* [dependabot-preview[bot]](https://github.com/apps/dependabot-preview) | |||
* [mjankowski](https://github.com/mjankowski) | |||
* [unarist](https://github.com/unarist) | |||
* [yiskah](https://github.com/yiskah) | |||
* [nolanlawson](https://github.com/nolanlawson) | |||
* [ysksn](https://github.com/ysksn) | |||
* [abcang](https://github.com/abcang) | |||
* [ysksn](https://github.com/ysksn) | |||
* [mayaeh](https://github.com/mayaeh) | |||
* [sorin-davidoi](https://github.com/sorin-davidoi) | |||
* [lynlynlynx](https://github.com/lynlynlynx) | |||
* [mayaeh](https://github.com/mayaeh) | |||
* [m4sk1n](mailto:[email protected]) | |||
* [Marcin Mikoลajczak](mailto:[email protected]) | |||
* [Kjwon15](https://github.com/Kjwon15) | |||
* [noellabo](https://github.com/noellabo) | |||
* [renatolond](https://github.com/renatolond) | |||
* [alpaca-tc](https://github.com/alpaca-tc) | |||
* [jeroenpraat](https://github.com/jeroenpraat) | |||
* [nclm](https://github.com/nclm) | |||
* [ineffyble](https://github.com/ineffyble) | |||
* [mabkenar](https://github.com/mabkenar) | |||
* [shleeable](https://github.com/shleeable) | |||
* [zunda](https://github.com/zunda) | |||
* [Masoud Abkenar](mailto:[email protected]) | |||
* [blackle](https://github.com/blackle) | |||
* [Quent-in](https://github.com/Quent-in) | |||
* [JantsoP](https://github.com/JantsoP) | |||
* [zunda](https://github.com/zunda) | |||
* [nullkal](https://github.com/nullkal) | |||
* [yookoala](https://github.com/yookoala) | |||
* [Sasha-Sorokin](https://github.com/Sasha-Sorokin) | |||
* [Aditoo17](https://github.com/Aditoo17) | |||
* [Quenty31](https://github.com/Quenty31) | |||
* [marek-lach](https://github.com/marek-lach) | |||
* [shuheiktgw](https://github.com/shuheiktgw) | |||
* [ashfurrow](https://github.com/ashfurrow) | |||
* [danhunsaker](https://github.com/danhunsaker) | |||
* [eramdam](https://github.com/eramdam) | |||
* [noellabo](https://github.com/noellabo) | |||
* [takayamaki](https://github.com/takayamaki) | |||
* [danhunsaker](https://github.com/danhunsaker) | |||
* [ariasuni](https://github.com/ariasuni) | |||
* [masarakki](https://github.com/masarakki) | |||
* [ticky](https://github.com/ticky) | |||
* [ThisIsMissEm](https://github.com/ThisIsMissEm) | |||
* [hinaloe](https://github.com/hinaloe) | |||
* [hcmiya](https://github.com/hcmiya) | |||
* [stephenburgess8](https://github.com/stephenburgess8) | |||
* [Wonderfall](https://github.com/Wonderfall) | |||
* [Wonderfall](mailto:[email protected]) | |||
* [matteoaquila](https://github.com/matteoaquila) | |||
* [yukimochi](https://github.com/yukimochi) | |||
* [palindromordnilap](https://github.com/palindromordnilap) | |||
* [rkarabut](https://github.com/rkarabut) | |||
* [Artoria2e5](https://github.com/Artoria2e5) | |||
* [trwnh](https://github.com/trwnh) | |||
* [nightpool](https://github.com/nightpool) | |||
* [Artoria2e5](https://github.com/Artoria2e5) | |||
* [marrus-sh](https://github.com/marrus-sh) | |||
* [hinaloe](https://github.com/hinaloe) | |||
* [krainboltgreene](https://github.com/krainboltgreene) | |||
* [pfigel](https://github.com/pfigel) | |||
* [Aldarone](https://github.com/Aldarone) | |||
* [BoFFire](https://github.com/BoFFire) | |||
* [Aldarone](https://github.com/Aldarone) | |||
* [clworld](https://github.com/clworld) | |||
* [MasterGroosha](https://github.com/MasterGroosha) | |||
* [dracos](https://github.com/dracos) | |||
@@ -68,52 +72,50 @@ and provided thanks to the work of the following contributors: | |||
* [SerCom_KC](mailto:[email protected]) | |||
* [Sylvhem](https://github.com/Sylvhem) | |||
* [MitarashiDango](https://github.com/MitarashiDango) | |||
* [angristan](https://github.com/angristan) | |||
* [JeanGauthier](https://github.com/JeanGauthier) | |||
* [kschaper](https://github.com/kschaper) | |||
* [beatrix-bitrot](https://github.com/beatrix-bitrot) | |||
* [angristan](https://github.com/angristan) | |||
* [koyuawsmbrtn](https://github.com/koyuawsmbrtn) | |||
* [BenLubar](https://github.com/BenLubar) | |||
* [adbelle](https://github.com/adbelle) | |||
* [evanminto](https://github.com/evanminto) | |||
* [MightyPork](https://github.com/MightyPork) | |||
* [ashleyhull-versent](mailto:[email protected]) | |||
* [ashleyhull-versent](https://github.com/ashleyhull-versent) | |||
* [yhirano55](https://github.com/yhirano55) | |||
* [rinsuki](https://github.com/rinsuki) | |||
* [dunn](https://github.com/dunn) | |||
* [devkral](https://github.com/devkral) | |||
* [camponez](https://github.com/camponez) | |||
* [hugogameiro](https://github.com/hugogameiro) | |||
* [SerCom_KC](mailto:[email protected]) | |||
* [aschmitz](https://github.com/aschmitz) | |||
* [trwnh](https://github.com/trwnh) | |||
* [devkral](https://github.com/devkral) | |||
* [fpiesche](https://github.com/fpiesche) | |||
* [hugogameiro](https://github.com/hugogameiro) | |||
* [gandaro](https://github.com/gandaro) | |||
* [johnsudaar](https://github.com/johnsudaar) | |||
* [ariasuni](https://github.com/ariasuni) | |||
* [trebmuh](https://github.com/trebmuh) | |||
* [rmhasan](https://github.com/rmhasan) | |||
* [kedamaDQ](https://github.com/kedamaDQ) | |||
* [lindwurm](https://github.com/lindwurm) | |||
* [victorhck](mailto:[email protected]) | |||
* [voidsatisfaction](https://github.com/voidsatisfaction) | |||
* [BenLubar](https://github.com/BenLubar) | |||
* [hikari-no-yume](https://github.com/hikari-no-yume) | |||
* [seefood](https://github.com/seefood) | |||
* [jackjennings](https://github.com/jackjennings) | |||
* [koyuawsmbrtn](https://github.com/koyuawsmbrtn) | |||
* [mfmfuyu](https://github.com/mfmfuyu) | |||
* [puckipedia](https://github.com/puckipedia) | |||
* [spla](mailto:[email protected]) | |||
* [expenses](https://github.com/expenses) | |||
* [walf443](https://github.com/walf443) | |||
* [JoelQ](https://github.com/JoelQ) | |||
* [mistydemeo](https://github.com/mistydemeo) | |||
* [dunn](https://github.com/dunn) | |||
* [Ashley](mailto:[email protected]) | |||
* [xqus](https://github.com/xqus) | |||
* [pfm-eyesightjp](https://github.com/pfm-eyesightjp) | |||
* [fakenine](https://github.com/fakenine) | |||
* [Shleeble](https://github.com/Shleeble) | |||
* [Samy KACIMI](mailto:[email protected]) | |||
* [tsuwatch](https://github.com/tsuwatch) | |||
* [victorhck](https://github.com/victorhck) | |||
* [mkljczk](https://github.com/mkljczk) | |||
* [manuelviens](https://github.com/manuelviens) | |||
* [puckipedia](https://github.com/puckipedia) | |||
* [fvh-P](https://github.com/fvh-P) | |||
* [rtucker](https://github.com/rtucker) | |||
* [Anna e sรณ](mailto:[email protected]) | |||
@@ -123,6 +125,7 @@ and provided thanks to the work of the following contributors: | |||
* [diomed](https://github.com/diomed) | |||
* [Neetshin](mailto:[email protected]) | |||
* [rainyday](https://github.com/rainyday) | |||
* [tcitworld](https://github.com/tcitworld) | |||
* [ProgVal](https://github.com/ProgVal) | |||
* [valentin2105](https://github.com/valentin2105) | |||
* [yuntan](https://github.com/yuntan) | |||
@@ -136,44 +139,53 @@ and provided thanks to the work of the following contributors: | |||
* [TheKinrar](https://github.com/TheKinrar) | |||
* [AA4ch1](https://github.com/AA4ch1) | |||
* [alexgleason](https://github.com/alexgleason) | |||
* [Bรจr Kessels](mailto:[email protected]) | |||
* [cpytel](https://github.com/cpytel) | |||
* [northerner](https://github.com/northerner) | |||
* [fhemberger](https://github.com/fhemberger) | |||
* [Gomasy](https://github.com/Gomasy) | |||
* [greysteil](https://github.com/greysteil) | |||
* [hencatsmith](https://github.com/hencatsmith) | |||
* [d6rkaiz](https://github.com/d6rkaiz) | |||
* [Reverite](https://github.com/Reverite) | |||
* [JohnD28](https://github.com/JohnD28) | |||
* [znz](https://github.com/znz) | |||
* [saper](https://github.com/saper) | |||
* [Naouak](https://github.com/Naouak) | |||
* [pawelngei](https://github.com/pawelngei) | |||
* [reneklacan](https://github.com/reneklacan) | |||
* [ekiru](https://github.com/ekiru) | |||
* [tcitworld](https://github.com/tcitworld) | |||
* [geta6](https://github.com/geta6) | |||
* [happycoloredbanana](https://github.com/happycoloredbanana) | |||
* [leopku](https://github.com/leopku) | |||
* [SansPseudoFix](https://github.com/SansPseudoFix) | |||
* [salvadorpla](https://github.com/salvadorpla) | |||
* [spla](mailto:[email protected]) | |||
* [tateisu](https://github.com/tateisu) | |||
* [tomfhowe](https://github.com/tomfhowe) | |||
* [noraworld](https://github.com/noraworld) | |||
* [lfuelling](https://github.com/lfuelling) | |||
* [theboss](https://github.com/theboss) | |||
* [nzws](https://github.com/nzws) | |||
* [duxovni](https://github.com/duxovni) | |||
* [smorimoto](https://github.com/smorimoto) | |||
* [178inaba](https://github.com/178inaba) | |||
* [acid-chicken](https://github.com/acid-chicken) | |||
* [xgess](https://github.com/xgess) | |||
* [alyssais](https://github.com/alyssais) | |||
* [aablinov](https://github.com/aablinov) | |||
* [stalker314314](https://github.com/stalker314314) | |||
* [cutls](https://github.com/cutls) | |||
* [dariusk](https://github.com/dariusk) | |||
* [huertanix](https://github.com/huertanix) | |||
* [genesixx](https://github.com/genesixx) | |||
* [eleboucher](https://github.com/eleboucher) | |||
* [halkeye](https://github.com/halkeye) | |||
* [Hanage999](https://github.com/Hanage999) | |||
* [treby](https://github.com/treby) | |||
* [jpdevries](https://github.com/jpdevries) | |||
* [gdpelican](https://github.com/gdpelican) | |||
* [kmichl](https://github.com/kmichl) | |||
* [Kurtis Rainbolt-Greene](mailto:[email protected]) | |||
* [saper](https://github.com/saper) | |||
* [panarom](https://github.com/panarom) | |||
* [Dar13](https://github.com/Dar13) | |||
* [nevillepark](https://github.com/nevillepark) | |||
* [ornithocoder](https://github.com/ornithocoder) | |||
@@ -181,7 +193,7 @@ and provided thanks to the work of the following contributors: | |||
* [pierreozoux](https://github.com/pierreozoux) | |||
* [qguv](https://github.com/qguv) | |||
* [Ram Lmn](mailto:[email protected]) | |||
* [aurelia-sl](https://github.com/aurelia-sl) | |||
* [Sascha](mailto:[email protected]) | |||
* [harukasan](https://github.com/harukasan) | |||
* [stamak](https://github.com/stamak) | |||
* [Technowix](https://github.com/Technowix) | |||
@@ -196,9 +208,9 @@ and provided thanks to the work of the following contributors: | |||
* [chr-1x](https://github.com/chr-1x) | |||
* [esetomo](https://github.com/esetomo) | |||
* [foxiehkins](https://github.com/foxiehkins) | |||
* [highemerly](https://github.com/highemerly) | |||
* [hoodie](mailto:[email protected]) | |||
* [luzi82](https://github.com/luzi82) | |||
* [duxovni](https://github.com/duxovni) | |||
* [slice](https://github.com/slice) | |||
* [tmm576](https://github.com/tmm576) | |||
* [unsmell](mailto:[email protected]) | |||
@@ -209,13 +221,12 @@ and provided thanks to the work of the following contributors: | |||
* [AndreLewin](https://github.com/AndreLewin) | |||
* [0xflotus](https://github.com/0xflotus) | |||
* [redtachyons](https://github.com/redtachyons) | |||
* [acid-chicken](https://github.com/acid-chicken) | |||
* [thurloat](https://github.com/thurloat) | |||
* [aaribaud](https://github.com/aaribaud) | |||
* [pointlessone](https://github.com/pointlessone) | |||
* [Andrew](mailto:[email protected]) | |||
* [aurelien-reeves](https://github.com/aurelien-reeves) | |||
* [AnaGelez](https://github.com/AnaGelez) | |||
* [elegaanz](https://github.com/elegaanz) | |||
* [estuans](https://github.com/estuans) | |||
* [dissolve](https://github.com/dissolve) | |||
* [PurpleBooth](https://github.com/PurpleBooth) | |||
@@ -227,16 +238,14 @@ and provided thanks to the work of the following contributors: | |||
* [muffinista](https://github.com/muffinista) | |||
* [cdutson](https://github.com/cdutson) | |||
* [farlistener](https://github.com/farlistener) | |||
* [dariusk](https://github.com/dariusk) | |||
* [DavidLibeau](https://github.com/DavidLibeau) | |||
* [dmerejkowsky](https://github.com/dmerejkowsky) | |||
* [ddevault](https://github.com/ddevault) | |||
* [Fjoerfoks](https://github.com/Fjoerfoks) | |||
* [fmauNeko](https://github.com/fmauNeko) | |||
* [gloaec](https://github.com/gloaec) | |||
* [Gomasy](https://github.com/Gomasy) | |||
* [unstabler](https://github.com/unstabler) | |||
* [potato4d](https://github.com/potato4d) | |||
* [Hanage999](https://github.com/Hanage999) | |||
* [h-izumi](https://github.com/h-izumi) | |||
* [ErikXXon](https://github.com/ErikXXon) | |||
* [ian-kelling](https://github.com/ian-kelling) | |||
@@ -251,13 +260,17 @@ and provided thanks to the work of the following contributors: | |||
* [tkbky](https://github.com/tkbky) | |||
* [Kaylee](mailto:[email protected]) | |||
* [Kazhnuz](https://github.com/Kazhnuz) | |||
* [mkody](https://github.com/mkody) | |||
* [connyduck](https://github.com/connyduck) | |||
* [LindseyB](https://github.com/LindseyB) | |||
* [Lorenz Diener](mailto:[email protected]) | |||
* [alimony](https://github.com/alimony) | |||
* [Markus Amalthea Magnuson](mailto:[email protected]) | |||
* [madmath03](https://github.com/madmath03) | |||
* [mig5](https://github.com/mig5) | |||
* [moritzheiber](https://github.com/moritzheiber) | |||
* [Nathaniel Suchy](mailto:[email protected]) | |||
* [ndarville](https://github.com/ndarville) | |||
* [NimaBoscarino](https://github.com/NimaBoscarino) | |||
* [Abzol](https://github.com/Abzol) | |||
* [PatOnTheBack](https://github.com/PatOnTheBack) | |||
* [xPaw](https://github.com/xPaw) | |||
@@ -287,16 +300,15 @@ and provided thanks to the work of the following contributors: | |||
* [amazedkoumei](https://github.com/amazedkoumei) | |||
* [anon5r](https://github.com/anon5r) | |||
* [aus-social](https://github.com/aus-social) | |||
* [imbsky](https://github.com/imbsky) | |||
* [bsky](mailto:[email protected]) | |||
* [codl](https://github.com/codl) | |||
* [cpsdqs](https://github.com/cpsdqs) | |||
* [barzamin](https://github.com/barzamin) | |||
* [fhalna](https://github.com/fhalna) | |||
* [highemerly](https://github.com/highemerly) | |||
* [haoyayoi](https://github.com/haoyayoi) | |||
* [ik11235](https://github.com/ik11235) | |||
* [kawax](https://github.com/kawax) | |||
* [shrft](https://github.com/shrft) | |||
* [007lva](https://github.com/007lva) | |||
* [mbajur](https://github.com/mbajur) | |||
* [matsurai25](https://github.com/matsurai25) | |||
@@ -307,15 +319,18 @@ and provided thanks to the work of the following contributors: | |||
* [pinfort](https://github.com/pinfort) | |||
* [rbaumert](https://github.com/rbaumert) | |||
* [rhoio](https://github.com/rhoio) | |||
* [sclaire-1](https://github.com/sclaire-1) | |||
* [umonaca](https://github.com/umonaca) | |||
* [usagi-f](https://github.com/usagi-f) | |||
* [vidarlee](https://github.com/vidarlee) | |||
* [vjackson725](https://github.com/vjackson725) | |||
* [wxcafe](https://github.com/wxcafe) | |||
* [Grawl](https://github.com/Grawl) | |||
* [ๆฐ้ฝๅฟ(Neet Shin)](mailto:[email protected]) | |||
* [clarfon](https://github.com/clarfon) | |||
* [cygnan](https://github.com/cygnan) | |||
* [Awea](https://github.com/Awea) | |||
* [halcy](https://github.com/halcy) | |||
* [eai04191](https://github.com/eai04191) | |||
* [8398a7](https://github.com/8398a7) | |||
* [857b](https://github.com/857b) | |||
* [insom](https://github.com/insom) | |||
@@ -332,6 +347,7 @@ and provided thanks to the work of the following contributors: | |||
* [a2](https://github.com/a2) | |||
* [alfiedotwtf](https://github.com/alfiedotwtf) | |||
* [0xa](https://github.com/0xa) | |||
* [ArisuOngaku](https://github.com/ArisuOngaku) | |||
* [virtualpain](https://github.com/virtualpain) | |||
* [sapphirus](https://github.com/sapphirus) | |||
* [amandavisconti](https://github.com/amandavisconti) | |||
@@ -342,15 +358,22 @@ and provided thanks to the work of the following contributors: | |||
* [schas002](https://github.com/schas002) | |||
* [contraexemplo](https://github.com/contraexemplo) | |||
* [abackstrom](https://github.com/abackstrom) | |||
* [arielrodrigues](https://github.com/arielrodrigues) | |||
* [orlea](https://github.com/orlea) | |||
* [armandfardeau](https://github.com/armandfardeau) | |||
* [raboof](https://github.com/raboof) | |||
* [jumbosushi](https://github.com/jumbosushi) | |||
* [ayumin](https://github.com/ayumin) | |||
* [bzg](https://github.com/bzg) | |||
* [benediktg](https://github.com/benediktg) | |||
* [BastienDurel](https://github.com/BastienDurel) | |||
* [li-bei](https://github.com/li-bei) | |||
* [Benedikt Geiรler](mailto:[email protected]) | |||
* [BenisonSebastian](https://github.com/BenisonSebastian) | |||
* [blakebarnett](https://github.com/blakebarnett) | |||
* [bradj](https://github.com/bradj) | |||
* [Brad Janke](mailto:[email protected]) | |||
* [bclindner](https://github.com/bclindner) | |||
* [brycied00d](https://github.com/brycied00d) | |||
* [berkes](https://github.com/berkes) | |||
* [carlosjs23](https://github.com/carlosjs23) | |||
* [cgxxx](https://github.com/cgxxx) | |||
* [kibitan](https://github.com/kibitan) | |||
@@ -358,41 +381,48 @@ and provided thanks to the work of the following contributors: | |||
* [chris-martin](https://github.com/chris-martin) | |||
* [DoubleMalt](https://github.com/DoubleMalt) | |||
* [Moosh-be](https://github.com/Moosh-be) | |||
* [cchoi12](https://github.com/cchoi12) | |||
* [Motoma](https://github.com/Motoma) | |||
* [Christopher Kolstad](mailto:[email protected]) | |||
* [csu](https://github.com/csu) | |||
* [kklleemm](https://github.com/kklleemm) | |||
* [colindean](https://github.com/colindean) | |||
* [DeeUnderscore](https://github.com/DeeUnderscore) | |||
* [dachinat](https://github.com/dachinat) | |||
* [multiple-creatures](https://github.com/multiple-creatures) | |||
* [shapeshifter-system](https://github.com/shapeshifter-system) | |||
* [watilde](https://github.com/watilde) | |||
* [daprice](https://github.com/daprice) | |||
* [da2x](https://github.com/da2x) | |||
* [codesections](https://github.com/codesections) | |||
* [dar5hak](https://github.com/dar5hak) | |||
* [kant](https://github.com/kant) | |||
* [maxolasersquad](https://github.com/maxolasersquad) | |||
* [singingwolfboy](https://github.com/singingwolfboy) | |||
* [caldwell](https://github.com/caldwell) | |||
* [davidcelis](https://github.com/davidcelis) | |||
* [divergentdave](https://github.com/divergentdave) | |||
* [davefp](https://github.com/davefp) | |||
* [yipdw](https://github.com/yipdw) | |||
* [debanshuk](https://github.com/debanshuk) | |||
* [mascali33](https://github.com/mascali33) | |||
* [DerekNonGeneric](https://github.com/DerekNonGeneric) | |||
* [dblandin](https://github.com/dblandin) | |||
* [Drew Gates](mailto:[email protected]) | |||
* [dtschust](https://github.com/dtschust) | |||
* [Dryusdan](https://github.com/Dryusdan) | |||
* [eai04191](https://github.com/eai04191) | |||
* [d3vgru](https://github.com/d3vgru) | |||
* [Elizafox](https://github.com/Elizafox) | |||
* [enewhuis](https://github.com/enewhuis) | |||
* [ericblade](https://github.com/ericblade) | |||
* [mikoim](https://github.com/mikoim) | |||
* [espenronnevik](https://github.com/espenronnevik) | |||
* [Expenses](mailto:[email protected]) | |||
* [fabianonline](https://github.com/fabianonline) | |||
* [Finariel](https://github.com/Finariel) | |||
* [siuying](https://github.com/siuying) | |||
* [zoc](https://github.com/zoc) | |||
* [fwenzel](https://github.com/fwenzel) | |||
* [gabrielrumiranda](https://github.com/gabrielrumiranda) | |||
* [GenbuHase](https://github.com/GenbuHase) | |||
* [nilsding](https://github.com/nilsding) | |||
* [hattori6789](https://github.com/hattori6789) | |||
@@ -401,6 +431,7 @@ and provided thanks to the work of the following contributors: | |||
* [myfreeweb](https://github.com/myfreeweb) | |||
* [gfaivre](https://github.com/gfaivre) | |||
* [Fiaxhs](https://github.com/Fiaxhs) | |||
* [rasjonell](https://github.com/rasjonell) | |||
* [reedcourty](https://github.com/reedcourty) | |||
* [anneau](https://github.com/anneau) | |||
* [lanodan](https://github.com/lanodan) | |||
@@ -421,46 +452,49 @@ and provided thanks to the work of the following contributors: | |||
* [jack-michaud](https://github.com/jack-michaud) | |||
* [Floppy](https://github.com/Floppy) | |||
* [loomchild](https://github.com/loomchild) | |||
* [jglauche](https://github.com/jglauche) | |||
* [jenkr55](https://github.com/jenkr55) | |||
* [hyenagirl64](https://github.com/hyenagirl64) | |||
* [press5](https://github.com/press5) | |||
* [TrollDecker](https://github.com/TrollDecker) | |||
* [jmontane](https://github.com/jmontane) | |||
* [jonathanklee](https://github.com/jonathanklee) | |||
* [jguerder](https://github.com/jguerder) | |||
* [Jehops](https://github.com/Jehops) | |||
* [joshuap](https://github.com/joshuap) | |||
* [Tiwy57](https://github.com/Tiwy57) | |||
* [xuv](https://github.com/xuv) | |||
* [Jnsll](https://github.com/Jnsll) | |||
* [j0k3r](https://github.com/j0k3r) | |||
* [KEINOS](https://github.com/KEINOS) | |||
* [futoase](https://github.com/futoase) | |||
* [pot8to](https://github.com/pot8to) | |||
* [Jonathan Klee](mailto:[email protected]) | |||
* [Jordan Guerder](mailto:[email protected]) | |||
* [Joseph Mingrone](mailto:[email protected]) | |||
* [Joshua Wood](mailto:[email protected]) | |||
* [Julien](mailto:[email protected]) | |||
* [Julien Deswaef](mailto:[email protected]) | |||
* [June Sallou](mailto:[email protected]) | |||
* [Jรฉrรฉmy Benoist](mailto:[email protected]) | |||
* [KEINOS](mailto:[email protected]) | |||
* [Keiji Matsuzaki](mailto:[email protected]) | |||
* [Kevin Liu](mailto:[email protected]) | |||
* [Kit Redgrave](mailto:[email protected]) | |||
* [Knut Erik](mailto:[email protected]) | |||
* [mkody](https://github.com/mkody) | |||
* [k0ta0uchi](https://github.com/k0ta0uchi) | |||
* [KrzysiekJ](https://github.com/KrzysiekJ) | |||
* [Kota Ouchi](mailto:[email protected]) | |||
* [Krzysztof Jurewicz](mailto:[email protected]) | |||
* [Leo Wzukw](mailto:[email protected]) | |||
* [Tak](https://github.com/Tak) | |||
* [cacheflow](https://github.com/cacheflow) | |||
* [ldidry](https://github.com/ldidry) | |||
* [jemus42](https://github.com/jemus42) | |||
* [lfuelling](https://github.com/lfuelling) | |||
* [Grabacr07](https://github.com/Grabacr07) | |||
* [mistermantas](https://github.com/mistermantas) | |||
* [MareenaKunjachan](https://github.com/MareenaKunjachan) | |||
* [mareklach](https://github.com/mareklach) | |||
* [wirehack7](https://github.com/wirehack7) | |||
* [martymcguire](https://github.com/martymcguire) | |||
* [marvinkopf](https://github.com/marvinkopf) | |||
* [otsune](https://github.com/otsune) | |||
* [mbugowski](https://github.com/mbugowski) | |||
* [Leonie](mailto:[email protected]) | |||
* [Levi Bard](mailto:[email protected]) | |||
* [Lex Alexander](mailto:[email protected]) | |||
* [Lorenz Diener](mailto:[email protected]) | |||
* [Luc Didry](mailto:[email protected]) | |||
* [Lukas Burk](mailto:[email protected]) | |||
* [Manato Kameya](mailto:[email protected]) | |||
* [Mantas](mailto:[email protected]) | |||
* [Marcin Mikoลajczak](mailto:[email protected]) | |||
* [Mareena Kunjachan](mailto:[email protected]) | |||
* [Marek Lach](mailto:[email protected]) | |||
* [Markus R](mailto:[email protected]) | |||
* [Marty McGuire](mailto:[email protected]) | |||
* [Marvin Kopf](mailto:[email protected]) | |||
* [Masafumi Otsune](mailto:[email protected]) | |||
* [Matej ฤฝach](mailto:[email protected]) | |||
* [Mateusz Bugowski](mailto:[email protected]) | |||
* [Mathias B](mailto:[email protected]) | |||
* [madmath03](https://github.com/madmath03) | |||
* [matt-auckland](https://github.com/matt-auckland) | |||
* [webroo](https://github.com/webroo) | |||
* [Mathieu Brunot](mailto:[email protected]) | |||
* [Matt](mailto:[email protected]) | |||
* [Matt Sweetman](mailto:[email protected]) | |||
* [Matthias Beyer](mailto:[email protected]) | |||
* [Matthias Jouan](mailto:[email protected]) | |||
* [Matthieu Paret](mailto:[email protected]) | |||
@@ -512,10 +546,11 @@ and provided thanks to the work of the following contributors: | |||
* [S.H](mailto:[email protected]) | |||
* [Sadiq Saif](mailto:[email protected]) | |||
* [Sam Hewitt](mailto:[email protected]) | |||
* [Sasha Sorokin](mailto:[email protected].com) | |||
* [Sara Aimรฉe Smiseth](mailto:[email protected].com) | |||
* [Satoshi KOJIMA](mailto:[email protected]) | |||
* [ScienJus](mailto:[email protected]) | |||
* [Scott Larkin](mailto:[email protected]) | |||
* [Scott Sweeny](mailto:[email protected]) | |||
* [Sebastian Hรผbner](mailto:[email protected]) | |||
* [Sebastian Morr](mailto:[email protected]) | |||
* [Sergei ฤ](mailto:[email protected]) | |||
@@ -525,10 +560,12 @@ and provided thanks to the work of the following contributors: | |||
* [Shin Kojima](mailto:[email protected]) | |||
* [Shouko Yu](mailto:[email protected]) | |||
* [Sina Mashek](mailto:[email protected]) | |||
* [Soft. Dev](mailto:[email protected]) | |||
* [Soshi Kato](mailto:[email protected]) | |||
* [Spanky](mailto:[email protected]) | |||
* [StefOfficiel](mailto:[email protected]) | |||
* [Steven Tappert](mailto:[email protected]) | |||
* [Stรฉphane Guillou](mailto:[email protected]) | |||
* [Svetlozar Todorov](mailto:[email protected]) | |||
* [Sรฉbastien Santoro](mailto:[email protected]) | |||
* [Tad Thorley](mailto:[email protected]) | |||
@@ -536,7 +573,10 @@ and provided thanks to the work of the following contributors: | |||
* [Takayuki KUSANO](mailto:[email protected]) | |||
* [TakesxiSximada](mailto:[email protected]) | |||
* [Tao Bror Bojlรฉn](mailto:[email protected]) | |||
* [Taras Gogol](mailto:[email protected]) | |||
* [Tdxdxoz](mailto:[email protected]) | |||
* [TheInventrix](mailto:[email protected]) | |||
* [TheMainOne](mailto:[email protected]) | |||
* [Thomas Alberola](mailto:[email protected]) | |||
* [Toby Deshane](mailto:[email protected]) | |||
* [Toby Pinder](mailto:[email protected]) | |||
@@ -563,6 +603,7 @@ and provided thanks to the work of the following contributors: | |||
* [Yann Klis](mailto:[email protected]) | |||
* [Yaฤฤฑzhan](mailto:[email protected]) | |||
* [Yeechan Lu](mailto:[email protected]) | |||
* [Your Name](mailto:[email protected]) | |||
* [Yusuke Abe](mailto:moon[email protected]) | |||
* [Zachary Spector](mailto:[email protected]) | |||
* [ZiiX](mailto:[email protected]) | |||
@@ -572,6 +613,7 @@ and provided thanks to the work of the following contributors: | |||
* [bsky](mailto:[email protected]) | |||
* [caesarologia](mailto:[email protected]) | |||
* [cbayerlein](mailto:[email protected]) | |||
* [chr v1.x](mailto:[email protected]) | |||
* [chrolis](mailto:[email protected]) | |||
* [cormo](mailto:[email protected]) | |||
* [d0p1](mailto:[email protected]) | |||
@@ -582,6 +624,7 @@ and provided thanks to the work of the following contributors: | |||
* [fusshi-](mailto:[email protected]) | |||
* [gentaro](mailto:[email protected]) | |||
* [gol-cha](mailto:[email protected]) | |||
* [guigeekz](mailto:[email protected]) | |||
* [hakoai](mailto:[email protected]) | |||
* [haosbvnker](mailto:[email protected]) | |||
* [ichi_i](mailto:[email protected]) | |||
@@ -593,10 +636,11 @@ and provided thanks to the work of the following contributors: | |||
* [jooops](mailto:[email protected]) | |||
* [jukper](mailto:[email protected]) | |||
* [jumoru](mailto:[email protected]) | |||
* [kaiyou](mailto:[email protected]) | |||
* [karlyeurl](mailto:[email protected]) | |||
* [kedama](mailto:[email protected]) | |||
* [kodai](mailto:[email protected]) | |||
* [kuro5hin](mailto:[email protected]) | |||
* [leo60228](mailto:[email protected]) | |||
* [luzpaz](mailto:[email protected]) | |||
* [maxypy](mailto:[email protected]) | |||
* [mhe](mailto:[email protected]) | |||
@@ -607,21 +651,25 @@ and provided thanks to the work of the following contributors: | |||
* [muan](mailto:[email protected]) | |||
* [namelessGonbai](mailto:[email protected]) | |||
* [neetshin](mailto:[email protected]) | |||
* [noiob](mailto:[email protected]) | |||
* [notozeki](mailto:[email protected]) | |||
* [ntl-purism](mailto:[email protected]) | |||
* [nzws](mailto:[email protected]) | |||
* [rch850](mailto:[email protected]) | |||
* [roikale](mailto:[email protected]) | |||
* [rysiekpl](mailto:[email protected]) | |||
* [saturday06](mailto:[email protected]) | |||
* [scd31](mailto:[email protected]) | |||
* [scriptjunkie](mailto:[email protected]) | |||
* [seekr](mailto:[email protected]) | |||
* [sternenseemann](mailto:[email protected]) | |||
* [sundevour](mailto:[email protected]) | |||
* [syui](mailto:[email protected]) | |||
* [tackeyy](mailto:[email protected]) | |||
* [tateisu](mailto:tateisu@gmail.com) | |||
* [taicv](mailto:chuvantai@gmail.com) | |||
* [tmyt](mailto:[email protected]) | |||
* [trevDev()](mailto:[email protected]) | |||
* [tsia](mailto:[email protected]) | |||
* [umonaca](mailto:[email protected]) | |||
* [utam0k](mailto:[email protected]) | |||
* [vpzomtrrfrt](mailto:[email protected]) | |||
* [walfie](mailto:[email protected]) | |||
@@ -634,6 +682,7 @@ and provided thanks to the work of the following contributors: | |||
* [ใใใใ](mailto:[email protected]) | |||
* [ใจใคใใฎ่ณข็ผใใญ | 3rd style](mailto:[email protected]) | |||
* [ๅๅฎๅ](mailto:[email protected]) | |||
* [ๅคๆฅ](mailto:[email protected]) | |||
* [็ซๅธ่ก้ฌผใใฃใใชใน / ็ซใญใญP](mailto:[email protected]) | |||
* [่ฎ ้ฎ้ฑ](mailto:[email protected]) | |||
* [่ฅฟๅฐๅๅฎไฟก](mailto:[email protected]) | |||
@@ -645,122 +694,308 @@ This document is provided for informational purposes only. Since it is only upda | |||
Following people have contributed to translation of Mastodon: | |||
- แฆแแขแตแซ ๐ท (*Spanish, Argentina*) | |||
- Sveinn รญ Felli (*Icelandic*) | |||
- taicv (*Vietnamese*) | |||
- ButterflyOfFire (*Arabic; French; Kabyle*) | |||
- Duy (*Vietnamese*) | |||
- Evert Prants (*Estonian*) | |||
- Zoltรกn Gera (*Hungarian*) | |||
- Daniele Lira Mereb (*Portuguese, Brazilian*) | |||
- Kristijan Tkalec (*Slovenian*) | |||
- Evert Prants (*Estonian*) | |||
- stan ionut (*Romanian*) | |||
- Ramdziana F Y (*Indonesian*) | |||
- Michal Stanke (*Czech*) | |||
- Xosรฉ M. (*Galician; Spanish*) | |||
- ๅฅๅๆ (*Chinese Simplified*) | |||
- borys_sh (*Ukrainian*) | |||
- ButterflyOfFire (*Arabic; French*) | |||
- Miguel Mayol (*Spanish; Catalan*) | |||
- Besnik_b (*Albanian*) | |||
- Thai Localization (*Thai*) | |||
- Emanuel Pina (*Portuguese*) | |||
- Jeong Arm (*Korean; Esperanto; Japanese*) | |||
- Imre Kristoffer Eilertsen (*Norwegian*) | |||
- Danial Behzadi (*Persian*) | |||
- Osoitz (*Basque*) | |||
- oษนสuส (*Spanish, Argentina*) | |||
- koyu (*German*) | |||
- Peterandre (*Norwegian Nynorsk; Norwegian*) | |||
- Jeroen (*Dutch*) | |||
- spla (*Catalan; Spanish*) | |||
- Ivรกns (*Galician*) | |||
- koyu (*German*) | |||
- Sasha Sorokin (*Russian; Vietnamese; Swedish; Catalan; Greek; Hungarian; Armenian; Albanian; Galician; French; Danish; German; Korean; Ukrainian*) | |||
- enolp (*Asturian*) | |||
- Masoud Abkenar (*Persian*) | |||
- lamnatos (*Greek*) | |||
- Alix Rossi (*Corsican; French*) | |||
- arshat (*Kazakh*) | |||
- FรฉdiQuรฉbec (*French*) | |||
- Marek ฤฝach (*Slovak; Polish*) | |||
- Muha Aliss (*Turkish*) | |||
- ๅๅฎๅ (*Chinese Simplified*) | |||
- Jeong Arm (*Korean; Esperanto; Japanese*) | |||
- Oguz Ersen (*Turkish*) | |||
- spla (*Catalan*) | |||
- Ramdziana F Y (*Indonesian*) | |||
- tolstoevsky (*Russian*) | |||
- Emyn-Russell Nt Nefydd (*Welsh*) | |||
- Aditoo17 (*Czech*) | |||
- Xosรฉ M. (*Galician*) | |||
- Roboron (*Spanish*) | |||
- Alix Rossi (*Corsican; French*) | |||
- Maya Minatsuki (*Japanese*) | |||
- Masoud Abkenar (*Persian*) | |||
- Thai Localization (*Thai*) | |||
- Marek ฤฝach (*Slovak; Polish*) | |||
- d5Ziif3K (*Ukrainian*) | |||
- lamnatos (*Greek*) | |||
- Emyn Nant Nefydd (*Welsh*) | |||
- ariasuni (*French; Esperanto*) | |||
- Roboron (*Spanish*) | |||
- Alessandro Levati (*Italian*) | |||
- Diluns (*Occitan*) | |||
- regulartranslator (*Portuguese, Brazilian*) | |||
- vishnuvaratharajan (*Tamil*) | |||
- Marcin Mikoลajczak (*Polish*) | |||
- Yi-Jyun Pan (*Chinese Traditional*) | |||
- adrmzz (*Sardinian*) | |||
- d5Ziif3K (*Ukrainian*) | |||
- GiorgioHerbie (*Italian*) | |||
- christalleras (*Norwegian Nynorsk*) | |||
- Taloran (*Norwegian Nynorsk*) | |||
- ThibG (*French; Icelandic*) | |||
- Akarshan Biswas (*Bengali*) | |||
- atarashiako (*Chinese Simplified*) | |||
- 101010 (*Polish*) | |||
- Yi-Jyun Pan (*Chinese Traditional*) | |||
- silkevicious (*Italian*) | |||
- FรฉdiQuรฉbec (*French*) | |||
- Bertil Hedkvist (*Swedish*) | |||
- cybergene (*Japanese*) | |||
- norayr (*Armenian*) | |||
- William(ั)โฟ (*Spanish*) | |||
- Tiago Epifรขnio (*Portuguese*) | |||
- Mentor Gashi (*Albanian*) | |||
- Jaz-Michael King (*Welsh*) | |||
- christalleras (*Norwegian Nynorsk*) | |||
- tykayn (*French*) | |||
- Alessandro Levati (*Italian*) | |||
- carolinagiorno (*Portuguese, Brazilian*) | |||
- Roby Thomas (*Malayalam*) | |||
- Bharat Kumar (*Hindi*) | |||
- tykayn (*French*) | |||
- axi (*Finnish*) | |||
- Selyan Slimane AMIRI (*Kabyle*) | |||
- taoxvx (*Danish*) | |||
- sabri (*Spanish*) | |||
- Sasha Sorokin (*Russian*) | |||
- Hrach Mkrtchyan (*Armenian*) | |||
- sabri (*Spanish; Spanish, Argentina*) | |||
- Dewi (*Breton; French*) | |||
- SteinarK (*Norwegian Nynorsk*) | |||
- Mathias B. Vagnes (*Norwegian*) | |||
- dashersyed (*Urdu*) | |||
- ThonyVezbe (*Breton*) | |||
- Acolyte (*Ukrainian*) | |||
- Conight Wang (*Chinese Simplified*) | |||
- Damjan Dimitrioski (*Macedonian*) | |||
- PPNplus (*Thai*) | |||
- Tagomago (*Spanish; French*) | |||
- shioko (*Chinese Simplified*) | |||
- Balรกzs Meskรณ (*Hungarian*) | |||
- Evgeny Petrov (*Russian*) | |||
- ariasuni (*French; Esperanto*) | |||
- Tiago Epifรขnio (*Portuguese*) | |||
- dxwc (*Bengali*) | |||
- Gwenn (*Breton*) | |||
- Ryo (*Korean*) | |||
- Rafael H L Moretti (*Portuguese, Brazilian*) | |||
- jaranta (*Finnish*) | |||
- gagik_ (*Armenian*) | |||
- Felicia (*Swedish*) | |||
- Jess Rafn (*Danish*) | |||
- Stasiek Michalski (*Polish*) | |||
- liffon (*Swedish*) | |||
- dxwc (*Bengali*) | |||
- Saederup92 (*Danish*) | |||
- Vanege (*Esperanto*) | |||
- jmontane (*Catalan*) | |||
- Johan Schiff (*Swedish*) | |||
- Arunmozhi (*Tamil*) | |||
- kat (*Ukrainian; Russian*) | |||
- Laura (*Polish*) | |||
- oti4500 (*Hungarian; Ukrainian*) | |||
- diazepan (*Spanish; Spanish, Argentina*) | |||
- Sokratis Alichanidis (*Greek*) | |||
- Rikard Linde (*Swedish*) | |||
- Juan Josรฉ Salvador Piedra (*Spanish*) | |||
- diazepan (*Spanish*) | |||
- marzuquccen (*Kabyle*) | |||
- BurekzFinezt (*Serbian*) | |||
- SHeija (*Finnish*) | |||
- Jack R (*Spanish*) | |||
- Saederup92 (*Danish*) | |||
- Stasiek Michalski (*Polish*) | |||
- Dewi (*Breton; French*) | |||
- cybergene (*Japanese*) | |||
- andruhov (*Ukrainian; Russian*) | |||
- ๆฃฎใฎๅญใชในใฎใใผใณใฎๅคงๅ้บ (*Japanese*) | |||
- ใใใผใญ (*Japanese*) | |||
- Sam Tux (*Bengali*) | |||
- Unmual (*Spanish*) | |||
- AW Unad (*Indonesian*) | |||
- Andrea Lo Iacono (*Italian*) | |||
- Cutls (*Japanese*) | |||
- Ray (*Spanish*) | |||
- Unmual (*Spanish*) | |||
- Ryo (*Korean*) | |||
- Falling Snowdin (*Vietnamese*) | |||
- Andrea Lo Iacono (*Italian*) | |||
- EPEMA (*German*) | |||
- Kinshuk Sunil (*Hindi*) | |||
- Ullas Joseph (*Malayalam*) | |||
- Yu-Pai Liu (*Chinese Traditional*) | |||
- Amarin Cemthong (*Thai*) | |||
- juanda097 (*Spanish*) | |||
- Anunnakey (*Macedonian*) | |||
- Cutls (*Japanese*) | |||
- StanleyFrew (*French*) | |||
- erikstl (*Esperanto*) | |||
- ruine (*Japanese*) | |||
- MadeInSteak (*Finnish*) | |||
- Sokratis Alichanidis (*Greek*) | |||
- dragnucs2 (*Arabic*) | |||
- frumble (*German*) | |||
- Rikard Linde (*Swedish*) | |||
- PPNplus (*Thai*) | |||
- Heimen Stoffels (*Dutch*) | |||
- Rajarshi Guha (*Bengali*) | |||
- Andrew (*Romanian*) | |||
- Goudarz Jafari (*Persian*) | |||
- arethsu (*Swedish*) | |||
- EPEMA YT (*German*) | |||
- Carlos Solรญs (*Esperanto*) | |||
- Parthan S Ramanujam (*Tamil*) | |||
- Ali Demirtaล (*Turkish*) | |||
- Kasper Nymand (*Danish*) | |||
- TS (*Finnish*) | |||
- SensDeViata (*Ukrainian*) | |||
- SergioFMiranda (*Portuguese, Brazilian*) | |||
- OctolinGamer (*Portuguese, Brazilian*) | |||
- AzureNya (*Chinese Simplified*) | |||
- Ram varma (*Tamil*) | |||
- ๅไๅฆๆณ (*Japanese*) | |||
- frumble (*German*) | |||
- kekkepikkuni (*Tamil*) | |||
- oorsutri (*Tamil*) | |||
- Nithin V (*Tamil*) | |||
- Miro Rauhala (*Finnish*) | |||
- diorama (*Italian*) | |||
- Rhys Harrison (*Esperanto*) | |||
- Guillaume Turchini (*French*) | |||
- Ganesh D (*Marathi*) | |||
- dragnucs2 (*Arabic*) | |||
- Pedro Henrique (*Portuguese, Brazilian*) | |||
- Tejas Harad (*Marathi*) | |||
- Vasanthan (*Tamil*) | |||
- ็กซ้ ธ้ถ (*Japanese*) | |||
- manukp (*Malayalam*) | |||
- psymyn (*Hebrew*) | |||
- earth dweller (*Marathi*) | |||
- meijerivoi (*Finnish*) | |||
- essaar (*Tamil*) | |||
- serubeena (*Swedish*) | |||
- Rintan (*Japanese*) | |||
- Karol Kosek (*Polish*) | |||
- valarivan (*Tamil*) | |||
- Sebastiรกn Andil (*Slovak*) | |||
- v4vachan (*Malayalam*) | |||
- KEINOS (*Japanese*) | |||
- Ivan T. (*Chinese Traditional, Hong Kong*) | |||
- filippodb (*Italian*) | |||
- Balรกzs Meskรณ (*Hungarian*) | |||
- JzshAC (*Chinese Simplified*) | |||
- Rintan1 (*Japanese*) | |||
- Bottle (*Tamil*) | |||
- Khรณo (*Chinese Traditional*) | |||
- Steven Tappert (*German*) | |||
- Antillion (*Spanish*) | |||
- ZiriSut (*Kabyle*) | |||
- gowthamanb (*Tamil*) | |||
- hiphipvargas (*Portuguese*) | |||
- Arttu Ylhรคvuori (*Finnish*) | |||
- Ch. (*Korean*) | |||
- tctovsli (*Norwegian Nynorsk*) | |||
- Hinaloe (*Japanese*) | |||
- strubbl (*German*) | |||
- vjasiegd (*Polish*) | |||
- SamitiMed (*Thai*) | |||
- Reg3xp (*Persian*) | |||
- AlexKoala (*Korean*) | |||
- umelard (*Hebrew*) | |||
- ็กซ้ ธ้ถ (*Japanese*) | |||
- Adriรกn Lattes (*Spanish*) | |||
- Hinaloe (*Japanese*) | |||
- Renato "Lond" Cerqueira (*Portuguese, Brazilian*) | |||
- VSx86 (*Russian*) | |||
- Daniel Dimitrov (*Bulgarian*) | |||
- mynameismonkey (*Welsh*) | |||
- parnikkapore (*Thai*) | |||
- Marcin Mikoลajczak (*Polish*) | |||
- ๆฃฎใฎๅญใชในใฎใใผใณใฎๅคงๅ้บ (*Japanese*) | |||
- Marcepanek_ (*Polish*) | |||
- Mo_der Steven (*Chinese Simplified*) | |||
- SKELET (*Danish*) | |||
- Renato "Lond" Cerqueira (*Portuguese, Brazilian*) | |||
- enipra (*Armenian*) | |||
- musix (*Persian*) | |||
- ใฎใฃใฉ (*Chinese Simplified; Japanese*) | |||
- ALEM FARID (*Kabyle*) | |||
- ybardapurkar (*Marathi*) | |||
- Adriรกn Lattes (*Spanish*) | |||
- rasheedgm (*Kannada*) | |||
- omquylzu (*Latvian*) | |||
- Belkacem Mohammed (*Kabyle*) | |||
- Navjot Singh (*Hindi*) | |||
- Ozai (*German*) | |||
- Sahak Petrosyan (*Armenian*) | |||
- Daniel Dimitrov (*Bulgarian*) | |||
- siamano (*Thai; Esperanto*) | |||
- se7entime (*Indonesian*) | |||
- Viorel-Cฤtฤlin Rฤpiศeanu (*Romanian*) | |||
- Siddhartha Sarathi Basu (*Bengali*) | |||
- Pachara Chantawong (*Thai*) | |||
- Skew (*French*) | |||
- Zijian Zhao (*Chinese Simplified*) | |||
- Guru Prasath Anandapadmanaban (*Tamil*) | |||
- turtle836 (*German*) | |||
- GatoOscuro (*Spanish*) | |||
- Lamin (*Japanese*) | |||
- Marcepanek_ (*Polish*) | |||
- Yann Aguettaz (*French*) | |||
- Feruz Oripov (*Russian*) | |||
- Mick Onio (*Asturian*) | |||
- hg6 (*Hindi*) | |||
- Malik Mann (*German*) | |||
- padulafacundo (*Spanish*) | |||
- r3dsp1 (*Chinese Traditional, Hong Kong*) | |||
- Tianqi Zhang (*Chinese Simplified*) | |||
- Padraic Calpin (*Slovenian*) | |||
- cenegd (*Chinese Simplified*) | |||
- piupiupiudiu (*Chinese Simplified*) | |||
- Hugh Liu (*Chinese Simplified*) | |||
- Rakino (*Chinese Simplified*) | |||
- Jothipazhani Nagarajan (*Tamil*) | |||
- Miquel Sabatรฉ Solร (*Catalan*) | |||
- AmazighNM (*Kabyle*) | |||
- Solid Rhino (*Dutch*) | |||
- hallomaurits (*Dutch*) | |||
- hussama (*Portuguese, Brazilian*) | |||
- ThibG (*French*) | |||
- shafouz (*Portuguese, Brazilian*) | |||
- Tagada (*French*) | |||
- Tom_ (*Czech*) | |||
- SnDer (*Dutch*) | |||
- PifyZ (*French*) | |||
- eichkat3r (*German*) | |||
- Karol Kosek (*Polish*) | |||
- Akarshan Biswas (*Bengali*) | |||
- PifyZ (*French*) | |||
- OminousCry (*Russian*) | |||
- Shrinivasan T (*Tamil*) | |||
- Nathaรซl Noguรจs (*French*) | |||
- Daniel M. (*Catalan*) | |||
- Swati Sani (*Urdu*) | |||
- Kk (*Kannada*) | |||
- SusVersiva (*Catalan*) | |||
- Robin van der Vliet (*Esperanto*) | |||
- Zinkokooo (*Basque*) | |||
- Tradjincal (*French*) | |||
- Steven Tappert (*German*) | |||
- sergioaraujo1 (*Portuguese, Brazilian*) | |||
- Vikatakavi (*Kannada*) | |||
- prabhjot (*Hindi*) | |||
- twpenguin (*Chinese Traditional*) | |||
- mmokhi (*Persian*) | |||
- fedot (*Russian*) | |||
- sergioaraujo1 (*Portuguese, Brazilian*) | |||
- Livingston Samuel (*Tamil*) | |||
- tsundoker (*Malayalam*) | |||
- skaaarrr (*German*) | |||
- ๅคๆฅYoka (*Chinese Simplified*) | |||
- kiwi0 (*Italian*) | |||
- fedot (*Russian*) | |||
- mkljczk (*Polish*) | |||
- igordrozniak (*Polish*) | |||
- Ricardo Colin (*Spanish*) | |||
- Esther (*Portuguese*) | |||
- Paz Galindo (*Spanish*) | |||
- Philipp Fischbeck (*German*) | |||
- ralozkolya (*Georgian*) | |||
- JackXu (*Chinese Simplified*) | |||
- Lukas Fรผlling (*German*) | |||
- Allen Zhong (*Chinese Simplified*) | |||
- Zoรฉ Bลle (*German*) | |||
- Lukas Fรผlling (*German*) | |||
- Albatroz Jeremias (*Portuguese*) | |||
- Samir Tighzert (*Kabyle*) | |||
- Nocta (*French*) | |||
- Anoop (*Malayalam*) | |||
- pezcurrel (*Italian*) | |||
- Dremski (*Bulgarian*) | |||
- Aymeric (*French*) | |||
- tamaina (*Japanese*) | |||
- Doug (*Portuguese, Brazilian*) | |||
- Matias Lavik (*Norwegian Nynorsk*) | |||
- Fleva (*Sardinian*) | |||
- OpenAlgeria (*Arabic*) | |||
- koppe-pan (*Japanese*) | |||
- Amith Raj Shetty (*Kannada*) | |||
- smedvedev (*Russian*) | |||
- Trond Boksasp (*Norwegian*) | |||
- random_person (*Spanish*) | |||
- Sais Lakshmanan (*Tamil*) | |||
- mikel (*Spanish*) | |||
- Mohammad Adnan Mahmood (*Arabic*) |
@@ -3,6 +3,188 @@ Changelog | |||
All notable changes to this project will be documented in this file. | |||
## [3.2.1] - 2020-10-19 | |||
### Added | |||
- Add support for latest HTTP Signatures spec draft ([ThibG](https://github.com/tootsuite/mastodon/pull/14556)) | |||
- Add support for inlined objects in ActivityPub `to`/`cc` ([ThibG](https://github.com/tootsuite/mastodon/pull/14514)) | |||
### Changed | |||
- Change actors to not be served at all without authentication in limited federation mode ([ThibG](https://github.com/tootsuite/mastodon/pull/14800)) | |||
- Previously, a bare version of an actor was served when not authenticated, i.e. username and public key | |||
- Because all actor fetch requests are signed using a separate system actor, that is no longer required | |||
### Fixed | |||
- Fix `tootctl media` commands not recognizing very large IDs ([ThibG](https://github.com/tootsuite/mastodon/pull/14536)) | |||
- Fix crash when failing to load emoji picker in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14525)) | |||
- Fix contrast requirements in thumbnail color extraction ([ThibG](https://github.com/tootsuite/mastodon/pull/14464)) | |||
- Fix audio/video player not using `CDN_HOST` on public pages ([ThibG](https://github.com/tootsuite/mastodon/pull/14486)) | |||
- Fix private boost icon not being used on public pages ([OmmyZhang](https://github.com/tootsuite/mastodon/pull/14471)) | |||
- Fix audio player on Safari in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14485), [ThibG](https://github.com/tootsuite/mastodon/pull/14465)) | |||
- Fix dereferencing remote statuses not using the correct account for signature when receiving a targeted inbox delivery ([ThibG](https://github.com/tootsuite/mastodon/pull/14656)) | |||
- Fix nil error in `tootctl media remove` ([noellabo](https://github.com/tootsuite/mastodon/pull/14657)) | |||
- Fix videos with near-60 fps being rejected ([Gargron](https://github.com/tootsuite/mastodon/pull/14684)) | |||
- Fix reported statuses not being included in warning e-mail ([Gargron](https://github.com/tootsuite/mastodon/pull/14778)) | |||
- Fix `Reject` activities of `Follow` objects not correctly destroying a follow relationship ([ThibG](https://github.com/tootsuite/mastodon/pull/14479)) | |||
- Fix inefficiencies in fan-out-on-write service ([Gargron](https://github.com/tootsuite/mastodon/pull/14682), [noellabo](https://github.com/tootsuite/mastodon/pull/14709)) | |||
- Fix timeout errors when trying to webfinger some IPv6 configurations ([Gargron](https://github.com/tootsuite/mastodon/pull/14919)) | |||
- Fix files served as `application/octet-stream` being rejected without attempting mime type detection ([ThibG](https://github.com/tootsuite/mastodon/pull/14452)) | |||
## [3.2.0] - 2020-07-27 | |||
### Added | |||
- Add `SMTP_SSL` environment variable ([OmmyZhang](https://github.com/tootsuite/mastodon/pull/14309)) | |||
- Add hotkey for toggling content warning input in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13987)) | |||
- **Add e-mail-based sign in challenge for users with disabled 2FA** ([Gargron](https://github.com/tootsuite/mastodon/pull/14013)) | |||
- If user tries signing in after: | |||
- Being inactive for a while | |||
- With a previously unknown IP | |||
- Without 2FA being enabled | |||
- Require to enter a token sent via e-mail before sigining in | |||
- Add `limit` param to RSS feeds ([noellabo](https://github.com/tootsuite/mastodon/pull/13743)) | |||
- Add `visibility` param to share page ([noellabo](https://github.com/tootsuite/mastodon/pull/13023)) | |||
- Add blurhash to link previews ([ThibG](https://github.com/tootsuite/mastodon/pull/13984), [ThibG](https://github.com/tootsuite/mastodon/pull/14143), [ThibG](https://github.com/tootsuite/mastodon/pull/13985), [Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/14267), [Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/14278), [ThibG](https://github.com/tootsuite/mastodon/pull/14126), [ThibG](https://github.com/tootsuite/mastodon/pull/14261), [ThibG](https://github.com/tootsuite/mastodon/pull/14260)) | |||
- In web UI, toots cannot be marked as sensitive unless there is media attached | |||
- However, it's possible to do via API or ActivityPub | |||
- Thumnails of link previews of such posts now use blurhash in web UI | |||
- The Card entity in REST API has a new `blurhash` attribute | |||
- Add support for `summary` field for media description in ActivityPub ([ThibG](https://github.com/tootsuite/mastodon/pull/13763)) | |||
- Add hints about incomplete remote content to web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/14031), [noellabo](https://github.com/tootsuite/mastodon/pull/14195)) | |||
- **Add personal notes for accounts** ([ThibG](https://github.com/tootsuite/mastodon/pull/14148), [Gargron](https://github.com/tootsuite/mastodon/pull/14208), [Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/14251)) | |||
- To clarify, these are notes only you can see, to help you remember details | |||
- Notes can be viewed and edited from profiles in web UI | |||
- New REST API: `POST /api/v1/accounts/:id/note` with `comment` param | |||
- The Relationship entity in REST API has a new `note` attribute | |||
- Add Helm chart ([dunn](https://github.com/tootsuite/mastodon/pull/14090), [dunn](https://github.com/tootsuite/mastodon/pull/14256), [dunn](https://github.com/tootsuite/mastodon/pull/14245)) | |||
- **Add customizable thumbnails for audio and video attachments** ([Gargron](https://github.com/tootsuite/mastodon/pull/14145), [Gargron](https://github.com/tootsuite/mastodon/pull/14244), [Gargron](https://github.com/tootsuite/mastodon/pull/14273), [Gargron](https://github.com/tootsuite/mastodon/pull/14203), [ThibG](https://github.com/tootsuite/mastodon/pull/14255), [ThibG](https://github.com/tootsuite/mastodon/pull/14306), [noellabo](https://github.com/tootsuite/mastodon/pull/14358), [noellabo](https://github.com/tootsuite/mastodon/pull/14357)) | |||
- Metadata (album, artist, etc) is no longer stripped from audio files | |||
- Album art is automatically extracted from audio files | |||
- Thumbnail can be manually uploaded for both audio and video attachments | |||
- Media upload APIs now support `thumbnail` param | |||
- On `POST /api/v1/media` and `POST /api/v2/media` | |||
- And on `PUT /api/v1/media/:id` | |||
- ActivityPub representation of media attachments represents custom thumbnails with an `icon` attribute | |||
- The Media Attachment entity in REST API now has a `preview_remote_url` to its `preview_url`, equivalent to `remote_url` to its `url` | |||
- **Add color extraction for thumbnails** ([Gargron](https://github.com/tootsuite/mastodon/pull/14209), [ThibG](https://github.com/tootsuite/mastodon/pull/14264)) | |||
- The `meta` attribute on the Media Attachment entity in REST API can now have a `colors` attribute which in turn contains three hex colors: `background`, `foreground`, and `accent` | |||
- The background color is chosen from the most dominant color around the edges of the thumbnail | |||
- The foreground and accent colors are chosen from the colors that are the most different from the background color using the CIEDE2000 algorithm | |||
- The most satured color of the two is designated as the accent color | |||
- The one with the highest W3C contrast is designated as the foreground color | |||
- If there are not enough colors in the thumbnail, new ones are generated using a monochrome pattern | |||
- Add a visibility indicator to toots in web UI ([noellabo](https://github.com/tootsuite/mastodon/pull/14123), [highemerly](https://github.com/tootsuite/mastodon/pull/14292)) | |||
- Add `tootctl email_domain_blocks` ([tateisu](https://github.com/tootsuite/mastodon/pull/13589), [Gargron](https://github.com/tootsuite/mastodon/pull/14147)) | |||
- Add "Add new domain block" to header of federation page in admin UI ([ariasuni](https://github.com/tootsuite/mastodon/pull/13934)) | |||
- Add ability to keep emoji picker open with ctrl+click in web UI ([bclindner](https://github.com/tootsuite/mastodon/pull/13896), [noellabo](https://github.com/tootsuite/mastodon/pull/14096)) | |||
- Add custom icon for private boosts in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14380)) | |||
- Add support for Create and Update activities that don't inline objects in ActivityPub ([ThibG](https://github.com/tootsuite/mastodon/pull/14359)) | |||
- Add support for Undo activities that don't inline activities in ActivityPub ([ThibG](https://github.com/tootsuite/mastodon/pull/14346)) | |||
### Changed | |||
- Change `.env.production.sample` to be leaner and cleaner ([Gargron](https://github.com/tootsuite/mastodon/pull/14206)) | |||
- It was overloaded as de-facto documentation and getting quite crowded | |||
- Defer to the actual documentation while still giving a minimal example | |||
- Change `tootctl search deploy` to work faster and display progress ([Gargron](https://github.com/tootsuite/mastodon/pull/14300)) | |||
- Change User-Agent of link preview fetching service to include "Bot" ([Gargron](https://github.com/tootsuite/mastodon/pull/14248)) | |||
- Some websites may not render OpenGraph tags into HTML if that's not the case | |||
- Change behaviour to carry blocks over when someone migrates their followers ([ThibG](https://github.com/tootsuite/mastodon/pull/14144)) | |||
- Change volume control and download buttons in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/14122)) | |||
- **Change design of audio players in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/14095), [ThibG](https://github.com/tootsuite/mastodon/pull/14281), [Gargron](https://github.com/tootsuite/mastodon/pull/14282), [ThibG](https://github.com/tootsuite/mastodon/pull/14118), [Gargron](https://github.com/tootsuite/mastodon/pull/14199), [ThibG](https://github.com/tootsuite/mastodon/pull/14338)) | |||
- Change reply filter to never filter own toots in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14128)) | |||
- Change boost button to no longer serve as visibility indicator in web UI ([noellabo](https://github.com/tootsuite/mastodon/pull/14132), [ThibG](https://github.com/tootsuite/mastodon/pull/14373)) | |||
- Change contrast of flash messages ([cchoi12](https://github.com/tootsuite/mastodon/pull/13892)) | |||
- Change wording from "Hide media" to "Hide image/images" in web UI ([ariasuni](https://github.com/tootsuite/mastodon/pull/13834)) | |||
- Change appearence of settings pages to be more consistent ([ariasuni](https://github.com/tootsuite/mastodon/pull/13938)) | |||
- Change "Add media" tooltip to not include long list of formats in web UI ([ariasuni](https://github.com/tootsuite/mastodon/pull/13954)) | |||
- Change how badly contrasting emoji are rendered in web UI ([leo60228](https://github.com/tootsuite/mastodon/pull/13773), [ThibG](https://github.com/tootsuite/mastodon/pull/13772), [mfmfuyu](https://github.com/tootsuite/mastodon/pull/14020), [ThibG](https://github.com/tootsuite/mastodon/pull/14015)) | |||
- Change structure of unavailable content section on about page ([ariasuni](https://github.com/tootsuite/mastodon/pull/13930)) | |||
- Change behaviour to accept ActivityPub activities relayed through group actor ([noellabo](https://github.com/tootsuite/mastodon/pull/14279)) | |||
- Change amount of processing retries for ActivityPub activities ([noellabo](https://github.com/tootsuite/mastodon/pull/14355)) | |||
### Removed | |||
- Remove the terms "blacklist" and "whitelist" from UX ([Gargron](https://github.com/tootsuite/mastodon/pull/14149), [mayaeh](https://github.com/tootsuite/mastodon/pull/14192)) | |||
- Environment variables changed (old versions continue to work): | |||
- `WHITELIST_MODE` โ `LIMITED_FEDERATION_MODE` | |||
- `EMAIL_DOMAIN_BLACKLIST` โ `EMAIL_DOMAIN_DENYLIST` | |||
- `EMAIL_DOMAIN_WHITELIST` โ `EMAIL_DOMAIN_ALLOWLIST` | |||
- CLI option changed: | |||
- `tootctl domains purge --whitelist-mode` โ `tootctl domains purge --limited-federation-mode` | |||
- Remove some unnecessary database indices ([lfuelling](https://github.com/tootsuite/mastodon/pull/13695), [noellabo](https://github.com/tootsuite/mastodon/pull/14259)) | |||
- Remove unnecessary Node.js version upper bound ([ykzts](https://github.com/tootsuite/mastodon/pull/14139)) | |||
### Fixed | |||
- Fix `following` param not working when exact match is found in account search ([noellabo](https://github.com/tootsuite/mastodon/pull/14394)) | |||
- Fix sometimes occuring duplicate mention notifications ([noellabo](https://github.com/tootsuite/mastodon/pull/14378)) | |||
- Fix RSS feeds not being cachable ([ThibG](https://github.com/tootsuite/mastodon/pull/14368)) | |||
- Fix lack of locking around processing of Announce activities in ActivityPub ([noellabo](https://github.com/tootsuite/mastodon/pull/14365)) | |||
- Fix boosted toots from blocked account not being retroactively removed from TL ([ThibG](https://github.com/tootsuite/mastodon/pull/14339)) | |||
- Fix large shortened numbers (like 1.2K) using incorrect pluralization ([Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/14061)) | |||
- Fix streaming server trying to use empty password to connect to Redis when `REDIS_PASSWORD` is given but blank ([ThibG](https://github.com/tootsuite/mastodon/pull/14135)) | |||
- Fix being unable to unboost posts when blocked by their author ([ThibG](https://github.com/tootsuite/mastodon/pull/14308)) | |||
- Fix account domain block not properly unfollowing accounts from domain ([Gargron](https://github.com/tootsuite/mastodon/pull/14304)) | |||
- Fix removing a domain allow wiping known accounts in open federation mode ([ThibG](https://github.com/tootsuite/mastodon/pull/14298)) | |||
- Fix blocks and mutes pagination in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14275)) | |||
- Fix new posts pushing down origin of opened dropdown in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14271), [ThibG](https://github.com/tootsuite/mastodon/pull/14348)) | |||
- Fix timeline markers not being saved sometimes ([ThibG](https://github.com/tootsuite/mastodon/pull/13887), [ThibG](https://github.com/tootsuite/mastodon/pull/13889), [ThibG](https://github.com/tootsuite/mastodon/pull/14155)) | |||
- Fix CSV uploads being rejected ([noellabo](https://github.com/tootsuite/mastodon/pull/13835)) | |||
- Fix incompatibility with ElasticSearch 7.x ([noellabo](https://github.com/tootsuite/mastodon/pull/13828)) | |||
- Fix being able to search posts where you're in the target audience but not actively mentioned ([noellabo](https://github.com/tootsuite/mastodon/pull/13829)) | |||
- Fix non-local posts appearing on local-only hashtag timelines in web UI ([noellabo](https://github.com/tootsuite/mastodon/pull/13827)) | |||
- Fix `tootctl media remove-orphans` choking on unknown files in storage ([Gargron](https://github.com/tootsuite/mastodon/pull/13765)) | |||
- Fix `tootctl upgrade storage-schema` misbehaving ([Gargron](https://github.com/tootsuite/mastodon/pull/13761), [angristan](https://github.com/tootsuite/mastodon/pull/13768)) | |||
- Fix it marking records as upgraded even though no files were moved | |||
- Fix it not working with S3 storage | |||
- Fix it not working with custom emojis | |||
- Fix GIF reader raising incorrect exceptions ([ThibG](https://github.com/tootsuite/mastodon/pull/13760)) | |||
- Fix hashtag search performing account search as well ([ThibG](https://github.com/tootsuite/mastodon/pull/13758)) | |||
- Fix Webfinger returning wrong status code on malformed or missing param ([ThibG](https://github.com/tootsuite/mastodon/pull/13759)) | |||
- Fix `rake mastodon:setup` error when some environment variables are set ([ThibG](https://github.com/tootsuite/mastodon/pull/13928)) | |||
- Fix admin page crashing when trying to block an invalid domain name in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13884)) | |||
- Fix unsent toot confirmation dialog not popping up in single column mode in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13888)) | |||
- Fix performance of follow import ([noellabo](https://github.com/tootsuite/mastodon/pull/13836)) | |||
- Reduce timeout of Webfinger requests to that of other requests | |||
- Use circuit breakers to stop hitting unresponsive servers | |||
- Avoid hitting servers that are already known to be generally unavailable | |||
- Fix filters ignoring media descriptions ([BenLubar](https://github.com/tootsuite/mastodon/pull/13837)) | |||
- Fix some actions on custom emojis leading to cryptic errors in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13951)) | |||
- Fix ActivityPub serialization of replies when some of them are URIs ([ThibG](https://github.com/tootsuite/mastodon/pull/13957)) | |||
- Fix `rake mastodon:setup` choking on environment variables containing `%` ([ThibG](https://github.com/tootsuite/mastodon/pull/13940)) | |||
- Fix account redirect confirmation message talking about moved followers ([ThibG](https://github.com/tootsuite/mastodon/pull/13950)) | |||
- Fix avatars having the wrong size on public detailed status pages ([ThibG](https://github.com/tootsuite/mastodon/pull/14140)) | |||
- Fix various issues around OpenGraph representation of media ([Gargron](https://github.com/tootsuite/mastodon/pull/14133)) | |||
- Pages containing audio no longer say "Attached: 1 image" in description | |||
- Audio attachments now represented as OpenGraph `og:audio` | |||
- The `twitter:player` page now uses Mastodon's proper audio/video player | |||
- Audio/video buffered bars now display correctly in audio/video player | |||
- Volume and progress bars now respond to movement/move smoother | |||
- Fix audio/video/images/cards not reacting to window resizes in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/14130)) | |||
- Fix very wide media attachments resulting in too thin a thumbnail in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14127)) | |||
- Fix crash when merging posts into home feed after following someone ([ThibG](https://github.com/tootsuite/mastodon/pull/14129)) | |||
- Fix unique username constraint for local users not being enforced in database ([ThibG](https://github.com/tootsuite/mastodon/pull/14099)) | |||
- Fix unnecessary gap under video modal in web UI ([mfmfuyu](https://github.com/tootsuite/mastodon/pull/14098)) | |||
- Fix 2FA and sign in token pages not respecting user locale ([mfmfuyu](https://github.com/tootsuite/mastodon/pull/14087)) | |||
- Fix unapproved users being able to view profiles when in limited-federation mode *and* requiring approval for sign-ups ([ThibG](https://github.com/tootsuite/mastodon/pull/14093)) | |||
- Fix initial audio volume not corresponding to what's displayed in audio player in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14057)) | |||
- Fix timelines sometimes jumping when closing modals in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14019)) | |||
- Fix memory usage of downloading remote files ([Gargron](https://github.com/tootsuite/mastodon/pull/14184), [Gargron](https://github.com/tootsuite/mastodon/pull/14181), [noellabo](https://github.com/tootsuite/mastodon/pull/14356)) | |||
- Don't read entire file (up to 40 MB) into memory | |||
- Read and write it to temp file in small chunks | |||
- Fix inconsistent account header padding in web UI ([trwnh](https://github.com/tootsuite/mastodon/pull/14179)) | |||
- Fix Thai being skipped from language detection ([Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/13989)) | |||
- Since Thai has its own alphabet, it can be detected more reliably | |||
- Fix broken hashtag column options styling in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14247)) | |||
- Fix pointer cursor being shown on toots that are not clickable in web UI ([arielrodrigues](https://github.com/tootsuite/mastodon/pull/14185)) | |||
- Fix lock icon not being shown when locking account in profile settings ([ThibG](https://github.com/tootsuite/mastodon/pull/14190)) | |||
- Fix domain blocks doing work the wrong way around ([ThibG](https://github.com/tootsuite/mastodon/pull/13424)) | |||
- Instead of suspending accounts one by one, mark all as suspended first (quick) | |||
- Only then proceed to start removing their data (slow) | |||
- Clear out media attachments in a separate worker (slow) | |||
## [v3.1.5] - 2020-07-07 | |||
### Security | |||
@@ -1,11 +1,11 @@ | |||
FROM ubuntu:18.04 as build-dep | |||
FROM ubuntu:20.04 as build-dep | |||
# Use bash for the shell | |||
SHELL ["bash", "-c"] | |||
# Install Node v12 (LTS) | |||
ENV NODE_VER="12.16.1" | |||
RUN ARCH= && \ | |||
ENV NODE_VER="12.16.3" | |||
RUN ARCH= && \ | |||
dpkgArch="$(dpkg --print-architecture)" && \ | |||
case "${dpkgArch##*-}" in \ | |||
amd64) ARCH='x64';; \ | |||
@@ -74,7 +74,7 @@ RUN cd /opt/mastodon && \ | |||
bundle install -j$(nproc) && \ | |||
yarn install --pure-lockfile | |||
FROM ubuntu:18.04 | |||
FROM ubuntu:20.04 | |||
# Copy over all the langs needed for runtime | |||
COPY --from=build-dep /opt/node /opt/node | |||
@@ -98,8 +98,8 @@ RUN apt update && \ | |||
# Install mastodon runtime deps | |||
RUN apt -y --no-install-recommends install \ | |||
libssl1.1 libpq5 imagemagick ffmpeg \ | |||
libicu60 libprotobuf10 libidn11 libyaml-0-2 \ | |||
file ca-certificates tzdata libreadline7 && \ | |||
libicu66 libprotobuf17 libidn11 libyaml-0-2 \ | |||
file ca-certificates tzdata libreadline8 && \ | |||
apt -y install gcc && \ | |||
ln -s /opt/mastodon /mastodon && \ | |||
gem install bundler && \ | |||
@@ -6,10 +6,10 @@ ruby '>= 2.5.0', '< 3.0.0' | |||
gem 'pkg-config', '~> 1.4' | |||
gem 'puma', '~> 4.3' | |||
gem 'rails', '~> 5.2.4.2' | |||
gem 'rails', '~> 5.2.4.3' | |||
gem 'sprockets', '~> 3.7.2' | |||
gem 'thor', '~> 0.20' | |||
gem 'rack', '~> 2.2.2' | |||
gem 'rack', '~> 2.2.3' | |||
gem 'thwait', '~> 0.1.0' | |||
gem 'e2mmap', '~> 0.1.0' | |||
@@ -17,10 +17,10 @@ gem 'e2mmap', '~> 0.1.0' | |||
gem 'hamlit-rails', '~> 0.2' | |||
gem 'pg', '~> 1.2' | |||
gem 'makara', '~> 0.4' | |||
gem 'pghero', '~> 2.4' | |||
gem 'pghero', '~> 2.5' | |||
gem 'dotenv-rails', '~> 2.7' | |||
gem 'aws-sdk-s3', '~> 1.64', require: false | |||
gem 'aws-sdk-s3', '~> 1.73', require: false | |||
gem 'fog-core', '<= 2.1.0' | |||
gem 'fog-openstack', '~> 0.3', require: false | |||
gem 'paperclip', '~> 6.0' | |||
@@ -48,11 +48,12 @@ gem 'omniauth-cas', '~> 1.1' | |||
gem 'omniauth-saml', '~> 1.10' | |||
gem 'omniauth', '~> 1.9' | |||
gem 'color_diff', '~> 0.1' | |||
gem 'discard', '~> 1.2' | |||
gem 'doorkeeper', '~> 5.4' | |||
gem 'ed25519', '~> 1.2' | |||
gem 'fast_blank', '~> 1.0' | |||
gem 'fastimage' | |||
gem 'goldfinger', '~> 2.1' | |||
gem 'hiredis', '~> 0.6' | |||
gem 'redis-namespace', '~> 1.7' | |||
gem 'health_check', git: 'https://github.com/ianheggie/health_check', ref: '0b799ead604f900ed50685e9b2d469cd2befba5b' | |||
@@ -60,7 +61,7 @@ gem 'htmlentities', '~> 4.3' | |||
gem 'http', '~> 4.4' | |||
gem 'http_accept_language', '~> 2.1' | |||
gem 'http_parser.rb', '~> 0.6', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2', submodules: true | |||
gem 'httplog', '~> 1.4.2' | |||
gem 'httplog', '~> 1.4.3' | |||
gem 'idn-ruby', require: 'idn' | |||
gem 'kaminari', '~> 1.2' | |||
gem 'link_header', '~> 0.0' | |||
@@ -79,11 +80,11 @@ gem 'rack-attack', '~> 6.3' | |||
gem 'rack-cors', '~> 1.1', require: 'rack/cors' | |||
gem 'rails-i18n', '~> 5.1' | |||
gem 'rails-settings-cached', '~> 0.6' | |||
gem 'redis', '~> 4.1', require: ['redis', 'redis/connection/hiredis'] | |||
gem 'redis', '~> 4.2', require: ['redis', 'redis/connection/hiredis'] | |||
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' | |||
gem 'rqrcode', '~> 1.1' | |||
gem 'ruby-progressbar', '~> 1.10' | |||
gem 'sanitize', '~> 5.1' | |||
gem 'sanitize', '~> 5.2' | |||
gem 'sidekiq', '~> 6.0' | |||
gem 'sidekiq-scheduler', '~> 3.0' | |||
gem 'sidekiq-unique-jobs', '~> 6.0' | |||
@@ -93,7 +94,6 @@ gem 'simple_form', '~> 5.0' | |||
gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' | |||
gem 'stoplight', '~> 2.2.0' | |||
gem 'strong_migrations', '~> 0.6' | |||
gem 'tty-command', '~> 0.9', require: false | |||
gem 'tty-prompt', '~> 0.21', require: false | |||
gem 'twitter-text', '~> 1.14' | |||
gem 'tzinfo-data', '~> 1.2020' | |||
@@ -118,15 +118,15 @@ group :production, :test do | |||
end | |||
group :test do | |||
gem 'capybara', '~> 3.32' | |||
gem 'capybara', '~> 3.33' | |||
gem 'climate_control', '~> 0.2' | |||
gem 'faker', '~> 2.11' | |||
gem 'faker', '~> 2.13' | |||
gem 'microformats', '~> 4.2' | |||
gem 'rails-controller-testing', '~> 1.0' | |||
gem 'rspec-sidekiq', '~> 3.0' | |||
gem 'rspec-sidekiq', '~> 3.1' | |||
gem 'simplecov', '~> 0.18', require: false | |||
gem 'webmock', '~> 3.8' | |||
gem 'parallel_tests', '~> 2.32' | |||
gem 'parallel_tests', '~> 3.0' | |||
gem 'rspec_junit_formatter', '~> 0.4' | |||
end | |||
@@ -139,13 +139,13 @@ group :development do | |||
gem 'letter_opener', '~> 1.7' | |||
gem 'letter_opener_web', '~> 1.4' | |||
gem 'memory_profiler' | |||
gem 'rubocop', '~> 0.82', require: false | |||
gem 'rubocop-rails', '~> 2.5', require: false | |||
gem 'rubocop', '~> 0.86', require: false | |||
gem 'rubocop-rails', '~> 2.6', require: false | |||
gem 'brakeman', '~> 4.8', require: false | |||
gem 'bundler-audit', '~> 0.6', require: false | |||
gem 'bundler-audit', '~> 0.7', require: false | |||
gem 'capistrano', '~> 3.14' | |||
gem 'capistrano-rails', '~> 1.4' | |||
gem 'capistrano-rails', '~> 1.5' | |||
gem 'capistrano-rbenv', '~> 2.1' | |||
gem 'capistrano-yarn', '~> 2.0' | |||
@@ -31,25 +31,25 @@ GIT | |||
GEM | |||
remote: https://rubygems.org/ | |||
specs: | |||
actioncable (5.2.4.2) | |||
actionpack (= 5.2.4.2) | |||
actioncable (5.2.4.3) | |||
actionpack (= 5.2.4.3) | |||
nio4r (~> 2.0) | |||
websocket-driver (>= 0.6.1) | |||
actionmailer (5.2.4.2) | |||
actionpack (= 5.2.4.2) | |||
actionview (= 5.2.4.2) | |||
activejob (= 5.2.4.2) | |||
actionmailer (5.2.4.3) | |||
actionpack (= 5.2.4.3) | |||
actionview (= 5.2.4.3) | |||
activejob (= 5.2.4.3) | |||
mail (~> 2.5, >= 2.5.4) | |||
rails-dom-testing (~> 2.0) | |||
actionpack (5.2.4.2) | |||
actionview (= 5.2.4.2) | |||
activesupport (= 5.2.4.2) | |||
actionpack (5.2.4.3) | |||
actionview (= 5.2.4.3) | |||
activesupport (= 5.2.4.3) | |||
rack (~> 2.0, >= 2.0.8) | |||
rack-test (>= 0.6.3) | |||
rails-dom-testing (~> 2.0) | |||
rails-html-sanitizer (~> 1.0, >= 1.0.2) | |||
actionview (5.2.4.2) | |||
activesupport (= 5.2.4.2) | |||
actionview (5.2.4.3) | |||
activesupport (= 5.2.4.3) | |||
builder (~> 3.1) | |||
erubi (~> 1.4) | |||
rails-dom-testing (~> 2.0) | |||
@@ -60,20 +60,20 @@ GEM | |||
case_transform (>= 0.2) | |||
jsonapi-renderer (>= 0.1.1.beta1, < 0.3) | |||
active_record_query_trace (1.7) | |||
activejob (5.2.4.2) | |||
activesupport (= 5.2.4.2) | |||
activejob (5.2.4.3) | |||
activesupport (= 5.2.4.3) | |||
globalid (>= 0.3.6) | |||
activemodel (5.2.4.2) | |||
activesupport (= 5.2.4.2) | |||
activerecord (5.2.4.2) | |||
activemodel (= 5.2.4.2) | |||
activesupport (= 5.2.4.2) | |||
activemodel (5.2.4.3) | |||
activesupport (= 5.2.4.3) | |||
activerecord (5.2.4.3) | |||
activemodel (= 5.2.4.3) | |||
activesupport (= 5.2.4.3) | |||