You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Dragoș Moldovan-Grünfeld (Jira)" <ji...@apache.org> on 2022/01/18 14:48:00 UTC
[jira] [Commented] (ARROW-15359) [R] Discussion: should we use {rlang} for condition handling?
[ https://issues.apache.org/jira/browse/ARROW-15359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17477938#comment-17477938 ]
Dragoș Moldovan-Grünfeld commented on ARROW-15359:
--------------------------------------------------
Advantages (from my point of view):
* {{rang}} allows for classed conditions, which would enable finer grain condition handling
* consistency from a user's perspective
* a closer formatting of condition messages to the {{tidyverse}} ones
* adopting (guidelines around) key words (such as *must*, *should*) would reduce cognitive load for developers and improve messaging consistency
> [R] Discussion: should we use {rlang} for condition handling?
> -------------------------------------------------------------
>
> Key: ARROW-15359
> URL: https://issues.apache.org/jira/browse/ARROW-15359
> Project: Apache Arrow
> Issue Type: Improvement
> Components: R
> Reporter: Dragoș Moldovan-Grünfeld
> Priority: Major
>
> Currently we have a mixture of {{base::stop()}} and {{rlang::abort()}} in the codebase. Should we make a deliberate choice to use one or the other?
> If we decided to switch to {{{}rlang{}}}, we could:
> * change the codebase as we go along, switching from {{base}} functions ({{{}stop(), warning(), message(){}}} to their {{rlang}} equivalents {{abort(), warn(), inform()}}
> * make an addendum to {{STYLE.md}} on condition handling
> We could cover additional aspects of condition handling such as the wording of messages - for example, by using key words such as *must* or {*}should{*}.
> Please discuss direction and why. :)
> Note: the {{arrow}} R package already depends on {{rlang}} so any outcome will not result in additional dependencies.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)