SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Clayton Parker, Senior Web Developer
Buildout for the Future
PLONE CONFERENCE 2010
Thursday, October 28, 2010
PLONE CONFERENCE 2010Who Am I?
• claytron
• Python dev since 2003
• Plone Core Committer
• Foundation Member
Thursday, October 28, 2010
PLONE CONFERENCE 2010What Will We
Learn?
• Pinning
• Indexes
• Buildout Tricks
Thursday, October 28, 2010
PLONE CONFERENCE 2010Problems with
Buildout
• PyPi
• Lost/deleted packages
• Version conflicts
Thursday, October 28, 2010
PLONE CONFERENCE 2010PinningVersions
• [versions]
• Local config
• Extended URLs
Thursday, October 28, 2010
PLONE CONFERENCE 2010Versions
[buildout]
# tell buildout to use the [versions] part
versions = versions
[versions]
my.package = 1.0
some.other.package = 2.0
Thursday, October 28, 2010
PLONE CONFERENCE 2010PloneVersions
[buildout]
extends = http://dist.plone.org/release/4.0.1/versions.cfg
Thursday, October 28, 2010
PLONE CONFERENCE 2010Plone versions.cfg
[buildout]
extends = http://download.zope.org/Zope2/index/2.12.11/versions.cfg
[versions]
# Buildout infrastructure
plone.recipe.zope2instance = 4.0.4
plone.recipe.zeoserver = 1.1.1
...
# External dependencies
Markdown = 2.0.3
PIL = 1.1.6
...
# Plone release
Plone= 4.0.1
...
Thursday, October 28, 2010
PLONE CONFERENCE 2010Zope versions.cfg
[buildout]
versions = versions
[versions]
Zope2 = 2.12.11
...
Thursday, October 28, 2010
PLONE CONFERENCE 2010Our versions.cfg
## buildout.cfg
[buildout]
extends =
http://dist.plone.org/release/4.0.1/versions.cfg
versions.cfg
## versions.cfg
[versions]
my.package = 1.0
some.other.package = 2.0
Thursday, October 28, 2010
PLONE CONFERENCE 2010GettingVersions
$ bin/buildout -v
...
Installing instance
We have the distribution that satisfies 'Plone==4.0.1'.
We have the distribution that satisfies 'plone.app.caching==1.0b1'.
We have the distribution that satisfies 'plone.app.ldap==1.2.3'.
We have the distribution that satisfies 'plone.reload==1.5'.
We have the distribution that satisfies 'zope.testrecorder==0.4'.
We have the distribution that satisfies 'Products.PDBDebugMode==1.1'.
We have the distribution that satisfies 'Products.PrintingMailHost==0.7'.
We have the distribution that satisfies 'Products.DocFinderTab==1.0.4'.
We have the distribution that satisfies 'Products.signalstack==1.0rc2'.
We have the distribution that satisfies 'Products.PTProfiler==1.4'.
We have the distribution that satisfies 'Products.DCWorkflowGraph==0.4'.
We have the distribution that satisfies 'ipdb==0.2'.
We have the distribution that satisfies
'plone.recipe.zope2instance==4.0.4'.
Getting required 'Zope2==2.12.11'
We have the distribution that satisfies 'Zope2==2.12.11'.
Thursday, October 28, 2010
PLONE CONFERENCE 2010Dump Picked
Versions
[buildout]
extensions = buildout.dumppickedversions
Thursday, October 28, 2010
PLONE CONFERENCE 2010Dump Picked
Versions
$ bin/buildout -v
...
*************** PICKED VERSIONS ****************
[versions]
PILwoTk = 1.1.6.4
Products.DCWorkflowGraph = 0.4
Products.DocFinderTab = 1.0.4
Products.PDBDebugMode = 1.1
Products.PTProfiler = 1.4
Products.PrintingMailHost = 0.7
Products.signalstack = 1.0rc2
ipdb = 0.2
plone.app.caching = 1.0b1
plone.app.ldap = 1.2.3
zope.testrecorder = 0.4
*************** /PICKED VERSIONS ***************
Thursday, October 28, 2010
PLONE CONFERENCE 2010Extended URLs
[buildout]
extends =
# Plone's set of version dependencies
http://dist.plone.org/release/4.0.1/versions.cfg
# specific versions for plone.app.caching package
http://good-py.appspot.com/release/plone.app.caching/1.0b1
# our version overrides and add-on packages
versions.cfg
Thursday, October 28, 2010
PLONE CONFERENCE 2010Public Indexes
• PyPi
• Mirrors
• Plone dist
• http://dist.plone.org/
• Company dist
• http://dist.company.com/public/
Thursday, October 28, 2010
PLONE CONFERENCE 2010Find Links
[buildout]
find-links = http://dist.plone.org/release/4.0.1/
[buildout]
plone-version = 4.0.1
extends = http://dist.plone.org/release/${:plone-version}/versions.cfg
find-links = http://dist.plone.org/release/${:plone-version}/
Thursday, October 28, 2010
PLONE CONFERENCE 2010Private Indexes
• Customer eggs
• Customer archives
• Not ready for pypi
• Branches / trunk
Thursday, October 28, 2010
PLONE CONFERENCE 2010Solutions
• Apache / nginx
• Plone Software Center
• basketweaver
• haufe.eggserver
• ClueReleaseManager
Thursday, October 28, 2010
PLONE CONFERENCE 2010Apache
• Use directory listings
• Basic auth for protection
• mod_ldap for integration
Thursday, October 28, 2010
PLONE CONFERENCE 2010Config
<Location /private/myproject>
AuthType Basic
AuthName "myproject"
# hook up to ldap or a password file
# ...
</Location>
Thursday, October 28, 2010
PLONE CONFERENCE 2010lovely.buildouthttp
• Access private egg repos
• Also tied into download recipes
myproject,https://dist.example.com/private/myproject,username,password
Thursday, October 28, 2010
PLONE CONFERENCE 2010Releasing Eggs
• jarn.mkrelease
• zest.releaser
Thursday, October 28, 2010
PLONE CONFERENCE 2010~/.pypirc
[distutils]
index-servers =
pypi
	 plone.org
