Commit Graph

421 Commits

Author SHA1 Message Date
Guo Xiang Tan b0e4555a86 Allow Basic Authentication to be set in smoke test. 2017-05-17 19:24:43 +08:00
Régis Hanol 9641d2413d REFACTOR: upload workflow creation into UploadCreator
- Automatically convert large-ish PNG/BMP to JPEG
- Updated fast_image to latest version
2017-05-11 00:16:57 +02:00
Sam Saffron 1dc55bcc5b attempt to handle one more multisite edge case 2017-05-05 13:51:26 -04:00
Régis Hanol 7c739f0f45 rake tasks to ensure consistency after bulk import 2017-04-24 23:00:54 +02:00
Guo Xiang Tan 5fab2042f5 Revert "Add rake task to gather `GC.stat` for Sidekiq."
This reverts commit 15e2f55655.
2017-04-22 08:23:24 +08:00
Guo Xiang Tan 15e2f55655 Add rake task to gather `GC.stat` for Sidekiq. 2017-04-21 17:32:06 +08:00
Sam 4ed4d77fd3 correct the monkey patch 2017-04-14 15:06:52 -04:00
Sam 8370b4b1b7 FIX: don't precompile if we have no themes table 2017-04-14 10:33:35 -04:00
Sam 4161a7abec FIX: allow CSS precompilation to access newly manifested assets 2017-04-14 10:30:19 -04:00
Sam 8cd9afcfad move CSS precompilation to last step 2017-04-12 12:30:24 -04:00
Sam a3e8c3cd7b FEATURE: Native theme support
This feature introduces the concept of themes. Themes are an evolution
of site customizations.

Themes introduce two very big conceptual changes:

- A theme may include other "child themes", children can include grand
children and so on.

- A theme may specify a color scheme

The change does away with the idea of "enabled" color schemes.

It also adds a bunch of big niceties like

- You can source a theme from a git repo

- History for themes is much improved

- You can only have a single enabled theme. Themes can be selected by
    users, if you opt for it.

On a technical level this change comes with a whole bunch of goodies

- All CSS is now compiled using a custom pipeline that uses libsass
    see /lib/stylesheet

