Skip to content

Commit

Permalink
Initial commit of v3 rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
kzu committed Jan 12, 2016
0 parents commit 2d4f178
Show file tree
Hide file tree
Showing 19 changed files with 325 additions and 0 deletions.
1 change: 1 addition & 0 deletions GitInfo.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0.0-pre
22 changes: 22 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2015 Mobile Essentials

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
![Icon](https://raw.github.com/clariuslabs/clide/master/icon/48.png) Clide
================

[![Build status](https://img.shields.io/appveyor/ci/MobileEssentials/clide.svg)](https://ci.appveyor.com/project/MobileEssentials/clide "CI builds at AppVeyor")
[![Code coverage](https://img.shields.io/coveralls/MobileEssentials/clide.svg)](https://coveralls.io/github/MobileEssentials/clide "Latest reported code coverage at Coveralls")
[![Latest version](https://img.shields.io/nuget/v/clide.svg)](https://www.nuget.org/packages/clide "Latest package at NuGet.org")
[![Join the chat at https://gitter.im/MobileEssentials](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/MobileEssentials?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge "MobileEssentials chatroom with the team")



Clide is a managed, intuitive, modern and composable API for Visual Studio extensibility and automation.

It leverages dependency injection, supports unit testing of automation and extensibility code, and provides
useful primitives for both consuming services and tools as well as providing your own to the environment.

How do I get it?
=====

Install from [https://nuget.org/packages/Clide](https://nuget.org/packages/Clide "Clide NuGet Package")

> Install-Package Clide


33 changes: 33 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
os: Visual Studio 2015

init:
- git config --global core.autocrlf input

build_script:
- cmd: >-
build.cmd
.nuget\packages\coveralls.io\tools\coveralls.net.exe --opencover out\coverage.xml
# we run the tests ourselves in build.cmd for coverage
test: off

environment:
COVERALLS_REPO_TOKEN:
secure: l3O4lbgUscsMKm9M580fsx0rBDal/nTrtRTt3ZE6897ps9Q3USzEIwR254Z4CfKv

deploy:
- provider: NuGet
api_key:
secure: 7MS5+XWaFchMXFqzgneQCqo9U0DlxiPXe/KWWUnbCBDEizVn06EjdQZkWu1gbNOJ
artifact: Package
on:
branch: master

nuget:
project_feed: true
disable_publish_on_pr: true

artifacts:
- path: out\*.nupkg
name: Package
29 changes: 29 additions & 0 deletions build.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@echo off
rem Optional batch file to quickly build with some defaults.
rem Alternatively, this batch file can be invoked passing msbuild parameters, like: build.cmd /v:detailed /t:Rebuild

cd %~dp0

SETLOCAL
SET CACHED_NUGET=%LocalAppData%\NuGet\NuGet.exe

IF EXIST %CACHED_NUGET% goto copynuget
echo Downloading latest version of NuGet.exe...
IF NOT EXIST %LocalAppData%\NuGet md %LocalAppData%\NuGet
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest 'https://www.nuget.org/nuget.exe' -OutFile '%CACHED_NUGET%'"

:copynuget
IF EXIST .nuget\nuget.exe goto restore
md .nuget
copy %CACHED_NUGET% .nuget\nuget.exe > nul
.nuget\nuget.exe update -self

:restore
rem Build script packages have no version in the path, so we install them to .nuget\packages to avoid conflicts with
rem solution/project packages.
IF NOT EXIST packages.config goto run
.nuget\NuGet.exe install packages.config -OutputDirectory .nuget\packages -ExcludeVersion

:run
rem NOTE: this needs to be a developer command prompt with MSBuild in the path.
msbuild build.proj /t:build,test,package /v:normal %1 %2 %3 %4 %5 %6 %7 %8 %9
108 changes: 108 additions & 0 deletions build.proj
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="Configure" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<IntermediateOutputPath>.nuget\</IntermediateOutputPath>
<PackagesPath>$(IntermediateOutputPath)packages</PackagesPath>
<Out Condition=" '$(Out)' == '' ">out</Out>
<CommonBuildProperties>WarningLevel=0;NoWarn=1591;RunCodeAnalysis=false;Configuration=$(Configuration)</CommonBuildProperties>
</PropertyGroup>

<ItemGroup>
<Solution Include="src\*.sln"/>
<NuSpec Include="src\**\*.nuspec" />
<TestProject Include="src\**\*Tests.csproj" />
</ItemGroup>

<Target Name="Clean">
<MSBuild Projects="@(Solution)" Properties="$(CommonBuildProperties)" Targets="Clean" />
<Exec Command="rmdir $(Out) /S /Q" ContinueOnError="true" />
<Exec Command="rmdir $(PackagesPath) /S /Q" ContinueOnError="true" />
<Exec Command="rmdir src\packages /S /Q" ContinueOnError="true" />
</Target>

<Target Name="Rebuild" DependsOnTargets="Clean;Build" />

<Target Name="Build" Condition=" '@(Solution)' != '' ">
<MSBuild Projects="@(Solution)" Properties="$(CommonBuildProperties)" />
</Target>

<Target Name="Test" DependsOnTargets="TestWin;TestMac" Condition=" '@(TestProject)' != '' "/>

<Target Name="PrepareTest" DependsOnTargets="Build">
<MSBuild Projects="@(TestProject)" BuildInParallel="false" Targets="GetTargetPath" Properties="$(CommonBuildProperties)">
<Output TaskParameter="TargetOutputs" ItemName="_TestAssembly" />
</MSBuild>

<ItemGroup>
<TestAssembly Include="@(_TestAssembly)" Condition=" Exists('%(_TestAssembly.FullPath)') " />
</ItemGroup>

<MakeDir Directories="$(Out)" Condition="!Exists('$(Out)')" />
</Target>

<Target Name="TestWin" DependsOnTargets="PrepareTest" Condition=" '$(OS)' == 'Windows_NT' ">
<PropertyGroup>
<XunitConsole>$(PackagesPath)\xunit.runner.console\tools\xunit.console.exe</XunitConsole>
<XunitOptions>$(XunitOptions) -html $(Out)\test.html -xml $(Out)\test.xml -parallel all -noshadow</XunitOptions>

<CoverageConsole>$(PackagesPath)\OpenCover\tools\OpenCover.Console.exe</CoverageConsole>
<CoverageOptions>$(CoverageOptions) -output:$(Out)\coverage.xml -returntargetcode -register:user -filter:"+[Merq.*]* -[xunit*]* -[*.Tests]* -[*]*ThisAssembly* -[*]*IFluentInterface*" -excludebyattribute:*ExcludeFromCodeCoverage*;*CompilerGenerated* -skipautoprops -showunvisited -mergebyhash -hideskipped:All</CoverageOptions>
</PropertyGroup>

<Exec Command="$(CoverageConsole) $(CoverageOptions) -target:$(XunitConsole) -targetargs:&quot;@(TestAssembly, ' ') $(XunitOptions)&quot;"
ConsoleToMSBuild="true"
ContinueOnError="ErrorAndContinue" />
</Target>

<Target Name="TestMac" DependsOnTargets="PrepareTest" Condition=" '$(OS)' != 'Windows_NT' ">
<xunit Assemblies="@(TestAssembly)"
Html="$(Out)\test.html"
Xml="$(Out)\test.xml"
ParallelizeAssemblies="true"
ParallelizeTestCollections="true"
ContinueOnError="ErrorAndContinue" />
</Target>

<Target Name="Package" DependsOnTargets="Build" Condition=" '@(NuSpec)' != '' ">
<!-- By writing the GitInfo.txt file with the version being built, the packaged sources can build the exact same version assemblies -->
<WriteLinesToFile File="$(IntermediateOutputPath)GitInfo.txt"
Lines="$(Version)"
Overwrite="true" />
<MakeDir Directories="$(Out)" Condition=" !Exists('$(Out)') " />
<Exec Command='"$(NuGet)" Pack "%(NuSpec.Identity)" $(Args) -Properties Id=%(NuSpec.Filename);Configuration=$(Configuration);Version=$(Version) -OutputDirectory $(Out)' />
</Target>

<Target Name="Publish" DependsOnTargets="Package">
<Exec Command='$(NuGet) Push "$(Out)\%(NuSpec.Filename).$(Version).nupkg" $(NuGetPushArgs)'
StandardErrorImportance="high"
StandardOutputImportance="normal" />

<Message Text="Published new package: Id=%(NuSpec.Filename), Version=$(Version)"
Importance="high" />
</Target>

<!-- Configure and restore initial targets and packages -->
<Import Project="src\NuGet.Restore.targets" />
<PropertyGroup>
<GitInfoTargets>$(PackagesPath)\GitInfo\build\GitInfo.targets</GitInfoTargets>
<PendingRestore Condition=" !Exists('$(GitInfoTargets)') ">true</PendingRestore>
</PropertyGroup>

<Target Name="GitVersion" /><!-- Gets overriden by the $(GitInfoTargets) if it exists -->
<Import Project="$(GitInfoTargets)" Condition=" Exists('$(GitInfoTargets)') " />

<Target Name="Configure" DependsOnTargets="_GetNuGet;GitVersion">
<!-- We always run NuGet Install since it already checks for already-installed packages and skips them -->
<Exec Command='"$(NuGet)" Install "$(MSBuildThisFileDirectory)packages.config" -OutputDirectory "$(PackagesPath)" -ExcludeVersion' />

<!-- Errors if nuget packages were restored during the build -->
<Error Text="Required build-time NuGet packages were missing and were just restored. Please run the build again."
Condition=" '$(PendingRestore)' == 'true' And '$(target)' != 'configure' "/>

<PropertyGroup>
<Version>$(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)$(GitSemVerDashLabel)</Version>
</PropertyGroup>
</Target>
</Project>
Binary file added icon/128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icon/32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icon/48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icon/64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icon/clide.pdn
Binary file not shown.
Binary file added icon/clide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icon/complexity_noun_103959.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions icon/complexity_noun_103959.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icon/infinity_noun_117612.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions icon/infinity_noun_117612.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions icon/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Icon courtesy of The Noun Project:

[Cyclomatic Complexity](https://thenounproject.com/search/?q=cyclomatic+com&i=103959) By [Richard Slater](https://thenounproject.com/richard.slater), GB

[Infinity Symbol](https://thenounproject.com/search/?q=infinity&i=117612) By [Cosmin Petrisor](https://thenounproject.com/ebriatic), RO
9 changes: 9 additions & 0 deletions packages.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="GitInfo" version="1.0.56-pre" targetFramework="net45" />
<package id="xunit.runner.msbuild" version="2.1.0" targetFramework="net45" />
<package id="xunit.runner.console" version="2.1.0" targetFramework="net45" />
<package id="OpenCover" version="4.6.166" targetFramework="net45" />
<package id="coveralls.io" version="1.3.4" targetFramework="net45" />
<package id="MSBuilder.CodeTaskAssembly" version="0.2.2" targetFramework="net45" />
</packages>
Loading

0 comments on commit 2d4f178

Please sign in to comment.