[pypi]
username: username
password: password
[plone.org]
repository: http://plone.org/products
username: username
password: password
Thursday, October 28, 2010
PLONE CONFERENCE 2010~/.mkrelease
[defaults]
distbase =
distdefault = public
[aliases]
public = dist.company.com:/var/dist/public
myproject = dist.company.com:/var/dist/private/myproject
world =
public
pypi
plone-world =
world
plone.org
Thursday, October 28, 2010
PLONE CONFERENCE 2010mkrelease
$ mkrelease -d myproject
$ mkrelease -d public
$ mkrelease -d plone-world
Thursday, October 28, 2010
PLONE CONFERENCE 2010Buildout Profiles
• Debugging / local dev
• Production
Thursday, October 28, 2010
PLONE CONFERENCE 2010Profiles
my-buildout
"## buildout.cfg
"## parts
"## profiles
$   "## base.cfg
$   "## debug.cfg
$   "## local.cfg
$   "## prod.cfg
$   &## versions.cfg
&## var
Thursday, October 28, 2010
PLONE CONFERENCE 2010Annotate
• Check config
• Debug issues
• Verify settings
Thursday, October 28, 2010
PLONE CONFERENCE 2010Annotate
$ bin/buildout annotate
$ bin/buildout -c profiles/prod.cfg annotate
Thursday, October 28, 2010
Check out
sixfeetup.com/demos
Thursday, October 28, 2010

Weitere ähnliche Inhalte

Was ist angesagt?

Juliette Reinders Folmer - Promote your open source project with GitHub Pages...
Juliette Reinders Folmer - Promote your open source project with GitHub Pages...Juliette Reinders Folmer - Promote your open source project with GitHub Pages...
Juliette Reinders Folmer - Promote your open source project with GitHub Pages...Codemotion
 
Build Automation of PHP Applications
Build Automation of PHP ApplicationsBuild Automation of PHP Applications
Build Automation of PHP ApplicationsPavan Kumar N
 
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...Codemotion
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for BeginnersJason Davies
 
When Web meet Native App
When Web meet Native AppWhen Web meet Native App
When Web meet Native AppYu-Wei Chuang
 
Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017Matt Raible
 
