[Baypiggies] Looking for help with packaging and git

Glen Jarvis glen at glenjarvis.com
Wed May 30 12:37:48 EDT 2018


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:

https://www.youtube.com/watch?v=Q3LyPTTb81w

I find it is a *great* talk to help you with packaging at all levels.

======

Second, the PyPackage cookiecutter template answers (and automates) more questions about modern Wheel format Python packages.
https://github.com/audreyr/cookiecutter-pypackage

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.

I created my own cookie cutter template for my own projects, but this one works out of the box too (https://github.com/audreyr/cookiecutter-pypackage).

======

I may have some resources that specifically answers your Git questions.

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 ;)

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 (https://www.youtube.com/watch?v=CB9p8n3gugM). However, before I prescribe a solution, I'd like to learn more where the Git pain point is (just a private email to glen at glenjarvis.com so we don't spam the group).

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,"

Hopefully this helps. Three resources to help you: Mahmoud Hashemi's packaging talk, the PyPackage Cookie cutter template and some Git Training out there.

Glen Jarvis
--
I use these email security features:
- PGP keys / Keybase:  https://keybase.io/glenjarvis
- One name: https://onename.com/glenjarvis
- ProtonMail (https://protonmail.com/) for end-to-end encryption
- Lavabit (glenjarvis at lavabit.com) for end-to-end encryption
- SPF, DKIM, and DMARC DNS (glenjarvis.com)
- DMARC policy of 'reject' (to reject all mails that don't pass security)

Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On May 29, 2018 5:51 PM, Irv Kalb <Irv at furrypants.com> wrote:

> 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.
>
> 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.)
>
> 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.
>
> 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.
>
> 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.
>
> Please contact me off-list if you are interested and/or have any further questions.
>
> Thanks in advance,
>
> Irv
>
> Irv at furrypants.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20180530/150ab06c/attachment.html>


More information about the Baypiggies mailing list