wiki:Source_code

Version 1 (modified by lucadelu, 6 years ago) ( diff )

moved documentation for git from wiki page https://wiki.osgeo.org/wiki/OSGeoLive

OSGeoLive source code

Repositories

https://github.com/OSGeo/OSGeoLive / https://git.osgeo.org/gitea/osgeolive/OSGeoLive

https://github.com/OSGeo/OSGeoLive-doc / https://git.osgeo.org/gitea/osgeolive/OSGeoLive-doc

Git Background

Since Git is a distributed versioning system, it is very convenient for each developer/contributor to have a personal public copy of the "official" repository (also known as fork). Web hosting services like GitLab or GitHub provide this option. By forking this way you can make changes to a personal repository, then you can ask the core developers to review the code and merge accordingly through a "pull request".

Fork repository

From https://github.com/OSGeo/OSGeoLive or https://github.com/OSGeo/OSGeoLive-doc select the "Fork" button to create your own fork of these repositories. After forking these official repositories, your working repositories are: https://github.com/your_id/OSGeoLive and https://github.com/your_id/OSGeoLive-doc

Copy your repository locally

On Linux systems get the source code locally using:

git clone https://github.com/your_id/OSGeoLive
git clone https://github.com/your_id/OSGeoLive-doc

(On MS Windows systems, you can use TortoiseGit, which extends Windows Explorer to include git commands)

In order to be able to get and send changes to your public git repository, you need to link your local copy to your public copy. This is done automatically for you when you "git clone". The repository that you cloned from has the alias "origin".

add upstream

In order to be able to get changes that others do to the main repository, you need to manually link to that using:

git remote add upstream https://github.com/OSGeo/OSGeoLive
git remote add upstream https://github.com/OSGeo/OSGeoLive-doc

setup git personal details

The first thing you should do when you install Git is to set your user name and e-mail address.

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

Commit access

On the git world, you don't need commit access to the main repository in order to contribute. You just work on your own fork and ask maintainers to merge your code through "pull requests". Before you contribute to the project for the first time, you will need to confirm that you will comply with our license guidelines. Write something like:

''"Hi all, I'd like to contribute XXX to OSGeoLive. I confirm that my contributions to OSGeoLive will be compatible with the OSGeoLive license guidelines at the time of contribution."''

The licenses used for the OSGeoLive build scripts and documentation are:

  • Creative Commons Attribution-ShareAlike 3.0 Unported License for Quickstarts
  • Creative Commons Attribution 3.0 Unported License for Project Overviews
  • LGPL version >=2.1 for the install scripts
  • One of the OSI approved Open Source licenses for installed applications
  • Public domain, CC-By-SA, and Open Data Commons Open Database License (ODbL) for data

Add your name to contributors list

The first thing you should do to test your git setup is to add your name to the code contributors or translators list(s):

cd OSGeoLive-doc

# Pull any updates from upstream project (master is the equivalent of subversion trunk)
git pull upstream master

# Coders and creators of new content: edit contributors.csv
# please add your Name, Email, Country and Osgeo_id to the list, separated by comma
#  - Order alphabetical by first name,
#  - remove punctuation from email addresses to stop harvesting for junk mail
 
# optionally check to see what has changed.
git diff contributors.csv
 
# add the changes into stage area
git add contributors.csv

# commit changes locally
git commit -m "Added [my name] to contributors"

# send the changes to your public repository 
git push origin master

At this point you can let others know that you have some changes that you want to merge, so you can use the button "Pull Request" on GitLab or GitHub. Or you can continue until you feel ready to share your code :)

# Translators: edit translators.csv
# same as above, but the order of columns is:
# Language, i18n code, Name, Country, Email, Osgeo_id
#  - Order alphabetically by language, then by first name
#  - remove punctuation from email addresses to stop harvesting for junk mail

Working with files:

# to add a file
cd <dir>

# create a file
git add <file>
git commit -m "commit message"
git push origin master

# to move or rename a file
#  *** please use instead of 'svn add' + 'svn rm', otherwise the
#      development history gets lost and database space is wasted ***
git mv <old filename> <new filename>
git commit -m "commit message"
git push origin master

Last step: pull request

In order to merge your work with the main repository, you have to make a pull request.

You can do it by logging on your github account and go to the branch you changed. Click on the New pull request green button. The changes you made previously while appear.

You can review and comment your request before submitting. To submit, click on the Create pull request green button. Then, you're done ! Good job !

More information about Github pull request here: https://help.github.com/articles/using-pull-requests/

Old SVN repository

For historical reason we keep the old SVN repository.

https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk/

Note: See TracWiki for help on using the wiki.