CloudServices/ServiceBuilder: Difference between revisions

no edit summary
No edit summary
Line 14: Line 14:
=== Phase 1 ===
=== Phase 1 ===


The first version of Service Builder will be a simple command-line tool to generate a standard Python app via a wizard.
The first phase consists of building Cornice, a framework on the top of Pylons geared towards writing web services.


The generated app will be based on our framework (server-core) and will provide the boiler plate code and files that we need to build, release, deploy the application.
Features:
 
- simple declaration of web services
- documentation of the APIs for free
- XXX to be completed
 
 
=== Phase 2 ===
 
In a second phase, Service Builder will be a simple command-line tool to generate a standard Python app via a wizard.
 
The generated app will be based on Cornice and will provide the boiler plate code and files that we need to build, release, deploy the application.


For the continuous integration aspect + DVCS, there will be no automated steps but what needs to be done after the app is generated, will be explained in detail:
For the continuous integration aspect + DVCS, there will be no automated steps but what needs to be done after the app is generated, will be explained in detail:
Line 29: Line 40:
* The tool generates a report with explanations for the next steps
* The tool generates a report with explanations for the next steps


See: https://bugzilla.mozilla.org/show_bug.cgi?id=674904
The expected result is a directory containing a Cornice-based app.
 
The expected result is a directory containing these files:
 
* Makefile
* README
* setup.py
* <Project>.spec
* <project>/wsgiapp.py
* <project>/controllers.py
 
=== Phase 2 ===
 
The second version of the project will provide a command-line tool to edit an existing project.
 
Features:
 
* list/add/remove
** system dependencies
** Python dependencies
** Mozilla dependencies (+HTML export)
** Web Services defined in the project
* automate the creation of a new release of the project (tagging + branching)
* drive Jenkins
** check the status of the project in Jenkins
** force a build
** run a parametrized build in order to create a RPM collection for a specific tag
Confirmed users
927

edits