diff --git a/doc/contributing/README b/doc/contributing/README new file mode 100644 index 00000000..e23acfad --- /dev/null +++ b/doc/contributing/README @@ -0,0 +1,80 @@ +############################################################################## +# Developing + +Currently the development workflow for pungi4 (devel-4-pungi) branch is: + + - Make your own for at https://pagure.io/pungi + - Clone your fork locally (replacing $USERNAME with your own): + git clone git@pagure.io:forks/$USERNAME/pungi.git + + - cd into your local clone and add the remote upstream for rebasing: + cd pungi + git remote add upstream git@pagure.io:pungi.git + + #NOTE: This workflow assumes that you never 'git commit' directly to + # the devel-4-pungi branch of your fork. This will make more sense + # when we cover rebasing below. + + - create a topic branch based on devel-4-pungi + git branch my_topic_branch devel-4-pungi + git checkout my_topic_branch + + - Make edits, changes, add new features, etc. and then make sure to pull + from upstream and rebase before submitting a pull request. + ## lets just say you edited setup.py for sake of argument + git checkout my_topic_branch + # make changes to setup.py + git add setup.py + git commit -m "added awesome feature to setup.py" + + ## Now we rebase + git checkout devel-4-pungi + git fetch upstream + git fetch upstream --tags + git merge upstream/devel-4-pungi + git push origin devel-4-pungi + git push origin --tags + git checkout my_topic_branch + git rebase devel-4-pungi + # Resolve merge conflicts if any as a result of your development in + # your topic branch + git push origin my_topic_branch + + - Create pull request in the pagure.io web UI + - For convenience, here is a bash shell function that can be placed in your + ~/.bashrc and called such as 'pullupstream pungi-4-devel' that will + automate a large portion of the rebase steps from above. + + pullupstream () { + if [[ -z "$1" ]]; then + printf "Error: must specify a branch name (e.g. - master, devel)\n" + else + pullup_startbranch=$(git describe --contains --all HEAD) + git checkout $1 + git fetch upstream + git fetch upstream --tags + git merge upstream/$1 + git push origin $1 + git push origin --tags + git checkout ${pullup_startbranch} + fi + } + +############################################################################## +# Testing + +Unit tests + - Unit tests are encouraged and should be placed in the tests/ directory + within the pungi git repository + +Running pungi locally for testing + - Running pungi locally for testing, you should build the rpm, install it, + and run ''pungi-koji' as follows: + + pungi-koji --target-dir=/path/to/store/compose/ --nightly \ + --config=/path/to/pungi-fedora/fedora.conf + + The fedora.conf file and other files it references can be found here: + https://pagure.io/pungi-fedora + - These can either be copied down locally or you can git clone that + repository as well to keep with the latest configurations.