SlideShare a Scribd company logo
Releasing and deploying  python tools Andriy Mylenkyy © Quintagroup, 2009
Plan Introduction zest.releaser zest.stabilizer collective.dist zc.sourcerelease collective.releaser
Problem & Purposes Problem: A lot of routing work with svn Routing with product release Different buildout configurations
zest.releaser Summary: (for 1.1.3 ver.) package releasing made easy Updates the version number either in setup.py or in version.txt. Updates the history/changes file Tags the release in svn  Uploads a source release to pypi
Commands: prereleas release postrelease fullrelease Aspects: Must   be version.txt or setup.py Ask for creating tags directory (if absent) Interactive mode Work with any branches (not only trunk) zest.releaser (2)
zest.stabilizer Summary: (for 1.2.2 version) Move the trunk checkouts in your development buildout to tag checkouts in your production buildout.  Requirements: unstable.cfg, stable.cfg expects "ourpackages" parts in unstable.cfg Packages in ourpackages must be checked out in appropriate directory
zest.stabilizer (2) Installation as any python package: easy_install zest.stabilizer Commands: stabilize ZestSkel paster template  http://tgz.zestsoftware.nl/eggs/ZestSkel-0.6.tar.gz
collective.dist Summary: Distutils commands to upload files to several servers Extend distutils with 2 commands: mupload mregister Configured with ~/.pypirc Added to standard python-2.6 distribution
collective.dist (2) [distutils] index-servers= pypi plone.org pypi-personal [pypi] username:user password:pswd [plone.org] repository:http://plone.org/products username:ploneuser password:pswd [pypi-personal] username:user2 password: .pypirc
collective.dist (3) Several pypi servers configurations -r  option point to repository If no password present deal with several profiles on PyPI itself $ python setup.py mregister sdist mupload $ python setup.py mregister sdist mupload \ -r plone.org
zc.sourcerelease Summary: create source releases from buildouts buildout-source-release –  script generates a source release from a buildout  create gzipped tar archive includes data from download cache, eggs  release includes a  install.py  script For file://... - full path
zc.sourcerelease (2) test.buildout/ |-- README.txt |-- bootstrap.py |-- buildout.cfg `-- products `-- README.txt ... $ buildout-source-release  file:// tmp/test.buildout  buildout.cfg ... $ ls . ... test.buildout.tgz $ buildout-source-release  http:// svn/test.buildout  production.cfg   -n  production.buildout ... $ls . production.buildout.tgz
zc.sourcereleas (3) test.buildout  ... |-- buildout.cfg  |--  eggs   |  |-- setuptools-0.6c9-py2.4.egg  |  |-- EGG-INFO  ... |  |  `-- site.pyc  |  `-- zc.buildout-1.2.1-py2.4.egg  |  |-- EGG-INFO  ... |--  install.py |-- products |  `-- README.txt `--  release-distributions `-- dist |-- infrae.subversion-1.4.5.tar.gz |-- py-0.9.2.zip `-- zc.buildout-1.2.1.tar.gz
collective.releaser Summary: make  it  easier to release and deploy zc.buildout/subversion based projects new setuptools commands: release; build_mo console scripts: project_release; project_deploy; project_md5; project_copy_eggs; project_svn_prepare hook to launch actions when a package is released (default: sends an email) paste template:  releaser_project
collective.releaser. (2) Project structure   releaser_project   paster template. $ paster create -t releaser_project my_project $ svn import my_project http://some.svn/my_project -m "initial commit"  /buildout /packages /bundles /releases /buildbot /docs /root /1.0 /2.0 /egg.1 /egg.2 /buildout.cfg /Extermals.txt /Prod.tgz
In packages dir: Create package (with paster create) package_svn_prepare <new.pack> prepare svn structure checkin to project/packages Mailing support In <new.pack>/setup.cfg collective.releaser (3) Packages
collective.releaser (4) Releasing eggs release  in package dir: python setup.py release run tests before releasing upgrading the setup.py version creating a branch and a tag in svn pushing the package to the various PyPI-like servers sending a mail with the changes, if the mail_hook section was provided in setup.cfg
collective.releaser (5) Releasing project release  in package dir: project_release run from buildout directory copy buildout to  releases/<ver>  in  Add  version.txt  in releases/<ver> for pinging eggs versions. project_deploy Take buildout configuration file as param build a tarball buildout can be reinstalled offline
collective.releaser (7) Upgrading buildout project_eggs  in buildout dir: Usefull for upgrade eggs in project

