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)