Skip to content

Latest commit

 

History

History
67 lines (40 loc) · 3.89 KB

baseline.md

File metadata and controls

67 lines (40 loc) · 3.89 KB

OpenSavvy Playground: Baseline

Repository

The Baseline playground contains common configuration we use in all our projects.

[TOC]

JetBrains IDEs (IntelliJ, WebStorm…)

OpenSavvy recommends using IntelliJ-based IDEs from JetBrains. The Playground contains configuration for multiple aspects of the project.

Code style

The Playground contains the configuration to follow the OpenSavvy coding style.

The Playground also has the Git Toolbox configuration to check that commits confirm to our commit style.

Copyright

The Playground contains the license text for the licenses approved by OpenSavvy.

To use a license in your project, go to File | Settings | Editor | Copyright and change the default project copyright, or create various scopes to use different licenses in different areas of the project.

GitLab

CI/CD

The Playground has configuration for GitLab CI for the basic workflow.

Remote development and build environment

Usually, the build process is created to cater to the "developer" archetype, who has the project installed on their workstation and regularly submits changes. However, in the real world, many users of the repository do not fit this archetype:

  • artists, product owners and other non-technical roles may want to edit some files,
  • a regular developer may want to make some changes from a secondary device,
  • a developer from another project may want to make some quick changes (especially common for Open Source projects).

In all these cases, going through the entire repository setup process is a waste of time when compared to the contribution. This often feels discouraging for contributors, especially when they try anyway and get stuck on version conflicts of some system dependency.

To avoid this issue, the Playground is compatible with multiple ways of opening the project without having to go through the project configuration.

Gitpod

Gitpod is a cloud-based development platform. It allows to open a branch of the repository and execute it directly from the browser. It is especially convenient for projects with a web-based frontend, or projects with no UI (e.g. libraries). Gitpod cannot run native GUI apps.

Gitpod is configured in the .gitpod.yaml file.

Useful links:

Dev containers

Dev containers is a standard for containerizing the development environment, created by Microsoft. GitHub Codespaces uses them to run a project in the cloud, and IDEs can use them to locally start a containerized development environment, so you don't have to install anything.

Because it is possible to start projects locally in a container, and not just in the cloud, dev containers can be used as a daily driver on a project to entirely avoid configuring the environment. The specification is also more complete, allowing to start services using docker-compose, etc (though support by IDE varies).

Dev containers are configured in the .devcontainer directory.

Useful links: