openzipkin / openzipkin.github.io

content for https://zipkin.io
https://zipkin.io
Apache License 2.0
39 stars 61 forks source link

openzipkin.github.io

This repository contains the source code for the Zipkin documentation site http://zipkin.io. It's the organization page for openzipkin, hosted using GitHub pages and Jekyll. This means that everything on the master branch is immediately and automatically published.

It uses the static site generator Jekyll. Jekyll is implemented in Ruby and requires Ruby version >= 2.7.

Contributing

Improvements to the documentation are more than welcome. This section tries to get you up to speed on how to run the site locally and make changes. Just like the documentation, this meta-documentation also welcomes all improvements. If you can, you should use OSX or Linux; Jekyll is not very well supported on Windows.

If you've done this kind of thing before

You may wish to use rbenv to ensure your Ruby and Bundler versions are consistent before proceeding.

  1. Fork, branch, clone
  2. bundle
  3. jekyll serve
  4. Make changes, commit, push
  5. Open a pull-request

Preparing your environment

  1. Install Ruby

    The official documentation at https://www.ruby-lang.org/en/documentation/installation/ describes the procedure for all major operating systems.

  2. System-level dependencies

    Nokogiri, one of the components used by Jekyll, requires some system-level libraries to be in place before installation of Jekyll can begin. Things should generally work out of the box, but keep in mind that if Jekyll installation fails referencing Nokogiri, then the Installing Nokogiri document most likely has what you need.

  3. Clone the repository

    git clone https://github.com/openzipkin/openzipkin.github.io.git
  4. Install Jekyll and friends

    GitHub quite considerately provides the exact list of packages that are used to generate the site on GitHub Pages, which means we can use the exact same packages when running the site locally. This minimizes differences between what you see locally, and what you'll see in production. Gemfile defines the packages to be installed using the list provided by GitHub (and Gemfile.lock makes sure we all have the same versions locally). To install these packages:

    cd openzipkin.github.io
    bundle
  5. Run the site

    You're now all set! The following command starts Jekyll, and makes the site available at http://localhost:4000. It'll also pick up any changes you make locally, and regenerate the site, so you can review your changes live without having to restart Jekyll.

    bundle exec jekyll serve

Finding your way around the repository

Next up is making some changes to the site. To do that, you'll need to have a basic understanding of how the repository is structured.

Content for all the pages lives in the pages directory. This makes it very clear where you need to look when making changes to the website text; it's clearly separated from all the scaffolding around the actual content. The only exception is the home page, index.md. It's in the root of the repository for purely technical reasons (GitHub Pages can only serve the root document from the root of the repository, and doesn't allow running any Jekyll plugins).

The rest of the repository contains scaffolding; here's a list to give you a basic idea of what's what:

Some finer points

There are a few things to keep an eye out for while making changes to the site.

Creating a pull-request

Once you've made your changes, you'll want to create a pull-request, so that the changes can be merged into the master branch of openzipkin/openzipkin.github.io, and so published for the betterment of all. This section describes the steps for getting there, assuming you've followed the instructions so far.

  1. Fork this repository

    Go to openzipkin/openzipkin.github.io, and click the "Fork" button. Or just click here.

  2. Tell git about your fork

    We're going to call your fork origin, and the original openzipkin repository upstream. The following commands tell git to make the appropriate changes:

    git remote rename origin upstream
    git remote add origin git@github.com:$USER/openzipkin.github.io
    git fetch upstream
  3. Create a branch, commit and push your changes

    git checkout -b my-awesome-changes
    git commit -m 'Short, useful description of my changes'
    git push
  4. Open a pull-request

    Open https://github.com/openzipkin/openzipkin.github.io. You should see a bar above the list of files that says you've recently pushed to your branch, with a green button on the right to open a pull request. Click it; add text to text fields and click buttons as appropriate. See https://help.github.com/articles/using-pull-requests/ for detailed instructions.

Pulling changes

When you come back to the project later, you'll want to make sure you have all the recent changes downloaded before making any further changes. Note: the following commands throw away any and all changes you have locally. If that's not desired, refer to the documentation of your git client.

git checkout master
git fetch upstream
git reset --hard upstream/master
git push

You'll also want to make sure you have all the required Ruby packages, at exactly the required versions:

bundle

You are now ready to start a new branch and add more awesome to the documentation.