Skip to content

apache/nuttx-website

Apache NuttX RTOS Website

Source code (written in RubyGems) for our offical project's website is stored here along with the build-and-publish automation scripts (using GitHub CI).

NuttX Technical Documentation is a sublocation of the project website, therefore is built and bundled here, but documentation sources are part of the NuttX source code repository in order to stay in sync with the upstream code. Documentation uses Sphinx generator tools to produce HTML output.

Please keep in mind that Website (this repository) and Documentation (NuttX repository) have different source origins and common resulting location.

Providing the Updates

Fork the repository, clone it to a local machine, make changes, commit changes onto a dedicated branch, push the branch onto your fork repository, GitHub will help you create a Pull Request.

Remember to use signed commits and report single problem per PR.

Make sure to preview local changes before submitting a Pull Request.

If you already submitted a Pull Request, but some changes needs to be made, add modified files with git add <your_file>, then git commit --amend to update existing commit, then git push -f <your_fork> <your_branch> in order to update code under existing Pull Request.

Updating the Website

Website source code resides at top location of this repository.

Before opening a Pull Request, you should preview your contributions.

You first need to install Ruby Gems on a local machine:

sudo apt install git ruby ruby-dev bundler

Then you can build and preview the results with:

git clone https://github.com/apache/nuttx-website
cd nuttx-website/
export GEM_HOME=$HOME/.gem       # Adjust this path as you want.
export PATH=$PATH:$GEM_HOME/bin  # Add Gem binaries to the path.
bundle install                   # Install required packages.
bundle exec jekyll serve         # Build and start local web server.

Preview should be visible at http://localhost:4000.

Note: The Gemfile.lock may contain some platform specific pins. You may want to regenerate it by deleting Gemfile.lock and running bundle update. Pins can be locked for x86_64-linux, Darwin, FreeBSD, and other build hosts with bundle lock --add-platform <your_platform> command.

Updating the Documentaion

NuttX Technical Documentation is part of the NuttX source code repository.

Before opening a Pull Request, you should preview your contributions.

You first need to install Python3 and PipEnv.

sudo apt install git python3 pipenv

You can setup build tools and create preview with:

git clone https://github.com/apache/nuttx
cd nuttx/Documentation
pipenv install
pipenv run make html

Preview files should be visible at _build/html/ directory.

Website Publishing

Website is updated by the GitHub CI Action script that builds the RubyGem and Shinx part from sources, bundles them together, and then runs the publish.sh script to update the web hosting at https://nuttx.apache.org.

Website build-and-publish Action can be started by hand with:

  1. Actions.
  2. Run workflow.
  3. Branch: master.
  4. Run workflow.

Trigger Workflow

Important Locations