Giter Club home page Giter Club logo

code-patterns's People

Contributors

binaryberserker avatar blaw2422 avatar chrislwade avatar jbatte47 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

code-patterns's Issues

Research hosting solutions

Options to consider:

  1. Self-hosted (could be more expensive, but there is the advantage of complete control)
  2. 3rd party host (could sacrifice control, but could be cheaper and easier to use)

Required features

  1. allows post-commit hooks and can make a distinction between branches
  2. can run 3rd party executables (like the SpecFlow report generator)
  3. supports exporting results or (even better) hosting results

hotfix(es) needed to improve myget build services output

Currently, the build output is this:

MyGet Wonka - Version 1.7.0.16441
(C) MyGet 2012 - www.myget.org
Making NuGet for all of the world to enjoy! (@jglozano)
- http://twitter.com/jglozano/status/228462337663832064

2013-03-05 20:33:09 [Information] Initializing build environment...
2013-03-05 20:33:09 [Information] Build environment variables:
2013-03-05 20:33:09 [Information] BuildRunner=MyGet
2013-03-05 20:33:09 [Information] SourcesPath=D:\temp\tmp4DE7
2013-03-05 20:33:09 [Information] NuGet=C:\Chocolatey\chocolateyInstall\NuGet.exe
2013-03-05 20:33:09 [Information] Configuration=Release
2013-03-05 20:33:09 [Information] Platform=
2013-03-05 20:33:09 [Information] VersionFormat=1.0.0-CI{0}
2013-03-05 20:33:09 [Information] BuildCounter=0
2013-03-05 20:33:09 [Information] PackageVersion=1.0.0-CI00000
2013-03-05 20:33:09 [Information] EnableNuGetPackageRestore=true
2013-03-05 20:33:09 [Information] Initializing git-based build environment...
2013-03-05 20:33:09 [Information] Additional build environment variables:
2013-03-05 20:33:09 [Information] GitPath=C:\Program Files (x86)\Git\bin\git.exe
2013-03-05 20:33:09 [Information] PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Mercurial;C:\Program Files\SlikSvn\bin;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.1.1;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0;C:\Program Files\Microsoft SQL Server\110\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;C:\Program Files\Microsoft SQL Server\100\Tools\Binn;C:\Program Files\Microsoft SQL Server\100\DTS\Binn;C:\Chocolatey\bin;C:\Program Files (x86)\Git\bin
2013-03-05 20:33:09 [Information] Fetching sources from git...
Cloning into 'D:\temp\tmp4DE7'...
commit 125f2a7
Merge: bd9437b 895d7c3
Author: John Batte [email protected]
Date: Sun Feb 24 16:19:20 2013 -0600

Merge branch 'release/3.4.0-beta'

2013-03-05 20:33:19 [Information] Sources at revision 125f2a7
.
2013-03-05 20:33:19 [Information] Finished fetching sources.
2013-03-05 20:33:19 [Information] Searching for projects to build...
2013-03-05 20:33:19 [Information] Searching for build.bat...
2013-03-05 20:33:19 [Warning] Could not find build.bat.
2013-03-05 20:33:19 [Information] Searching for MyGet.sln...
2013-03-05 20:33:19 [Warning] Could not find MyGet.sln.
2013-03-05 20:33:19 [Information] Searching for other *.sln files...
2013-03-05 20:33:19 [Information] Start building project(s)...
2013-03-05 20:33:19 [Information] Start building project D:\temp\tmp4DE7\src\code-patterns-master.sln...

