What is flora
flora is the funtoo overlay for User Contribution to funtoo.
Some of you may ask "Why they call it flora?"
For that have a view at the definition for flora:
- Plants considered as a group, especially the plants of a particular country, region, or time.
- A treatise describing the plants of a region or time.
- The bacteria and other microorganisms that normally inhabit a bodily organ or part: intestinal flora.
We hope that for ebuilds submittet only the first 2 definitions would be suitable :)
How to work with ...
Core Members can directly push to flora, they have the appropriate rights, just do
cd <your dir for overlays> git clone email@example.com:funtoo/flora.git
Now you will be able to push to and pull from flora. For development in git I would all members advice to use git-flow, since we get a clean structure without any stuff of development left in the later overlay that way. ;) See for it the Git Guide and the flora#... git-flow
For normal users that like to contribute it is a bit more complicated but we will now walk through it with you, helping you to do so.
First you have to have a git-hub account, for that you can follow our Git Guide to get one. If you have already one keep on here, if not get one first.
Since you should have a git-hub account now, go visit https://github.com/funtoo/flora and use the fork button on the top to fork the repository to your own account so you can push to it later.
Now you should create a directory to contain the local copy of the overlay repository on your local disk. Let's say you use /root/.git for it, but you may use what ever you want to.
cd /root/.git git clone firstname.lastname@example.org:<your github username>/flora.git
Now you are nearly ready to contribute. You have flora cloned to /root/.git/flora now and we will go in it and make the necessary changes so we can work with it like we would. Read on in flora#... git-flow.
Since this is a very helpful tool, you should just emerge it and also the git-flow-completion package, as it will support you in your work.
# emerge -avt gitflow git-flow-completion
When it is installed, move to your flora overlay and initialize the git-flow for it. In the following we suppose that you used /root/.git/flora for your overlay.
# cd /root/.git/flora # git-flow init No branches exist yet. Base branches must be created now. Branch name for prodution releases: [master] <ENTER> Branch name for "next release" development: [develop] <ENTER> Ho to name your supporting branch prefixes? Feature branches? [feature/] <ENTER> Release branches? [release/] <ENTER> Hotfix branches? [hotfix/] <ENTER> Support branches? [support/] <ENTER> Version tag prefix?  <ENTER> #
Your main work will now be done in the develop branch. When you want to add a feature or do a hotfix you just do
# git-flow feature start <name of feature> (Edit of feature)
You can at any time switch to the development branch again with
# git checkout develop
To see which features you have open you can use
# git-flow feature [list]
If your feature is finished do
# git-flow feature finish <name>
For a hotfix to any of your ebuilds you use
# git-flow hotfix start <version>
Now you can hotfix the ebuild and do a simple
# git-flow hotfix finish <version>
Now that we now how to add features, do hotfixes and support work, we still need to know how to do a release. This is done like that:
# git add <directory or file> # git commit (Now your editor will appear if you followed our Git Guide) # git-flow release start <name> Switched to a new branch 'release/<name>' Summary of actions - A new branch 'release/<name>' was created, based on 'develop' - You are now on branch 'release/<name>' Follow-up actions: - Bump the version number now! - Start committing last-minute fixes in preparing your release - When done, run: git-flow release finish <name> # (Do what is noted above if needed) # git-flow release finish <name> Switched to branch 'master' Merge made by recursive X files changed, X insertions(+), X deletions(-) create mode aaaaaa README Deleted branch release/<name> (was <githash>) (your editor will come up so you cann give a release note, save and close your editor then.) Summary of actions: - Latest objects have been fetched from 'origin' - Release branch has been merged into 'master' - The release was tagged '<name>' - Release branch has been back-merged into 'develop' - Release branch 'release/<name>' has been deleted # (as we are now on the master branch we can do the push and go back to development branch # git push # git checkout develop
Now you should have an overview of how we like to work in flora and keep a clean structure in it.
This workflow model will then look like the following graph:
Notify us about your commit
To make us aware that you commited something go again to your github.com account and give us a Pull Request, so we can have a short review of your push and include it that way into the main tree. If you started working on an ebuild please let us know that you are responsible for it by adding your data to ebuild Maintainer list