Squashed commit of the following:
commit 7b2ba61c4841e23081552fb79270e4e430dd1fe0
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 16:03:52 2020 +0900
Add the ability to change to a new circle by replying to a circle
commit 7013a228c65c7bd147885de458b50095f3c24334
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 16:10:57 2020 +0900
fixup! add-limited-visibility-icon-to-status
commit 679aa8a7f9bef42ee5d0b326d9ae4925a1999939
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 15:12:53 2020 +0900
Fix 14666
commit b3addd8220d8bb3512ff345b32ca83c714dadd2a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:44:12 2020 +0900
Add Japanese translation for circle
commit b7f4b773a0cd554084d5ad6a5923adb06b3acfc4
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:40:12 2020 +0900
Squashed commit of the following:
commit b85a4685b27c49462288aba5f38723b91e936c4a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 10:50:03 2020 +0900
Changed to remove restrictions on privacy options and allow users to switch circles when replying
commit 0a8c0140c73d7c5333e4f8017964adb5061a7cf1
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 09:33:07 2020 +0900
Change limited visibility icon
commit b64adf19788d828249408454ec6afa9beb3d4872
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Aug 31 06:50:56 2020 +0900
Fix a change to limited-visibility-bearcaps replies
commit ed361405b5e38857a2f42b0515a599ddcdd412cf
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Aug 27 15:53:18 2020 +0900
Fix composer text when change visibility
commit 4da3adddb6ffde43070d743e34c5b56e06579b30
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Aug 22 22:34:23 2020 +0900
Fix wrong circle_id when changing visibility
commit 752d7fc2a3c9e34fab9993d767f83c6eae7ba55a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sun Aug 9 13:12:51 2020 +0900
Add circle reply and redraft
commit 5978bc04a24695edce6717bda89dcf6f861ef2c4
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 27 01:07:52 2020 +0900
Fix remove unused props
commit 7970f69676c24b4aa9385fee8b1635c46ba52fcd
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sun Jul 26 21:17:07 2020 +0900
Separate circle choice from privacy
commit 36f6a684c0b0c895d4d0f1b9d09b05c91b104666
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Jul 23 10:54:25 2020 +0900
Add UI for posting to circles
commit 7ef48003c1407275663dd603b124d292db2aa93a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Fri Jul 24 12:55:10 2020 +0900
Fix silent mention by circle
commit 7a1caed49333c3d3241301afb77639cdf1cabdc0
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:38:10 2020 +0900
Squashed commit of the following:
commit dca71fab86c830932ca760b7d8b3f89cc25c453e
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 09:31:26 2020 +0900
Revert "Add focus setting when opening the circle column"
This reverts commit 3a93ac99312a13b68b7edc2b81313fb0ffb7bcdc.
commit 0a1bc8307bb699c7eb3024072ce14a440df1fc87
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 09:31:11 2020 +0900
Change limited visibility icon
commit 9784f8b562f6592e9d9190ca29d2b2e870006d10
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Aug 13 21:52:07 2020 +0900
Add focus setting when opening the circle column
commit a84f680c167fab9276550850c60f9108d251144e
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Aug 13 15:55:27 2020 +0900
Fix message
commit e3f11c4adac57b6e6a15c981ed6f4721a1634212
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 27 01:01:23 2020 +0900
Fix light-theme
commit d7d96eda5b86d3e3f654ce79888e7cf5aa535db5
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sun Jul 26 21:50:56 2020 +0900
Fix circles loading in share page and followers search
commit 10b821f7b8c0a87cea3df51f09deeadc2cb40b32
Author: noellabo <noel.yoshiba@gmail.com>
Date: Fri Jul 24 14:08:00 2020 +0900
Refactor list items
commit e020072915572ce409039ccf799d08f8d8b5b393
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Jul 23 20:15:38 2020 +0900
Fixed a bug that circle name change is not reflected in the list
commit 735bc41161b4c09a8dafe2c0064096b3ca79f2a0
Author: noellabo <noel.yoshiba@gmail.com>
Date: Wed Jul 22 08:49:47 2020 +0900
Add UI for managing circle members
commit d7c3145b8fa84be0631bf7f41bb229f3e6d03ff1
Author: noellabo <noel.yoshiba@gmail.com>
Date: Wed Jul 22 07:34:52 2020 +0900
Add the followers option to AccountSearchSercive
commit 65e2b0c4299b72ede440b50089c1bd6afa6c9c05
Author: noellabo <noel.yoshiba@gmail.com>
Date: Wed Jul 22 07:05:56 2020 +0900
Add CircleSerializer
commit a639e1803abf5590068846dbe98bc5edfaa2ad82
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:37:30 2020 +0900
Squashed commit of the following:
commit 9cb3fb9d980e3ee066083076f508c5ab1447176a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 07:15:19 2020 +0900
Move the link to the mention list to the menu
commit b32dd87b43f4e09b8e2c437f1fb5d3ebd6221215
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 00:56:12 2020 +0900
Change limited visibility icon
commit 8db0d024119d1c2cef8de849f2501496a166a2dd
Author: noellabo <noel.yoshiba@gmail.com>
Date: Tue Sep 1 01:42:13 2020 +0900
Fix to disallow getting the list of mentions in limited replies
commit 490a9d65a59a3dd0d86e81f6780e879dc4313dff
Author: noellabo <noel.yoshiba@gmail.com>
Date: Fri Jul 24 11:36:24 2020 +0900
Add column to list mentioned accounts of limited status
commit 62a423ac2729c16f26fafe111f257bc373218df2
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Jul 23 13:30:17 2020 +0900
Fix visibility compatibility more
commit a5cfa54b259054f41e89037f299fa928a2361818
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 20 05:39:49 2020 +0900
Fix visibility compatibility
commit 7900ca5650c77565b86ddc594a221dfa3b5321b4
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 20 02:01:27 2020 +0900
Add limited visibility icon to status
commit 66b83965ef068e9ee8c940249c68bcbde15731fe
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed Aug 26 03:16:47 2020 +0200
Add conversation-based forwarding for limited visibility statuses through bearcaps
commit 561abc65e0ace89318b3952047025b8d98515fbb
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun Jul 19 02:05:16 2020 +0200
Add REST API for managing and posting to circles
Circles are the conceptual opposite of lists. A list is a subdivision
of your follows, a circle is a subdivision of your followers. Posting
to a circle means making content available to only some of your
followers. Circles have been internally supported in Mastodon for
the purposes of federation since #8950, this adds the REST API
necessary for making use of them in Mastodon itsef.
* Add silent column to mentions
* Save silent mentions in ActivityPub Create handler and optimize it
Move networking calls out of the database transaction
* Add "limited" visibility level masked as "private" in the API
Unlike DMs, limited statuses are pushed into home feeds. The access
control rules between direct and limited statuses is almost the same,
except for counter and conversation logic
* Ensure silent column is non-null, add spec
* Ensure filters don't check silent mentions for blocks/mutes
As those are "this person is also allowed to see" rather than "this
person is involved", therefore does not warrant filtering
* Clean up code
* Use Status#active_mentions to limit returned mentions
* Fix code style issues
* Use Status#active_mentions in Notification
And remove stream_entry eager-loading from Notification
* Update annotate to version 2.7.3
* Update aws-sdk-s3 to version 1.9.2
* Update browser to version 2.5.3
* Update capistrano to version 3.10.2
* Update domain_name to version 0.5.20180417
* Update http to version 3.2.0
* Update lograge to version 0.10.0
* Update oj to version 3.5.1
* Update parallel_tests to version 2.21.3
* Update puma to version 3.11.4
* Update rubocop to version 0.55.0
* Update scss_lint to version 0.57.0
* Update simplecov to version 0.16.1
* Update tty-command to version 0.8.0
* Update tty-prompt to version 0.16.0
* Update pkg-config to version 1.3.0
* Update fog-local to version 0.5.0
* Update fog-openstack to version 0.1.25
* Update devise-two-factor to version 3.0.3
* bundle update
* Add structure for lists
* Add list timeline streaming API
* Add list APIs, bind list-account relation to follow relation
* Add API for adding/removing accounts from lists
* Add pagination to lists API
* Add pagination to list accounts API
* Adjust scopes for new APIs
- Creating and modifying lists merely requires "write" scope
- Fetching information about lists merely requires "read" scope
* Add test for wrong user context on list timeline
* Clean up tests
All the migrations have been updated to use BIGINTs for ID fields in the DB, but ActiveRecord needs to be told to treat those values as BIGINT as well. This PR does that.
* Make IdsToBigints (mostly!) non-blocking
This pulls in GitLab's MigrationHelpers, which include code to make
column changes in ways that Postgres can do without locking. In general,
this involves creating a new column, adding an index and any foreign
keys as appropriate, adding a trigger to keep it populated alongside
the old column, and then progressively copying data over to the new
column, before removing the old column and replacing it with the new
one.
A few changes to GitLab's MigrationHelpers were necessary:
* Some changes were made to remove dependencies on other GitLab code.
* We explicitly wait for index creation before forging ahead on column
replacements.
* We use different temporary column names, to avoid running into index
name length limits.
* We rename the generated indices back to what they "should" be after
replacing columns.
* We rename the generated foreign keys to use the new column names when
we had to create them. (This allows the migration to be rolled back
without incident.)
# Big Scary Warning
There are two things here that may trip up large instances:
1. The change for tables' "id" columns is not concurrent. In
particular, the stream_entries table may be big, and does not
concurrently migrate its id column. (On the other hand, x_id type
columns are all concurrent.)
2. This migration will take a long time to run, *but it should not
lock tables during that time* (with the exception of the "id"
columns as described above). That means this should probably be run
in `screen` or some other session that can be run for a long time.
Notably, the migration will take *longer* than it would without
these changes, but the website will still be responsive during that
time.
These changes were tested on a relatively large statuses table (256k
entries), and the service remained responsive during the migration.
Migrations both forward and backward were tested.
* Rubocop fixes
* MigrationHelpers: Support ID columns in some cases
This doesn't work in cases where the ID column is referred to as a
foreign key by another table.
* MigrationHelpers: support foreign keys for ID cols
Note that this does not yet support foreign keys on non-primary-key
columns, but Mastodon also doesn't yet have any that we've needed to
migrate.
This means we can perform fully "concurrent" migrations to change ID
column types, and the IdsToBigints migration can happen with effectively
no downtime. (A few operations require a transaction, such as renaming
columns or deleting them, but these transactions should not block for
noticeable amounts of time.)
The algorithm for generating foreign key names has changed with this,
and therefore all of those changed in schema.rb.
* Provide status, allow for interruptions
The MigrationHelpers now allow restarting the rename of a column if it
was interrupted, by removing the old "new column" and re-starting the
process.
Along with this, they now provide status updates on the changes which
are happening, as well as indications about when the changes can be
safely interrupted (when there are at least 10 seconds estimated to be
left before copying data is complete).
The IdsToBigints migration now also sorts the columns it migrates by
size, starting with the largest tables. This should provide
administrators a worst-case scenario estimate for the length of
migrations: each successive change will get faster, giving admins a
chance to abort early on if they need to run the migration later. The
idea is that this does not force them to try to time interruptions
between smaller migrations.
* Fix column sorting in IdsToBigints
Not a significant change, but it impacts the order of columns in the
database and db/schema.rb.
* Actually pause before IdsToBigints
* Remove trailing whitespace in i18n mailers
* Use query methods instead of #present? on AR attributes
* Delegate Status#account_domain method
* Delegate Mention #account_username and #account_acct methods
* add annotate to Gemfile
* rails g annotate:install
* configure annotate_models
* add schema info to models
* fix rubocop to add frozen_string_literal