Transforming template SolutionAssemblyInfo.tt...
Transforming template Patterns.Autofac.tt...
Successfully installed 'Common.Logging 2.1.2'.
EXEC : warning : The operation has timed out [D:\temp\tmp4DE7\src\Patterns\Patterns.csproj]
D:\temp\tmp4DE7\src.nuget\NuGet.targets(76,9): error : Unable to find version '3.2.0' of package 'Castle.Core'. [D:\temp\tmp4DE7\src\Patterns\Patterns.csproj]
D:\temp\tmp4DE7\src.nuget\NuGet.targets(76,9): error MSB3073: The command ""C:\Chocolatey\chocolateyInstall\NuGet.exe" install "D:\temp\tmp4DE7\src\Patterns\packages.config" -source "" -o "D:\temp\tmp4DE7\src\packages"" exited with code 1. [D:\temp\tmp4DE7\src\Patterns\Patterns.csproj]
Successfully installed 'Rx-Main 2.1.30214.0'.
Successfully installed 'Autofac 3.0.1'.
Successfully installed 'Rx-Interfaces 2.1.30214.0'.
Successfully installed 'Castle.Core 3.2.0'.
Successfully installed 'Rx-PlatformServices 2.1.30214.0'.
Successfully installed 'Rx-Core 2.1.30214.0'.
Successfully installed 'Rx-Linq 2.1.30214.0'.
Transforming template Patterns.Testing.tt...
Successfully installed 'CommonServiceLocator 1.0'.
Successfully installed 'Moq 4.0.10827'.
Successfully installed 'Autofac.Extras.CommonServiceLocator 3.0.0'.
Successfully installed 'SpecFlow 1.9.0'.
All packages listed in packages.config are already installed.
Successfully installed 'NUnit 2.6.2'.
Successfully installed 'SpecFlow.NUnit 1.1.1'.
Successfully installed 'NBuilder 3.0.1.1'.
Successfully installed 'FluentAssertions 2.0.0.1'.
All packages listed in packages.config are already installed.
2013-03-05 20:35:43 [Information] Finished building project D:\temp\tmp4DE7\src\code-patterns-master.sln.
2013-03-05 20:35:43 [Information] Finished building project(s).
2013-03-05 20:35:43 [Information] Locating test assemblies...
2013-03-05 20:35:43 [Information] No test assemblies found.
2013-03-05 20:35:43 [Information] Determining if NuGet packages have been produced by your solution...
2013-03-05 20:35:43 [Warning] Could not find NuGet packages produced by your solution.
2013-03-05 20:35:43 [Information] Building NuGet packages...
Attempting to build package from 'Patterns.Autofac.nuspec'.
The replacement token 'author' has no value.
Attempting to build package from 'Patterns.Moq.nuspec'.
The replacement token 'author' has no value.
Attempting to build package from 'Patterns.csproj'.
Unable to find 'D:\temp\tmp4DE7\src\Patterns\bin\Release\Patterns.dll'. Make sure the project has been built.
Attempting to build package from 'Patterns.Autofac.csproj'.
Unable to find 'D:\temp\tmp4DE7\src\Patterns.Autofac\bin\Release\Patterns.Autofac.dll'. Make sure the project has been built.
Attempting to build package from 'Patterns.Moq.csproj'.
Unable to find 'D:\temp\tmp4DE7\src\Patterns.Moq\bin\Release\Patterns.Moq.dll'. Make sure the project has been built.
Attempting to build package from '_specs.csproj'.
Unable to find 'D:\temp\tmp4DE7\src_specs\bin\Release_specs.dll'. Make sure the project has been built.
2013-03-05 20:35:50 [Information] Finished building NuGet packages.
2013-03-05 20:35:50 [Information] Locating NuGet package artifacts...
2013-03-05 20:35:50 [Error] Error during build: No NuGet packages could be found.
2013-03-05 20:35:50 [Information] Cleaning up...
2013-03-05 20:35:51 [Error] Error while running finalizing build steps: Access to the path 'Microsoft.TextTemplating.Build.Tasks.dll' is denied.
2013-03-05 20:35:51 [Error] BUILD FAILED

Provide an IConfigurationSource implementation appropriate for use during testing

Sometimes testers will want to use real XML, likely stored in the test DLL as a resource, to hydrate their configuration settings for the purposes of specific tests. To better facilitate this, a new type should be added to Patterns.Testing that implements IConfigurationSource and accepts its configuration XML as an XElement object (in the constructor).

Type rename proposal: ResolveAnythingSource --> ResolveCreatableSource

