apache / celix

Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
https://celix.apache.org/
Apache License 2.0
160 stars 85 forks source link

Gitpod support #613

Closed pnoltes closed 7 months ago

pnoltes commented 11 months ago

Gitpod

Add support for Gitpod, so that it possible to develop / try out Apache Celix directly from a browser.

Background

Gitpod is an open-source Kubernetes application for ready-to-code cloud development environments that spins up fresh, automated dev environments for each task, in the cloud, in seconds. It enables you to describe your dev environment as code and start instant, remote and cloud development environments directly from your browser or your Desktop IDE.

Tightly integrated with GitLab, GitHub, and Bitbucket, Gitpod automatically and continuously prebuilds dev environments for all your branches. As a result, team members can instantly start coding with fresh, ephemeral, and fully-compiled dev environments - no matter if you are building a new feature, want to fix a bug, or do a code review.

Source: https://github.com/gitpod-io/gitpod

Implementation hints

Add a gitpod launch link to the top level README.md in Apache Celix. Something like:

![Celix MacOS](https://github.com/apache/celix/workflows/Celix%20MacOS/badge.svg)
[![codecov](https://codecov.io/gh/apache/celix/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/celix) 
[![Coverity Scan Build Status](https://scan.coverity.com/projects/6685/badge.svg)](https://scan.coverity.com/projects/6685)
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/apache/celix)

Tryout, test and eventually add the needed gitpod configuration files to develop Apache Celix in gitpod. In 2020 the following files were needed:

.gitpod.Dockerfile:

FROM gitpod/workspace-full
RUN sudo apt-get update && \
        sudo apt-get install -yq --no-install-recommends \
          build-essential \
          curl \
          uuid-dev \
          libjansson-dev \
          libcurl4-openssl-dev \
          default-jdk \
          cmake \
          libffi-dev \
          libxml2-dev \
          libczmq-dev \
          libcpputest-dev \
          libtbb-dev

.gitpod.yml:

vscode:
  extensions:
    - ms-vscode.cmake-tools@1.5.3:QI2POGDzx7mhyCmZyf/3vg==

image:
  file: .gitpod.Dockerfile

But these configuration snippets will probably be outdated.

Configure vscode to work with C, C++, CMake and maybe google test (C++ TestMate pluging) and commit the needed configuration (.theia/settings.json ?).

If needed also update the .gitignore file to ignore cache/build dirs/files.