Scraping recalcitrant web sites with Python & Selenium
Scraping recalcitrant web sites with Python & SeleniumScraping recalcitrant web sites with Python & Selenium
Scraping recalcitrant web sites with Python & SeleniumRoger Barnes
 
Phing for power users - dpc_uncon13
Phing for power users - dpc_uncon13Phing for power users - dpc_uncon13
Phing for power users - dpc_uncon13Stephan Hochdörfer
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersRosario Renga
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with IonicMorris Singer
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with PhingMichiel Rook
 
Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017Matt Raible
 
Mobile Device APIs
Mobile Device APIsMobile Device APIs
Mobile Device APIsJames Pearce
 
From devOps to front end Ops, test first
From devOps to front end Ops, test firstFrom devOps to front end Ops, test first
From devOps to front end Ops, test firstCaesar Chi
 
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovygreach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovyJessie Evangelista
 
An easy guide to Plugin Development
An easy guide to Plugin DevelopmentAn easy guide to Plugin Development
An easy guide to Plugin DevelopmentShinichi Nishikawa
 
New EEA Plone Add-ons
New EEA Plone Add-onsNew EEA Plone Add-ons
New EEA Plone Add-onsAlin Voinea
 

Was ist angesagt? (20)

Juliette Reinders Folmer - Promote your open source project with GitHub Pages...
Juliette Reinders Folmer - Promote your open source project with GitHub Pages...Juliette Reinders Folmer - Promote your open source project with GitHub Pages...
Juliette Reinders Folmer - Promote your open source project with GitHub Pages...
 
Build Automation of PHP Applications
Build Automation of PHP ApplicationsBuild Automation of PHP Applications
Build Automation of PHP Applications
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
 
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
 
When Web meet Native App
When Web meet Native AppWhen Web meet Native App
When Web meet Native App
 
Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017
 
Scraping recalcitrant web sites with Python & Selenium
Scraping recalcitrant web sites with Python & SeleniumScraping recalcitrant web sites with Python & Selenium
Scraping recalcitrant web sites with Python & Selenium
 
Phing for power users - dpc_uncon13
Phing for power users - dpc_uncon13Phing for power users - dpc_uncon13
Phing for power users - dpc_uncon13
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python Developers
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with Ionic
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
 
Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017
 
JSConf US 2010
JSConf US 2010JSConf US 2010
JSConf US 2010
 
Mobile Device APIs
Mobile Device APIsMobile Device APIs
Mobile Device APIs
 
From devOps to front end Ops, test first
From devOps to front end Ops, test firstFrom devOps to front end Ops, test first
From devOps to front end Ops, test first
 
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovygreach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
 
An easy guide to Plugin Development
An easy guide to Plugin DevelopmentAn easy guide to Plugin Development
An easy guide to Plugin Development
 
Free django
Free djangoFree django
Free django
 
New EEA Plone Add-ons
New EEA Plone Add-onsNew EEA Plone Add-ons
New EEA Plone Add-ons
 

Andere mochten auch

Exploring Code with Pry!
Exploring Code with Pry!Exploring Code with Pry!
Exploring Code with Pry!Clayton Parker
 
Introduction to buildout
Introduction to buildoutIntroduction to buildout
Introduction to buildoutjbl2024
 
Releasing and deploying python tools
Releasing and deploying python toolsReleasing and deploying python tools
Releasing and deploying python toolsQuintagroup
 
Using Python Packages - An Overview
Using Python Packages - An OverviewUsing Python Packages - An Overview
Using Python Packages - An OverviewDaniel Hepper
 
Marek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with BuildoutMarek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with Buildoutmarekkuziel
 
Zen and the Art of Python
Zen and the Art of PythonZen and the Art of Python
Zen and the Art of PythonClayton Parker
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsClayton Parker
 

Andere mochten auch (9)

Exploring Code with Pry!
Exploring Code with Pry!Exploring Code with Pry!
Exploring Code with Pry!
 
Introduction to buildout
Introduction to buildoutIntroduction to buildout
Introduction to buildout
 
