I am pretty new to git/github and I haven't really found the best way to setup a development environment for contributions to st2 packages. So I was curious about what you guts are doing. Here is what I thinks makes the whole thing suboptimal. I add a package using package control. Now I want to contribute to this package so I basically have to remove it through package control, create a fork, and clone the fork my sublime packages folder. Now I can work the package, test changes in st2, commit changes to my fork and finally sent a pull request to the fork that is on package control. All good so far. But now I don't get automatic updates through package control and instead have to manually fetch new changes from the original repo, which is pretty annoying because I have to keep track of changes in the original repo. So I might delete my clone and add the original version through package control. But now I can't easily contribute to the repo and send pull requests.

So is there any way to seamlessly integrate these steps and have an up to date version of the original repo while still being able to send pull requests for contributions?

I haven't contributed to other's packages but if I were to, I would do it the way you described. You can install a git plugin for Sublime, that way you can sync every change you make to a dev or master branch and when you're done you just do a pull request. The forking isn't that big of a problem because you wouldn't want conflicting plugins to begin with.