<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7586162137641309230</id><updated>2012-02-17T03:27:25.666Z</updated><category term='my first post'/><title type='text'>python technologies</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-6342357399783833703</id><published>2010-08-16T09:22:00.010Z</published><updated>2010-08-16T10:50:04.944Z</updated><title type='text'>[PyTI] PyPI Testing Infrastructure (summary)</title><content type='html'>Hello All,&lt;br /&gt;&lt;br /&gt;the GSoC finish today, so i just wanted to give you a update of the status of the project that i have been working on during this last 3 mount, but first of all i want to thanks all the people that help me to accomplish this work specially my mentor Jesse Noller for all his advices and remarks , and i want to thanks all the team of packagers that you can found on this &lt;a href="http://teckla.idyll.org/~t/planet-distutils/"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As usual the project can be found on &lt;a href="http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/"&gt;the repository&lt;/a&gt; where you can find more information about the project , how to install the application.&lt;br /&gt;&lt;br /&gt;An other thing the project is already deployed on : &lt;a href="http://lyorn.idyll.org:8084/"&gt;PyTI&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;For the issues and bugs in the project check also : &lt;a href="http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/issues?status=new&amp;status=open"&gt;issues and bugs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;About all the weekly report that we did have to write in every week check : &lt;a href="http://groups.google.com/group/the-fellowship-of-the-packaging"&gt;ML&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How it's work ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you can follow the &lt;a href="http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/src/tip/HOW%20TO%20INSTALL"&gt;How to install&lt;/a&gt; to get the application ready.&lt;br /&gt;&lt;br /&gt;now after you did run PyTI, go to your terminal and do:&lt;br /&gt;    &lt;br /&gt;     cd pony-build/client&lt;br /&gt;     python build-pypi-package.py -s &lt;server_url&gt; &lt;package_name&gt;&lt;br /&gt;&lt;br /&gt;This command call the build-pypi-package.py pony-build client that will build the package specify and send the result to the server to be displayed on the web interface.&lt;br /&gt;&lt;br /&gt;For the build it's follow 3 steps:&lt;br /&gt;  - download the package from pypi&lt;br /&gt;  - run tox on the package : this will try to install the package using py26 and will run all package tests using py.tests&lt;br /&gt;  - finally it's call cheesecake to calculate the kwality factors of the package given .&lt;br /&gt;     &lt;br /&gt;  &lt;br /&gt;here is some demo picture :&lt;br /&gt;&lt;br /&gt;- after installing PyTI, i run the server : cd GUI/ ; python run.py --port 8800&lt;br /&gt;- now i build a package i chose tox : python build-pypi-package.py -s http://127.0.0.1:8800 tox&lt;br /&gt;- after the client finish building the package, i enter in my web browser http://127.0.0.1:8800&lt;br /&gt;  the first thing i see is a list of all build packages, i remark also that tox build failed&lt;br /&gt;  with the red image in the right.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_V7C-Acy3DXc/TGkK2x64L9I/AAAAAAAAABI/9SV6DEvIN4s/s1600/Screenshot.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_V7C-Acy3DXc/TGkK2x64L9I/AAAAAAAAABI/9SV6DEvIN4s/s400/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505943955666644946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- after clicking on the package you will see the detail of the build, first of all you will notice a time line of builds, the red circle is for failed build:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TGkMzqvXC2I/AAAAAAAAABQ/7TSFZ6a0u7c/s1600/Screenshot-1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_V7C-Acy3DXc/TGkMzqvXC2I/AAAAAAAAABQ/7TSFZ6a0u7c/s400/Screenshot-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505946101222935394" /&gt;&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;- you can choose a build event on the time line and click on it you will a pop up with some detail on it and a link to see full build report &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TGkNZK0l7SI/AAAAAAAAABY/n-nvdy_PjZo/s1600/Screenshot-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_V7C-Acy3DXc/TGkNZK0l7SI/AAAAAAAAABY/n-nvdy_PjZo/s400/Screenshot-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505946745489976610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- after clicking on the "see full report" link the report get displayed to you , with tree tabs, one for the download command , the other for tox and the last one for cheesecake , the ones in red mean that the command have failed in this case tox have failed&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TGkOS7a67BI/AAAAAAAAABg/xqgabp_YK28/s1600/Screenshot-3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_V7C-Acy3DXc/TGkOS7a67BI/AAAAAAAAABg/xqgabp_YK28/s400/Screenshot-3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505947737788181522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- now you can go to the tab tox to see why the command failed , in this case we will notice that 2 tests have failed from 74 tests run&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_V7C-Acy3DXc/TGkPCMyG72I/AAAAAAAAABo/Yb-25_jmTvY/s1600/Screenshot-5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_V7C-Acy3DXc/TGkPCMyG72I/AAAAAAAAABo/Yb-25_jmTvY/s400/Screenshot-5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505948549902692194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- last you can go to the cheesecake tab to see the cheesecake report in this case tox have scored 59% :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_V7C-Acy3DXc/TGkPiBVjU3I/AAAAAAAAABw/RtDjwsxbxRc/s1600/Screenshot-7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_V7C-Acy3DXc/TGkPiBVjU3I/AAAAAAAAABw/RtDjwsxbxRc/s400/Screenshot-7.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505949096585941874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;All the work that have been done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;this is a summarizing of all the work that have been done :&lt;br /&gt;&lt;br /&gt;- add EC2Context to pony-build client that enable pony-build to run tests in an EC2 machine&lt;br /&gt;- preparing an EC2 machine where package get build&lt;br /&gt;- create a client that build package from pypi.&lt;br /&gt;- create an adapter to get a django project work with pony-build&lt;br /&gt;- create a django project with several application for displaying information on build packages  &lt;br /&gt;- one of the django application is used to get PuSH notifications from pypi to build the packages but unfortunately this has some &lt;a href="http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/issue/1/push-subscribtion-dont-work"&gt;issues&lt;/a&gt; on it .&lt;br /&gt;&lt;br /&gt;Peace,&lt;br /&gt;Mouad Benchchaoui&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-6342357399783833703?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/6342357399783833703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/08/pyti-pypi-testing-infrastructure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/6342357399783833703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/6342357399783833703'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/08/pyti-pypi-testing-infrastructure.html' title='[PyTI] PyPI Testing Infrastructure (summary)'/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_V7C-Acy3DXc/TGkK2x64L9I/AAAAAAAAABI/9SV6DEvIN4s/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-5573964437974562996</id><published>2010-07-13T12:55:00.002+01:00</published><updated>2010-07-16T14:39:40.455+01:00</updated><title type='text'></title><content type='html'>Hello All,&lt;br /&gt;&lt;br /&gt;while continuing working on the PyPI Testing Infrastructure (PyTI)[0], this week i will work on adding an EC2 interface to pony-build which will enable us to run package test in the EC2 Virtual Machine from the pony-build server.&lt;br /&gt;&lt;br /&gt;The idea of using the EC2 machine was in the first place because we wanted to run test in a clean environment to do so Tarek Ziade has proposed to run test in an EC2 machine[1] after we reset the machine like that we have always a clean environment where we run tests .&lt;br /&gt;&lt;br /&gt;About how to implement and after the suggestion of my mentor Jesse Noller to use server provisioning here is my ideas until now :&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;font-family:arial,sans-serif;font-size:13px;"  &gt;&lt;div style="font-weight: bold;"&gt;&lt;span style="font-size:100%;"&gt;The problem :&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;- EC2 machines are in the first place down and i have to init them&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;- i have to follow the pony-build architecture which is client - server (so no master slave, so commanding client from server).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;- the EC2 instance are fractured by the hour so when i finish testing i have to put it down again.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-weight: bold;"&gt;&lt;span style="font-size:100%;"&gt;Idea:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;The questions that give me the answer was : &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;is it an obligation that the test client (script) must be run in the test platform (EC2 VM) ? &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;The answer was : no, what should be run in the test platform is the test commands .&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;So the idea is to run the test client in a machine (in my case and to simplify it's will be the same where i run the server ) , it's will be like a &lt;b&gt;Hub &lt;/b&gt;and from their i init the VM and run all commands and then i can put the VM down again. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;To do so , i will create first a "Context" in pony-build like the "virtualenvContext" in which i will init and finish my EC2 VM and for running commands i will have to change the _run_commands function to enable it to run commands from a remote machine .&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;i think it's the easy way to do it the first time, if any one have another idea please let me know &lt;/span&gt;. &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;[0] http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/&lt;br /&gt;[1] http://tarekziade.wordpress.com/2010/03/21/another-gsoc-idea-a-pypi-testing-infrastructure/&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-5573964437974562996?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/5573964437974562996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/07/hello-all-continuing-working-on-pypi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/5573964437974562996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/5573964437974562996'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/07/hello-all-continuing-working-on-pypi.html' title=''/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-1436322784249444967</id><published>2010-07-01T18:53:00.002+01:00</published><updated>2010-07-01T19:47:42.799+01:00</updated><title type='text'>Creating a new web interface for pony-build</title><content type='html'>Hello ,&lt;br /&gt;&lt;br /&gt;In this tutorial i will try to explain the procedure that i follow to create a web interface for pony-build [0] which is a continuous integration system that i'm using in the GSoC project "pypi testing infrastructure"[1].&lt;br /&gt;&lt;br /&gt;So first pony-build come with a default web interface created with Quixote and if you want to create a new web interface let say using Django in this tutorial i will show you how i interface the my web interface with pony-build .&lt;br /&gt;&lt;br /&gt;1- First you have to run pony-build using the web interface in my project i created a script that i have called run.py where i have put this code:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;from django.core.handlers.wsgi import WSGIHandler&lt;br /&gt;from django.core.servers.basehttp import AdminMediaHandler&lt;br /&gt;&lt;br /&gt;from adapter import CoordinatorAdapter&lt;br /&gt;from pony_build import server, coordinator, dbsqlite&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':&lt;br /&gt;    """ run pony-build server in local host&lt;br /&gt;   &lt;br /&gt;    """&lt;br /&gt;    _host = 'localhost'&lt;br /&gt;    _port = 8800&lt;br /&gt;   &lt;br /&gt;   # create the sqlite database&lt;br /&gt;    _db_file =  dbsqlite.open_shelf("pyti")  &lt;br /&gt;    _db_file = coordinator.IntDictWrapper(_db_file) &lt;br /&gt;   &lt;br /&gt;    # pass the database to the coordinator&lt;br /&gt;    my_coordinator = CoordinatorAdapter(db=_db_file)&lt;br /&gt;&lt;br /&gt;     # create the server using server module&lt;br /&gt;    pony_server = server.create(_host, _port, my_coordinator, AdminMediaHandler(WSGIHandler()))&lt;br /&gt;&lt;br /&gt;    print 'pony-build server started on host %s, port %d' % (_host, _port)&lt;br /&gt;&lt;br /&gt;   # run the server&lt;br /&gt;    pony_server.serve_forever()&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;2- Next i created a new implementation of the coordianator  in my case i need it because i have two database the first one sqlite is used by the pony-build server to save packages build info and the other is used by Django , all this complexity is because i want to change the database layer to support not only sqlite and like that i will have only one database but not for now .&lt;br /&gt;&lt;br /&gt;here my code :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import datetime&lt;br /&gt;from django.contrib.auth.models import User&lt;br /&gt;&lt;br /&gt;from pony_build.coordinator import PonyBuildCoordinator&lt;br /&gt;from packages.models import Packages, History, Report&lt;br /&gt;&lt;br /&gt;# inherit from the PonyBuildCoordinator&lt;br /&gt;class CoordinatorAdapter(PonyBuildCoordinator):&lt;br /&gt;    """ Adapter design pattern&lt;br /&gt;   &lt;br /&gt;    """      &lt;br /&gt;    &lt;br /&gt;   # override add_result method so i can save the build info in the web interface DB &lt;br /&gt;    def add_results(self, client_ip, client_info, results):&lt;br /&gt;        """ copy build result to Django database.&lt;br /&gt;       &lt;br /&gt;        """&lt;br /&gt;       &lt;br /&gt;        super(CoordinatorAdapter, self).add_results(client_ip, client_info, results)               &lt;br /&gt;              &lt;br /&gt;        #update existing package info or creating a new entry  &lt;br /&gt;        new = Packages.objects.get_or_create(package_name=client_info['package'])[0]&lt;br /&gt;       &lt;br /&gt;        new.package_description=client_info['package']  &lt;br /&gt;        new.last_state = client_info['success']&lt;br /&gt;        new.last_build = datetime.datetime.now()&lt;br /&gt;        new.save()&lt;br /&gt;       &lt;br /&gt;        package_history = History()&lt;br /&gt;&lt;br /&gt;        package_history.time =  new.last_state&lt;br /&gt;        package_history.state = new.last_build&lt;br /&gt;        package_history.package_build = new&lt;br /&gt;       &lt;br /&gt;        new_report = Report()&lt;br /&gt;        new_report.platform = client_info['arch']&lt;br /&gt;        new_report.report = 'TO ADD'&lt;br /&gt;        new_report.save()&lt;br /&gt;       &lt;br /&gt;        package_history.report = new_report&lt;br /&gt;        package_history.save()&lt;br /&gt;                &lt;br /&gt;        print "package saved"&lt;br /&gt;                 &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;if you want to see all the example go to [2]&lt;br /&gt;&lt;br /&gt;[0] http://github.com/ctb/pony-build&lt;br /&gt;[1] http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/&lt;br /&gt;[2] http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti/src/tip/GUI/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-1436322784249444967?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/1436322784249444967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/07/creating-new-web-interface-for-pony.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/1436322784249444967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/1436322784249444967'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/07/creating-new-web-interface-for-pony.html' title='Creating a new web interface for pony-build'/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-3996113261726193803</id><published>2010-06-24T18:49:00.002+01:00</published><updated>2010-06-24T18:59:47.588+01:00</updated><title type='text'>PYTI report #3</title><content type='html'>Hello All,&lt;br /&gt;&lt;br /&gt;The other week i didn't have time to write in the blog it's my last year in my school and it's the period of last exams so i was very busy preparing, i still have to do some stuff for my school until this Saturday, but here what i was doing for PYTI when i did have time for it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now i'm working on changing the database layer because when i first ran the pony-build test i did have some problem with one of them and because i'm using postgresql to save packages i have to change the database layer of pony that support only sqlite and i think that it's the problem for not having test succed, so&lt;br /&gt;i want to make sure that all tests passed before  adding something to pony-buid.&lt;br /&gt;&lt;br /&gt;So first thing when i will finish the database layer and if all test  pass i will start with the ec2 interface, i will make first a prototype  because in the first i wanted to change the pony-build structure to make  it more modular so that the pony-build interface can be just a module  that you can enable but now i think that i'm late from my initial  schedule and i didn't start yet the virtual machine part and i already  discuss with Titus about my ideas for the pony-build and like he said  maybe it's better to make it work first with necessary and minimal change then  trying to change or add other functionalities.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-3996113261726193803?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/3996113261726193803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/06/pyti-report-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/3996113261726193803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/3996113261726193803'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/06/pyti-report-3.html' title='PYTI report #3'/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-2936206182088924257</id><published>2010-06-10T18:24:00.009+01:00</published><updated>2010-06-10T18:54:06.722+01:00</updated><title type='text'>GSOC second meeting: PYPI Testing Infrastructure</title><content type='html'>After finishing the first steps of the web interface, now i have to integrate the web interface with the pony-build server.&lt;br /&gt;&lt;br /&gt;For that matter pony-build have a wsgi interface that i'm trying to use but with some difficulties, hopefully i will overpass.&lt;br /&gt;&lt;br /&gt;Also i'm thinking about a way to use the coordinator.py (API for pony-build) using an adapter pattern to interface the django application with the pony server , i'm thinking about changing the database layer because dealing with two databases will be useless (pony build work only with sqlite).&lt;br /&gt;&lt;br /&gt;Finally i'm thinking also about making pony-build configurable by adding a configuration file where you can define the database, choose the web interface , choose the notification way ....&lt;br /&gt;&lt;br /&gt;this week was my first real contact with pony-build and i think that it's a very good project, with a lot of documentation, and testing (so that i can play with it safely)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To close this post i will display the first screen shot of the web interface that i spend the last weeks doing, it's still need some work and every comment is welcome.&lt;br /&gt;&lt;br /&gt;- login page support "openid" from different account like shown in the picture, i think the openid must be optional that user can disable (i'm talking about running the web interface locally)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkN_amBCI/AAAAAAAAAAM/M_j63ARkHbM/s1600/login.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkN_amBCI/AAAAAAAAAAM/M_j63ARkHbM/s320/login.png" alt="" id="BLOGGER_PHOTO_ID_5481202044266480674" border="0" /&gt;&lt;/a&gt;- After the authentication the user are redirect to a page where he can see his package with some information like the last build date, the status of the package (the status of the last build) , and he can choose from the tool bar above the action that he want to do like configure the server, see package detail , build package&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkU2LmKdI/AAAAAAAAAAU/8tqTubm-Ja4/s1600/list_package.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkU2LmKdI/AAAAAAAAAAU/8tqTubm-Ja4/s320/list_package.png" alt="" id="BLOGGER_PHOTO_ID_5481202162046740946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can follow as on this link for more information :&lt;br /&gt;&lt;a href="http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti" target="_blank"&gt;http://bitbucket.org/mouad/&lt;wbr&gt;pypi-testing-infrastructure-&lt;wbr&gt;pyti&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkU2LmKdI/AAAAAAAAAAU/8tqTubm-Ja4/s1600/list_package.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkN_amBCI/AAAAAAAAAAM/M_j63ARkHbM/s1600/login.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-2936206182088924257?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/2936206182088924257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/06/gsoc-second-meeting-pypi-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/2936206182088924257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/2936206182088924257'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/06/gsoc-second-meeting-pypi-testing.html' title='GSOC second meeting: PYPI Testing Infrastructure'/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_V7C-Acy3DXc/TBEkN_amBCI/AAAAAAAAAAM/M_j63ARkHbM/s72-c/login.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-3532410851432513864</id><published>2010-06-03T10:23:00.005+01:00</published><updated>2010-06-08T11:26:43.041+01:00</updated><title type='text'>GSOC first meeting : PyPI Testing Infrastructure (PYTI)</title><content type='html'>Hello all,&lt;br /&gt;&lt;br /&gt;This my second post in this bloc and my first for the GSOC project : PYPI Testing Infrastructure (PYTI).&lt;br /&gt;&lt;br /&gt;The project for the ones that don't know it is about creating a testing infrastructure to test packages that get upload it to PYPI check this &lt;a href="http://tarekziade.wordpress.com/2010/03/21/another-gsoc-idea-a-pypi-testing-infrastructure/"&gt;link&lt;/a&gt; for more information .&lt;br /&gt;&lt;br /&gt;For that matter we chose to work with pony-build as the continuous integrating system that will let us run the test in an EC2 machines that run on different platform (linux, windows, unix ...), and as an user interface, we chose to build a web interface with Django that will let the user :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  build his own packages in the platform of his choice .&lt;/li&gt;&lt;li&gt;  see build report with some other stuff related to the build like a time-line of build  ...&lt;/li&gt;&lt;li&gt;  every user must have an account in PYTI where he can enable some feature like a notification system for the build , schedule build to be run ...&lt;/li&gt;&lt;/ul&gt;In this first two weeks i was creating a prototype of the Web interface , now i'm adding some feature on it ,i hope that i will finish this week  i will publish some screenshot as soon as i have something ready.&lt;br /&gt;&lt;br /&gt;For the next days of this week i have to much task to do :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;write a help of how using PYTI.&lt;/li&gt;&lt;li&gt;interface pony-build with the web interface that we created.&lt;/li&gt;&lt;li&gt;automatize the installation of the web interface . &lt;/li&gt;&lt;li&gt;add some feature to the Web interface&lt;/li&gt;&lt;/ul&gt;for the ones that are interested you can follow us on this &lt;a href="http://bitbucket.org/mouad/pypi-testing-infrastructure-pyti"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-3532410851432513864?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/3532410851432513864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/06/gsoc-first-meeting-pypi-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/3532410851432513864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/3532410851432513864'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/06/gsoc-first-meeting-pypi-testing.html' title='GSOC first meeting : PyPI Testing Infrastructure (PYTI)'/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7586162137641309230.post-7300640933561245738</id><published>2010-04-05T06:04:00.000Z</published><updated>2010-04-30T21:10:36.653Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='my first post'/><title type='text'></title><content type='html'>Hello everybody, and welcome to my first blog and this is my first posting .&lt;br /&gt;&lt;br /&gt;If you want to know a little about me you can view my profile (it's not much) .&lt;br /&gt;Now about this blog like the title said it's about python and all the technologies around , if you don't know anything about python it's time to learn you can refer to the excellent tutorial to begin with &lt;a href="http://diveintopython.org/"&gt;dive into python&lt;/a&gt;. In this blog i will try to write about what i learn or learned while i programme with python and the technologies around and i hope that this blog will be a help for the most of you how want to learn more about python and to admire the beauty of this language .&lt;br /&gt;&lt;br /&gt;I will try to talk about a different subject every week related to python and differents other subject  like web programming,  game programming, mobile programming, software testing and much more that use python .&lt;br /&gt;&lt;br /&gt;Finally i will need your help to accomplish this so i will need feedbacks , and the most important thing correct me if i'm wrong don't let me dive in my ignorance.&lt;br /&gt;N.B : you will have to excuse my english i'm not an english native and i try to do my best to write without mistakes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7586162137641309230-7300640933561245738?l=mouadino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mouadino.blogspot.com/feeds/7300640933561245738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mouadino.blogspot.com/2010/04/hello-everybody-and-welcome-to-my-first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/7300640933561245738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7586162137641309230/posts/default/7300640933561245738'/><link rel='alternate' type='text/html' href='http://mouadino.blogspot.com/2010/04/hello-everybody-and-welcome-to-my-first.html' title=''/><author><name>mouad</name><uri>http://www.blogger.com/profile/01935557130568632705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
