Skip to content

Latest commit

 

History

History
52 lines (36 loc) · 1.43 KB

File metadata and controls

52 lines (36 loc) · 1.43 KB

Contributing to libsingularity

Development setup

git clone https://github.com/singularityos-lab/libsingularity
cd libsingularity
meson setup build
ninja -C build

To enable GObject Introspection:

meson setup build -Dintrospection=true
ninja -C build

Code style

  • Language: Vala only.
  • Indentation: 4 spaces no tabs, no trailing whitespace.
  • Namespace: all public symbols must live under Singularity, Singularity.Widgets, Singularity.Shell, or Singularity.Core.
  • Doc comments are required on every public API classes, properties, signals, and methods. Use the /** .. */ form.
  • Keep files focused: one primary class per .vala file, named after the class (e.g. SwitchRow -> switch_row.vala). Redundant suffixes in the filename (like _manager or _provider) should be avoided.

License

By contributing you agree your code will be released under LGPL-2.1-only.

Commit messages

Commits follow Conventional Commits:

<type>: <subject>

<type> is one of feat, fix, chore, docs, build, ci, refactor, perf, style, test, revert. Keep <subject> short, lowercase and in English. An optional scope is allowed: <type>(<scope>): <subject>.

When a commit closes an issue, use <type>[closes #ID]: <issue title>, for example:

fix[closes #2]: Discord doesn't open on Singularity desktop

Do not add co-author or attribution trailers.