-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
ARROW-13403: [R] Update developing.Rmd vignette #10930
ARROW-13403: [R] Update developing.Rmd vignette #10930
Conversation
CI failure is due to wider CI issues around a new Debian release, rather than a problem with the docs. |
The main changes in this PR were:
|
…into install vignette
73ce7f2
to
fd45fd7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all of this polishing. I think there are really great improvements here. I have a few comments + suggestions, the biggest one is if we do want to remove the tabbing from the developing vignette.
r/vignettes/developing.Rmd
Outdated
output: | ||
html_document: | ||
toc: true | ||
toc_depth: 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curious if there's a general movement away from rmarkdown::html_vignette
? I've always used rmarkdown::html_vignette
because I thought it was streamlined for inclusion in the package (and pkgdown overrides this stuff anyway for the web docs).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops, I chucked this in so it made it easier to preview the list of contents when I was rendering this as RMarkdown
r/vignettes/developing.Rmd
Outdated
vignette: > | ||
%\VignetteIndexEntry{Arrow R Developer Guide} | ||
%\VignetteEngine{knitr::rmarkdown} | ||
%\VignetteEncoding{UTF-8} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Super nit picky: is this new line needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll remove
r/vignettes/developing.Rmd
Outdated
2. Building the Arrow library — this actually compiles the Arrow library | ||
3. Install the Arrow library — this organizes and moves the compiled Arrow library files into the location specified in the configuration | ||
4. Building the R package — this builds the C++ code in the R package, and installs the R package for you | ||
There are five major steps to the process — the first four are relevant to all Arrow developers, and the last one is specific to developers making changes to the R package. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a very minor point, so we might want to ignore it totally / gloss over it here, but technically "the first four are relevant to all Arrow developers" isn't quite true. There are (small) differences in building the cpp code between the languages that use it (for example the flags recommended for python development are slightly different — we could in principle recommend that folks use a union of the flags and then they would be able to do either, though compilation would be longer, so I'm not sure we want to do that). Additionally, other languages, like Rust, don't rely on the cpp code at all AFAIK, so for those arrow developers this isn't super relevant.
All of that said, it might be best to leave it as is, or say something like "are similar to steps that Arrow developers working on other languages use" and leave it be. The details above in this comment are definitely not relevant for someone building Arrow for R development for the first time
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for highlighting this, I'll come up with a different way of phrasing this to be more accurate!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've just deleted it as it doesn't really add anything.
r/vignettes/developing.Rmd
Outdated
|
||
### Install dependencies {.tabset} | ||
### Step 1 - Install dependencies |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you intend to get rid of {.tabset}
here? It's a bit funky how it works (and is very much non-standard/hacked on to pkgdown), but it gives us a nice tabbed interface for interacting with the setup steps (e.g. https://arrow.apache.org/docs/r/articles/developing.html#install-dependencies).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, my intention was to make it really easy to navigate through the page, using the table of contents that appears at the side, and the heading levels, to signpost what bits applies to what.
I could add it back in though - will see how including it affects the contents list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the goal is to keep the tab titles in the table of contents, it's possible we could do that by changing some of the javascript that we manipulate to make this whole thing work. Something funny that we do there is that we load the javascript for sticky tabs, and then alter some of the functions to do the things we need them to do in-place.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had another think and actually, the tabset stuff is totally fine. When I built the docs and previewed them, I realised it doesn't actually matter to have those bits in the tables of contents. Good to know there are options there though
r/vignettes/developing.Rmd
Outdated
``` shell | ||
R CMD build . | ||
R CMD check arrow_*.tar.gz --as-cran | ||
If rebuilding the Arrow library doesn't work and you are [installing from a user-level directory](#configure-for-installing-to-a-user-directory) and you already have a previous installation of libarrow in a system directory or you get you may get errors like the following when you install the R package: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If rebuilding the Arrow library doesn't work and you are [installing from a user-level directory](#configure-for-installing-to-a-user-directory) and you already have a previous installation of libarrow in a system directory or you get you may get errors like the following when you install the R package: | |
If rebuilding the Arrow library doesn't work and you are [installing from a user-level directory](#configure-for-installing-to-a-user-directory) and you already have a previous installation of libarrow in a system directory or you get errors like the following when you install the R package: |
I'm not totally sure this is what you intended, but I think it is?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No idea, I think I just moved this section from elsewhere rather than rewriting it and had just skim-read it so didn't catch this. I'll rewrite the whole sentence to break it down a little.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have now rephrased this section a little.
r/vignettes/developing.Rmd
Outdated
|
||
## Other installation issues | ||
|
||
There are a number of scripts that are triggered when the arrow R package is installed. For package users who are not interacting with the underlying code, these should all just work without configuration and pull in the most complete pieces (e.g. official binaries that we host). However, knowing about these scripts can help package developers troubleshoot if things go wrong in them or things go wrong in an install. See [the installation vignette](./install.html) for more information. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could/should we link to the How dependencies are resolved
section in the install vignette here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
r/vignettes/install.Rmd
Outdated
@@ -123,6 +123,39 @@ you'll need to reinstall the package in order to enable S3 support. | |||
|
|||
# How dependencies are resolved | |||
|
|||
There are a number of scripts that are triggered when `R CMD INSTALL .` is run. | |||
For Arrow users, these should all just work without configuration and pull in | |||
the most complete pieces (e.g. official binaries that we host). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if it would be good to flag that most of this information is really only intended to help developers and not day-to-day installers of Arrow? I don't mind (and actually kind of like!) that it's in the install vignette as opposed to the developing vignette, but most of the information is still probably targets at (and most relevant to) developers and not standard installers of Arrow.
There's also a reference at the end that says "(If you're looking at this script, and you've gotten this far, it might look
incredibly familiar: it's basically the contents of this guide in script form —
with a few important changes)" which we probably should link over to the developing vignette there.
I don't think we want to take out some of the content just because it's not relevant to installers (since it's useful info and we don't want to have two different largely overlapping sections in both vignettes)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, will have a look at doing a better job of signposting who this is for and change up that later sentence!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
Co-authored-by: Jonathan Keane <jkeane@gmail.com>
Co-authored-by: Jonathan Keane <jkeane@gmail.com>
Co-authored-by: Jonathan Keane <jkeane@gmail.com>
When changing the R package C++, I've again run into the issue that something needs editing to make sure that the lint script uses Python 3 (I think, can't remember the specific cause). I'm going to add something to this PR which covers that (or open a ticket to do something to the script) as I won't be the only person to run into this. (Now have submitted a PR for this: #11002) |
3b34e88
to
95aacf7
Compare
daf3278
to
3cc6df7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good. I built it locally with pkgdown and re-reviewed it there. I caught a few typos (none of them introduced in this PR!) that I suggested corrections for.
r/vignettes/developing.Rmd
Outdated
* "Apache Arrow" or "Arrow" - the Apache Arrow project, including implementations in different languages | ||
* "libarrow" or "the Arrow C++ library" - Arrow's C++ library (N.B. this term might not be used in documentation in other parts of the Arrow project) | ||
* "arrow" or "the Arrow R package" - the R package | ||
* `arrow` - a directory into which the Arrow GitHub repo has been checked out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is more polish than anything else, but I wonder if this style section would be better as a footnote? It's really good info, but it feels a bit of a sidestep right at the beginning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point - whilst writing this down was useful while I was working on the vignette, now that terminology is consistent, it's a little redundant.
I'm not 100% on board with the info as a footnote as I think it's important to have it up front still, so what I think will satisfy all requirements here is just explain what libarrow
is, in parentheses, after the first mention of the term, and then leave everything else to be implicit.
The main point of doing this was the libarrow vs. arrow package distinction, so I think we've ticked those boxes now - though happy to adjust again if you think further changes are needed.
Co-authored-by: Jonathan Keane <jkeane@gmail.com>
Co-authored-by: Jonathan Keane <jkeane@gmail.com>
…c/arrow into ARROW-13403_developing_vignette
Closes apache#10930 from thisisnic/ARROW-13403_developing_vignette Lead-authored-by: Nic Crane <thisisnic@gmail.com> Co-authored-by: Nic <thisisnic@gmail.com> Co-authored-by: Jonathan Keane <jkeane@gmail.com> Signed-off-by: Jonathan Keane <jkeane@gmail.com>
Closes apache#10930 from thisisnic/ARROW-13403_developing_vignette Lead-authored-by: Nic Crane <thisisnic@gmail.com> Co-authored-by: Nic <thisisnic@gmail.com> Co-authored-by: Jonathan Keane <jkeane@gmail.com> Signed-off-by: Jonathan Keane <jkeane@gmail.com>
No description provided.