Skip to content

Instantly share code, notes, and snippets.

@slominskir
Last active August 30, 2023 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save slominskir/3488cdcec8a02e9b7876756ecf9ae9cb to your computer and use it in GitHub Desktop.
Save slominskir/3488cdcec8a02e9b7876756ecf9ae9cb to your computer and use it in GitHub Desktop.
README.md template

project (badges go here: CI and Artifact Repo status such as DockerHub, Maven Central, PyPi, or NPM)

Short description goes here

Screenshot



Overview

Long description goes here

Quick Start

Quick start goes here; often uses Docker Compose; goal is to get user up and running in as few steps as possible for demonstration purposes. Often the install step below is automated in some way. This is hard to do outside of containers.

Install

Install steps go here; specifically given a distributable package such as a war file, zip file, or Docker image.

API

API Reference link goes here (javadoc, Sphinx docs, etc.). Pre-generated docs really only needed for libs. Often stored on gh-pages branch and automatically updated by GitHub Action. For apps often just provide developers instructions on how to generate docs; perhap in build section below. App APIs are not publicly advertised as developers of the app already have the source code and build tool that generates the docs right in front of them (unlike libs where user may not actually be building it, but just using pre-built artifact). Plus we're generally more careful about library releases and semantic versioning whereas with apps versioning and frequency of changes is less important and there may be tons of minor releases that would generate tons of nearly identical API docs that then need to be hosted forever and are never really used.

Configure

Configuration options; often refers to environment variables, config files, and command line options.

Build

How to build the source code; often there is a prerequisite SDK such as gcc, JDK, Python. Plus a prerequisite build tool such as C's Make, Java's Gradle, or Python's setuptools

Develop

How to make changes; often includes steps to iterate quickly

Test

How to test changes; ideally there is an automated test framework such as Java's JUnit or Python's pytest

Release

How to release; generally utilizing GitHub's release feature and potentially GitHub Actions to publish distributable artifiacts and API docs

Deploy

How to deploy; generally JLab specific

See Also

Links to related projects or docs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment