docbrown/config
Jeremy Friesen 0d0464be2f
Allowing VariantQuery for Feed Generation (#17382)
* Allowing VariantQuery for Feed Generation

Apologies for the breadth of this pull request, I had considered many
small commits, but felt that would've been more effort for the value
provided.

This commit includes the following:

- Documentation updates to the feed variant (though not the final pass)
- Renaming and adding RelevancyLevers that help differentiate
- Adding RelevancyLever#range to provide documentation
- Reducing redundent controller logic by making a
  `Articles::Feeds.feed_for` method.
- Adding some configuration validation for RelevancyLevers
- Adding constants for better clarification
- Testing unhappy paths for feed configuration
- Adjusting the module namespace of some objects
- Exposing top-level configurations for variants (along with their
  defaults)
- Creating the VariantyQuery that at present inherits from the
  `Articles::Feeds::WeightedQueryStrategy`

As implemented, we can deploy this code to production without using the
new VariantQuery.  Once we toggle on the
`:feed_uses_variant_query_feature` FeatureFlag, it will switch to using
the VariantQuery.  The VariantQuery's two variants and the
internal configuration of `Articles::Feeds::WeightedQueryStrategy`
produce the same query.

The goal of this factor is to allow for a quick on and off toggle of the
feed query; to ensure that what we introduce remains performant.

- Closes forem/forem#17272
- Closes forem/forem#17276
- Closes forem/forem#17216

In addition, I will be recording a code-walkthrough and linking that
recording to the pull request.

* Apply suggestions from code review

Co-authored-by: Mac Siri <krairit.siri@gmail.com>

Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2022-04-21 11:07:09 -04:00
..
environments OpenGraph fallback for Embeds (merge-by-any-core) (#17001) 2022-04-04 15:31:38 -04:00
fastly/snippets Add "comments_sort" to safe params list (#17083) 2022-04-01 18:27:49 -04:00
feed-variants Allowing VariantQuery for Feed Generation (#17382) 2022-04-21 11:07:09 -04:00
initializers Enable string uuid as namespace (#17309) 2022-04-20 10:24:25 -05:00
locales Member index (Phase 2) - Invitations actions (#17213) 2022-04-14 08:26:36 +01:00
routes Member index (Phase 2) - Invitations actions (#17213) 2022-04-14 08:26:36 +01:00
webpack chore: Removed unused webpack configuration (#16887) 2022-03-15 21:09:34 -04:00
application.rb Revert "Remove IE-specific setting (#16073)" (#16719) 2022-02-28 11:40:09 -05:00
blazer.yml Increase Blazer's timeout (#15427) 2021-11-18 14:50:18 -05:00
boot.rb Remove Spring and spring-commands-rspec gem (#16848) 2022-03-10 10:12:51 -05:00
cable.yml Upgrade Rails to 5.2.3 (#1408) 2019-04-03 13:08:59 -04:00
database.yml Update database config (#11308) 2021-02-23 17:41:34 -05:00
environment.rb Rails 6: enable zeitwerk autoloader (#8766) 2020-06-22 16:27:55 +02:00
field_test.yml Adjusting feed query to establish a new incumbent (#17308) 2022-04-19 09:10:00 -04:00
i18n-tasks.yml Remove Doorkeeper gem (#15749) 2021-12-21 12:29:58 +07:00
puma.rb Upgrade Rails to 6.1.3.1 (#11333) 2021-04-05 10:39:48 -04:00
routes.rb Refactor: Move onboarding routes out of UsersController (#17189) 2022-04-13 14:20:16 -04:00
schedule.yml Remove hardcoded /badge page that is DEV-only ✂️✂️✂️ (#16303) 2022-01-27 13:29:05 -05:00
secrets.yml Initial commit 2018-02-28 16:11:08 -05:00
sidekiq.yml setup sidekiq queues for different priority jobs (#5300) [deploy] 2019-12-30 10:16:52 -06:00
storage.yml Upgrade Rails to 5.2.3 (#1408) 2019-04-03 13:08:59 -04:00
webpacker.yml Moved from resolved_paths (deprecated) to additional_paths. (#9982) 2020-08-24 16:08:16 -04:00