Welcome, Guest. Please login or register.

Pages: [1]
Author Topic: Assembla Hosting Online!  (Read 5517 times)
Community member

Posts: 80

View Profile
« on: May 15, 2011, 04:15:01 AM »

We now have a functioning set of Assembla.com workspaces  Cheesy.

As discussed on IRC earlier this week, I split up the project into three subprojects:

parpg-core: sources for the core subsystems, configuration, and executable.
parpg-assets: all graphics, music, fonts, scripts, etc. that parpg needs to run.
parpg-tools: utilities and content creation tools that are not required for parpg to run.

To support the new subprojects I scrapped the existing distutils install scripts and wrote a few SCons scripts. The new SCons install scripts allow the user to customize install paths for the Python sources, data files, configuration files and executable ala GNU make using variables supplied to the command line (e.g.
scons PREFIX=/usr EXEC_PREFIX=/usr/local
). Type
scons --help
to list these variables and how they work. All of these variables have sane defaults on Linux, Windows and Mac OS (Mac uses the Linux defaults currently, but this may change). Note: I don't have a Windows executable working yet! You'll have to write your own batch file or simply run parpg/main.py with the path to the configuration file as the first argument.

parpg-core and parpg-tools are versioned in separate mercurial repositories, while parpg-assets is versioned in an svn repository. Each of these subprojects is hosted on their own workspace in Assembla (https://parpg.assembla.com/spaces/parpg-core, https://parpg.assembla.com/spaces/parpg-assets, and https://parpg.assembla.com/spaces/parpg-tools). I don't have parpg-tools up and running yet, but I will have it ready within the next few days.

In addition, there is a main workspace (https://parpg.assembla.com/spaces/parpg-main) which hosts a root mercurial repository containing subrepository links to parpg-core, parpg-assests and parpg-tools. This will be the main workspace where we host our bug tracker and communication tools. Cloning the root repository will automatically clone parpg-core and parpg-tools, and checkout parpg-assets, and the cloned root repository will take care of keeping all three subproject repositories in sync as you work on it and push new changes to the server.

All four workspaces are managed by an Assembla Portfolio (https://parpg.assembla.com/), which will be the main page for developers. The portfolio will aggregate all events from the subproject workspaces and display any tickets assigned to you, so should be the first page you load when you log on.

This is a huge change so it'll take some time to establish our new workflow. I suggest that you browse the workspaces and portfolio page, clone the root repository using
hg clone http://hg.assembla.com/parpg
and play around with scons to get a feel for it. The first clone will take a while since it has to checkout a huge number of assets from parpg-assets, but future pulls from the server will be much faster.

I will be around tomorrow before and after the meeting to answer any and all questions you have about our Assembla hosting.
« Last Edit: May 15, 2011, 04:16:37 AM by Technomage » Logged

"There are more atoms in the period at the end of this sentence than you can count in a lifetime." Science is awesome.

Community member

Posts: 24

View Profile Email
« Reply #1 on: May 21, 2011, 07:34:29 AM »

Here are a few things I've learned when using dvcs's (git, hg, and fossil):

Branch like a boss. Seriously, this isn't svn-land anymore. Branches are trivial to merge back into main. If you're making a commit to master, you're doing something wrong. A branch for every new feature being developed isn't a stretch.

Only merge other branches into master. We should have a branch for development and use tags for release version where we merge with master. Only stable changes go to master, and only relatively stable changes from each persons repository should go into development. Feel free to commit as many times to your local repository. Do all your testing, documentation, etc in local before you push (less email spam (or whatever) when you make a silly error). There could also be an unstable branch where in-progress code goes for review, but there's probably a collaboration tool assembla has that could replace that well (using tickets could be a solution, but I haven't looked too deep into assembla yet).

I conclude with a good intro for those who haven't use hg or dvcs before: http://hginit.com/index.html

In light of  recent discussion with Technomage, branching is not something we should do. Instead of the standard branches, we'll use forks instead and merge back into the main repository when the fork is mature. This keeps the history of the repository clean.
« Last Edit: May 22, 2011, 12:37:30 AM by kb1pkl » Logged
Community member

Posts: 71

View Profile Email
« Reply #2 on: May 24, 2011, 09:02:40 AM »

Whats wrong with branches? Is that  a hg/mercurial thing, or assembla?

I know in git I can create branches, make changes, push them, merge them and delete them after that (and (force) push the deletion) without any problems.

Wing IDE - http://wingide.com/wingide - Free for OS use
Pages: [1]
Jump to: