Skip to content
This repository has been archived by the owner on Aug 31, 2021. It is now read-only.

Latest commit

 

History

History
151 lines (134 loc) · 13.4 KB

repository-structure.md

File metadata and controls

151 lines (134 loc) · 13.4 KB

How is this repository structured?

This repository can be viewed both via GitHub and via the v3 website. This page describes the repository as found on GitHub. It is roughly equivalent to the website, with filenames being title-ized.

Things are grouped into several sub-directories:

This directory contains files, for both the public and maintainers, explaining what v3 is and how to contribute.

A list of reference documents for the various CS concepts, types, paradigms, etc.

  • concepts: This directory contains files discussing programming concepts. These documents should provide guidance, limitations, and links for maintainers who need to expound those ideas on their tracks.
  • paradigms This directory contains files discussing programming paradigms. These documents should link to the concepts typically associated with the paradigms.
  • tooling This directory contains documents on tooling that is common across languages (either due to a shared ecosystem - such as JS/TS/Clojurescript - or a shared platform - such as .net or JVM).
  • types: This directory contains files discussing programming types. These documents should provide guidance, limitations, and links for maintainers who need to expound those ideas on their tracks.

Each track has its own directory containing the following files and directories:

  • concepts: This directory contains files to describe the concepts used in the track.
  • config.json The updated config.json for a track, with the practice exercises removed to avoid noise.
  • docs: This directory contains files, for both the public and maintainers, describing the track and how to contribute. It is envisioned that these documents will be linked to from issues and discussions to provide canonical answers or guidance.
  • exercises: The exercises for that track.
    • shared: Exercise files shared across all exercises for that track.
      • .docs: Exercise documentation shared across all exercises for that track.
    • concept: The Concept Exercises for that track.
    • practice: The Practice Exercises for that track.
  • README.md: The track's README, which should contain a short description of the goal of the repository as well as the status of the track's v3 transition. A template is provided during the bootstrapping process.
  • reference: Files that help maintainers develop the track. These could be reference documents that help explain track-specific concepts for which no appropriate online document could be found, files on language-specific elements of programming concepts, or something else. Maintainers are free to organise this directory in the way they feel it best contributes to developing their track.
    • README.md: The README outlines the concepts that are necessary to learn to become fluent in that language. It could also list any reference documents that have been written.
    • concepts.csv: A machine readable file defining all concept slugs used in the track. Read the Continuous Integration document for more information. This file is optional.
  • transitions: Contains a file for each pair of languages, where someone with a background in X learns new language Y. These should explain the concepts that needed to be remapped/learnt. The files in this directory initially aim to help inform us about both the language-agnostic and language-specific files, but will hopefully also in the long-run provide custom pathways for people learning languages.

GitHub

The following labels are used to categorize issues in the v3 repository:

Each language also has its own label:

You can combine labels to find the issues you'd like, e.g. to list all the issues for the C# for which help is wanted.