ewilde / crane Goto Github PK
View Code? Open in Web Editor NEWCrane creates builds scripts so you don't have to
Home Page: http://blog.cranebuild.com
License: Apache License 2.0
Crane creates builds scripts so you don't have to
Home Page: http://blog.cranebuild.com
License: Apache License 2.0
Make sure crane supports targeting mono projects.
Perhaps we can use nuget packages as a way of installing available templates
crane plugin Crane.CityCorp -source http://internal/api/v2
This would download the Crane.CityCorp
package from the http://internal/api/v2
nuget server and install their build templates
Visual Studio has built in templating so we could just tap into that:
http://msdn.microsoft.com/en-us/library/cc175307%28v=vs.90%29.aspx
That means that crane could then gen out a project based on any template the user has installed on their machine e.g. MVC Application.
Crane could read templates from the visual studio location (c:/program files/microsoft visual studio/etc etc) and combine those with its own when deciding which template to use. That way out of the box all of the templates on your machine would be used.
when you type crane it should print out the help for all of the commands
Place holder, needs completing
Powershell cmdlets to do useful things:
Crane find type IFoo
Crane build
Crane depend {ProjName}
etc.....
template does not have the .nuget folder and packages config folder.
Look at documentation framework technologies for our help site
e.g. azure, read the docs
make sure we can point our url at the help site
Look at creating a build template for ASP .Net vNext
Think this is because we need to install the .net sdk on the build server?
Implement the same assembly info and VERSION.TXT in the build template that we use for the crane project build.
crane template build script should:
crane template build should have a target to pack and publish the nuget package that is created from the nuget
If nuspec file found that matches project name and they provide their api key and nuget url then we auto pack and publish to nuget
For our integration tests spin up a self hosted nuget server to test that we actually published the package successfully
When in binary references mode update the solution build order using dependency list for each project
I've checked the documentation, but it doesn't explain this in detail. What are the main benefits I can gain by switching from msbuild to crane?
Example to draw inspiration from:
Make sure that we can be built on mono, not sure if we need to change anything, but lets check
In keeping with being opinionated:
I think it's nice to have tests that make sure the structure of code is adhered to:
i.e. (but do this in xbehave)
[Test]
public void debug_configurations_should_have_debug_type_pdb_only()
{
Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Debug, "DebugType", "full"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
}
[Test]
public void debug_configurations_should_have_optimize_false()
{
Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Debug, "Optimize", "false"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
}
[Test]
public void release_configurations_should_have_debug_type_pdb_only()
{
Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "DebugType", "pdbonly"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
}
[Test]
public void release_configurations_should_have_optimize_true()
{
Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "Optimize", "true"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
}
Have a build task to publish source indexed symbols to symbolsource.org or alternative symbol store if configured
Look into why ncrunch does not work with crane solution. Short answer is that ncrunch does not support xbehave out of the box but there may be somethings we can do to get this working. Worth looking in to.
Create a build for crane itself. This would be run by teamcity
crane init Foo -buildTemplate psake -sourceTemplate visualstudio
When the crane project build fails it returns a 0 exit code and so teamcity and appveyor think the build has passed!
display the commands help text and example usage
Allow crane to be configured at the global and project level in the same way that git is.
Write a new formatter (html/mark down...) to produce a web site for our documentation
part of epic #5
Unit test project doesnt conform to default namespace.
Remove unused using statements
Assembly version: using version.txt (semver manually maintained)
File version: version.txt.(build countext)
This might be a problem with any psake script run using this ISE, need to investigate.
When running the commandline integration test, move the runner to temp folder
This will enable parallel tests runs
Update the website (html) documentation when build on master
We need an icon/image for the project. All awesome project have fun icons!
http://www.clipartof.com/portfolio/tikiri/illustration/black-and-white-construction-crane-icon-1228893.html
Look into storing the Team City config in our git repo. Need to investigate how private keys are stored as we dont want those kicking around our repo
This enables loading of source providers from external assemblies at runtime
crane assemble foldername
by default ->
* find solution file inside that folder (if more than one use one with foldername case insensitve)
* create build for that solution - build context object for the foldername and then call existing code
I think that good documentation will increase the chance of people using crane. So just wanted to put a marker in here for that until we get a chance to break this up into smaller tasks:
Update powershell tasks to use a generic context rather than each building paths
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.