More Related Content

What's hot (20)

PDF
SCAP for openSUSE
Kazuki Omo
 
PPTX
Install odoo v8 the easiest way on ubuntu debian
Francisco Servera
 
PDF
Gitlab installation
Raiful Hasan
 
PPT
Python virtualenv & pip in 90 minutes
Larry Cai
 
PDF
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PDF
Getting Started on Packaging Apps with Open Build Service
Andi Sugandi
 
PDF
How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
Kentaro Hatori
 
PDF
Docker e postgresql
Fernando Ike
 
PDF
How to install & update R packages?
Rsquared Academy
 
PPTX
How to manage Microsoft Azure with open source
Taehee Jang
 
PDF
9 steps to install and configure postgre sql from source on linux
chinkshady
 
PPTX
Docker for Java developers at JavaLand
Johan Janssen
 
PPTX
Dockerizing WordPress
dotCloud
 
PDF
CoreOSによるDockerコンテナのクラスタリング
Yuji ODA
 
PDF
이미지 기반의 배포 패러다임 Immutable infrastructure
Daegwon Kim
 
PPTX
OpenStack : DevStack installation using VirtualBox & Ubnutu (Juno with Neutron)
Ian Choi
 
ODP
Fabric: A Capistrano Alternative
Panoptic Development, Inc.
 
PPTX
Installing and running Postfix within a docker container from the command line
dotCloud
 
PDF
Jump into Squeak - Integrate Squeak projects with Docker & Github
hubx
 
PDF
Open erp on ubuntu
Iker Coranti
 
SCAP for openSUSE
Kazuki Omo
 
Install odoo v8 the easiest way on ubuntu debian
Francisco Servera
 
Gitlab installation
Raiful Hasan
 
Python virtualenv & pip in 90 minutes
Larry Cai
 
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Getting Started on Packaging Apps with Open Build Service
Andi Sugandi
 
How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
Kentaro Hatori
 
Docker e postgresql
Fernando Ike
 
How to install & update R packages?
Rsquared Academy
 
How to manage Microsoft Azure with open source
Taehee Jang
 
9 steps to install and configure postgre sql from source on linux
chinkshady
 
Docker for Java developers at JavaLand
Johan Janssen
 
Dockerizing WordPress
dotCloud
 
CoreOSによるDockerコンテナのクラスタリング
Yuji ODA
 
이미지 기반의 배포 패러다임 Immutable infrastructure
Daegwon Kim
 
OpenStack : DevStack installation using VirtualBox & Ubnutu (Juno with Neutron)
Ian Choi
 
Fabric: A Capistrano Alternative
Panoptic Development, Inc.
 
Installing and running Postfix within a docker container from the command line
dotCloud
 
Jump into Squeak - Integrate Squeak projects with Docker & Github
hubx
 
Open erp on ubuntu
Iker Coranti
 

Viewers also liked (20)

PDF
Buildout for the Future
Clayton Parker
 
PDF
Exploring Code with Pry!
Clayton Parker
 
PDF
Introduction to buildout
jbl2024
 
PPTX
Facebook 2010
Will Flavell
 
PDF
Using Buildout, GenericSetup and a Policy Package to Rule the World
Clayton Parker
 
PDF
Using Python Packages - An Overview
Daniel Hepper
 
PDF
Buildout future
Clayton Parker
 
ODP
Marek Kuziel - Deploying Django with Buildout
marekkuziel
 
PDF
Zen and the Art of Python
Clayton Parker
 
PDF
Using Buildout to Develop and Deploy Python Projects
Clayton Parker
 
