TEMPLATE
Report Bug
·
Request Feature
This repository is a template repository for Gitpod-based development of a service.
It is recommended that you install the following browser extensions for the best experience interacting with this repository:
It is highly recommended to conduct development of this repository via Gitpod's online IDE. Click the following to get started with zero installation requirements:
Gitpod is a one-click online IDE for Cloud-based development. The following video provides a very effective introduction to Gitpod: https://www.youtube.com/watch?v=qLv6-Uop0yc.
Alternatively, this repo supports VS Code Remote Container Development for Dockerized development inside VSCode.
Step #1: To get started, first make sure to install the followin prerequisites:
Visual Studio Code
choco install vscode
brew update
brew tap homebrew/cask-cask
brew cask search visual-studio-code
brew cask install visual-studio-code
Visual Studio Code Remote Development extension pack, which can be installed into VS Code with this manual installation link.
choco install docker-desktop
and follow
brew cask install docker
sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Step #2: Start the Docker daemon if it has already not started automatially after the installation finishes (run the Docker Desktop application). To ensure docker is running, attempt the following commands:
docker version
docker run hello-world
Step #3: Start VS Code and press F1 to run Remote-Containers: Clone Repository in Container Volume.. from the Command Palette.
Step #4: Enter this repository's Git URI: https://github.com/BluMintInc/template-gitpod.git. VS Code will install all required dependencies and set up the environment from the Dockerfile configuration.
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
Furthermore, we value these principles:
Each contributor to this repository is obligated to provide sufficient test coverage over their contributions. We use the Jest test framework.
Version control with git on this repo is in strict adherence to the Gitflow Workflow. Gitflow was architectured by Vincent Driesssen in 2010 and since has been adopted with massive popularity as a very effective development workflow under distributed version control.
This project makes use of the git-flow integration setup in
the Docker container, which lets you execute git flow
commands on the terminal rather than
git
commands directly.
The project also utilizes githooks to enforce gitflow and prevent users from accidently pushing to the main branch.
Plase read the following article for a sufficient introduction to the Gitflow Workflow: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow.
This project uses githooks to enforce standarized commits
according to the Commitizen style. Running
git commit
on the command line instigates a series of prompts guiding you through the standard.
All diagrams should be included on the repository to which they pertain. We use PlantUML to build all of our diagrams. PlantUML has a Domain Specific Language (DSL) for declaratively building various types of diagrams. You can write a .wsd, .pu, .puml, .plantuml, or .iuml file containing PlantUML DSL and the PlantUML Extension will enable you to render that diagram in a live preview by pressing Alt + D.
This repository uses Github Actions for several workflow automations as well as several organizational Github Integrations.
Pre-commit githooks lint the codebase and then run all the project's Jest tests to prevent regressions from even being checked into the codebase. On top of this, the Test Action runs the project's Jest tests to check PRs before they are merged.
The Release Action triggers on commits to the main branch utilzing the repository's Commitizen commit style to automatically version published code according to SemVar. The Release Action also publishes the project to our private npmjs repository scoped under @blumint.
This repository also makes use of the Semantic Pull Probot to vet and squash the commits of merged PRs onto the main branch. For more information, see Semantic Release.
The Dependabot integration will periodically make PRs suggesting modifications to the dependecy structure to eliminiate vulnerabilities, update depricated dependencies, and perform other miscellenous tasks.
The Accuracies integration analyzes the codebase for policy violations and vulnerabilities with the use of Cloud infrastructure (AWS, GCP, etc.) and makes PRs to corrct any detected issues before they become a problem.
The Codacy bot will scan PRs and the repository as a whole to detect security vulnerabilities, code smells, performance inefficiencies, compatibility issues, unnecessarily complex code, missing documentation, and unused code.
No license is included, as all work is proprietary.