Releasing and deploying python tools
Releasing and deploying python toolsReleasing and deploying python tools
Releasing and deploying python tools
 
Facebook 2010
Facebook 2010Facebook 2010
Facebook 2010
 
Using Python Packages - An Overview
Using Python Packages - An OverviewUsing Python Packages - An Overview
Using Python Packages - An Overview
 
Buildout future
Buildout futureBuildout future
Buildout future
 
Marek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with BuildoutMarek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with Buildout
 
Zen and the Art of Python
Zen and the Art of PythonZen and the Art of Python
Zen and the Art of Python
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python Projects
 

Ähnlich wie Buildout for the Future

Laying Pipe with Transmogrifier
Laying Pipe with TransmogrifierLaying Pipe with Transmogrifier
Laying Pipe with TransmogrifierClayton Parker
 
Managing Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionManaging Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionLuciano Rocha
 
New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4Quintagroup
 
E D - Environmental Dependencies in Python
E D - Environmental Dependencies in PythonE D - Environmental Dependencies in Python
E D - Environmental Dependencies in PythonAdam Englander
 
Where's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind PloneWhere's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind PloneVincenzo Barone
 
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalkAuckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalkPeter Sellars
 
Openstack Contribution in a Nutshell
Openstack Contribution in a NutshellOpenstack Contribution in a Nutshell
Openstack Contribution in a NutshellMarton Kiss
 
