CCF Development Setup ===================== From version 6.0.0, CCF is primarily built for and tested on Azure Linux 3. We recommend starting from the latest `azure-linux-3` image in your container or VM. Environment Setup ----------------- First checkout the CCF repository or :doc:`install the latest CCF release `. Then, to set up the dependencies necessary to build CCF itself and its tests, run: .. code-block:: bash cd /scripts ./setup-ci.sh ./scripts/setup-dev.sh Once this is complete, you can proceed to :doc:`/build_apps/build_app`. Visual Studio Code Setup ~~~~~~~~~~~~~~~~~~~~~~~~ If you use `Visual Studio Code`_ you can install the `Remote Container`_ extension and use the sample :ccf_repo:`devcontainer.json <.devcontainer/devcontainer.json>` config. `More details on that process `_. .. _`Visual Studio Code`: https://code.visualstudio.com/ .. _`Remote Container`: https://code.visualstudio.com/docs/remote/containers Developing for Azure Linux OS ----------------------------- Developing in GitHub Codespaces ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CCF devcontainer setup works just fine with codespaces. It's recommended to pre-configure for 16-cores one. Tweaks for codespaces: * In order to run lldb in a container, run this command first "settings set target.disable-aslr false" Running Docker containers in Codespaces ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you want to run Docker containers within your Codespace, you'll need to modify the devcontainer configuration to mount the Docker socket. Add the following to :ccf_repo:`.devcontainer/devcontainer.json <.devcontainer/devcontainer.json>`: .. code-block:: json "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ] This mount configuration gives the devcontainer access to the host's Docker daemon, enabling you to run Docker commands within your Codespace. How to install docker ~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash sudo tdnf install moby-engine moby-cli ca-certificates -y sudo systemctl enable docker.service sudo systemctl daemon-reload sudo systemctl start docker.service How do I install an EXTENDED package ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are 2 lists of packages in the official Azure Linux repo - `SPECS `_ and `SPECS-EXTENDED `_. The latter are hosted on `packages.microsoft.com `_, but to consume them you'll need to manually add the repo. One way to do this is to put the .repo file directly into ``/etc/yum.repos.d``: .. code-block:: bash sudo wget https://packages.microsoft.com/azurelinux/3.0/prod/extended/x86_64/config.repo -O /etc/yum.repos.d/azurelinux-official-extended.repo Where is perf? ~~~~~~~~~~~~~~ In `kernel-tools `_. If anyone works out how to get ``tdnf repoquery`` to say this, please add it here. How do I find more information about Azure Linux? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Try searching for "Mariner". This was Azure Linux's previous name, a lot of useful support discussions happened under that name, and it's far easier to search for.