Skip to content

andrewvaughan/template-core

New project template

Release License Build Status MegaLinter Code Coverage PRs Accepted

Edge Release Staging Release Production Release Changes in Next Release

Sponsor This Project Join the Discord

Replace this with a short description of what this project is about.

Contents


Quick start

Add a brief set of instructions on how to get quickly up and running for the most-common use cases. Delete this section if a quick-start concept doesn't apply.

Installation

Add a brief introduction as to how users, not developers, perform a normal installation of the project.

Dependencies

Add detail in this section regarding any dependencies or installation requirements that users, not developers, need before installing and using the project. This must focus on using the tool, not developing it. Delete this section if there are no production dependencies required for the project.

Manual installation

If manual installation steps differ from the quick-start in the preceding section, add more verbose instructions here. Otherwise, delete this section.


Usage

Provide detailed instructions on how to use this project, if applicable. Otherwise, delete this section.

Configuration

If the project has configuration capabilities, provide them here in full detail. Otherwise, delete this section.


Support

This project's Support Policy includes all details for users to get support for this project. As an open source project, support is generally limited to the surrounding community and isn't guaranteed. Please read this policy prior to opening an Issue or Discussion.

Parties interested in contributing to the project must read the Contributing Guidelines prior to doing so.

Finally, all individuals must adhere to the project's Code of Conduct, regardless of how they choose to engage with the community.

Frequently asked questions

If you can answer common questions for your project, start this section. Delete the section, if not.


Contributing

There are many ways to contribute to this project. If you have an idea, or have discovered a bug, please open an Issue. You can also start or join a Discussion to get your feet wet.

If you have interest in contributing to the project through design or development, please read the project's Contributing Guidelines.

Developer installation

Add details for developers on how to setup their environment for individuals wishing to contribute to the project.

Developer dependencies

Add or modify this section to describe the dependencies used in development required prior to development.

This project aims to be as agnostic as possible across all development environments. As such, development dependencies are purposely limited to a few critical elements:

Dependency Purpose
act Allows for running the project's GitHub actions locally.
Docker Virtualization platform used for testing, running, and building code.
GNU Make Primary tool for executing test, build, clean, and other commands.
Node.js Used to download certain command-line packages for npx.
npx Node.js package execution helper to run certain non-containerized commands.

Recommended development environment

It's recommended to use Visual Studio Code for development and the project provides several extensions and configurations to improve development efficiency. Any IDE is acceptable, but it's up to developers working against the standard to manage their own environments if not using the project default.

You can install the project's recommended extensions and use the provided workspace configurations to reduce mistakes and duplicate effort. To install all recommended extensions, either accept the prompt when loading this project in Visual Studio Code, or use the make utility provided:

make vscode

Testing

An important part of the project's Software Development Lifecycle is continuous testing. The configuration of the project aims to make this as low effort as possible. Ensure that you have the developer dependencies installed and run the following command:

make test

This runs a full test suite. The project provides a number of utility functions to make your life easier during development. You can find the full list by running:

make help

Release policy

Releases of this project follow Semantic Versioning standards in a MAJOR.MINOR.PATCH versioning scheme of the following format:

  • MAJOR - used when the application undergoes major, incompatible changes with the last Release
  • MINOR - used when the Release adds capability in a backwards-compatible manner
  • PATCH - used when the Release patches existing capabilities, such as documentation, bug fixes, and minor features

GitHub hosts all Releases and manages all Release tags.


License

The LICENSE file contains the full text of this project's License.

Add selected License short text in this area, if applicable.