Rather than skipping all queries that use the @client directive, we
instead remove all such fields (and any arguments and fragments
mentioned in the skipped sections) and then only skip the query if that
then leaves us with an empty query.
The query transformation is handled with a query printer.
This adds query validation for GraphQL, exposed in
a new raketask (`gitlab:graphql:validate`).
Tests are added for the validation system, which handles common patterns
in our front-end code (such as Apollo client directives, and the use of
ee_else_ce).
The new graphql files used in the tests are excluded from prettier
formatting.
A couple of clearly incorrect graphql files (discovered during testing)
have been fixed. One remaining one has been marked as a known failure.
- gl_emoji for falling back to image/css-sprite when the browser
doesn't support an emoji
- Markdown rendering (Banzai filter)
- Autocomplete
- Award emoji menu
- Perceived perf
- Immediate response because we now build client-side
- Update `digests.json` generation in gemojione rake task to be more
useful and include `unicodeVersion`
MR: !9437
See issues
- #26371
- #27250
- #22474
This adds the 2016 emoji as well as support for using SVG images instead of PNGs.
It also fixes a number of incorrectly categorized emoji and other minor issues.
Upgrade Rake task for Gemojione 3.0.0 and generate sprites.
Upgrade aliases.json by pulling down index.json from the gemojione repository and running the generate_aliases.rb file.
Changelog: https://github.com/jonathanwiesel/gemojione/blob/master/CHANGELOG.md#v301-2016-07-16
For the specific emoji added to the Unicode standard, see: http://emojione.com/releases/2.2.4/
Huge kudos to Jonathan Wiesel (@jonathanwiesel) for his work on the gemojione gem!
No reason to split it into a separate gem when the gem barely did anything. We can use gemojione directly, making updating gemojione that much easier.
Also fix the Rake task and update gemojione to 2.6.1. This adds the EmojiOne Spring update.
Changelog: https://github.com/jonathanwiesel/gemojione/blob/master/CHANGELOG.md
By pre-calculating the digests we can manually construct the emoji URLs,
removing the need for using Rails' asset URL helpers. The reason we
don't want to use these helpers for Emojis is two-fold:
1. Rails' image_url() method is slow, really slow. For one it _might_
have to calculate digests but it also performs a lot of other
intensive operations (judging by the source code and based on
measuring timings).
2. We have a lot of Emoji which coupled with the above can result in it
taking minutes to load Emoji autocomplete data.
Using this pre-calculation setup generating the digests takes around 7
seconds (including the time it takes to start Rails/Rake), and only
around 600 milliseconds to load _all_ the autocomplete data of a project
(measured locally).
This commit _does_ change the Emoji URLs from absolute to relative URLs
as these are much easier to generate.
To update the Emoji data simply run:
rake gemojione:digests
Then commit any changes.
Fixesgitlab-org/gitlab-ce#14009