QuantEcon / lecture-source-py

Source files for "Lectures in Quantitative Economics" -- Python version
BSD 3-Clause "New" or "Revised" License
191 stars 77 forks source link

Split projects! #950

Closed jstac closed 4 years ago

jstac commented 4 years ago

OK, so this is a big one.

The plan is to divide this project into three parts:

  1. Python for Quantitative Economics (python-programming.quantecon.org)
  2. Introduction to Quantitative Economics with Python (python-intro.quantecon.org)
  3. Advanced Quantitative Economics with Python (python-advanced.quantecon.org)

What's up for discussion is (a) the exact split and (b) how to do it.

Regarding (a), @thomassargent30 and I will go through and flag lectures appropriately.

Regarding (b), we need to think about cross-references and new directory structure.

One possibility is to keep this repo and include in it three jupinx projects. The other is to create three repos, one for each project. The first option is probably easier but the second would be more conventional.

@mmcky and @AakashGfude , it would be good to hear your thoughts.

mmcky commented 4 years ago

@jstac I agree from a technical perspective I think the main piece to understand is:

I guess I would lean towards having separate repository where each uses a common name conventions such as lectures.python-{project}. The main reason is that if we had a single repo with three folders (each a separate sphinx project) -- PR's / Issue tracking may be more difficult as we work out which project they pertain to etc. In addition a pull of one project shouldn't really necessitate the fetching of sources for the others.

mmcky commented 4 years ago

@jstac will all python projects be styled the same way -- or would we want distinguishing theme elements between these three projects (cc @DrDrij)

jstac commented 4 years ago

Regarding repos, you are right. Let's split them up. (It's a bit painful to shift over existing issues but better to go through that pain first up and then have smoother sailing.)

I think they can all be styled in the same way.

AakashGfude commented 4 years ago

@jstac , I suppose the three splits will be mutually exclusive in terms of lectures then? And will we scrap the graduate and undergraduate course tabs?

jstac commented 4 years ago

That's correct @AakashGfude .

As for linking, mentioned by @mmcky, I wonder if there's a good way to do it. It would be great if you could look into it. But the worst case scenario is not too bad: For cross-refs that would point out to one of the other projects, we replace a precise reference to a lecture to a general reference to the project.

("more info can be found in :doc:this lecture <xxx>" becomes "more info can be found in the section on topic yyy in project zzz <external_link>_)

shlff commented 4 years ago

Thanks, @jstac , @mmcky and @AakashGfude . I agreed with your ideas about splitting repos.

Hi @jstac , regarding linking, we should probably consider three things:

  1. Whether those links work for an individual/all pdf.
  2. Whether those links work for an individual jupyter notebook (JN).
  3. Whether those links work for the above files in Points 1 and 2 (downloadable JN) without the internet.

A similar problem @AakashGfude and I face when we are going to fix issue #926 . In issue #926, if we replace the reference with external links to the website, then it would make the life of offline readers a bit harder.

The effect of these problems can be minimized if we assume that most readers have internet.

mmcky commented 4 years ago

@jstac an update on progress.

We now have the repositories setup for:

  1. python-programming
  2. python-intro
  3. python-advanced

along with associated:

  1. .theme for private quantecon, and
  2. .notebooks repositories to support google colab

They build each project and I am manually populating the preview buckets for testing and review of html

The following still needs to be done:

mmcky commented 4 years ago

Regarding timeline I don't think we will be able to switch by tomorrow but all the infrastructure should be in place to deploy the new structure when we are happy with the new projectcontent and all sphinx warnings are resolved.

My aim is:

  1. finalise all required infrastructure to meet Friday 13th March target
  2. Implement freeze on lecture-source-py and transfer final rst files to new repository locations + freeze updates to the live site (Friday 13th March)
  3. with RA support work to resolve sphinx warnings with missing labels and add PR's to smooth the language around cross-project links (I suspect this will be ~1 week) across lecture-python-intro and lecture-python-advanced (mainly)
  4. switch from python.quantecon.org -> 3 x project structure for live sites.
mmcky commented 4 years ago

closing this issue as the remainder is documented in #957