-
Notifications
You must be signed in to change notification settings - Fork 5
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
Feedback on the "tidyup" process for making big changes to the tidyverse #8
Comments
I think you need a three letter acronym, such as TIP (tidyverse improvement proposal). (Not a serious comment. I think it's a great idea, and the proposed framework is as good as any to start.) |
This is awesome, I don’t think the name is too cutesy (just cutesy enough!). One thought for soliciting feedback is some platform that would allow for up/down voting comments could be nice so you don’t end up with a bunch of people all saying the same thing / it would be easier for someone to wade through to see what has already been said. I don’t have a good suggestion for what that platform might be though. |
I like the proposal! What's the process for deciding whether to move forward with a tidyup? Sounds like there will be some group discussion, but if there's disagreement there or the implementation reveals unexpected complications, how does the final call get made? |
@LucyMcGowan interesting idea! One challenge is that I'm not sure popularity will necessarily help much here — I think it's more often some corner case that we haven't considered that makes us go hmmmmmmm and re-think our approach. @karawoo it feels like in most cases, reaching consensus is relatively straight forward, but if we get stuck for some reason, I'll perform my usual role of making some decision (even if wrong) to keep things moving. |
This is awesome! I'm wondering how (or if) this is related to the idea of a "roadmap". I know roadmaps take a lot of overhead to maintain and probably don't apply to all packages...I just think about it with respect to something like ggplot2 where (1) one can't just review the open issues to get an idea of future directions/what to work on if you have a few hours free and (2) PRs get stuck because there's some overarching direction (e.g., we're planning to rewrite the guides using ggproto) that the PR author didn't know about (and had no way to find out). Or perhaps ggplot2 is a bad example because it's so huge? These are just thoughts! |
The proposal looks good to me in general! I like Rust's RFC culture, and I hope the tidyup process will work in a similar way. Some random comments:
|
@paleolimbot I think it's related in the sense that we're trying to do more stuff in public. But roadmaps are hard because there's little benefit to hitting a milestone (vs just announcing when it's done), but there's a large cost to missing a milestone. But I don't think the things that you mention would ever rise to the level of a whole tidyverse roadmap so I think it's inevitable that there will have to be discussion before starting any bigger project. @yutannihilation I'd forgotten that Rust does this a lot too, so thanks for the reminder. I'll read through their process and reflect on what we can learn from it. Thanks for the other comments — I'll incorporate as needed when I take another pass at it. |
I like it. Another example from the recent past: moving generics from tibble to pillar. This worked entirely without breaking changes, next time we'd do a tidyup here? OTOH, the technique should be portable to other scenarios, is this repo still a good place for it? What are the conditions under which breaking changes are strictly necessary? One example is r-lib/pillar#334 where we add an ellipsis to existing generics in pillar. I suspect that these situations are rare, and that in most cases we can work with soft-deprecation in the individual packages to achieve the desired overall outcome. Should the proposal include a sequence of steps (=package updates) and perhaps a proposed timeframe? In general I think it helps if the dev versions of all affected packages are not too far away from the CRAN versions before work starts on a feature that spans multiple packages. |
Looks like a great idea to me. Only suggestion is
could use guidelines for what an appropriate review period is. (I think "two weeks" is a useful anchor: lines up with agile sprint boundaries, guideline for expecting reverse dependencies to be fixed, CRAN deadlines for fixing failing packages... but I could also understand guidelines that scale with the complexity of the tidyup). |
@krlmlr I think if there are no user visible breaking changes, we'd be less likely to do it. However, it might still be necessary if a bunch of package developers would have to make changes. I think we want to reserve tidyups for the biggest issues, at least initially. @dgrtwo yeah, I was thinking two weeks minimum, and probably four weeks (or longer?) for bigger issues. Also came across https://tools.ietf.org/id/draft-resnick-on-consensus-01.html today, so I'll probably use the term "rough consensus" and link to that doc for more description. |
Some insights from reading Rust RFCs + IETF rough consensus:
|
Good that you find this! While I agree we can learn from this, I'd like to add that network protocol is a very different beast. There are reasons why it needs to be "rough" consensus, in my understanding.
|
I think the motivation behind this is great and the framework as outlined seems solid! My only comment is in regards to the "Community Feedback" step. Given a primary goal for this process is wider community insight and feedback, have you thought about ways beyond Github to publicize this process or individual tidyups? It seems completely reasonable to keep the discussion in a separate Admittedly, It seems likely that these tidyup documents will be fairly technical in nature and relevant primarily to other developers so it's entirely possible this is a problem that solves itself as we socialize and use this framework, or not a problem at all because the community we hope to reach is small and engaged enough already. However, as one of the primary goals is to be transparent with the larger community, how best to encourage uptake and engagement, while keeping feedback manageable and productive, seems like something worth giving further thought to. |
I really like the proposed idea. Not exactly part of the tidyup process but it would be nice to make the tidyup documents easy to discover as they could be a great learning resource for package developers, contributors, or just for the interested user. Depending on the feature it might make sense to link to it in the NEWS file, in the documentation of a function or on the homepage. |
@dpseidel yeah, figuring out how to reach the wider community is still really an open issue. Our plan is to start small with these more technical issues, and then as we get to topics of broader interest we'll think more about how we communicate more widely. I think we'll probably publish the more important topics on the blog (like how we did for magrittr 2.0), but I still don't have a good sense of how to collect feedback from a larger group of stakeholders. @mgirlich yeah absolutely. In the longer run, we'll also make a proper tidyups website, connect it to http://design.tidyverse.org/, etc etc. |
@yutannihilation I like rough consensus because consensus feels a bit too constraining. It's often not possible to get everyone to agree on the "best" path, but it's often easier to get people to agree that it's a reasonable path forward even if it's not the one they would have chosen. I also like the policy of documenting objections/lingering concerns which ties in nicely with your suggestion to add an "unresolved questions" section. |
I agree with you. I just wanted to give a bit of the background information here :) |
Incorporated feedback so far in #12. Will close review period on August 13, so there's still plenty of time for more discussion 😄 |
Thanks for the feedback everyone! We now have an official process for proposing bigger changes to the tidyverse: https://github.com/tidyverse/tidyups/blob/main/001-tidyup-process.md 🥳 |
@clauswilke, @dgrtwo, @dpseidel, @karawoo, @krlmlr, @LucyMcGowan, @paleolimbot, @smbache, @vspinu, @yutannihilation, @apreshill, @jjallaire, @colearendt, @dcossyleon, @edgararuiz-zz, @evanmiller, @kohske, @markfairbanks, @mgirlich
We’d love to get your thoughts on https://github.com/tidyverse/tidyups/blob/main/001-tidyup-process.md, a proposal for a process for making bigger changes to the tidyverse. Please feel free to contribute however you feel comfortable — you're welcome to make small fixes via PR, comment here, or open bigger discussion topics in an issue. If there are things you’d prefer to discuss in private, please feel free to email me. We’ll plan to close the discussion on August 13, so we can review and make adjustments as needed.
The text was updated successfully, but these errors were encountered: