473,735 Members | 5,287 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Python Projects Continuous Integration

Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.

Cheers,

Dave.

Jul 28 '06 #1
8 4220
"Dave Potts" <d.*******@bcs. org.ukwrites:
Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.

Cheers,

Dave.
First, sorry to hear you have had to use Java. You should recover
after a few months in Python. Second, welcome to Python. Third, some
of us emacs as our IDE.

I presume you often have several packages open at once, each with its
own regression tests, own documentation, and own CVS or SVN "module".
You may also have multiple coding languages going at once (e.g.,
Python, C, C++, FORTRAN, Lisp, PROLOG). Doing this in emacs:

1. Make a separate instance for each package being edited. In the
instance make separate frames for a) code buffers, b) test case
buffers, c) doc buffers. In the test frame, make a shell window
where you can run go_test, thus running your testsuite for that
package. In the doc frame, make a shell window where you can run
go_doc. (Must of couse have written those go_ scripts, also done
in emacs of course.).

If there are too many things happening for one desktop, run each
package in a separate desktop (you are working in an OS which has
virtual screens, right?).

2. Do CVS checkin/checkout in tool of your choice. Emacs can do it. I
prefer tkcvs, with editor set to emacs and diff set to emacs's'
ediff. Personal preference.

3. Do documentation in the tool of your choice. Emacs can support
pretty much any natural language, and has markups for just about
any markup mechanism (SGML, XHTML, etc.). I use my own Pdx, edited
in emacs, and thus autogenerate HTML, PDF, LaTeX, etc. Again,
personal preference. At a minimum, use some mechanism which allow
autogeneration of documentation, auto inclusion of code snippets,
and hyperlinking. Since the go_doc is run in an emacs shell, use
alt-P-return to rerun the line. Redocumenting is thus a 2
keystroke effort.

4. Do testing using a batch go_test script, running a suite built from
unittest. As needed, write debug statements to another buffer in
that frame, where you can use full emacs functionallity to search
it. Since the go_test is run in an emacs shell, use alt-P-return
to rerun the line. Retesting is thus a 2 keystroke effort.

5. Oh, yes, coding. Emacs's python-mode.el works fine. Colorize or
not as you see fit. There are ways to set up code-completion, but
personally I never do it. You can setup etags but I never do --
emacs search and grep-find do what I need. Personal preference.

6. Use exactly the same setup for language after language, decade
after decade, platform after platform. Use your brain cells form
something useful, like learning new technologies and new
algorithms.
--
Harry George
PLM Engineering Architecture
Jul 28 '06 #2

Harry George wrote:
"Dave Potts" <d.*******@bcs. org.ukwrites:
Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.

Cheers,

Dave.

First, sorry to hear you have had to use Java. You should recover
after a few months in Python. Second, welcome to Python.
If you are serious about welcoming someone to Python, don't start by
making snide comments about their primary computer language. There are
trade-offs between Python and language X, for almost all X's.

Jul 28 '06 #3
Dave Potts wrote:
Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.
Coming from the world of Java, you probably are familiar with Eclipse?
Might even have it installed already?

Eclipse comes with a very cool Python perspective, called Pydev.
Installation instructions can be found at: http://pydev.sourceforge.net/

Code completion, syntax coloring, etc etc, in my opinion Eclipse/Pydev
is one of the most convenient/advanced environments in which to work
with Python.

baalbek
Aug 6 '06 #4
Dave Potts wrote:
Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.

Cheers,

Dave.
Buildbot might be what you are looking for:
http://buildbot.sourceforge.net/

Hope this helps,
Ziga

Aug 7 '06 #5
Ant

Harry George wrote:
[snip stuff about how to set emacs up as your IDE]
Not sure which post you read, but the OP of this thread was asking
about continuous integration, not integrated development environments.
i.e. tools to *automatically* check out code when the repository has
changed, build it if necessary (perhaps if there are C modules in the
case of python) and run the unit tests.

To the OP: you could of course simply continue to use cruise - it's
only a tool after all, and won't require any additional learning if you
are already having to learn a new language with all the associated
libraries and idioms.

Aug 7 '06 #6

Dave Potts wrote:
Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.
Hello Dave,

At Resolver Systems we use Cruise Control .NET along with IronPython
and Subversion to provide Source Code Control and continuous
integration. The combination is *great*.

I've never had to configure it (I just poke it occassionally), but it
*looks* like it should be usable with non .NET projects: we have it
running all sorts of batch files and Python scripts as part of the
built and test process.

All the best,

Fuzzyman
http://www.voidspace.org.uk/python/index.shtml
Cheers,

Dave.
Aug 7 '06 #7
Ziga Seilnacht wrote:
Dave Potts wrote:
Hi,

