Development Environment - dsriseah/ursys GitHub Wiki

WIP

The development environment was chosen to provide a standardized set of tools and assumptions for new developers of intermediate level. As discussed in Development Priorities, the goal is to make it as easy to just "clone the repo and go" with as few peer dependencies as possible.

Standardized on Visual Studio Code (VSCODE)

VSCODE is free and available to everyone, with plenty of free extensions to help with scaffolding. The features we use:

  • Live Linting with ESLint using the Typescript parser, with some relaxed rules. Show the errors to the developer as they happen in context to the code, rather than list them during the transpilation phase.
  • EditorConfig enforces line endings and indentation. This is to prevent frivolous changes to the codebase.
  • Prettier with ESLint enforces code style, with Format on Save enabled. While aggressive, this is to ensure that contributors to the codebase are adhering to style guidelines they ordinarily might ignore.
  • Node Version detection through the vs_env script. This tries to prevent the common error when developers forget to check before installing packages, etc.
  • Code Workspace to centralize VSCODE settings independently of the user's own settings. The .vscode/settings.json file is also used for some settings related to formatting
  • Code Snippets are stored in .vscode/snippets.json to provide module standard commenting style

MacOS and Linux Command Line Compatibility

This is the goal.

⚠️ **GitHub.com Fallback** ⚠️