Github/Piston: New installation instructions online

44 views
Skip to first unread message

Ingo Schommer

unread,
Feb 11, 2011, 6:26:23 PM2/11/11
to silverst...@googlegroups.com
Hello everybody,

I've written up some instructions on how you can use SilverStripe from source:

In general, there's two recommended workflows:
- For project work, use git for the project, and piston for any modules (incl. sapphire and cms)
- For open source work, fork and clone the github.com/silverstripe repositories into a working copy

Thanks to Hamish, creating a new project is a bit easier (with a tools/new-project script).
These scripts are in early stage of development, and starting points rather than
a full fledged build system - please let us know how they work for you.

Overall I won't deny that the process got more complicated than with svn and svn:externals,
but it'll enable us to produce higher quality releases, maintain more stability in our project work through piston,
and most importantly collaborate more effectively through github, git and the forking process.

Let me know if you have any suggestions on how to make the docs easier to understand,
or if I missed anything. Remember, these are just recommendations to get you going,
you're free to use Braid, package/build tools etc on your own setups.

Thanks!
Ingo

Martine

unread,
Feb 12, 2011, 4:57:11 PM2/12/11
to SilverStripe Core Development

Hi ingo,

Willr pointed me to the instructions just earlier today, thanks - I
couldn't have done without them, since I'm very new to git. So I
thought I'd share a couple of my different trials, as maybe other git-
newby's might walk into these issues...

First - I couldn't find a simple way to use Piston on Debian, maybe I
overlooked it, so if someone could point me in the right direction,
that would be great.

So I started with an installer clone and then tried the 'flat' mode in
the Tools section, and that seemed to work fine, but I'm not sure
that's the right way to do it - will I be able to pull and update from
this setup (that's not very clear to me)?

Next I tried out the contribute mode in the tools section. That kinda
worked, although it wants to write the destinations from the template
file to a none-existing .gitignore file somewhere and fails on an
empty handler. Tried adding this file manually to the repo-root, but
that didn't do the trick.So maybe it wants it at some other location?
Why would it be necessary anyway? Is it because the root repo should
leave the sapphire and cms folders alone, since they are repositories
in their own right?

Next I tried the method, where you'd clone the sapphire and the cms
into the installer repo yourself. That worked fine. But should the
same .gitignore file now be added?

And finally I wanted to add the BlackCandy as well, but it either is
not there - or it is password protected. Also the GoogleSiteMap module
is still missing? Or is that now obsolete?

Btw - it sure is a lot faster then the previous svn :-)

Martine

Simon J Welsh

unread,
Feb 14, 2011, 2:17:30 PM2/14/11
to silverst...@googlegroups.com
Something it may pay to note in the upgrading section is that piston doesn't handle updating git repos that aren't the master branch very well. I have to keep remembering the --commit 2.4 flag (or similar) or piston will switch me to master.

I wrote http://simon.geek.nz/assets/text/git-piston-update to help solve this. It finds all the repos that piston manages in a given folder or pwd and updates them from the correct branch. It currently assumes importing git repos into svn ones but should be easy enough to change if it'd help.

> --
> You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
> To post to this group, send email to silverst...@googlegroups.com.
> To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
>

---
Simon Welsh
Admin of http://simon.geek.nz/

Who said Microsoft never created a bug-free program? The blue screen never, ever crashes!

http://www.thinkgeek.com/brain/gimme.cgi?wid=81d520e5e

Ingo Schommer

unread,
Feb 15, 2011, 2:55:54 PM2/15/11
to silverst...@googlegroups.com
Hey Martine,
On 13/02/2011, at 10:57 AM, Martine wrote:
ldn't find a simple way to use Piston on Debian, maybe I
overlooked it, so if someone could point me in the right direction,
that would be great.
Whats the error? Should just be a one-liner assuming you have ruby
and gem installed?


So I started with an installer clone and then tried the 'flat' mode in
the Tools section, and that seemed to work fine, but I'm not sure
that's the right way to do it - will I be able to pull and update from
this setup (that's not very clear to me)?
I've clarified the instructions a bit, no you won't be able to update easily.


Next I tried out the contribute mode in the tools section. That kinda
worked, although it wants to write the destinations from the template
file to a none-existing .gitignore file somewhere and fails on an
empty handler. Tried adding this file manually to the repo-root, but
that didn't do the trick.So maybe it wants it at some other location?
Why would it be necessary anyway? Is it because the root repo should
leave the sapphire and cms folders alone, since they are repositories
in their own right?
Yes, the .gitignore file is a safeguard so you don't nest repositories
("git subtree merge") accidentally. 

Next I tried the method, where you'd clone the sapphire and the cms
into the installer repo yourself. That worked fine. But should the
same .gitignore file now be added?
Yes.


And finally I wanted to add the BlackCandy as well, but it either is
not there - or it is password protected. Also the GoogleSiteMap module
is still missing? Or is that now obsolete?
Sorry about that, path should be fixed now.

Btw - it sure is a lot faster then the previous svn :-)

