Development Basics

Gluon’s source is kept in git repositories at GitHub.

Bug Tracker

The main repo does have issues enabled.

IRC

Gluon’s developers frequent the IRC chatroom #gluon on hackint. There is a webchat that allows for easy access from within your web browser. You’re welcome to join us!

Working with repositories

To update the repositories used by Gluon, just adjust the commit IDs in modules and rerun

make update

make update also applies the patches that can be found in the directories found in patches; the resulting branch will be called patched, while the commit specified in modules can be referred to by the branch base.

After new patches have been committed on top of the patched branch (or existing commits since the base commit have been edited or removed), the patch directories can be regenerated using

make update-patches

If applying a patch fails because you have changed the base commit, the repository will be reset to the old patched branch and you can try rebasing it onto the new base branch yourself and after that call make update-patches to fix the problem.

Always call make update-patches after making changes to a module repository as make update will overwrite your commits, making git reflog the only way to recover them!

make refresh-patches

In order to refresh patches when updating feeds or the OpenWrt base, make refresh-patches applies and updates all of their patches without installing feed packages to the OpenWrt build system.

This command speeds up the maintenance of updating OpenWrt and feeds.

Development Guidelines

Lua should be used instead of sh whenever sensible. The following criteria should be considered:

  • Is the script doing more than just executing external commands? if so, use Lua

  • Is the script parsing/editing json-data? If so, use Lua for speed

  • When using sh, use jsonfilter instead of json_* functions for speed

Code formatting may sound like a topic for the pedantic, however it helps if the code in the project is formatted in the same way. The following basic rules apply:

  • use tabs instead of spaces

  • trailing whitespace characters must be eliminated

  • files need to end with a final newline

  • newlines need to have Unix line endings (lf)

To that end we provide a .editorconfig configuration, which is supported by most of the editors out there.

If you add Lua scripts to gluon, check formatting with luacheck.