== 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 [https://code.google.com/p/tortoisegit/ 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 [https://github.com/OSGeo/OSGeoLive-doc/blob/master/contributors.csv code contributors] or [https://github.com/OSGeo/OSGeoLive-doc/blob/master/translators.csv 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