Documentation for Developers of Vala
Developing the Compiler
Submitting Bug Reports
Vala uses Bugzilla.
Patches should be attached to a bug report in bugzilla. Patches should include one or more test cases.
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.
The Vala repository carries a number of bindings to libraries. The bindings are written in one of three ways:
Generated using vapigen from a GIR (GObject Introspection Repository) file
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.
Writing a VAPI Without Using GObject Introspection - detailed guide on writing a VAPI manually
Generating a VAPI with GObject Introspection - details on generating a VAPI using vapigen