Author Topic: L2 (pyprocgame) Source Code Repositories  (Read 6674 times)

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
L2 (pyprocgame) Source Code Repositories
« on: March 12, 2010, 05:40:02 PM »
As the P-ROC customer base grows, more people are making use of various components of the P-ROC source code repository on github.  Because we had all of the components lumped into a single project, it was difficult to make changes to any one component without affecting users of other components.  To make it easier for people to stay in sync with only the components that interest them, we are making the following changes to our source code repositories:

We will no longer be making changes to the code in the original P-ROC github repository.  This repository will remain on github at least until all references to it are sufficiently old.

We've set up new repositories for each L2 component as follows:

pyprocgame : Python game framework (includes skeleton game code in games/starter).  This project depends on the pypinproc P-ROC python extension.
JD-pyprocgame : Custom JD game application built on pyprocgame.
proc-shared : Common resources used by multiple L2 projects (game description files, sounds, graphics).

We've also broken up L1 components.  Please visit this thread.

In addition to just separating the components into individual repositories, we've created 'dev' branches in each project.  Developers can check in changes to the 'dev' branch at any time, and people wanting to stay in sync with the updates can check them out at any time as long as they understand the changes aren't well tested and might break their builds.  After hitting major milestones or on a semi-regular timetable, we'll merge the dev branch back into the master.

Note, to access the dev branches on github you'll need to click on the 'Switch Branches' button and select 'dev'.

Also, in order to keep the repository space requirements in check, we've decided not to store game specific resources (sound, video, etc) in the game repositories such as JD-pyprocgame.  We will periodically update 'media-packages' that contain the necessary resource files (distribution method TBD).  The code will be written to simply not play certain effects if the necessary resource files aren't present.

- Gerry
« Last Edit: March 12, 2010, 05:47:22 PM by gstellenberg »

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: L2 (pyprocgame) Source Code Repositories
« Reply #1 on: March 12, 2010, 06:08:34 PM »
Despite the fact that the projects are in separate repositories, there is still a need to keep the following directory structure:

proc-share: /.../shared/
pyprocgame: /.../pyprocgame/
JD-pyprocgame: /.../pyprocgame/games/jd/

We'll need to come up with a better way to handle paths in python, but this is the way it is now.

- Gerry

Steven

  • Wizard
  • *****
  • Posts: 467
    • View Profile
Re: L2 (pyprocgame) Source Code Repositories
« Reply #2 on: March 13, 2010, 05:08:56 AM »
Sounds good to me. It will still be visible on one main-page when there's an update in any of the downloads?

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: L2 (pyprocgame) Source Code Repositories
« Reply #3 on: March 14, 2010, 09:22:13 PM »
I'm certainly no github power user, but I believe that a github user can 'watch' various projects.  If you're watching any projects, your dashboard page should list all recent changes.

- Gerry

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: L2 (pyprocgame) Source Code Repositories
« Reply #4 on: November 17, 2010, 12:08:33 PM »
All of the 'dev' branches for the projects mentioned in the first post have been merged into the master branches.  We're calling this software ver 0.9.  The pyprocgame documentation now matches the code in the master pyprocgame branch.

Note - A lot of pyprocgame functionality has changed.  If you've been writing a game against the master branch, be prepared.  Most of the changes are identified in the release notes.  If you are not building libpinproc/pypinproc from source, you'll want to install the latest Windows installer (including the latest pypinproc self-installing extension).  It's available on the P-ROC software page.

- Gerry

Koen

  • Wizard
  • *****
  • Posts: 387
  • Koen Heltzel
    • View Profile
    • Dutch Pinball
Re: L2 (pyprocgame) Source Code Repositories
« Reply #5 on: November 18, 2010, 02:48:23 AM »
Great work again guys!

I have been updating my code with the dev branch last weekend and I'm up and running again (I will check if there are any new changes in the master now).
I also implemented the Highscore Entry mode provided in the new pyprocgame, which is just great!

If I have suggestions for changes / small additions (in general, not the highscore mode), what is the best way to present them to you?

- Koen

Adam Preble

  • Global Moderator
  • ****
  • Posts: 271
  • Macs & Pinball
    • View Profile
Re: L2 (pyprocgame) Source Code Repositories
« Reply #6 on: November 18, 2010, 08:48:58 AM »
If I have suggestions for changes / small additions (in general, not the highscore mode), what is the best way to present them to you?

The best way is probably to fork pyprocgame on GitHub and make any changes you want on your fork.  Then we can bring them into the 'main' fork.  The Network feature of GitHub makes it very easy to see who has made what changes in other forks, so that they can be pulled in.

The other options are to send a diff of the changed source, or the function body that has changed, and we can apply the change manually.

Adam

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: L2 (pyprocgame) Source Code Repositories
« Reply #7 on: March 06, 2011, 03:35:58 PM »
All of the 'dev' branches for the projects mentioned in the first post have been merged into the master branches.  We're calling this software ver 0.91.  The pyprocgame documentation now matches the code in the master pyprocgame branch.

We are encouraging everybody to start using the master branches instead of the dev branches.  dev branches should only be used by active developers requiring features that exist only in the dev branch.

- Gerry

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: L2 (pyprocgame) Source Code Repositories
« Reply #8 on: July 22, 2011, 03:11:30 PM »
In preparation for the release of the PinballControllers.com Power Driver boards, the pypinproc and pyprocgame dev branches have once again been merged into the master branches.  We're calling this software ver 1.0.

The pyprocgame documentation has been updated with the relevant changes, summarized in the release notes.

Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: L2 (pyprocgame) Source Code Repositories
« Reply #9 on: February 19, 2012, 01:25:20 PM »
Version 1.1 pyprocgame code has now been merged into the Master branch.

The pyprocgame documentation has been updated with the relevant changes, summarized in the release notes.