|Version 5 (modified by barney, 5 years ago)|
Many languages are in the parrot repository, to show, as we add more and more features, how to implement languages. As parrot nears 1.0, these languages will be encouraged to leave the nest and find their own repositories. We may keep some educational "how to" languages in the repository as guides for new language developers.
Here are some tips for finding your own place (basically, "this is what partcl did.")
What do you rely on parrot's infrastructure for?
Ticketing? Mailing lists? Version control?
If you're not sure where to go for these things, I recommend setting up a new project using googlecode. The project will give you a ticketing system, a wiki, a subversion repository; you can easily setup mailing lists via google groups.
You don't even need to setup your own repository. If you have a small language and don't need much in the way of infrastructure, you can join squawk and share that repository. This option probably makes sense for the smaller languages.
When partcl left, we abandoned our svn history.
We kept the same licensing and copyright as parrot to keep things simple.
Working with parrot once you're out of the repository
See http://code.google.com/p/partcl/wiki/PartclSource - We have two versions of the project, one to work against a specific release version of parrot (hopefully the latest), and another to work against trunk. This insulates your users from changes in your code or parrot's code, and lets you work against a stable version without having things change out from under you. We
Don't rely on top level Configure
Grab a copy of another language's Configure.pl, copy into your directory and update it for your language. This allows you to regenerate your makefile without relying on a top level Configure.pl run.
As you leave
Once you're in your repository, you should remove your language from the parrot repository. Don't forget to remove your language from the languages makefile and initial configuration.
Another use case: What HQ9plus did
http://github.com is another option for where to fly to after leaving the nest. I, barney, did this to the toy language HQ9plus in order to get my feet wet with git.
Create your local git repository
This approach means that the SVN change history is lost. This is fine for HQ9+, but for Pipp I there should be an easy way to keep the history.
cd ~ mkdir source cd source git svn clone -s -r HEAD https://svn.perl.org/parrot cp -r parrot/languages/hq9plus ~ cd ~/hq9plus git init git add . git commit
Create an empty repository on github.com
For using the public plan you need to supply an username, your Email-adress and a public SSH-key. After that I followed the instructions and created an empty repository called 'hq9plus'.
Push your local repository onto github
Pushing the project onto github can then be done with:
git remote add origin firstname.lastname@example.org:bschmalhofer/hq9plus.git git push origin master
See the result on http://github.com/bschmalhofer/hq9plus/tree/master.
As license I choose to stay with Artistic 2.0.
Nor sure, whether copyright messages should be added.
Removal from the SVN repository
Remove the language from svn by doing 'ack-grep hq9plus' and remove the references to the language. The language directory can be deleted with 'svn del languages/hq9plus'. Also I edited the svn:ignore list: 'svn pe svn:ignore languages', as hq9plus will be checked out into 'languages'.
Tell the world about it
Edit https://trac.parrot.org/parrot/wiki/Languages and write about it in your blog.