Pinto+Stratopan+Love

1,064 views
934 views

Published on

A presentation in three acts: The newest Pinto features; Stratpan -- Managing Perl modules in the cloud; Why you'll love using Pinto/Stratopan.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,064
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
10
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Pinto+Stratopan+Love

    1. 1. Pinto + Stratopan + Love San Francisco Perl Mongers October 30, 2012 Jeffrey Thalhammer thaljef@cpan.org
    2. 2. Pinto
    3. 3. The $!@#% Problem
    4. 4. The $!@#% Problem• The public CPAN is unstable & unreliable.
    5. 5. The $!@#% Problem• The public CPAN is unstable & unreliable.• Tool chain lacks precise dependency control.
    6. 6. The $!@#% Problem• The public CPAN is unstable & unreliable.• Tool chain lacks precise dependency control.• Hard to make consistent, repeatable builds.
    7. 7. The $!@#% Problem• The public CPAN is unstable & unreliable.• Tool chain lacks precise dependency control.• Hard to make consistent, repeatable builds.• Existing solutions are weak.
    8. 8. Pinto To The Rescue
    9. 9. Pinto To The Rescue• A turn-key solution for managing Perl modules.
    10. 10. Pinto To The Rescue• A turn-key solution for managing Perl modules.• Works for both CPAN and local modules.
    11. 11. Pinto To The Rescue• A turn-key solution for managing Perl modules.• Works for both CPAN and local modules.• Constructs a CPAN-like repository.
    12. 12. Pinto To The Rescue• A turn-key solution for managing Perl modules.• Works for both CPAN and local modules.• Constructs a CPAN-like repository.• Compatible with the existing tool chain.
    13. 13. Pinto Feature Recap
    14. 14. Pinto Feature Recap• A Pinto repository has multiple indexes (stacks).
    15. 15. Pinto Feature Recap• A Pinto repository has multiple indexes (stacks).• You can have multiple versions of a module.
    16. 16. Pinto Feature Recap• A Pinto repository has multiple indexes (stacks).• You can have multiple versions of a module.• Also provides a way to fix versions (pins).
    17. 17. Pinto Feature Recap• A Pinto repository has multiple indexes (stacks).• You can have multiple versions of a module.• Also provides a way to fix versions (pins).• A coherent workflow for managing change.
    18. 18. Pinto Feature Recap• A Pinto repository has multiple indexes (stacks).• You can have multiple versions of a module.• Also provides a way to fix versions (pins).• A coherent workflow for managing change.• Works with the standard Perl tool chain.
    19. 19. Pinto Feature Recap• A Pinto repository has multiple indexes (stacks).• You can have multiple versions of a module.• Also provides a way to fix versions (pins).• A coherent workflow for managing change.• Works with the standard Perl tool chain.• Results in consistent and reliable builds.
    20. 20. New Pinto Features
    21. 21. New Pinto Features• A version control mechanism.
    22. 22. New Pinto Features• A version control mechanism.• Records each set of changes to the stack.
    23. 23. New Pinto Features• A version control mechanism.• Records each set of changes to the stack.• Can examine who, what, why it changed.
    24. 24. New Pinto Features• A version control mechanism.• Records each set of changes to the stack.• Can examine who, what, why it changed.• Can revert to a prior revision of the stack.
    25. 25. New Pinto Features• A version control mechanism.• Records each set of changes to the stack.• Can examine who, what, why it changed.• Can revert to a prior revision of the stack.• Not a full-fledged VCS, but good enough.
    26. 26. Basic Pinto Setup
    27. 27. Basic Pinto Setup pinto -r ~/repo init
    28. 28. Basic Pinto Setup pinto -r ~/repo initpinto -r ~/repo pull Moose -m ‘Did stuff’
    29. 29. Basic Pinto Setup pinto -r ~/repo initpinto -r ~/repo pull Moose -m ‘Did stuff’ pinto -r ~/repo list
    30. 30. Basic Pinto Setup pinto -r ~/repo init pinto -r ~/repo pull Moose -m ‘Did stuff’ pinto -r ~/repo list...rf Moose 2.06 DOY/Moose-2.06.tar.gzrf Moose::Error 2.06 DOY/Moose-2.06.tar.gzrf Moose::Meta 2.06 DOY/Moose-2.06.tar.gz...
    31. 31. What Happened?
    32. 32. What Happened? pinto -r ~/repo log
    33. 33. What Happened? pinto -r ~/repo log--------------------------------------------init@1 | jeff | Mon Oct 29 23:48:57 2012Did Stuff--------------------------------------------init@0 | jeff | Mon Oct 29 23:46:21 2012Created initial stack
    34. 34. Gory Details
    35. 35. Gory Detailspinto -r ~/repo log --detailed
    36. 36. Gory Details pinto -r ~/repo log --detailed--------------------------------------------init@23 | jeff | Mon Oct 29 23:48:57 2012Did StuffD DOY/Moose-2.05.tar.gz/Moose~2.05A DOY/Moose-2.06.tar.gz/Moose~2.06D DOY/Moose-2.05.tar.gz/Moose::Meta~2.05A DOY/Moose-2.06.tar.gz/Moose::Meta~2.06
    37. 37. Who Dunnit?
    38. 38. Who Dunnit?pinto -r ~/repo blame
    39. 39. Who Dunnit? pinto -r ~/repo blame... 34 jeff Moose 2.06 DOY/Moose-2.06.tar.gz 34 jeff Moose::Meta 2.06 DOY/Moose-2.06.tar.gz 8 mike Moose::Error 2.05 DOY/Moose-2.05.tar.gz 72 suzy URI 1.49 GAAS/URI-1.49.tar.gz...
    40. 40. Go Back In Time
    41. 41. Go Back In Time pinto -r ~/repo revert
    42. 42. Go Back In Time pinto -r ~/repo revert pinto -r ~/repo revert -5
    43. 43. Go Back In Time pinto -r ~/repo revert pinto -r ~/repo revert -5pinto -r ~/repo revert 362
    44. 44. Go Back In Time pinto -r ~/repo revert pinto -r ~/repo revert -5 pinto -r ~/repo revert 362Is That Cool Or What?
    45. 45. Stratopan
    46. 46. Great, Yet Another Tool I Have To Manage
    47. 47. Great, Yet Another Tool I Have To Manage• Pinto is evolving rapidly.
    48. 48. Great, Yet Another Tool I Have To Manage• Pinto is evolving rapidly.• Pinto has lots of dependencies.
    49. 49. Great, Yet Another Tool I Have To Manage• Pinto is evolving rapidly.• Pinto has lots of dependencies.• Like any service, requires care and feeding.
    50. 50. Great, Yet Another Tool I Have To Manage• Pinto is evolving rapidly.• Pinto has lots of dependencies.• Like any service, requires care and feeding.• You have better things to do with your time.
    51. 51. So Let Us Manage It For You
    52. 52. So Let Us Manage It For You• Stratopan is a web service built on Pinto.
    53. 53. So Let Us Manage It For You• Stratopan is a web service built on Pinto.• Public or private repos hosted in the cloud.
    54. 54. So Let Us Manage It For You• Stratopan is a web service built on Pinto.• Public or private repos hosted in the cloud.• Full control over modules with stacks & pins.
    55. 55. So Let Us Manage It For You• Stratopan is a web service built on Pinto.• Public or private repos hosted in the cloud.• Full control over modules with stacks & pins.• Access controls for teams & customers.
    56. 56. So Let Us Manage It For You• Stratopan is a web service built on Pinto.• Public or private repos hosted in the cloud.• Full control over modules with stacks & pins.• Access controls for teams & customers.• Build/test/install your modules from anywhere.
    57. 57. Demonstration
    58. 58. Future Plans
    59. 59. Future Plans• Expose more Pinto features.
    60. 60. Future Plans• Expose more Pinto features.• Access controls for teams.
    61. 61. Future Plans• Expose more Pinto features.• Access controls for teams.• Update notifications.
    62. 62. Future Plans• Expose more Pinto features.• Access controls for teams.• Update notifications.• Social features.
    63. 63. Future Plans• Expose more Pinto features.• Access controls for teams.• Update notifications.• Social features.• Dependency graphing.
    64. 64. Future Plans• Expose more Pinto features.• Access controls for teams.• Update notifications.• Social features.• Dependency graphing.• Command line interface.
    65. 65. Future Plans• Expose more Pinto features.• Access controls for teams.• Update notifications.• Social features.• Dependency graphing.• Command line interface.• Could be a real business.
    66. 66. Love
    67. 67. What Are You Doing Now?
    68. 68. What Are You Doing Now?• Our admin installs everything as root.
    69. 69. What Are You Doing Now?• Our admin installs everything as root.• We build everything into a directory in VCS.
    70. 70. What Are You Doing Now?• Our admin installs everything as root.• We build everything into a directory in VCS.• We put all the tar.gz files into the VCS.
    71. 71. What Are You Doing Now?• Our admin installs everything as root.• We build everything into a directory in VCS.• We put all the tar.gz files into the VCS.• We use a private Mini-CPAN.
    72. 72. What Are You Doing Now?• Our admin installs everything as root.• We build everything into a directory in VCS.• We put all the tar.gz files into the VCS.• We use a private Mini-CPAN.• Nothing.
    73. 73. What Are You Doing Now?• Our admin installs everything as root.• We build everything into a directory in VCS.• We put all the tar.gz files into the VCS.• We use a private Mini-CPAN.• Nothing.• Other.
    74. 74. You’re Doing It Wrong
    75. 75. You’re Doing It Wrong• What if you upgrade Perl or change OS?
    76. 76. You’re Doing It Wrong• What if you upgrade Perl or change OS?• Can you rebuild your dependencies?
    77. 77. You’re Doing It Wrong• What if you upgrade Perl or change OS?• Can you rebuild your dependencies?• Do you know what to test after upgrading?
    78. 78. You’re Doing It Wrong• What if you upgrade Perl or change OS?• Can you rebuild your dependencies?• Do you know what to test after upgrading?• Do you even know what modules you have?
    79. 79. You’re Doing It Wrong• What if you upgrade Perl or change OS?• Can you rebuild your dependencies?• Do you know what to test after upgrading?• Do you even know what modules you have?• What if they are no longer on CPAN?
    80. 80. You’re Doing It Wrong• What if you upgrade Perl or change OS?• Can you rebuild your dependencies?• Do you know what to test after upgrading?• Do you even know what modules you have?• What if they are no longer on CPAN?• Do you have modules that you don’t even use?
    81. 81. Pinto Does It Right...With Ease
    82. 82. Pinto Does It Right...With Ease• All your modules are stashed forever.
    83. 83. Pinto Does It Right...With Ease• All your modules are stashed forever.• Pinto knows what the dependency graph is.
    84. 84. Pinto Does It Right...With Ease• All your modules are stashed forever.• Pinto knows what the dependency graph is.• Pinto works seamlessly with the toolchain.
    85. 85. Pinto Does It Right...With Ease• All your modules are stashed forever.• Pinto knows what the dependency graph is.• Pinto works seamlessly with the toolchain.• Pinto gives you tools to manage change.
    86. 86. Pinto Does It Right...With Ease• All your modules are stashed forever.• Pinto knows what the dependency graph is.• Pinto works seamlessly with the toolchain.• Pinto gives you tools to manage change.• You can rebuild from scratch at any time.
    87. 87. Pinto Does It Right...With Ease• All your modules are stashed forever.• Pinto knows what the dependency graph is.• Pinto works seamlessly with the toolchain.• Pinto gives you tools to manage change.• You can rebuild from scratch at any time.• You will get the same result, every time.
    88. 88. Build From Scratch... Are You Serious?
    89. 89. Build From Scratch... Are You Serious?• Why not? The computer does all the work!
    90. 90. Build From Scratch... Are You Serious?• Why not? The computer does all the work!• Extension of continuous integration mentality.
    91. 91. Build From Scratch... Are You Serious?• Why not? The computer does all the work!• Extension of continuous integration mentality.• Build as much as you can, as often as you can.
    92. 92. Build From Scratch... Are You Serious?• Why not? The computer does all the work!• Extension of continuous integration mentality.• Build as much as you can, as often as you can.• You might not build every thing every time.
    93. 93. Build From Scratch... Are You Serious?• Why not? The computer does all the work!• Extension of continuous integration mentality.• Build as much as you can, as often as you can.• You might not build every thing every time.• But you WILL need to do it eventually.
    94. 94. Build From Scratch... Are You Serious?• Why not? The computer does all the work!• Extension of continuous integration mentality.• Build as much as you can, as often as you can.• You might not build every thing every time.• But you WILL need to do it eventually.• When that time comes, Pinto will save your ass.
    95. 95. We Use Vendor Packages, So Buzz Off
    96. 96. We Use Vendor Packages, So Buzz Off• Vendor packages are great for disparate stuff, like databases, apache, etc.
    97. 97. We Use Vendor Packages, So Buzz Off• Vendor packages are great for disparate stuff, like databases, apache, etc.• Making/Finding vendor packages for Perl modules is a waste of time.
    98. 98. We Use Vendor Packages, So Buzz Off• Vendor packages are great for disparate stuff, like databases, apache, etc.• Making/Finding vendor packages for Perl modules is a waste of time.• Perl already has an great packaging system.
    99. 99. We Use Vendor Packages, So Buzz Off• Vendor packages are great for disparate stuff, like databases, apache, etc.• Making/Finding vendor packages for Perl modules is a waste of time.• Perl already has an great packaging system.• Use Pinto and tool chain to build your Perl wad.
    100. 100. We Use Vendor Packages, So Buzz Off• Vendor packages are great for disparate stuff, like databases, apache, etc.• Making/Finding vendor packages for Perl modules is a waste of time.• Perl already has an great packaging system.• Use Pinto and tool chain to build your Perl wad.• Then wrap the wad in a vendor package.
    101. 101. Why Should I Care? “Perl is my virtual machine. CPAN is my language.” Matt Trout
    102. 102. What That Means For You
    103. 103. What That Means For You• Applications are built from lots of components.
    104. 104. What That Means For You• Applications are built from lots of components.• Your source code is just the glue between them.
    105. 105. What That Means For You• Applications are built from lots of components.• Your source code is just the glue between them.• We have great tools for managing source code.
    106. 106. What That Means For You• Applications are built from lots of components.• Your source code is just the glue between them.• We have great tools for managing source code.• But components are the real bulk of apps.
    107. 107. What That Means For You• Applications are built from lots of components.• Your source code is just the glue between them.• We have great tools for managing source code.• But components are the real bulk of apps.• So you need to manage components too.
    108. 108. What That Means For You• Applications are built from lots of components.• Your source code is just the glue between them.• We have great tools for managing source code.• But components are the real bulk of apps.• So you need to manage components too.• Otherwise, you will be screwed (some day).
    109. 109. The Bottom Line Pinto and Statopan make it so easythere is little reason not to use them.
    110. 110. Learn More
    111. 111. Learn More• http://www.youtube.com/watch?v=oaBBVZFhJUk
    112. 112. Learn More• http://www.youtube.com/watch?v=oaBBVZFhJUk• https://github.com/thaljef/Pinto
    113. 113. Learn More• http://www.youtube.com/watch?v=oaBBVZFhJUk• https://github.com/thaljef/Pinto• https://metacpan.org/release/Pinto
    114. 114. Learn More• http://www.youtube.com/watch?v=oaBBVZFhJUk• https://github.com/thaljef/Pinto• https://metacpan.org/release/Pinto• http://alpha.stratopan.com
    115. 115. Thanks For Your Time Jeffrey Thalhammer thaljef@cpan.org

    ×