Skip to content
Snippets Groups Projects
basics.rst 2.78 KiB
Newer Older
  • Learn to ignore specific revisions
  • Development Basics
    ==================
    
    Gluon's source is kept in `git repositories`_ at GitHub.
    
    .. _git repositories: https://github.com/freifunk-gluon
    
    Bug Tracker
    -----------
    
    The `main repo`_ does have issues enabled. 
    
    .. _main repo: https://github.com/freifunk-gluon/gluon
    
    IRC
    ---
    
    
    Gluon's developers frequent the IRC chatroom `#gluon`_ on `hackint`_.
    There is a `webchat`_ that allows for easy access from within your
    webbrowser. You're welcome to join us!
    
    .. _#gluon: ircs://irc.hackint.org/#gluon
    .. _hackint: https://hackint.org/
    .. _webchat: https://webirc.hackint.org/#irc://irc.hackint.org/#gluon
    
    
    Working with repositories
    -------------------------
    
    To update the repositories used by Gluon, just adjust the commit IDs in `modules` and
    rerun
    
    ::
    
    
    
    `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
    
    ::
    
    
    
    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!
    
    
    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 buildsystem.
    
    This command speeds up the maintenance of updating OpenWrt and feeds.
    
    
    Lua should be used instead of sh whenever sensible. The following criteria
    
    - 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 whitespaces 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``.