Martine

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To post to this group, send email to silverst...@googlegroups.com.
To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.



---
Ingo Schommer | Senior Developer

Sam Minnée

unread,
Feb 15, 2011, 5:22:46 PM2/15/11
to silverst...@googlegroups.com
This sounds like a bug in piston; it might be worth submitting a patch to the piston project.

Nicolaas Thiemen Francken - Sunny Side Up

unread,
Feb 15, 2011, 10:04:38 PM2/15/11
to silverst...@googlegroups.com
Sorry to sound like a stuck record, but perhaps we can join forces in making SS modules available in SVN (I think Simon actually did some (all) of this????).  While I am keen to get stuck into GIT for submitting patches, etc..., it will also slow down my development work for clients.  Hence, having sapphire, cms, blog, etc.. available as read-only SVN repositories would be O for Awesome.

Nicolaas 

Sam Minnée

unread,
Feb 15, 2011, 10:09:13 PM2/15/11
to silverst...@googlegroups.com
This is an approach that should work:

Set-up:

- create an SVN repository, with a suitable URL: something like http://svn.silverstripemirror.org/sapphire/trunk
- git svn clone http://svn.silverstripemirror.org/sapphire/trunk
- git remote add origin git://github.com/silverstripe/sapphire.git

Periodic refresh:

- git pull origin master:master
- git svn rebase
- git svn dcommit

The periodic refresh can be executed with a cronjob.

For a branch it's slightly different:

Set-up:

- create an SVN repository, with a suitable URL: something like http://svn.silverstripemirror.org/sapphire/branches/2.4
- git svn clone http://svn.silverstripemirror.org/sapphire/branches/2.4
- git remote add origin git://github.com/silverstripe/sapphire.git

Periodic refresh:

- git pull origin 2.4:master
- git svn rebase
- git svn dcommit

Simon J Welsh

unread,
Feb 15, 2011, 10:12:00 PM2/15/11
to silverst...@googlegroups.com
Yup, I've got at least one branch and master of silverstripe, silverstripe-labs and silverstripe-themes (as of now) at http://svn.simon.geek.nz/silverstripe/, including the most recent branch where possible. If you want a branch I haven't included, poke me and I'll add it.

The mirrors get updated at around noon each day.

Before someone mentions the github SVN repos, they don't seem to work and they don't allow access to the branches.

On 16/02/2011, at 4:04 PM, Nicolaas Thiemen Francken - Sunny Side Up wrote:

Sam Minnée

unread,
Feb 15, 2011, 10:22:01 PM2/15/11
to silverst...@googlegroups.com
Great work, Simon! It looks like you've solved this problem. Nicolaas - I guess you have your answer now? :-)

Nicolaas Thiemen Francken - Sunny Side Up

unread,
Feb 15, 2011, 10:26:09 PM2/15/11
to silverst...@googlegroups.com


On 16 February 2011 16:22, Sam Minnée <s...@silverstripe.com> wrote:
Great work, Simon!  It looks like you've solved this problem.  Nicolaas - I guess you have your answer now? :-)


yeah - that looks great - I am sure that will help out a lot of lazy developers like myself.... I wonder where the donation button is ;-)


Mat Weir

unread,
Mar 1, 2011, 9:37:39 PM3/1/11
to silverst...@googlegroups.com
Hi Simon,

Thanks for the mirror. How do the branches work? ie. http://svn.simon.geek.nz/silverstripe/sapphire/branches/. I can see 2.4 but not 2.4.5. Is it always at the latest release?

Cheers,

Mat Weir

Simon J Welsh

unread,
Mar 2, 2011, 2:38:47 PM3/2/11
to silverst...@googlegroups.com
I've only mirrored the branches, not the tags. The code in the branches is at least at the latest release, though can also include updates that have not been released yet but will be in the next version.

If you're using svn:externals, as the branch can change and break things, especially when it's the current feature branch, I suggest adding in a revision to the table, so your entry will be something like:
sapphire -r80 http://svn.simon.geek.nz/silverstripe/sapphire/branches/2.4

If you'd really prefer tags, I can look at mirroring those as well.

---

Reply all
Reply to author
Forward
0 new messages