- There is a single pipeline for css compilation (in the past we used
    one for customizations and another one for the rest of the app

- The stylesheet pipeline is now divorced of sprockets, there is no
   reliance on sprockets for CSS bundling

- CSS is generated with source maps everywhere (including themes) this
    makes debugging much easier

- Our "live reloader" is smarter and avoid a flash of unstyled content
   we run a file watcher in "puma" in dev so you no longer need to run
   rake autospec to watch for CSS changes
2017-04-12 10:53:49 -04:00
Robin Ward 14410b71fb Convert server side paths to use `/u/` 2017-03-30 10:23:24 -04:00
Guo Xiang Tan fc3c34b78f Allow Brotli compression to be disabled when precompiling. 2017-03-27 11:55:43 +08:00
Sam c106ca6778 FEATURE: fallback asset path for multi host setups 2017-03-20 15:59:17 -04:00
Sam bc96f0fe78 rescue failure to backup assets 2017-03-20 13:43:59 -04:00
Sam e14a63cc88 FEATURE: add support for backup asset path post precompile 2017-03-20 13:05:39 -04:00
Guo Xiang Tan 1a7e954e09 FIX: Store custom emojis as uploads.
* Depending on a hardcoded directory was a flawed design
  which made it impossible to debug when custom emojis go
  missing.
2017-03-14 13:07:18 +08:00
Sam 20ed11f9a5 We must GC here otherwise we risk not freeing our v8 contexts 2017-03-10 11:36:10 -05:00
Sam b68d08404d shell to node to avoid high memory usage 2017-03-09 17:05:55 -05:00
Sam ab3faeb0f9 PERF: user mini racer to uglify assets 2017-03-09 16:44:50 -05:00
Guo Xiang Tan 5d9daa299a Only run plugin tests if plugins are loaded. 2017-03-07 16:36:49 +08:00
Guo Xiang Tan fc0f363973 Run plugin specs as well. 2017-03-02 17:28:35 +08:00
Rimian Perkins db9840b672 fix malformed qunit url
this removes the space between the query string and the URL

```
$MODULE='Acceptance: Search' rake qunit:test\[20000\]
....
Running: {"module":"Acceptance: Search"}
... http://localhost:60099/qunit?module=Acceptance%3A%20Search 20000
```

The timeout value seems to work fine.
2017-02-24 10:19:34 +11:00
Rafael dos Santos Silva f68540b022 Increase QUnit timeouts to allow on slower envs 2017-02-23 19:21:06 -03:00
Guo Xiang Tan 9baf89a901 Remove database vacuum task from Discourse. 2017-02-20 09:02:38 +08:00
Rafael dos Santos Silva 6a271a7695 Increase Qunit tests timeout on Docker tests 2017-02-14 16:09:14 -02:00
Régis Hanol ceee2a509a remove warning of previously defined constant when running the specs 2017-02-05 19:07:18 +01:00
Arpit Jalan 061c3dd6c1 typo 2017-01-25 22:46:05 +05:30
Arpit Jalan 89d7ddd803 FEATURE: new rake task to delete a word/string from all the posts 2017-01-25 22:33:39 +05:30
Arpit Jalan bc4f443fde typo 2017-01-25 21:23:25 +05:30
Guo Xiang Tan ba21ef34e5 Fix broken emojis. 2017-01-24 16:17:30 +08:00
Arpit Jalan 80e573e794 FIX: support removing all occurences of a word/string 2017-01-24 12:52:38 +05:30
Arpit Jalan e27ca3019b FEATURE: posts:remap task now supports removing all occurences of a word 2017-01-24 12:00:57 +05:30
Arpit Jalan 01c8974c36 typo 2017-01-18 20:10:49 +05:30
Sam 2f6a4cc6de remove UserActionObserver, replace with after_save and service
interestingly there was some left over dead code from when stars
existed in the topic_users table
2016-12-22 16:46:53 +11:00
Sam 0a78ae739d Remove SearchObserver, aim is to remove all observers
rails-observers gem is mostly unmaintained and is a pain to carry forward
new implementation contains significantly less magic as a bonus
2016-12-22 13:13:14 +11:00
Guo Xiang Tan ce36f54dcd Add rake task to clean up orphane Redis keys when a multisite has been removed. 2016-12-05 11:39:08 +08:00
Guo Xiang Tan 5200446eb7 Increase Qunit tests timeout on Travis. 2016-11-30 16:35:44 +08:00
Guo Xiang Tan a76d834fd5 Fix invalid command. 2016-11-15 15:24:19 +08:00
Guo Xiang Tan 7e8a975e20 Reduce number of tries when tests time out. 2016-11-15 15:23:53 +08:00
Guo Xiang Tan 7a1400cc4b Remove undefined variable. 2016-11-09 21:06:21 +08:00
Neil Lalonde 3b9a1410f8 report errors from the populate.thor tool 2016-10-17 14:01:37 -04:00
Arpit Jalan 20c9c60dea FEATURE: support multisite configuration for search:reindex task 2016-10-01 08:54:15 +02:00
Guo Xiang Tan b5d6d3c326 FIX: Make recover from tombstone script work for multisite. 2016-09-22 12:28:36 +08:00
Guo Xiang Tan 333d6f9f10 More improvements to restore from tombstone script. 2016-09-22 10:39:39 +08:00
Arpit Jalan 13aff1f2f8 FEATURE: optionally delay the rebake_match task 2016-09-21 21:48:57 +05:30
Guo Xiang Tan 1d4451db5d Improve restore from tombstone script by not having to loop through all posts. 2016-09-21 18:01:59 +08:00
Guo Xiang Tan b62b6ba12c Improve restore from tombstone rake task. 2016-09-21 17:47:27 +08:00
Guo Xiang Tan 3af5b19002 Add rake task to restore missing uploads from tombstone. 2016-09-21 16:56:32 +08:00
Régis Hanol 53e309fe3e add missing flags emoji 2016-09-19 19:39:46 +02:00
Régis Hanol 86d1bc7f47 new emoji:update rake task 2016-09-19 13:43:15 +02:00
Guo Xiang Tan e4b75f604c FIX: Make clean up upload script a safer task to run. 2016-09-05 10:06:02 +08:00
Arpit Jalan 76857e3f77 do not create new revision when remapping posts 2016-09-03 23:21:56 +05:30
Guo Xiang Tan df8d24734a Regenerate missing optimized images for all dbs by default. 2016-09-02 13:06:31 +08:00
Guo Xiang Tan e4883725e6 Script to analyze uploads on a site. 2016-09-02 12:07:06 +08:00
Guo Xiang Tan 82324db71a Allow `uploads:missing` Rake task to be run for a single site. 2016-09-02 10:22:39 +08:00
Guo Xiang Tan 2349ab5a51 `puts` not `putc`. 2016-08-29 10:30:10 +08:00
Guo Xiang Tan e57ed5223a Fix rake task. 2016-08-26 15:46:42 +08:00
Guo Xiang Tan 2448db4716 Prioritize user avatars when regenerating missing optimized images. 2016-08-25 18:29:52 +08:00
Guo Xiang Tan 5da768b4fe FIX: `find_each` uses `find_in_batches` which uses the primary key as the order. 2016-08-25 16:11:28 +08:00
Guo Xiang Tan f19232646f Rescue all errors when backfilling shas for uploads. 2016-08-23 15:05:37 +08:00
Guo Xiang Tan 2c1249f381 Remove monkey patch. 2016-08-23 12:04:53 +08:00
Guo Xiang Tan 574b8fdf41 Allow backfilling of shas to complete. 2016-08-23 10:34:32 +08:00
Arpit Jalan 3bd8b55fce FEATURE: new rake task to change post ownership for a specific user 2016-08-20 20:43:16 +05:30
Guo Xiang Tan 5222022842 Use another rake task to regenerate optimized images for multisite. 2016-08-19 15:52:09 +08:00
Arpit Jalan 6af4e6bd05 FEATURE: new rake task to remap posts matching a string 2016-08-17 14:08:46 +05:30
Arpit Jalan dc4799dda2 handle posts:rebake_match task without type argument 2016-08-17 01:01:06 +05:30
Arpit Jalan 054ee4dc55 FEATURE: new rake task to rebake posts using regex matching 2016-08-17 00:01:19 +05:30
Régis Hanol 9971e62254 FIX: migrate_from_s3 rake task 2016-07-25 12:12:10 +02:00
Sam 83b08b87d5 Merge pull request #4269 from choiceaustralia/qunit-args
exit if RETRY is false
2016-06-29 11:44:17 +10:00
Phil Thomas 5e8c7037ef Implement seed user, multiple topic creation
initial user seed setup

implement multiple topic creation option

refactor

refactor to remove hipster_words

add create_user method

refactor create_user

refactor topic creation

refactor post creation

refactor topic creation

refactor post creation

fix provided_user

minor refactoring

remove ffaker from Gemfile

re-add hipster words

remove use of ffaker

bugfix

improve documentation
2016-06-17 15:09:01 -05:00
Rimian Perkins ccb5eed717 exit if RETRY is false 2016-06-14 14:17:39 +10:00
Rimian Perkins d2bd857160 enable args MODULE and FILTER for qunit:test rake task 2016-06-14 12:06:11 +10:00
Sam fe1ebee791 we need to fix permissions 2016-06-07 17:43:09 +10:00
Sam d0c5dc9280 rename CONCURRENT to SPROCKETS_CONCURRENT 2016-06-07 17:03:05 +10:00
Sam 8d1a556f3e FEATURE: Add brotli compression option to precompile
To enable brotli compression on static assets use COMPRESS_BROTLI
2016-06-07 16:55:57 +10:00
Sam b2d59a8de3 update docker test 2016-05-23 15:29:39 +10:00
Guo Xiang Tan 0634834009 Some fixes related to optimized images (#4233)
* FIX: No need to manually include relation.

* FIX: OR instead of chaining relation.
2016-05-20 09:12:25 +02:00
Guo Xiang Tan b744306654
PERF: Uglify and gzip assets concurrently. 2016-04-21 10:36:09 +08:00
Guo Xiang Tan 95e0948fba FIX: Don't use Uglifier that ships with Sprockets. 2016-04-19 14:29:20 +08:00
Guo Xiang Tan 6a33fcf48e FIX: Do not gzip when using uglifier. 2016-04-19 12:27:51 +08:00
Régis Hanol 557e59c28e check the uploads doesn't already exists before copying it 2016-04-13 16:33:00 +02:00
Régis Hanol 8e4113a468 add multisite support for the 'uploads:gather' rake task 2016-04-12 16:00:25 +02:00
Régis Hanol 71fe66c8c2 'uploads:gather' should only work on local uploads 2016-04-11 21:17:33 +02:00
Régis Hanol 90dfc96206 new 'uploads:gather' rake task 2016-04-11 20:42:40 +02:00
Robin Ward 3f7ced9236 Try running once off jobs outside of db:migrate 2016-04-07 15:07:24 -04:00
Robin Ward 078b3bc87e Log once off jobs and enqueue on `db:migrate` 2016-04-07 14:32:31 -04:00
Sam 32c681c96b annotate models 2016-02-23 10:33:53 +11:00
Sam 0032047804 missing a bracket 2016-02-05 15:01:12 +11:00
Sam 886273f158 FIX: when CDN assets are not in root path source maps fail 2016-02-05 13:05:47 +11:00
Régis Hanol 3083657358 FEATURE: better email in support
FEATURE: new incoming_email model
FEATURE: infinite scrolling in emails admin
FEATURE: new 'emails:import' rake task
2016-01-19 00:57:55 +01:00
Jeff Atwood 1a8487cf7b we want screw_ie8 here as we don't support IE9 2016-01-11 03:13:37 -08:00
Jeff Atwood 770adbaf71 gzip 9 takes 2x as long as 7 for +0.1% compression 2016-01-11 02:53:28 -08:00
Sam 8d49091572 PERF: stop running VACUUM FULL only run VACUUM 2015-12-07 20:14:26 +11:00
uppfinnarn ca8c5f7382 migrate_to_s3: check for missing local files
If an image is already on S3, but not available locally (eg. if they're already migrated), `path` is nil. This crashes the task, because File.exists?(nil) is not valid.
2015-11-16 11:39:40 +01:00
Robin Ward 57fc1e5e0c FIX: Don't run a `FULL ANALYZE` on first migration.
This seems to block databases unecessarily. We should only really be
vacuuming when there is a lot of deleted data to recover.
2015-10-22 12:34:09 -04:00
Sam 25db4cc4d9 added DONT_PRECOMPILE_CSS env var 2015-10-13 10:48:21 +11:00
Sam 42b72a9834 parallel is not really helping, need a diff approach. 2015-10-13 10:14:48 +11:00
Sam 5f62c592a4 FEATURE: CSS_COMPILE_THREADS env setting for compiling CSS concurrently 2015-10-12 17:31:37 +11:00
Sam 42925b46b8 FEATURE: allow DONT_MINIFY flag in production for assets:precompile 2015-09-29 11:54:16 +10:00
Régis Hanol bda6b48ac1 new posts:fix_letter_avatars rake task 2015-09-23 22:44:53 +02:00
Sam 9cad925c67 FIX: correct error message on precompile fail 2015-09-22 11:28:31 +10:00
Sam c1ecd6f4ce update annotations 2015-09-18 10:41:10 +10:00
Régis Hanol 294669c856 FIX qunit test runner for phantomjs 2.0 2015-08-25 10:42:19 +02:00
Robin Ward 9b7c4023e8 Run eslint instead of jshint, remove rbx 2015-08-13 15:22:33 -04:00
Robin Ward b0541500b4 FIX: eslint deprecations 2015-08-13 15:14:08 -04:00
Robin Ward 946e34f65c Use eslint in `docker_test` 2015-08-13 14:55:53 -04:00
Régis Hanol 2473a00b26 FIX: improve smoke tests 2015-07-27 11:07:42 +02:00
Kane York d6129001b9 FIX: Provide proper source map URLs with a CDN 2015-07-21 11:52:54 -07:00
Guo Xiang Tan efff3351bf Update Disqus importer. 2015-07-01 21:51:19 +08:00
Régis Hanol 189cb3ff12 FEATURE: move migrate_to_new_scheme into a background job
- new hidden site setting 'migrate_to_new_scheme' (defaults to false)
- new rake tasks to toggle migration to new scheme
- FIX: migrate_to_new_scheme also works with CDN
- PERF: improve perf of the DbHelper.remap method
- REFACTOR: UrlHelper is now a class
2015-06-12 12:07:57 +02:00
Régis Hanol c1cf602de2 FIX: uploads:backfill_shas rake task 2015-06-10 17:19:58 +02:00
Régis Hanol 6000a37ff1 new 'uploads:migrate_to_new_pattern' task 2015-06-05 18:37:34 +02:00
Sam 2c3062548b FEATURE: upgrade image compression gem 2015-05-29 12:39:55 +10:00
Régis Hanol a5d93c6705 FIX: undefined method 'max_file_size_kb' 2015-05-26 16:39:41 +02:00
Régis Hanol bb0c2813ac FEATURE: generate (avatar) thumbnails in a background task
FIX: keep the "uploading..." indicator until the server replies via the MessageBus
FIX: text was disapearing when uploading an avatar

PERF: always use a region for S3 (defaults to 'us-east-1')
FEATURE: ApplyCDN middleware when using S3
FIX: use the same pattern to store files on S3 and locally
PERF: keep a local cache of uploads when generating thumbnails
FEATURE: migrate_to_s3 rake task
2015-05-25 17:59:00 +02:00
Sam 535e8cac5d don't force caching when compiling 2015-05-22 11:22:12 +10:00
Sam 89ac825641 add a force to ensure we properly cache stylesheets 2015-05-21 18:06:33 +10:00
Sam 45bdd23689 FEATURE: support user local switching to RTL correctly
FEATURE: support RTL in multisite
2015-05-20 15:56:54 +10:00
Régis Hanol 5e527178b9 FEATURE: new 'uploads:migrate_to_new_pattern' rake task 2015-05-19 12:31:51 +02:00
Sam b0306fd613 DEV: make autospec compatible with rspec 3 2015-05-14 11:24:48 +10:00
Neil Lalonde 406c8bb340 PERF: don't recompile css files that have already been compiled 2015-05-12 16:12:49 -04:00
Régis Hanol 54b63bfdbf remove ALL useless 'order by' 2015-05-12 09:37:48 +02:00
Régis Hanol 232b5387d0 remove useless 'order by' 2015-05-12 09:36:46 +02:00
Régis Hanol b489384b59 FIX: uploads rake tasks to support subfolders 2015-05-12 09:28:43 +02:00
Régis Hanol 95a57ce3e4 properly fix missing uploads by redownloading them 2015-05-11 19:07:39 +02:00
Régis Hanol 48f4589c6f try to fix missing downloads by re-downloading them 2015-05-11 17:03:48 +02:00
Régis Hanol 6d83526bf1 add support for multisite to the 'uploads:regenerate_missing_optimized' rake task 2015-05-11 16:19:16 +02:00
Régis Hanol 27a9b5ee13 only deal with local uploads 2015-05-11 15:41:52 +02:00
Régis Hanol ca89d16946 FEATURE: new 'uploads:regenerate_missing_optimized' images rake task 2015-05-11 12:59:50 +02:00
Sam 996ab1ae17 FEATURE: task to find all missing local images 2015-05-11 10:30:39 +10:00
Régis Hanol 1e96a1cd58 fix ruby const warning 2015-04-29 23:33:25 +02:00
Régis Hanol 657ab84825 disable edit notifications when using the rebake rake task 2015-04-01 23:08:29 +02:00
Régis Hanol b071bd3c7c Merge pull request #3203 from fantasticfears/seed
FIX: respect default locale settings when seed
2015-03-19 12:14:30 +01:00
Régis Hanol 6b85d5582c FIX: 'uploads:migrate_from_s3' rake task 2015-03-18 18:23:55 +01:00
Sam a82530012a FEATURE: Allow selection of highlight js languages
PERF: stop loading highlight js on load

To get latest highlight js run bin/rake highlightjs:update
2015-03-13 16:18:59 +11:00
Jamie Nguyen 5d16db1c48 Avoid gzip "-k" option for wider OS compatibility
The "-k" option tells gzip to keep the original files intact and is an
alternative to `gzip -c file > file.gz`. It was implemented in 2013:
http://git.savannah.gnu.org/cgit/gzip.git/commit/?id=0192f02

There are a few popular operating systems (ie, Red Hat 7, Debian Wheezy)
whose version of gzip does not have the "-k" option. Compiling assets
breaks on these operating systems. Using "-c" instead ensures that it
works even with older versions of gzip.
2015-02-24 15:19:23 +00:00
Robin Ward 3aa165d3b6 Provides the ability to skip minification of some JS assets. 2015-02-20 15:51:38 -05:00
Erick Guan 29840888e5 FIX: respect default locale settings when seed
We seed special categories during migration so we have to set the
locale before the migration happens.
2015-02-14 23:51:53 +08:00
Jeff Atwood 86c13ada44 fix a few places we were using /category vs /c 2015-01-06 15:56:07 -08:00
Régis Hanol 45dbdb6896 FEATURE: custom emojis 2014-12-23 01:12:26 +01:00
Sam b279b1daa0 FIX: reduce verboseness of uglify command
PERF: do not generate source maps in ruby mode
2014-12-18 04:14:12 +11:00
Sam f8fb823924 FEATURE: source maps in production for JavaScripts 2014-12-12 18:53:26 +11:00
David McClure 844b92bf12 Include perf improvements in release notes
Add ability to specify 'from' and 'to' tags in rake task
2014-11-07 04:01:44 -08:00
Robin Ward 76f68e23e8 FIX: Strip the word "SECURITY" from the output too 2014-11-06 16:05:13 -05:00
Robin Ward 9e55215c71 FIX: Include security in release notes 2014-11-06 16:02:26 -05:00
Robin Ward 1333378f39 FIX: Don't include reverts in release notes 2014-11-06 16:02:26 -05:00
David McClure 7a3b8b399c release notes now includes lines from comments with a blank like after the first one 2014-10-28 06:31:30 -07:00
Régis Hanol e7f251c105 LOTS of changes to properly handle post/topic revisions
FIX: history revision can now properly be hidden
FIX: PostRevision serializer is now entirely dynamic to properly handle
hidden revisions
FIX: default history modal to "side by side" view on mobile
FIX: properly hiden which revision has been hidden
UX: inline category/user/wiki/post_type changes with the revision
details
FEATURE: new '/posts/:post_id/revisions/latest' endpoint to retrieve
latest revision
UX: do not show the hide/show revision button on mobile (no room for
them)
UX: remove CSS transitions on the buttons in the history modal
FIX: PostRevisor now handles all the changes that might create new
revisions
FIX: PostRevision.ensure_consistency! was wrong due to off by 1
mistake...
refactored topic's callbacks for better readability
extracted 'PostRevisionGuardian'
2014-10-27 22:06:43 +01:00
Régis Hanol 1e13cfe8ce Merge pull request #2909 from mcwumbly/release-notes-improvements
Improved release notes readability / formatting
2014-10-25 02:03:14 +02:00