econchick / econchick/new-coder

RFC: Create a "new coder" GH org, migrate everything to individual repos, create skeleton package

Open
#177 4 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
CSS
Stars
591
Forks
378
PR merge metrics
No merged PRs in 30d

Description

To anyone who has interest in this repo (@merwok, @willingc , anyone else!), I am soliciting for comments for the following ideas:
##### New GitHub Organization w/ individual repos

I'd like to create a GitHub organization for New Coder, with 1 repo for the website itself, and 5 repos for each of the tutorials, and new repos for future tutorials.

This will allow me to do a few things:
- individual licenses per repo (website to be creative commons, code to be MIT)
- tutorial repos will be easier to set up for the user with reqs.txt (just visually making more sense)
- able to setup each repo with commit-to-deploy pipeline with a CI (probably [Travis CI](https://travis-ci.org/))
- auto-deploy website with merge to master
- auto-build pull requests specific to each tutorial
- auto-build each tutorial's how-to into a PDF (or other format) for the ill-maintained [workshop kits](http://newcoder.io/workshop/)
- ability to easily test (and - for that matter - add tests) for each tutorial (ties in with Travis deployment setup)
- every tutorial would be a stand-alone Python package (see below)

It's also just logical in my mind to separate code from website.
##### Skeleton Python app

I'm also thinking about making a skeleton Python package where one can install via pip, and install an individual tutorial, a select few, or all. I imagine behavior to be like `pip install newcoder[all]` and `pip install newcoder-dataviz` (see [setuptools "extras_require"](https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies). I haven't given much thought to what `pip install newcoder` would do...

With this skeleton package, I'd add a command (similar to Django's `start-project` command) to create the initial setup for the user. It would at least spit out a new Python file in current working directory; not sure what else yet but I like the idea. Maybe some skeleton code, too.

The package could also have another command that could run the tests against the user's code (could be very simple or complex depending on how helpful this commands wants to be).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.