Juliette Foucaut - 23 Jan 2014 - edited 06 May 2017
[Update 06 May 2017 - We no longer maintain our presskit() for Google App Engine project. The Github repository is deprecated and the installer is no longer available.]
presskit() is a free, open-source tool that enables game studios to present information to the press in a unified format. However the current php implementation doesn't work on Google App Engine (GAE). Recently, Leonard Ritter started the ball rolling, showing it could be done and offering some code changes. After Rami Ismail mentioned that it would indeed be useful, and since we needed it ourselves, Doug and I decided to do the port.
If you would like to use presskit() on GAE, I'll explain in this post how to download and install our implementation. As an example see our presskit() at press.enkisoftware.com.
Warning: our code is in beta. We've only tested the installation ourselves, on Windows. Any feedback you can give us (use the comments below or email me), successful or not, would be very helpful: it'll enable us to fix remaining issues with the build or the documentation.
presskit() runs on Google App Engine
We're currently hosting the installer whilst we wait for feedback about integrating our code with Rami Ismail's implementation (Github references are at the end of this post).
Install the Python 2.7 (required for the tools) and the App Engine SDKs following the instructions here: https://developers.google.com/appengine/docs/php/gettingstarted/installing.
Note: you don't need mySQL as presskit() doesn't require it.
Note: as stated above we're temporarily hosting the installer on our website.
Extract the contents of dopresskit_install.zip to a directory of your choice (we'll call it [..\myPresskitDir]).
You should now have 2 files in your [..\myPresskitDir] folder: app.yaml and install.php.
Open the Google App Engine Launcher.
In a browser, navigate to http://localhost:[port number]/install.php (e.g. http://localhost:8080/install.php)
Follow the instructions on the page.
Note: this part is not GAE specific.
Edit the app.yaml file:
You should now have a locally working version of Presskit().
Note: the 'Request Press Copy' feature won't send emails when running on the local development environment.
If you want a site icon add a favicon.ico to your root directory.
Create an application with the name you used to replace [my-presskit-app] following the instructions here: https://developers.google.com/appengine/docs/php/gettingstarted/uploading
Upload to Google App Engine.
Test your online presskit() page(s) by going to [my-presskit-app].appspot.com.
Editing presskit is not possible on the GAE server: changes have to be made locally and the result uploaded. The instructions to update presskit are as follows:
Place install.php is in your [..\myPresskitDir] directory (you can get install.php from dopresskit_install.zip - warning: do not overwrite your app.yaml with the one that's in the zip file!)
Same as during installation: run the application locally using the GAE launcher, open the page in your browser and make your changes. When ready, delete install.php and upload the files to Google App Engine.
Don't use push-to-deploy (= having your git repository hosted at Google/github, automatically deploy whenever the repository gets pushed). Here's the report for this issue for tracking when Google eventually fixes this: GAE issue 10939: application_readable app.yaml directive ignored when using push-to-deploy with PHP.
Thanks to Sebastian Mayer for finding the issue!
We've forked the current version of dopresskit from Rami Ismail's repository on Github. We tried to make as little change to the code as possible. Our current implementation should work both on traditional servers and GAE (it auto-detects the platforms it runs on). Details of our implementation and fixes are split into two branches:
Branch: main (source code on Github), contains no code related to GAE.
fixed the 'Request Press Copy' email: improved feedback on invalid email address entry, error sending message and success sending message.
feedback to the user: invalid email
feedback to the user: email successfully sent
fixed the projects pages title: replaced COMPANY_TITLE with GAME_TITLE.
This fixes the heading of the project (games) pages. It also fixes an issue with the subject and body of emails sent through the 'Request Press Copy': it now mentions which game a copy was requested for. You'll receive an email looking like this:
subject: [Request] my2ndGameName Press Copy For ExamplePressCompany
body: email@example.com of ExamplePressCompany has requested a Press Copy for my2ndGameName through the press kit interface.
fixed the projects pages left-handside navigation: replaced "projects" with "features".
Branch: GAE (source code on Github), same fixes as in main branch +
Added conditional code to detect whether running on GAE or not to index.php, sheet.php and mail.php. As a result, if running on GAE, it'll use the appropriate API for GAE.
modified install.php so that at installation, archive.zip is retrieved from our server (https://www.enkisoftware.com/downloads/dopresskit/) instead of Rami's (http://www.ramiismail.com/kit/press/).
Note: if/when our code is merged back with the default dopresskit we'll revert this feature and stop hosting the installer dopresskit_install.zip and archive.zip on our server.
Thanks to Rami Ismail and Leonard Ritter for making presskit and encouraging us to port it to GAE!
you can find the source code for presskit() on Google App Engine forked on Github (GAE and Mainr branches). We hope that it will eventually be merged with Rami Ismail's original code, but in the meantime we'll continue to host the installer on our website. Also, feel free to visit press.enkisoftware.com to see the result!
If you're curious about why -and how to- host a website on GAE, see this blog post.
And finally, if you implement your presskit() on GAE, send me the link and I'll add it to a list of examples.
[Edit 26 Jan 2014: added instructions for updating presskit]
[Edit 26 Jun 2014: added GAE push-to-deploy issue]
[Edit 06 May 2017: project deprecated, the installer is no longer available]