<div>Mahmoud Hashemi has given a *great* talk at PyCon and at  BAyPIGgies on all kinds of packaging. I think this will answer a bunk of your questions. Here's a link:<br></div><div><div><br></div><div><a href="https://www.youtube.com/watch?v=Q3LyPTTb81w">https://www.youtube.com/watch?v=Q3LyPTTb81w</a><br></div><div><br></div><div>I find it is a *great* talk to help you with packaging at all levels.<br></div><div><br></div><div>======<br></div><div><br></div><div>Second, the PyPackage cookiecutter template answers (and automates) more questions about modern Wheel format Python packages. <br></div><div><a href="https://github.com/audreyr/cookiecutter-pypackage">https://github.com/audreyr/cookiecutter-pypackage</a><br></div><div><br></div><div>For example, a setup.py in Wheel format is created for you -- a necessary prereq for making a Python package. Also, a Tox file is created for you (so that you can automatically test against a whole range of Python versions and not just a single Python version).  A Travis-CI integration is setup for you so that you could have CI integration for when your project is running. And, it comes with a very handy Make file for automating many of these tasks.<br></div><div><br></div><div>I created my own cookie cutter template for my own projects, but this one works out of the box too (<a href="https://github.com/audreyr/cookiecutter-pypackage">https://github.com/audreyr/cookiecutter-pypackage</a>).<br></div></div><div><br></div><div>======<br></div><div><br></div><div>I may have some resources that specifically answers your Git questions.<br></div><div><br></div><div>I intend to make a detailed online open source training course "How to contribute to Open Source" that answers almost all of these other questions (and a few more that haven't been asked yet). However, I have been working with a University of CA extension office to make an Online Git course - that has to be finished first. Disclaimer: If I don't finish both of these courses by 21-July when my funding runs out, I won't be able to finish the "How to contribute to Open Source" online training (or, at least not without a huge delay or finding more funding as I have to pay rent too ;)<br></div><div><div><div><div><br></div><div>Back to Git, Git is one of my  areas of speciality. In addition to the work mentioned, I also have some  older videos from the past that I could point you to (<a href="https://www.youtube.com/watch?v=CB9p8n3gugM">https://www.youtube.com/watch?v=CB9p8n3gugM</a>). However, before I prescribe a solution, I'd like to learn more where the Git pain point is (just a private email to <a href="mailto:glen@glenjarvis.com">glen@glenjarvis.com</a> so we don't spam the group).</div></div></div><div><br></div><div>For what it's worth, I find that almost all of the time the confusion comes from trying to bypass learning the simple data structure that Git is built around (and I teach this often). Most people don't realize that, unlike other software, Git was written for a developer audience. Learning that 3-item data structure (HEAD pointer pointing to an entry in the branch/ref table which in turn points to a commit object) doesn't take that long (no one has taken longer than an hour to go through this material). However, without learning that simple 3-item data structure, people often find themselves in the weeds wasting hours and hours fighting unnecessary details or details that don't make sense without the data structure context. This is compounded by many of the GUIs that try to abstract that simple data away making it even harder to understand as, to quote from Alex Martelli, "all abstractions leak," </div><div><br></div><div>Hopefully this helps. Three resources to help you: Mahmoud Hashemi's packaging talk, the PyPackage Cookie cutter template and some Git Training out there. </div><div><div><br></div><div><br></div></div></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user"><div>Glen Jarvis<br></div><div>--<br></div><div>I use these email security features:<br></div><div>- PGP keys / Keybase:  <a href="https://keybase.io/glenjarvis">https://keybase.io/glenjarvis</a><br></div><div>- One name: <span class="highlight" style="background-color:rgb(255, 255, 255)"><span class="colour" style="color:rgb(85, 85, 85)"><span class="font" style="font-family:Arial, "Helvetica Neue", Helvetica, sans-serif"><span class="size" style="font-size:14px"><a href="https://onename.com/glenjarvis">https://onename.com/glenjarvis</a></span></span></span></span><br></div><div>- ProtonMail (<a href="https://protonmail.com/">https://protonmail.com/</a>)  for end-to-end encryption<br></div><div>- Lavabit (glenjarvis@lavabit.com) for end-to-end encryption<br></div><div>- SPF, DKIM, and DMARC DNS (glenjarvis.com)<br></div><div><div>- DMARC policy of 'reject' (to reject all mails that don't pass security)<br></div></div><div><br></div></div><div><br></div><div class="protonmail_signature_block-proton">Sent with <a href="https://protonmail.com" target="_blank">ProtonMail</a> Secure Email.<br></div></div><div><br></div><div>‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br></div><div> On May 29, 2018 5:51 PM, Irv Kalb <Irv@furrypants.com> wrote:<br></div><div> <br></div><blockquote class="protonmail_quote" type="cite"><p class="MsoNormal">I
am looking for some help on an educational project.  I currently teach Introduction to Python programming classes
at UCSC-Extension in Santa Clara and at Cogswell College in San Jose.<br></p><p class="MsoNormal">I
am finalizing the development of a new course and potential book – focused on
Object Oriented Programming in Python. 
To explain many OOP concepts, I am using the pygame extension and have
built a number of small games as examples.  I am providing a package of user interface widgets (buttons, checkboxes, etc.) that I
wrote as OOP examples, and students can them use to make highly interactive
games.  I also have a number of
other classes as “helpers” that can be used by students - for example, a Scene
Manager that makes it easy to build a multi-scene game. (Maybe I’ll offer to
give a talk on all this at BayPiggies some day.)<br></p><p class="MsoNormal"><br></p><p class="MsoNormal">I have no problems with the Python code – that’s all working fine. However, I do have
a bunch of questions around the intersection of packaging, source control
using git, and PyCharm.  While I
have done all the development on my Mac, I want to package up
my classes and publish them in a way that would be both easy for me to continue to develop them,
and easy for my students to use them in their projects.<br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Ideally,
I would like to meet with someone who is familiar with building Python modules
containing many classes, can explain the basics of the git desktop application,
and hopefully show me how to get this all working with PyCharm.<br></p><p class="MsoNormal"><br></p><p class="MsoNormal">I
think I would only need about an hour or two, to let me show you what I have,
and talk about the best way to proceed.  I am in Mountain View, but would be
willing to travel (locally) to work with the right person.  We could meet at a Startbucks or Peets or some place similar
and I would be happy to buy you whatever you might want there.<br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Please
contact me off-list if you are interested and/or have any further questions.<br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Thanks
in advance,<br></p><p class="MsoNormal">Irv<span class="size" style="font-size:18px"></span><br></p><p class="MsoNormal"><a class="" href="mailto:Irv@furrypants.com">Irv@furrypants.com</a><br></p></blockquote><div><br></div>