[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded FrameworkICS
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.io
 
Plone 6 Theming from Scratch
Plone 6 Theming from ScratchPlone 6 Theming from Scratch
Plone 6 Theming from ScratchStefan Antonelli
 
Microsoft ♥ Open Source
Microsoft ♥ Open SourceMicrosoft ♥ Open Source
Microsoft ♥ Open SourceRicardo Peres
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStackdevkulkarni
 
An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018ICS
 
Introduce fuego
Introduce fuegoIntroduce fuego
Introduce fuegos60030
 
Exploring Five Lesser-Known Python Libraries
Exploring Five Lesser-Known Python LibrariesExploring Five Lesser-Known Python Libraries
Exploring Five Lesser-Known Python LibrariesMinhazulAbedin27
 
Advanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationAdvanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationSencha
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonCodeSyntax
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0ESUG
 
DevNet Associate : Python introduction
DevNet Associate : Python introductionDevNet Associate : Python introduction
DevNet Associate : Python introductionJoel W. King
 

Ähnlich wie Buildout for the Future (20)

Laying Pipe with Transmogrifier
Laying Pipe with TransmogrifierLaying Pipe with Transmogrifier
Laying Pipe with Transmogrifier
 
Managing Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionManaging Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and Subversion
 
New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4
 
E D - Environmental Dependencies in Python
E D - Environmental Dependencies in PythonE D - Environmental Dependencies in Python
E D - Environmental Dependencies in Python
 
Where's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind PloneWhere's the source, Luke? : How to find and debug the code behind Plone
Where's the source, Luke? : How to find and debug the code behind Plone
 
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalkAuckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
 
Openstack Contribution in a Nutshell
Openstack Contribution in a NutshellOpenstack Contribution in a Nutshell
Openstack Contribution in a Nutshell
 
[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
Plone 6 Theming from Scratch
Plone 6 Theming from ScratchPlone 6 Theming from Scratch
Plone 6 Theming from Scratch
 
Microsoft ♥ Open Source
Microsoft ♥ Open SourceMicrosoft ♥ Open Source
Microsoft ♥ Open Source
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStack
 
An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018
 
Introduce fuego
Introduce fuegoIntroduce fuego
Introduce fuego
 
Exploring Five Lesser-Known Python Libraries
Exploring Five Lesser-Known Python LibrariesExploring Five Lesser-Known Python Libraries
Exploring Five Lesser-Known Python Libraries
 
Advanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationAdvanced Data Widgets and Server Integration
Advanced Data Widgets and Server Integration
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
 
Plone Einführung
Plone EinführungPlone Einführung
Plone Einführung
 
DevNet Associate : Python introduction
DevNet Associate : Python introductionDevNet Associate : Python introduction
DevNet Associate : Python introduction
 

Mehr von Clayton Parker

Customizing Your Shell With Dotfiles
Customizing Your Shell With DotfilesCustomizing Your Shell With Dotfiles
Customizing Your Shell With DotfilesClayton Parker
 
Fuzzy Feelings for Fuzzy Matching
Fuzzy Feelings for Fuzzy MatchingFuzzy Feelings for Fuzzy Matching
Fuzzy Feelings for Fuzzy MatchingClayton Parker
 
So you think you can pdb?
So you think you can pdb?So you think you can pdb?
So you think you can pdb?Clayton Parker
 
Managing Chaos: Merging 120 Sites into a single Plone Multisite Solution
Managing Chaos: Merging 120 Sites into a single Plone Multisite SolutionManaging Chaos: Merging 120 Sites into a single Plone Multisite Solution
Managing Chaos: Merging 120 Sites into a single Plone Multisite SolutionClayton Parker
 
Current State of Python Packaging
Current State of Python PackagingCurrent State of Python Packaging
Current State of Python PackagingClayton Parker
 
Notre Dame Seamless Syndication with Lineage
Notre Dame Seamless Syndication with LineageNotre Dame Seamless Syndication with Lineage
Notre Dame Seamless Syndication with LineageClayton Parker
 
Make Plone Search Act Like Google Using Solr
Make Plone Search Act Like Google Using SolrMake Plone Search Act Like Google Using Solr
Make Plone Search Act Like Google Using SolrClayton Parker
 
Migrating from drupal to plone with transmogrifier
Migrating from drupal to plone with transmogrifierMigrating from drupal to plone with transmogrifier
Migrating from drupal to plone with transmogrifierClayton Parker
 
LDAP and Active Directory Authentication in Plone
LDAP and Active Directory Authentication in PloneLDAP and Active Directory Authentication in Plone
LDAP and Active Directory Authentication in PloneClayton Parker
 
Code with Style - PyOhio
Code with Style - PyOhioCode with Style - PyOhio
Code with Style - PyOhioClayton Parker
 
Generic Setup De-Mystified
Generic Setup De-MystifiedGeneric Setup De-Mystified
Generic Setup De-MystifiedClayton Parker
 
Buildout: Fostering Repeatability
Buildout: Fostering RepeatabilityBuildout: Fostering Repeatability
Buildout: Fostering RepeatabilityClayton Parker
 
Getting Plone Ready For The Prom
Getting Plone Ready For The PromGetting Plone Ready For The Prom
Getting Plone Ready For The PromClayton Parker
 

Mehr von Clayton Parker (15)

Customizing Your Shell With Dotfiles
Customizing Your Shell With DotfilesCustomizing Your Shell With Dotfiles
Customizing Your Shell With Dotfiles
 
Vim for Mere Mortals
Vim for Mere MortalsVim for Mere Mortals
Vim for Mere Mortals
 
Fuzzy Feelings for Fuzzy Matching
Fuzzy Feelings for Fuzzy MatchingFuzzy Feelings for Fuzzy Matching
Fuzzy Feelings for Fuzzy Matching
 
So you think you can pdb?
So you think you can pdb?So you think you can pdb?
So you think you can pdb?
 
Managing Chaos: Merging 120 Sites into a single Plone Multisite Solution
Managing Chaos: Merging 120 Sites into a single Plone Multisite SolutionManaging Chaos: Merging 120 Sites into a single Plone Multisite Solution
Managing Chaos: Merging 120 Sites into a single Plone Multisite Solution
 
Current State of Python Packaging
Current State of Python PackagingCurrent State of Python Packaging
Current State of Python Packaging
 
Notre Dame Seamless Syndication with Lineage
Notre Dame Seamless Syndication with LineageNotre Dame Seamless Syndication with Lineage
Notre Dame Seamless Syndication with Lineage
 
Make Plone Search Act Like Google Using Solr
Make Plone Search Act Like Google Using SolrMake Plone Search Act Like Google Using Solr
Make Plone Search Act Like Google Using Solr
 
Migrating from drupal to plone with transmogrifier
Migrating from drupal to plone with transmogrifierMigrating from drupal to plone with transmogrifier
Migrating from drupal to plone with transmogrifier
 
LDAP and Active Directory Authentication in Plone
LDAP and Active Directory Authentication in PloneLDAP and Active Directory Authentication in Plone
LDAP and Active Directory Authentication in Plone
 
Code with Style - PyOhio
Code with Style - PyOhioCode with Style - PyOhio
Code with Style - PyOhio
 
Code with style
Code with styleCode with style
Code with style
 
Generic Setup De-Mystified
Generic Setup De-MystifiedGeneric Setup De-Mystified
Generic Setup De-Mystified
 
Buildout: Fostering Repeatability
Buildout: Fostering RepeatabilityBuildout: Fostering Repeatability
Buildout: Fostering Repeatability
 
Getting Plone Ready For The Prom
Getting Plone Ready For The PromGetting Plone Ready For The Prom
Getting Plone Ready For The Prom
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Buildout for the Future

  • 1. Clayton Parker, Senior Web Developer Buildout for the Future PLONE CONFERENCE 2010 Thursday, October 28, 2010
  • 2. PLONE CONFERENCE 2010Who Am I? • claytron • Python dev since 2003 • Plone Core Committer • Foundation Member Thursday, October 28, 2010
  • 3. PLONE CONFERENCE 2010What Will We Learn? • Pinning • Indexes • Buildout Tricks Thursday, October 28, 2010
  • 4. PLONE CONFERENCE 2010Problems with Buildout • PyPi • Lost/deleted packages • Version conflicts Thursday, October 28, 2010
  • 5. PLONE CONFERENCE 2010PinningVersions • [versions] • Local config • Extended URLs Thursday, October 28, 2010
  • 6. PLONE CONFERENCE 2010Versions [buildout] # tell buildout to use the [versions] part versions = versions [versions] my.package = 1.0 some.other.package = 2.0 Thursday, October 28, 2010
  • 7. PLONE CONFERENCE 2010PloneVersions [buildout] extends = http://dist.plone.org/release/4.0.1/versions.cfg Thursday, October 28, 2010
  • 8. PLONE CONFERENCE 2010Plone versions.cfg [buildout] extends = http://download.zope.org/Zope2/index/2.12.11/versions.cfg [versions] # Buildout infrastructure plone.recipe.zope2instance = 4.0.4 plone.recipe.zeoserver = 1.1.1 ... # External dependencies Markdown = 2.0.3 PIL = 1.1.6 ... # Plone release Plone= 4.0.1 ... Thursday, October 28, 2010
  • 9. PLONE CONFERENCE 2010Zope versions.cfg [buildout] versions = versions [versions] Zope2 = 2.12.11 ... Thursday, October 28, 2010
  • 10. PLONE CONFERENCE 2010Our versions.cfg ## buildout.cfg [buildout] extends = http://dist.plone.org/release/4.0.1/versions.cfg versions.cfg ## versions.cfg [versions] my.package = 1.0 some.other.package = 2.0 Thursday, October 28, 2010
  • 11. PLONE CONFERENCE 2010GettingVersions $ bin/buildout -v ... Installing instance We have the distribution that satisfies 'Plone==4.0.1'. We have the distribution that satisfies 'plone.app.caching==1.0b1'. We have the distribution that satisfies 'plone.app.ldap==1.2.3'. We have the distribution that satisfies 'plone.reload==1.5'. We have the distribution that satisfies 'zope.testrecorder==0.4'. We have the distribution that satisfies 'Products.PDBDebugMode==1.1'. We have the distribution that satisfies 'Products.PrintingMailHost==0.7'. We have the distribution that satisfies 'Products.DocFinderTab==1.0.4'. We have the distribution that satisfies 'Products.signalstack==1.0rc2'. We have the distribution that satisfies 'Products.PTProfiler==1.4'. We have the distribution that satisfies 'Products.DCWorkflowGraph==0.4'. We have the distribution that satisfies 'ipdb==0.2'. We have the distribution that satisfies 'plone.recipe.zope2instance==4.0.4'. Getting required 'Zope2==2.12.11' We have the distribution that satisfies 'Zope2==2.12.11'. Thursday, October 28, 2010
  • 12. PLONE CONFERENCE 2010Dump Picked Versions [buildout] extensions = buildout.dumppickedversions Thursday, October 28, 2010
  • 13. PLONE CONFERENCE 2010Dump Picked Versions $ bin/buildout -v ... *************** PICKED VERSIONS **************** [versions] PILwoTk = 1.1.6.4 Products.DCWorkflowGraph = 0.4 Products.DocFinderTab = 1.0.4 Products.PDBDebugMode = 1.1 Products.PTProfiler = 1.4 Products.PrintingMailHost = 0.7 Products.signalstack = 1.0rc2 ipdb = 0.2 plone.app.caching = 1.0b1 plone.app.ldap = 1.2.3 zope.testrecorder = 0.4 *************** /PICKED VERSIONS *************** Thursday, October 28, 2010
  • 14. PLONE CONFERENCE 2010Extended URLs [buildout] extends = # Plone's set of version dependencies http://dist.plone.org/release/4.0.1/versions.cfg # specific versions for plone.app.caching package http://good-py.appspot.com/release/plone.app.caching/1.0b1 # our version overrides and add-on packages versions.cfg Thursday, October 28, 2010
  • 15. PLONE CONFERENCE 2010Public Indexes • PyPi • Mirrors • Plone dist • http://dist.plone.org/ • Company dist • http://dist.company.com/public/ Thursday, October 28, 2010
  • 16. PLONE CONFERENCE 2010Find Links [buildout] find-links = http://dist.plone.org/release/4.0.1/ [buildout] plone-version = 4.0.1 extends = http://dist.plone.org/release/${:plone-version}/versions.cfg find-links = http://dist.plone.org/release/${:plone-version}/ Thursday, October 28, 2010
  • 17. PLONE CONFERENCE 2010Private Indexes • Customer eggs • Customer archives • Not ready for pypi • Branches / trunk Thursday, October 28, 2010
  • 18. PLONE CONFERENCE 2010Solutions • Apache / nginx • Plone Software Center • basketweaver • haufe.eggserver • ClueReleaseManager Thursday, October 28, 2010
  • 19. PLONE CONFERENCE 2010Apache • Use directory listings • Basic auth for protection • mod_ldap for integration Thursday, October 28, 2010
  • 20. PLONE CONFERENCE 2010Config <Location /private/myproject> AuthType Basic AuthName "myproject" # hook up to ldap or a password file # ... </Location> Thursday, October 28, 2010
  • 21. PLONE CONFERENCE 2010lovely.buildouthttp • Access private egg repos • Also tied into download recipes myproject,https://dist.example.com/private/myproject,username,password Thursday, October 28, 2010
  • 22. PLONE CONFERENCE 2010Releasing Eggs • jarn.mkrelease • zest.releaser Thursday, October 28, 2010
  • 23. PLONE CONFERENCE 2010~/.pypirc [distutils] index-servers = pypi plone.org [pypi] username: username password: password [plone.org] repository: http://plone.org/products username: username password: password Thursday, October 28, 2010
  • 24. PLONE CONFERENCE 2010~/.mkrelease [defaults] distbase = distdefault = public [aliases] public = dist.company.com:/var/dist/public myproject = dist.company.com:/var/dist/private/myproject world = public pypi plone-world = world plone.org Thursday, October 28, 2010
  • 25. PLONE CONFERENCE 2010mkrelease $ mkrelease -d myproject $ mkrelease -d public $ mkrelease -d plone-world Thursday, October 28, 2010
  • 26. PLONE CONFERENCE 2010Buildout Profiles • Debugging / local dev • Production Thursday, October 28, 2010
  • 27. PLONE CONFERENCE 2010Profiles my-buildout "## buildout.cfg "## parts "## profiles $   "## base.cfg $   "## debug.cfg $   "## local.cfg $   "## prod.cfg $   &## versions.cfg &## var Thursday, October 28, 2010
  • 28. PLONE CONFERENCE 2010Annotate • Check config • Debug issues • Verify settings Thursday, October 28, 2010
  • 29. PLONE CONFERENCE 2010Annotate $ bin/buildout annotate $ bin/buildout -c profiles/prod.cfg annotate Thursday, October 28, 2010