Modify

Ticket #275 (closed epic user story: fixed)

Opened 9 years ago

Last modified 8 years ago

Standard build system

Reported by: technomage Owned by: aspidites
Priority: minor Milestone: Sprint: Character customization
Component: misc Version: Sprint: Character customization
Keywords: build system Cc:
Blocked By: #280, #310 Blocking:
Department: Users

Description (last modified by barra_parpg) (diff)

As a player, I want to be able to install PARPG on my system in a standard way.

Attachments

setup.py (3.1 KB) - added by Aspidites <aspidites@…> 8 years ago.

Change History

comment:1 Changed 8 years ago by Aspidites <aspidites@…>

My vote is for python-setuptools, since it comes packaged with python installs. As for non-python files, it can handle those just fine.

I contributed a setup file to Ultimate Smash Friends which has since evolved. It could be adapted to work with PARPG.

Another reason for a proper build system is that it would allow parts of PARPG to be used elsewhere, for example, in some of the tools.

http://bazaar.launchpad.net/~usf-team/ultimate-smash-friends/trunk/annotate/head%3A/setup.py

comment:2 Changed 8 years ago by Aspidites <aspidites@…>

To be fair, I'm reading the documentation for SCons so that I can compare approaches. Being that FIFE is a dependency of PARPG, the added build dependency of SCons should be a non-issue. It may also simplify the build process for users if they only have to remember one set of commands versus two (though 'python setup.py install' is rather ubiquitous).

I will report back with my findings.

comment:3 Changed 8 years ago by Aspidites <aspidites@…>

After evaluating, I don't think SCons is a good fit for the build system for the following reasons:

  • it was meant as a replacement for make, and as PARPG is pure python, it seems a bit excessive to use SCons for the task
  • FIFE uses distutils to handle to installation of its python components

That said, I think that some slight modification to the current directory hierarchy is necessary. I've opened a separate ticket for that as, while it would certainly simplify things, it isn't fundamental to the creation of a build system.

Finally, I don't think I will be basing the setup script on USF's. While I did write the original and helped to contribute to some of it's mutations, I think it is a bit sloppy in its current form, which might make it a pain to maintain (assuming a build script really needs to be maintained that often).

Changed 8 years ago by Aspidites <aspidites@…>

comment:4 Changed 8 years ago by Aspidites <aspidites@…>

I have attached a functional setup script. For others who would like to test it out, place it in the root directory of parpg along side game and tools then run either of these commands:

python setup.py bdist python setup.py install

The first will create a tar archive resembling a hierarchy of the directories that would be affected on a users system if the package was installed. The second actually installs parpg to the user's system

The game runs properly when installed, but the script is incomplete. Aside from obviously fleshing out the windows and mac portions of the script, I have yet to determine the location of some files that, while mgiht be important, aren't necessary to make the game run.

Note: The patch in ticket #280 MUST be applied for this script to work.

comment:5 Changed 8 years ago by barra_parpg

  • Department set to Programming
  • Owner changed from barra_parpg to parpg
  • Milestone changed from Techdemo 2 to Techdemo 3

comment:6 Changed 8 years ago by barra_parpg

  • Milestone changed from Techdemo 3 to Product backlog

moved techdemo 3 tickets to product backlog as we haven't agreed upon sprint goals for techdemo 3 yet

comment:7 Changed 8 years ago by barra_parpg

  • Milestone changed from Product backlog to Evaluate

moving current trac tickets to evaluation milestone

comment:8 Changed 8 years ago by barra_parpg

  • Department changed from Programming to Users
  • Component changed from management to misc
  • Description modified (diff)
  • Milestone changed from Evaluation to Product backlog

comment:9 Changed 8 years ago by barra_parpg

  • Type changed from task to user story
  • Summary changed from Implement a build system to Standard build system

comment:10 Changed 8 years ago by barra_parpg

  • Blocked By 280 added

comment:11 Changed 8 years ago by barra_parpg

  • Milestone changed from Product backlog to Techdemo 2 Sprint 1

comment:12 Changed 8 years ago by barra_parpg

  • Priority changed from major to minor

comment:13 Changed 8 years ago by barra_parpg

  • Version changed from trunk to Sprint: Character customization

comment:14 Changed 8 years ago by kb1pkl

  • Owner changed from parpg to kb1pkl
  • Status changed from new to assigned

comment:15 Changed 8 years ago by aspidites

  • Blocked By 310 added

comment:16 Changed 8 years ago by kb1pkl

  • Owner changed from kb1pkl to aspidites
  • Status changed from assigned to new

comment:17 Changed 8 years ago by aspidites

  • Status changed from new to assigned

comment:18 Changed 8 years ago by aspidites

  • Type changed from user story to epic user story

comment:19 Changed 8 years ago by aspidites

  • Status changed from assigned to closed
  • Resolution set to fixed

Still untested on Mac, but I have created packages for Linux and Windows with success.

View

Add a comment

Modify Ticket

Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.