#1407·rust

Clean up `topics` vs `practices` in `config.json`

Author: coriolinusCreated Nov 29, 2021Updated Dec 15, 2023
Labelsx:action/improvex:knowledge/elementaryx:module/practice-exercisex:size/medium

Per the current docs, the track-level config.json's per-exercise topics key isn't used for anything. This has the advantage that the items there aren't constrained by cross-checks, but the disadvantage that we're not fully exposing to the website the information we have about each exercise.

The general procedure we want to follow goes like this:

  • Collect the list of all current concept exercises. Currently:
    $ jq -r '.concepts[] | .slug' config.json | sort -u
    booleans
    box
    char
    collect
    destructuring
    entry-api
    enums
    floating-point-numbers
    fold
    functions
    hashmap
    integers
    loops
    match-basics
    mutability
    option
    references
    strings
    string-slices
    string-vs-str
    structs
    tuples
    vec-macro
    vec-stack
    
  • For each exercise among the practice exercises:
    • For each item in topics
      • If the topic is a current concept, move it from topics to practices

This process needs to be repeated periodically as we add concepts, so PRs addressing this issue should not close it.