Giter VIP home page Giter VIP logo

ss-cpp's Introduction

Serious Scaffold Cpp

A continuously evolving basic template for cpp development.

Documentation License SS Cpp

CI CD Renovate codecov Release

pre-commit clang-format cmake-format codespell markdownlint shellcheck

Features

  • Project setup and template update with copier.
  • Containerization for development and deployment with dev container.
  • Continuous Integration with GitHub Actions.
  • Automate dependency updates with Renovate.
  • Fully featured vcpkg integration.
    • Supports baseline autoupdate.
    • Supports manifest export mode and build offline.
    • Supports vcpkg port/triplet/toolchain customization.
    • Supports vcpkg triplet auto-detection.
    • Supports vcpkg feature test.
    • Supports auto loads of vcpkg triplet and toolchain variables.
  • Build with cmake integration.
    • Provides sorts of cmake presets.
    • Provides vcpkg automatic installation or use existing vcpkg installation.
    • Provides static/runtime analysisincluding cppcheck, sanitizers, valgrind.
    • Supports code coverage with lcov, gcovr, llvm-cov, and opencppcoverage.
    • Supports hardening compilation for MSVC, Clang, and GCC.
    • Provides compile, header, application target generation.
    • Build with preset build types: Debug, Release, RelWithDebInfo(Default), MinSizeRel.
    • Supports package managers: vcpkg, conan, and cpm.
  • Use cmake-registry to provide various cmake modules and scripts.
  • Lint tool pre-commit integration with various linters, including clang-format, codespell, markdownlint, and more.
  • Documentation generation with doxygen and sphinx theme furo.
  • Automatic release workflow with semantic-release.
  • Maintainable documentation guides for configuration, development, security and contribution based on ss-cpp.

License

MIT License, for more details, see the LICENSE file.

ss-cpp's People

Contributors

msclock avatar semantic-release-bot avatar serious-scaffold[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

msclock

ss-cpp's Issues

Remove Changelog generation

It seems the changelog generation is not necessary on the modern platform. Moreover, we have annotated the release tags with release change notes.

codeql

  • github/codeql-action/init

Standardize the release workflow

  • Semantic Release
    • Docs section about release workflow. #106
    • No release rebasing and merging: no-release scope. #103
    • Release workflow CI. #102, #105
  • Standard Commit convention:
    • Constraint commit message lint. (skip)
    • Docs section about commit convention. #106

Commit Convention

  • Standard Commit convention:
    • Constraint commit message lint.
    • Docs section about commit convention.

Standardize the release workflow

Processing:

  • Semantic Release
    • Docs section about release workflow.
    • No release rebasing and merging: no-release scope.
    • Release workflow CI
  • Standard Commit convention:
    • Constraint commit message lint.
    • Docs section about commit convention.

put export include to target build directories

Previously, it was easy to cause confusion by placing the generated export header files in the build root directory. Now it is more reasonable to place them in the corresponding build source directory.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .renovaterc.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error near ],

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update group vcpkg-baseline (https://github.com/microsoft/vcpkg, https://github.com/msclock/cmake-registry)

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update pre-commit hook pre-commit/mirrors-clang-format to v18.1.5
  • chore(deps): update renovate group to v37.351.2 (ghcr.io/renovatebot/renovate, renovatebot/pre-commit-hooks)
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/cd.yml
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/setup-python v5@82c7e631bb3cdc910f68e0081d67478d79c6982d
  • peaceiris/actions-gh-pages v4@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e
  • ubuntu 22.04
.github/workflows/ci.yml
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/setup-python v5@82c7e631bb3cdc910f68e0081d67478d79c6982d
  • pre-commit/action v3.0.1@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/setup-python v5@82c7e631bb3cdc910f68e0081d67478d79c6982d
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/setup-python v5@82c7e631bb3cdc910f68e0081d67478d79c6982d
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/setup-python v5@82c7e631bb3cdc910f68e0081d67478d79c6982d
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • codecov/codecov-action v4.3.1@5ecb98a3c6b747ed38dc09f787459979aebb39be
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • re-actors/alls-green release/v1
  • actions/create-github-app-token v1@a0de6af83968303c8c955486bf9739a57d23c7f1
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • actions/setup-node v4@60edb5dd545a775178f52524783378180af0d1f8
  • cycjimmy/semantic-release-action v4
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
  • macos 12
  • windows 2022
  • windows 2022
  • ubuntu 22.04
  • ubuntu 22.04
  • macos 12
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
.github/workflows/codeql.yml
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • github/codeql-action v3.25.3@d39d31e687223d841ef683f52467bd88e9b21c14
  • actions/cache v4@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
  • aminya/setup-cpp v1
  • github/codeql-action v3.25.3@d39d31e687223d841ef683f52467bd88e9b21c14
  • ubuntu 22.04
.github/workflows/renovate.yml
  • actions/create-github-app-token v1@a0de6af83968303c8c955486bf9739a57d23c7f1
  • ghcr.io/renovatebot/renovate 37.326.3-full@sha256:a987a89e4a2b5d7813ea384168fa162afb980428bb8e8f6b6b0d731b20eaadfe
  • ubuntu 22.04
pre-commit
.pre-commit-config.yaml
  • pre-commit/pre-commit-hooks v4.6.0
  • macisamuele/language-formatters-pre-commit-hooks v2.13.0
  • Lucas-C/pre-commit-hooks v1.5.5
  • cheshirekow/cmake-format-precommit v0.6.13
  • codespell-project/codespell v2.2.6
  • shellcheck-py/shellcheck-py v0.9.0.6
  • pre-commit/mirrors-clang-format v18.1.4
  • igorshubovych/markdownlint-cli v0.40.0
  • renovatebot/pre-commit-hooks 37.326.3
template/.pre-commit-config.yaml
  • pre-commit/pre-commit-hooks v4.6.0
  • macisamuele/language-formatters-pre-commit-hooks v2.13.0
  • Lucas-C/pre-commit-hooks v1.5.5
  • cheshirekow/cmake-format-precommit v0.6.13
  • codespell-project/codespell v2.2.6
  • shellcheck-py/shellcheck-py v0.9.0.6
  • pre-commit/mirrors-clang-format v18.1.4
  • igorshubovych/markdownlint-cli v0.40.0
  • renovatebot/pre-commit-hooks 37.326.3
regex
vcpkg.json
  • https://github.com/microsoft/vcpkg master@ce1916404fc6f2b645f419a6d47b7ebafe686582
vcpkg.json
  • https://github.com/msclock/cmake-registry master@f09077e2e4df1b730cb2c0768298f4eaaf10afa9

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.