I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.

Cheers,

Dave.

Buildbot might be what you are looking for:
http://buildbot.sourceforge.net/

Hope this helps,
Ziga
+1 for buildbot. It is amazingly flexible and powerful, once you get
past staring at the configuration file and trying to make sense of it.
Here's a blog post I wrote that can help you get started:
<http://agiletesting.bl ogspot.com/2006/02/continuous-integration-with-buildbot.html>.

Hope this helps,

Grig

Aug 7 '06 #8
Hello Dave,
I'm just starting a development project in Python having spent time in
the Java world. I was wondering what tool advice you could give me
about setting up a continuous integration environment for the python
code: get the latest source, run all the tests, package up, produce the
docs, tag the code repository. I'm used to things like Maven and
CruiseControl in the Java world.
If you are familiar with CruiseControl and Maven then it shouldn't be
too complicated to write a Maven file that run the tests, package up,
produce the docs. CruiseControl can take care of all the rest.

I also found that writing a simple Continuous integration system myself
was a very simple task in Python, it might be a good choice as well. (I
resorted to this solution after giving up on trying to install Java on
OpenBSD.)

HTH,
Miki
http://pythonwise.blogspot.com/

Aug 8 '06 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

36
6393
by: Andrea Griffini | last post by:
I did it. I proposed python as the main language for our next CAD/CAM software because I think that it has all the potential needed for it. I'm not sure yet if the decision will get through, but something I'll need in this case is some experience-based set of rules about how to use python in this context. For example... is defining readonly attributes in classes worth the hassle ? Does duck-typing scale well in complex
0
1252
by: Wolfgang Keller | last post by:
Hello, Python seems to be used quite a lot for (the integration of) enterprise applications. Just as an example, there are at least three (projects for the implementation of) ERP systems in Python: - GNUenterprise - ERP5 - TinyERP
14
1888
by: Giovanni Bajo | last post by:
Hello, python24.dll is much bigger than python23.dll. This was discussed already on the newsgroup, see the thread starting here: http://mail.python.org/pipermail/python-list/2004-July/229096.html I don't think I fully understand the reason why additional .pyd modules were built into the .dll. OTOH, this does not help anyone, since: - Normal users don't care about the size of the pythonXX.dll, or the number of
19
7168
by: Nicolas Pernetty | last post by:
Hello, I'm looking for any work/paper/ressource about continuous system simulation using Python or any similar object oriented languages (or even UML theory !). I'm aware of SimPy for discrete event simulation, but I haven't found any work about continuous system. I would like to develop a generic continous system simulator, and so would be eager to join any open source effort on the subject.
162
10279
by: Sh4wn | last post by:
Hi, first, python is one of my fav languages, and i'll definitely keep developing with it. But, there's 1 one thing what I -really- miss: data hiding. I know member vars are private when you prefix them with 2 underscores, but I hate prefixing my vars, I'd rather add a keyword before it. Python advertises himself as a full OOP language, but why does it miss one of the basic principles of OOP? Will it ever be added to python?
5
3317
by: Hussein B | last post by:
Hi. Please correct my if I'm wrong but it seems to me that the major continuous integration servers (Hudson, CruiseControl, TeamCity ..) don't support Python based application. It seems they mainly support Java, .NET and Ruby. Can I use one of the previous listed servers for Python project? Thanks.
0
854
by: Jean-Paul Calderone | last post by:
On Tue, 29 Jul 2008 07:47:35 -0700 (PDT), Hussein B <hubaghdadi@gmail.comwrote: I haven't used CruiseControl or the other CIS you mention, but I suspect they can probably support Python programs. The CruiseControl docs suggest that it supports builder plugins which can do arbitrary things. However, one CIS written in Python (which can also handle arbitrary builds, not just builds of Python software) is buildbot:
6
1782
by: Hussein B | last post by:
Hi. Apache Ant is the de facto building tool for Java (whether JSE, JEE and JME) application. With Ant you can do what ever you want: compile, generate docs, generate code, packing, deploy, connecting to remote servers and every thing. Do we have such a tool for Python projects? Thank you.
0
1160
by: Goldfish | last post by:
Spring Python 0.6.0, the python offshoot of the Spring framework and Spring Security, has been released (http:// springpython.webfactional.com). See http://sourceforge.net/project/showfiles.php?group_id=184275&package_id=214366&release_id=624328 for more details. BTW, if you click on the release notes link, there is a report pulled from JIRA (our new bug tracking software) showing the issues. For more details, you have to create an...
0
8784
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9326
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9248
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9199
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6747
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6049
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4558
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4821
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
2738
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.