Patterns.Autofac.Sources.ResolveAnythingSource's name seems to indicate that it can resolve... anything. But it can't. It is only for resolving un-registered creatable types, and abstract classes and interfaces don't get resolved (how would they be?). Suggest renaming to ResolveCreatableSource.

New documentation needed for Config objects

With the upcoming LoggingConfig type, a part of Patterns now has the ability to be configured from app.config / web.config. A new wiki page is needed detailing the configuration options, sample xml, and the meaning / purpose of each possible value.

EDIT: DictionaryParserConfig from specs also needs to be documented, and the @configured tag needs to be documented.

Patterns.Testing docs

With the removal of TestDateTimeInfo per issue #40, Patterns.Testing needs to be updated.

DoD:

  1. Patterns.Testing.Runtime wiki page is removed
  2. Patterns.Testing.Moq wiki page is added
    1. Patterns.Testing.Moq gist is created
    2. Patterns.Testing.Moq wiki page references gist
  3. Patterns.Testing.SpecFlow wiki page is added
    1. Patterns.Testing.SpecFlow gist is created
    2. Patterns.Testing.SpecFlow wiki page references gist
  4. Patterns.Testing.Values wiki page is added
    1. Patterns.Testing.Values gist is created
    2. Patterns.Testing.Values wiki page references gist

SpecFlow specs for new Get and Do methods

DoD:

  • Scenarios that cover all Func variations
    • Func<TResult>
    • Func<TInput, TResult>
    • ...
    • Func<TInput1, TInput2 ... TInput16, TResult>
  • Scenarios that cover all Action variations
    • Action
    • Action<TInput>
    • ...
    • Action<TInput1, TInput2 ... TInput16>

SpecFlow specs for Logging

DoD: feature scenarios for all 3 intended use cases:

  1. Direct interception (leveraging DynamicProxy2 directly)
  2. Autofac interception (LoggingInterceptor registered by LoggingModule)
  3. Autofac ILog injection

Property Scanning

DoD:

  1. A new type, e.g. PropertyValue or PropertyState, to store the name and value (or state) of a property
  2. A new mixin to extract all property values from any valid target. So likely something like IEnumerable<PropertyValue> GetPropertyValues(this object source)

Create wiki template app

DoD: a WPF desktop application that allows the user to select a local dll, a GAC dll, or a NuGet dll for type inspection. Example and "See Also" urls can be entered by the user at this time. All types and all type members should be listed and the user should have the ability to de-select any item, thus excluding it from the output. Further, all text output should be previewable and editable by the user before generation. All choices should be savable to a "namespace profile", which can be reloaded for quick regeneration. Running the generator creates a MarkDown (.md) file suitable for inclusion in the code-patterns wiki.

Basic template structure is:

1. Header -- [namespace]
2. Download Link -- [nuget base url + assembly name]
3. Example Link (s) -- [UI input]
4. Struct types -- [type scan, user can exclude]
    a. Description -- xml docs
    b. Ctor signature if not default -- [reflected ctor + xml docs]
    c. Public fields -- [scan + xml docs]
    d. Public properties -- [scan + xml docs]
    e. Public methods -- [scan + xml docs]
5. Interface types -- [type scan, user can exclude]
    a. Description -- xml docs
    b. Properties -- [scan + xml docs]
    c. Methods -- [scan + xml docs]
6. Abstract types -- [type scan, user can exclude]
    a. Description -- xml docs
    b. Ctor signature if not default -- [reflected ctor + xml docs]
    c. Public and protected fields -- [scan + xml docs]
    d. Public and protected properties -- [scan + xml docs]
    e. Public and protected methods -- [scan + xml docs]
7. Concrete types -- [type scan, user can exclude]
    a. Description -- xml docs
    b. Ctor signature if not default -- [reflected ctor + xml docs]
    c. Public fields -- [scan + xml docs]
    d. Public properties -- [scan + xml docs]
    e. Public methods -- [scan + xml docs]
8. "See Also" Link (s) -- [UI input]
9. "Created with the Patterns Documentation Generator"

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.