PPTX
Python project
Young Song
 
PDF
Python Científico
Márcio Ramos
 
PDF
Elisator slides for Maemo Summit 2008
Manrique Lopez
 
PDF
Snow cover assessment tool using Python
Prasun Kumar Gupta
 
PDF
Symbology Automation using ArcPy
Qust04
 
PPTX
First python project
Neetu Jain
 
PDF
Python in the Financial Industry The universal tool for end-to-end developme...
PyData
 
PDF
Maintain and share your python project (維護和分享 Python 程式專案)
Fred Lin
 
PPTX
A Data Scientist Job Map Visualization Tool using Python, D3.js and MySQL
Andrea Gigli
 
PPTX
Geoprocessing(Building Your Own Tool) and Geostatistical Analysis(An Introdu...
Nepal Flying Labs
 
Buildout for the Future
Clayton Parker
 
Exploring Code with Pry!
Clayton Parker
 
Introduction to buildout
jbl2024
 
Facebook 2010
Will Flavell
 
Using Buildout, GenericSetup and a Policy Package to Rule the World
Clayton Parker
 
Using Python Packages - An Overview
Daniel Hepper
 
Buildout future
Clayton Parker
 
Marek Kuziel - Deploying Django with Buildout
marekkuziel
 
Zen and the Art of Python
Clayton Parker
 
Using Buildout to Develop and Deploy Python Projects
Clayton Parker
 
Python project
Young Song
 
Python Científico
Márcio Ramos
 
Elisator slides for Maemo Summit 2008
Manrique Lopez
 
Snow cover assessment tool using Python
Prasun Kumar Gupta
 
Symbology Automation using ArcPy
Qust04
 
First python project
Neetu Jain
 
Python in the Financial Industry The universal tool for end-to-end developme...
PyData
 
Maintain and share your python project (維護和分享 Python 程式專案)
Fred Lin
 
A Data Scientist Job Map Visualization Tool using Python, D3.js and MySQL
Andrea Gigli
 
Geoprocessing(Building Your Own Tool) and Geostatistical Analysis(An Introdu...
Nepal Flying Labs
 
Ad

Similar to Releasing and deploying python tools (20)

PPT
How to host an app for $20 in 20min using buildout and hostout
Dylan Jay
 
ODP
ZopeSkel & Buildout packages
Quintagroup
 
ODP
Managing Plone Projects with Perl and Subversion
Luciano Rocha
 
PDF
Django & Buildout (en)
zerok
 
ODP
Buildout: creating and deploying repeatable applications in python
CodeSyntax
 
PPT
Django Deployment
Tareque Hossain
 
PDF
Deployment Tactics
Ian Barber
 
ODP
Opps I deployed it again-ploneconf2010
Dylan Jay
 
PDF
delivering applications with zc.buildout and a distributed model - Plone Conf...
Tarek Ziadé De Turcey
 
PDF
Plone 3 2: What's New
Steve McMahon
 
PDF
Martin Aspeli Extending And Customising Plone 3
Vincenzo Barone
 
PDF
Towards Continuous Deployment with Django
Roger Barnes
 
PDF
Introduction to zc.buildout
Ricardo Newbery
 
PDF
Repeatable Deployments and Installations
Idan Gazit
 
PDF
From Zero to Hero @ PyGrunn 2014
meij200
 
PDF
Oops, where's my site?
David Glick
 
PDF
Deploying software at Scale
Kris Buytaert
 
PDF
Automated deployment
Sardorbek Muminov
 
ODP
Buildout: How to maintain big app stacks without losing your mind
Dylan Jay
 
ODP
Opps i deployed it again
Dylan Jay
 
How to host an app for $20 in 20min using buildout and hostout
Dylan Jay
 
ZopeSkel & Buildout packages
Quintagroup
 
Managing Plone Projects with Perl and Subversion
Luciano Rocha
 
Django & Buildout (en)
zerok
 
Buildout: creating and deploying repeatable applications in python
CodeSyntax
 
Django Deployment
Tareque Hossain
 
Deployment Tactics
Ian Barber
 
Opps I deployed it again-ploneconf2010
Dylan Jay
 
delivering applications with zc.buildout and a distributed model - Plone Conf...
Tarek Ziadé De Turcey
 
Plone 3 2: What's New
Steve McMahon
 
Martin Aspeli Extending And Customising Plone 3
Vincenzo Barone
 
Towards Continuous Deployment with Django
Roger Barnes
 
Introduction to zc.buildout
Ricardo Newbery
 
Repeatable Deployments and Installations
Idan Gazit
 
From Zero to Hero @ PyGrunn 2014
meij200
 
Oops, where's my site?
David Glick
 
Deploying software at Scale
Kris Buytaert
 
Automated deployment
Sardorbek Muminov
 
Buildout: How to maintain big app stacks without losing your mind
Dylan Jay
 
Opps i deployed it again
Dylan Jay
 
Ad

More from Quintagroup (20)

PDF
Georgian OCDS API
Quintagroup
 
PDF
Open procurement - Auction module
Quintagroup
 
PDF
OpenProcurement toolkit
Quintagroup
 
PDF
Open procurement italian
Quintagroup
 
PDF
Plone SEO: Пошукова оптимізація Плон сайтів
Quintagroup
 
PPT
Plone 4. Що нового?
Quintagroup
 
ODP
Calendar for Plone
Quintagroup
 
ODP
Packages, Releases, QGSkel
Quintagroup
 
PPT
Integrator Series: Large files
Quintagroup
 
PPT
Python Objects
Quintagroup
 
PPT
Python Evolution
Quintagroup
 
ODP
Screen Player
Quintagroup
 
ODP
GNU Screen
Quintagroup
 
PPT
New in Plone 3.3. What to expect from Plone 4
Quintagroup
 
PPT
Overview of Plone-based websites for mobile devices.
Quintagroup
 
ODP
Ecommerce Solutions for Plone
Quintagroup
 
ODP
Templating In Buildout
Quintagroup
 
ODP
Zope 3 at Google App Engine
Quintagroup
 
ODP
Plone в урядових проектах
Quintagroup
 
ODP
Використання системи Plone для створення університетських вебсайтів
Quintagroup
 
Georgian OCDS API
Quintagroup
 
Open procurement - Auction module
Quintagroup
 
OpenProcurement toolkit
Quintagroup
 
Open procurement italian
Quintagroup
 
Plone SEO: Пошукова оптимізація Плон сайтів
Quintagroup
 
Plone 4. Що нового?
Quintagroup
 
Calendar for Plone
Quintagroup
 
Packages, Releases, QGSkel
Quintagroup
 
Integrator Series: Large files
Quintagroup
 
Python Objects
Quintagroup
 
Python Evolution
Quintagroup
 
Screen Player
Quintagroup
 
GNU Screen
Quintagroup
 
New in Plone 3.3. What to expect from Plone 4
Quintagroup
 
Overview of Plone-based websites for mobile devices.
Quintagroup
 
Ecommerce Solutions for Plone
Quintagroup
 
Templating In Buildout
Quintagroup
 
Zope 3 at Google App Engine
Quintagroup
 
Plone в урядових проектах
Quintagroup
 
Використання системи Plone для створення університетських вебсайтів
Quintagroup
 

Recently uploaded (20)

PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 

Releasing and deploying python tools

  • 1. Releasing and deploying python tools Andriy Mylenkyy © Quintagroup, 2009
  • 2. Plan Introduction zest.releaser zest.stabilizer collective.dist zc.sourcerelease collective.releaser
  • 3. Problem & Purposes Problem: A lot of routing work with svn Routing with product release Different buildout configurations
  • 4. zest.releaser Summary: (for 1.1.3 ver.) package releasing made easy Updates the version number either in setup.py or in version.txt. Updates the history/changes file Tags the release in svn Uploads a source release to pypi
  • 5. Commands: prereleas release postrelease fullrelease Aspects: Must be version.txt or setup.py Ask for creating tags directory (if absent) Interactive mode Work with any branches (not only trunk) zest.releaser (2)
  • 6. zest.stabilizer Summary: (for 1.2.2 version) Move the trunk checkouts in your development buildout to tag checkouts in your production buildout. Requirements: unstable.cfg, stable.cfg expects &quot;ourpackages&quot; parts in unstable.cfg Packages in ourpackages must be checked out in appropriate directory
  • 7. zest.stabilizer (2) Installation as any python package: easy_install zest.stabilizer Commands: stabilize ZestSkel paster template http://tgz.zestsoftware.nl/eggs/ZestSkel-0.6.tar.gz
  • 8. collective.dist Summary: Distutils commands to upload files to several servers Extend distutils with 2 commands: mupload mregister Configured with ~/.pypirc Added to standard python-2.6 distribution
  • 9. collective.dist (2) [distutils] index-servers= pypi plone.org pypi-personal [pypi] username:user password:pswd [plone.org] repository:http://plone.org/products username:ploneuser password:pswd [pypi-personal] username:user2 password: .pypirc
  • 10. collective.dist (3) Several pypi servers configurations -r option point to repository If no password present deal with several profiles on PyPI itself $ python setup.py mregister sdist mupload $ python setup.py mregister sdist mupload \ -r plone.org
  • 11. zc.sourcerelease Summary: create source releases from buildouts buildout-source-release – script generates a source release from a buildout create gzipped tar archive includes data from download cache, eggs release includes a install.py script For file://... - full path
  • 12. zc.sourcerelease (2) test.buildout/ |-- README.txt |-- bootstrap.py |-- buildout.cfg `-- products `-- README.txt ... $ buildout-source-release file:// tmp/test.buildout buildout.cfg ... $ ls . ... test.buildout.tgz $ buildout-source-release http:// svn/test.buildout production.cfg -n production.buildout ... $ls . production.buildout.tgz
  • 13. zc.sourcereleas (3) test.buildout ... |-- buildout.cfg |-- eggs | |-- setuptools-0.6c9-py2.4.egg | |-- EGG-INFO ... | | `-- site.pyc | `-- zc.buildout-1.2.1-py2.4.egg | |-- EGG-INFO ... |-- install.py |-- products | `-- README.txt `-- release-distributions `-- dist |-- infrae.subversion-1.4.5.tar.gz |-- py-0.9.2.zip `-- zc.buildout-1.2.1.tar.gz
  • 14. collective.releaser Summary: make it easier to release and deploy zc.buildout/subversion based projects new setuptools commands: release; build_mo console scripts: project_release; project_deploy; project_md5; project_copy_eggs; project_svn_prepare hook to launch actions when a package is released (default: sends an email) paste template: releaser_project
  • 15. collective.releaser. (2) Project structure releaser_project paster template. $ paster create -t releaser_project my_project $ svn import my_project http://some.svn/my_project -m &quot;initial commit&quot; /buildout /packages /bundles /releases /buildbot /docs /root /1.0 /2.0 /egg.1 /egg.2 /buildout.cfg /Extermals.txt /Prod.tgz
  • 16. In packages dir: Create package (with paster create) package_svn_prepare <new.pack> prepare svn structure checkin to project/packages Mailing support In <new.pack>/setup.cfg collective.releaser (3) Packages
  • 17. collective.releaser (4) Releasing eggs release in package dir: python setup.py release run tests before releasing upgrading the setup.py version creating a branch and a tag in svn pushing the package to the various PyPI-like servers sending a mail with the changes, if the mail_hook section was provided in setup.cfg
  • 18. collective.releaser (5) Releasing project release in package dir: project_release run from buildout directory copy buildout to releases/<ver> in Add version.txt in releases/<ver> for pinging eggs versions. project_deploy Take buildout configuration file as param build a tarball buildout can be reinstalled offline
  • 19. collective.releaser (7) Upgrading buildout project_eggs in buildout dir: Usefull for upgrade eggs in project