Welcome to the NetCologne GmbH open source mirroring service!
	This machine mirrors various open-source projects.
	20 Gbit/s uplink.
	
	If there are any issues or you want another project mirrored, please contact
	mirror-service -=AT=- netcologne DOT de ! 
  
  
  
  
  Reinventing Build.PL
  
  
  
  Reinventing Build.PL
  
Leon Timmermans
  
  August 15th 2011
 
Once upon a time
- MakeMaker
- Perl -> Makefile -> shell -> Perl
 
- Module::Build
 
Module::Build
- 6000 LOC and 342 methods in one class
- BTW, it's lacking a maintainer…
 
Finding the way out
- configure_requirements
- Build.PL spec (draft)
 
The experiment
- Module::Build::Tiny
- Simplest thing that's useful and correct
- Currently only 65 lines
- «we stop being fucking idiots and use CPAN»
 
4 steps
perl Build.PL
./Build
./Build test
./Build install
 
perl Build.PL
- Write a Build script
- Save its arguments somewhere
- Write a MYMETA.{json,yml} (new)
 
./Build
- Real meat of any module builder
- Also the least specified
 
./Build test
- Run tests and summarise the results
- TAP::Parser does this for you and more
 
./Build install
- Install files in the right locations.
- I extracted ExtUtils::InstallPaths from Module::Build for this.
 
Authoring?
- Dist::Zilla plugin
- Only 25 lines (no golfing)
 
Take home message
- Writing a module builder isn't that hard anymore in 2011
 
  