All Projects → SixLabors → SharedInfrastructure

SixLabors / SharedInfrastructure

Licence: other
Centralized infrastructure elements for SixLabors projects. (msbuild, linting, shared internals)

Programming Languages

C#
18002 projects
powershell
5483 projects

Projects that are alternatives of or similar to SharedInfrastructure

eslint-plugin-editorconfig
An ESLint plugin to enforce EditorConfig rules
Stars: ✭ 22 (+15.79%)
Mutual labels:  editorconfig
Editorconfig Sublime
Sublime Text plugin for EditorConfig - Helps developers maintain consistent coding styles between different editors
Stars: ✭ 1,749 (+9105.26%)
Mutual labels:  editorconfig
pwa
An opinionated progressive web app boilerplate
Stars: ✭ 355 (+1768.42%)
Mutual labels:  editorconfig
scala-basic-skeleton
Starting point if you want to bootstrap a project in Scala
Stars: ✭ 16 (-15.79%)
Mutual labels:  editorconfig
happy-web
Project built during Rocketseat's Next Level Week #3
Stars: ✭ 19 (+0%)
Mutual labels:  editorconfig
editorconfig-gradle-plugin
A Gradle plugin for checking whether project files comply with format rules defined in .editorconfig files and eventually also for fixing the violations
Stars: ✭ 40 (+110.53%)
Mutual labels:  editorconfig
editorconfig-templates
📝 A collection of useful .editorconfig templates
Stars: ✭ 19 (+0%)
Mutual labels:  editorconfig
fe-standard-config-seed
前端通用代码规范自动化接入
Stars: ✭ 18 (-5.26%)
Mutual labels:  editorconfig
awesome-react-app
Always the latest version of "create-react-app" with awesome configurations (lint, commit lint, husk, editor config, etc)
Stars: ✭ 44 (+131.58%)
Mutual labels:  editorconfig
Shangchao-Website
(官网案例) - 上朝科技 - Vue 2.0 - SPA项目
Stars: ✭ 22 (+15.79%)
Mutual labels:  editorconfig
generator-node
🔧 Yeoman generator for Node projects.
Stars: ✭ 16 (-15.79%)
Mutual labels:  editorconfig
ace-mode-solidity
Ace ( https://ace.c9.io/ ) Edit Mode for Ethereum's Solidity language ( https://solidity.readthedocs.io/en/latest/ ).
Stars: ✭ 25 (+31.58%)
Mutual labels:  editorconfig
node-lintspaces
A validator for checking different kinds of whitespaces in your files.
Stars: ✭ 31 (+63.16%)
Mutual labels:  editorconfig
code-guide
Code Guidelines : Moved to https://linianhui.github.io/code-guide/
Stars: ✭ 62 (+226.32%)
Mutual labels:  editorconfig
EditorConfig-Action
🔎A GitHub Action to check, enforce & fix EditorConfig style violations
Stars: ✭ 40 (+110.53%)
Mutual labels:  editorconfig
figma-plugin-typescript-boilerplate
Figma plugin TypeScript boilerplate to start developing right away
Stars: ✭ 43 (+126.32%)
Mutual labels:  editorconfig
Editorconfig Vim
EditorConfig plugin for Vim
Stars: ✭ 2,739 (+14315.79%)
Mutual labels:  editorconfig
editorconfig-defaults
No description or website provided.
Stars: ✭ 21 (+10.53%)
Mutual labels:  editorconfig
Friendly Code Editor
Try this Friendly Code Editor. You'll love it. I made it with a lot of effort. It has some great features. I will update it adequately later. Very helpful for developers. Enjoy and share.
Stars: ✭ 20 (+5.26%)
Mutual labels:  editorconfig
editorconfig-vscode
EditorConfig extension for Visual Studio Code
Stars: ✭ 1,098 (+5678.95%)
Mutual labels:  editorconfig

SixLabors.SharedInfrastructure
SixLabors.SharedInfrastructure

Build Status Code coverage License: Six Labors Split

This repository contains:

  • Configuration and guidelines for automated linting of C# projects.
  • Standardized internal C# utility classes to be reused across SixLabors projects (like Guard, DebugGuard)
  • SixLabors.snk to support strong-name signing of SixLabors assemblies
  • Centralized msbuild configuration and utilities for SixLabors projects

It is designed to be installed as a git submodule into Six Labors solutions.

Installation.

This installation guide assumes that your solution conforms to the following structure:

solution.sln
readme.md
.gitignore
+---> src
+      +
+      +---> project
+      +   +
+      +   +---> project.csproj
+      +
+      +---> project
+          +
+          +---> project.csproj
+
+---> tests
       +
       +---> project.tests
       +   +
       +   +---> project.tests.csproj
       +
       +---> project.tests
           +
           +---> project.tests.csproj

If the solution does not conform to this structure you will have to update it to do so.

Adding the Submodule

To add SixLabors.SharedInfrastructure as a submodule of your project. In the project repository type:

git submodule add https://github.com/SixLabors/SharedInfrastructure shared-infrastructure

At this point, you’ll have a shared-infrastructure folder inside your project, but if you were to peek inside that folder, depending on your version of Git, you might see… nothing.

Newer versions of Git will do this automatically, but older versions will require you to explicitly tell Git to download the contents of shared-infrastructure:

git submodule update --init --recursive

If everything looks good, you can commit this change and you’ll have a shared-infrastructure folder in your project repository with all the content from the SixLabors.SharedInfrastructure repository.

Updating the Submodule.

Since the submodule is stored in a separate repository you may find at times updates have been made to the linting rules that require you to update your copy. The command below will allow you to do so:

git submodule update --init --recursive
git submodule foreach git pull origin main

Linting Tools

There are three tools contained within the submodule that will help to automatically promote and enforce coding standards and consistency:

These tools are automatically installed into your solution by referencing the .props and .targets files found in the /msbuild folder.

MsBuild

Within the aforementioned folder there are separate .props and .targets files designed for shared, src, and test scenarios. These files control the build process and are responsible for automatically referencing all the required projects for versioning, linting and testing. An example use case and installation can be found at the ImageSharp repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].