New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revisit high-level documentation of the Feed Configuration module #17245
Comments
|
Thanks for the issue, we will take it into consideration! Our team of engineers is busy working on many types of features, please give us time to get back to you. Feature requests that require more discussion may be closed. Read more about our feature request process on forem.dev. To our amazing contributors: issues labeled To claim an issue to work on, please leave a comment. If you've claimed the issue and need help, please ping @forem-team. The OSS Community Manager or the engineers on OSS rotation will follow up. For full info on how to contribute, please check out our contributors guide. |
This documentation outlines the scope and intention of the Feed Configuration, it's primary purpose is to: - Reference the historical context - Establish a draft glossary - Introduce high-level constraints - Serve as a document to help with the task break-down Closes #17244 Relates to #17245 Informs forem/forem-internal-eng#435 As a note, I'm looking at this document almost through the lens of [literate programming][1]. In writing the document, I learned about and attempted to describe the shape of this internal facing project. Consider for a moment that we are not adding a new user facing feature to the Forem code base. Instead we're scoping this project as helping ease the experimentation process regarding the feed. In other words the scope of this project is to help name and refine different feed strategies to understand what each strategy means. Eventually this could mean that creators and members can have a future opportunity to select feed strategies that reflect the aspirational community values of the feed (e.g. we want a feed that favors comments, or neighborhoods, or the occassional serendipity). [1]:https://en.wikipedia.org/wiki/Literate_programming
* Adding Feed Configuration documentation This documentation outlines the scope and intention of the Feed Configuration, it's primary purpose is to: - Reference the historical context - Establish a draft glossary - Introduce high-level constraints - Serve as a document to help with the task break-down Closes #17244 Relates to #17245 Informs forem/forem-internal-eng#435 As a note, I'm looking at this document almost through the lens of [literate programming][1]. In writing the document, I learned about and attempted to describe the shape of this internal facing project. Consider for a moment that we are not adding a new user facing feature to the Forem code base. Instead we're scoping this project as helping ease the experimentation process regarding the feed. In other words the scope of this project is to help name and refine different feed strategies to understand what each strategy means. Eventually this could mean that creators and members can have a future opportunity to select feed strategies that reflect the aspirational community values of the feed (e.g. we want a feed that favors comments, or neighborhoods, or the occassional serendipity). [1]:https://en.wikipedia.org/wiki/Literate_programming * Update config/feed/README.md Co-authored-by: Suzanne Aitchison <suzanne@forem.com> * Update config/feed/README.md Co-authored-by: Suzanne Aitchison <suzanne@forem.com> * Update config/feed/README.md Co-authored-by: Suzanne Aitchison <suzanne@forem.com> * Update README.md Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
**tl;dr** This PR is looking to provide a means to programmatically assemble, from system configurations, what is currently the [Articles::Feeds::WeightedQueryStrategy::SCORING_METHOD_CONFIGURATIONS][1]. Once we merge this PR, instead of having that constant, we'll initialize the Articles::Feeds::WeightedQueryStrategy with the variant configuration that we've assembled. **Introduction** This pull request has quite a bit going on, but as of now the production code does not use any of it. *Note: None of this code is bleeding into production code paths.* Put your Ruby hat on and let's go for a ride. And apologizes for not making this a smaller pull request. As I built this, I made many small commits, but this became the smallest commit that provided the most context without integrating into production code. Before we get started, you may want to familiarize yourself with where we're going. The `./app/models/articles/feeds/README.md` provides further guidance; but fair warning reader, I have not reconciled the README's language with what emerged as I wrote this pull request. Those of you who are part of Forem Core team, you can read the [Refinements to Our Present Feed Configuration][2] to provide some insight into what's happening. **Why not reconcile?** *Because I want to have all of the language and thoughts available for you to help consider how best to name and model this.* **On to the Review** The purpose of this pull request is to provide a mechanism for engineering to provide a series of variant query levers. And to allow us to easily configure those available query levers into a variant query. *Why the mix of Ruby configuration and JSON?* The Ruby levers are meant to indicate that this is code we don't want to expose in text based configuration because it might create SQL inject points. (More on that when we integrate the code of this PR into the production implementation) The JSON levers are meant to indicate that "anyone" can pick the appropriate/available levers and configure how they are set. In other words, these values do not create SQL injection issues. **What I Need from You** I am putting this forward as a draft so you can read this code ahead of time. I'm then going to schedule a synchronous code review where we record our collective walk through of the implementation. Closes: - #17268 - #17269 - #17270 - #17271 - #17273 Relates to: - #17308 - #17245 [1]:https://github.com/forem/forem/blob/6818ef3ed01b30e4f7651aa0595c8f89aa4055fe/app/services/articles/feeds/weighted_query_strategy.rb#L84-L231 [2]:https://forem.team/jeremy/refinements-to-our-present-feed-configuration-1p0c
This looks to remove the chatter of the document and instead point folks to locations within the code. Closes #17245
* Updating documentation for the relevancy feed This looks to remove the chatter of the document and instead point folks to locations within the code. Closes #17245 * Update app/models/articles/feeds/README.md Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> * Update app/models/articles/feeds/README.md Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com> Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com> Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com>
As part of closing out the engineering portion of the Feed Configuration, we will revisit and make any necessary amendments to the documentation generated from #17244
The text was updated successfully, but these errors were encountered: