This is a tutorial which hopes to make it easy for new contributors to figure out how to fix a bug in Lubuntu. Note that this is specific to repositories that Lubuntu hosts on Phabricator, i.e. those components that differentiate Lubuntu from other Ubuntu flavors— most notably, LXQt. Everything else is handled upstream in Ubuntu. The process there will be similar.
Packaging is a vast and complex subject, especially given the many upstreams (Ubuntu, Debian, the developer themselves) and the changing processes/requirements among them. We have our [own guide](http://phab.lubuntu.me/w/packaging/) that proves some links to further resources.
Long story short
WARNING: This is a high-level overview that is useful as a reference once you understand the process. **If you are new, DO NOT just follow this but read the links below first**.
NOTE: Anything in CAPS is to be considered a variable and not to be taken literally.
## make a place to contain your work
## get the packaging repository from Phabricator
git clone ssh://email@example.com:2222/source/PACKAGE.git
## make sure you're on the development branch
git checkout ubuntu/CODENAME
## get the upstream source code
tar -x --strip-components=1 -f ../PACKAGE_*.orig.tar.xz
## make a new patch
mkdir debian/patches # just in case it doesn't exist
quilt push -a # just in case there are patches, we apply them all
quilt new NAME.patch
# this is where you actually make the changes you want
quilt edit PATH/TO/FILE
quilt header --dep3 -e
## update the changelog
dch # -i or -a, depending (see below)
dch -r --distribution CODENAME
## test build the package
## NOTE THIS REQUIRES USE OF THE DEVELOPMENT VERSION!
sudo apt update; sudo apt build-dep PACKAGE
debuild -d --no-sign
## get rid of source
rm -rf !(debian) .pc/ # requires bash and `shopt -s extglob`
## push your changes
git add -A
## don't forget to add @tsimonq2, @wxl as reviewers
IMPORTANT: You must complete the [packaging requirements](https://phab.lubuntu.me/w/packaging-requirements/) if you want the above to work (don't skip this!)
IMPORTANT: The following is **required reading** if you want the above to make sense
* [version numbering](https://phab.lubuntu.me/w/packaging-versions/)
* [real world packaging example](https://phab.lubuntu.me/w/packaging-example/)
* [Upload to a PPA to test your packages before release](https://phab.lubuntu.me/w/packaging-ppa/")
* [Packages](https://phab.lubuntu.me/w/packages/) discusses where to find packages, their various states, how to get them in the archives, etc.