Documentation for Contributors to Vala

Development Process

Submitting Bug Reports

Vala uses Bugzilla.

Submitting Patches

Patches should be attached to a bug report in bugzilla. Patches should include one or more test cases.

Reviewing Patches

Committing Patches

Once your patch is accepted and if you have commit access then use git-bz, the Bugzilla subcommand for git. This tool automatically includes the Bugzilla reference in the commit message. See git-bz(1) Manual Page.

Maintaining Bindings

The Vala repository carries a number of bindings to libraries. The bindings are written in one of three ways:

  1. Manually
  2. Generated using vapigen from a GIR (GObject Introspection Repository) file

  3. Generated using vapigen from a deprecated GIDL file

To update a binding the first thing to do is find how the binding is written. From the Vala source tree:

cd vapi
make binding-name-x.y

If there is no make target then the VAPI is written manually. For example make glib-2.0 has no target. If the VAPI is generated using files from the ./metadata/ directory then the VAPI is generated from a GIR file. For example make gstreamer-1.0 is generated from a GIR file. If the VAPI is generated using files from the ./packages/ directory then the VAPI is generated from a GIDL file. For example make gtk+-3.0 is currently generated from a GIDL file.

Patches should be submitted through bugzilla as a git formatted patch, e.g. use git format-patch HEAD^1 Patches for generated bindings should also include the changes to the VAPI itself. The Vala repository keeps the generated VAPIs in version control as well as the metadata.

Developing the Compiler



Using --enable-coverage will include debugging symbols in the Vala compiler:

make distclean
./ --enable-coverage

This will enable Vala source files with line numbers to be shown when using gdb to generate a backtrace after a segmentation fault.

You can also change GLib criticals and warnings to generate a segmentation fault to enable a backtrace. This is done with the G_DEBUG environment variable:

G_DEBUG=fatal-criticals gdb --args my_valac_version my_test_program.vala

See Running and debugging GLib Applications for more information on G_DEBUG.

The Build Server

Vala maintainers make use of a Buildbot server to build a selection of projects written in Vala with a version of Vala from the main GNOME git repository. Of main interest to contributors is the vala-staging builder and also the vala-master builder. Builds from these servers include log files from STDIO for each build. This helps identify any problems with a patch that was committed to Vala.

Projects/Vala/DeveloperDocumentation (last edited 2017-07-31 20:16:00 by AlThomas)