Vala is the main programming language for developing elementary OS and apps on its platform.
So if you're interesting in helping improving the elementary OS developer experience then contributing to the language is one of the ways that you can help
Note: These following instructions have only been tested on elementary OS 6 Odin. They may not work on older versions
First check for updates to packages:
sudo apt update
Now Install the required packages
sudo apt install git \
gcc \
libbison-dev \
libglib2.0-dev \
flex \
libbison-dev \
libgraphviz-dev \
make \
autoconf \
autoconf-archive \
automake \
libtool \
help2man \
weasyprint
Follow the insturctions in the Git section in the elementary OS developer documentation then come back here (There's a step that tells you to add your SSH Key to GitHub. You don't need to follow those instructions).
Now create an account on the GNOME GitLab then add your SSH Key there: https://gitlab.gnome.org/-/profile/keys
Note: On the sign in screen you may see an option to pick between "GNOME account" and "Standard". Pick "Standard".
Run one of the following commands in a terminal.
Using SSH (Recommended):
git clone git@gitlab.gnome.org:GNOME/vala.git
Using HTTPS:
git clone https://gitlab.gnome.org/GNOME/vala
Install a prebuilt Vala Compiler. Why? Because Vala is used to build Vala:
sudo apt install valac
Now run these commands in your terminal (This might take a while depending on how fast your machine is):
cd vala
./autogen.sh
make && sudo make install
You need to run this command to update the system's knowledge of the shared libraries installed with this command:
sudo ldconfig /usr/local/lib
After running the command above, the vala commands will work again like valac
.
Refer to the insturctions here: https://wiki.gnome.org/GitLab
- Clean the whole repo with
git clean -dfx
- Use the bootstrap commands but set VALAC to an older valac version e.g
valac-0.48
. - You'll have a working version of the compiler in development again.
Create an issue in this repository. We're only human after all 😉.