ARROW-6041: [Website] Blog post announcing R library availability on CRAN

Closes #4948 from nealrichardson/blog-cran-release and squashes the following commits:

7c8254b2b <Wes McKinney> Add note about nokogiri requirements
3b06bb43a <Wes McKinney> Update date, small language tweaks
fe98d6a54 <Neal Richardson> Add macOS R installation warning
b5d9e73db <Neal Richardson> Merge upstream/master
c5dd6fad4 <Neal Richardson> Incorporate Wes's revisions
ddb1857f1 <Neal Richardson> Add self to contributors.yml; remove thoughtcrime from post title
06c06e2df <Neal Richardson> First draft of R package release announcement

Lead-authored-by: Neal Richardson <neal.p.richardson@gmail.com>
Co-authored-by: Wes McKinney <wesm+git@apache.org>
Signed-off-by: Wes McKinney <wesm+git@apache.org>
3 files changed
tree: 7299973a07d73c8aac7ab7448ccbb39a661e1c8c
  1. _data/
  2. _docs/
  3. _includes/
  4. _layouts/
  5. _posts/
  6. _release/
  7. _sass/
  8. assets/
  9. css/
  10. img/
  11. scripts/
  12. .gitignore
  13. _config.yml
  14. arrow.rdf
  15. blog.html
  16. committers.html
  17. faq.md
  18. Gemfile
  19. index.html
  20. install.md
  21. powered_by.md
  22. README.md
README.md

Apache Arrow Website

Overview

Site content is maintained in the main Arrow repository, mostly in markdown format. Jekyll is used to generate HTML files that can then be committed to the arrow-site repository.

Adding Content

To add a blog post, create a new markdown file in the _posts directory, following the model of existing posts. In the front matter, you should specify an “author”. This should be your Apache ID if you have one, or it can just be your name. To add additional metadata about yourself (GitHub ID, website), add yourself to _data/contributors.yml. This object is keyed by apacheId, so use that as the author in your post. (It doesn't matter if the ID actually exists in the ASF; all metadata is local to this project.)

Prerequisites

With Ruby >= 2.1 installed, run the following commands to install Jekyll.

gem install jekyll bundler
bundle install

On some platforms, the Ruby nokogiri library may fail to build, in such cases the following configuration option may help:

bundle config build.nokogiri --use-system-libraries

nokogiri depends on the libxml2 and libxslt1 libraries, which can be installed on Debian-like systems with

apt-get install libxml2-dev libxslt1-dev

If you are planning to publish the website, you must clone the arrow-site git repository. Run this command from the site directory so that asf-site is a subdirectory of site.

git clone --branch=asf-site https://github.com/apache/arrow-site.git asf-site

Previewing the site

From the site directory, run the following to generate HTML files and run the web site locally.

bundle exec jekyll serve

Publishing

After following the above instructions, run the following commands from the site directory:

JEKYLL_ENV=production bundle exec jekyll build
rsync -r build/ asf-site/
cd asf-site
git status

Now git add any new files, then commit everything, and push:

git push

Updating Code Documentation

To update the documentation, run the script ./dev/gen_apidocs.sh. This script will run the code documentation tools in a fixed environment.

C (GLib)

First, build Apache Arrow C++ and Apache Arrow GLib.

mkdir -p ../cpp/build
cd ../cpp/build
cmake .. -DCMAKE_BUILD_TYPE=debug
make
cd ../../c_glib
./autogen.sh
./configure \
  --with-arrow-cpp-build-dir=$PWD/../cpp/build \
  --with-arrow-cpp-build-type=debug \
  --enable-gtk-doc
LD_LIBRARY_PATH=$PWD/../cpp/build/debug make GTK_DOC_V_XREF=": "
rsync -r doc/reference/html/ ../site/asf-site/docs/c_glib/

Javascript

cd ../js
npm run doc
rsync -r doc/ ../site/asf-site/docs/js

Then add/commit/push from the site/asf-site git checkout.