Add a ToC to the top of the CONTRIBUTING.md file by lildude · Pull Request #7815 · github-linguist/linguist · GitHub
Skip to content

Add a ToC to the top of the CONTRIBUTING.md file#7815

Merged
lildude merged 2 commits intomainfrom
lildude/add-toc-contrib
Mar 2, 2026
Merged

Add a ToC to the top of the CONTRIBUTING.md file#7815
lildude merged 2 commits intomainfrom
lildude/add-toc-contrib

Conversation

@lildude
Copy link
Copy Markdown
Member

@lildude lildude commented Feb 19, 2026

Description

This PR adds a table of contents to the top of the CONTRIBUTING.md file to help viewers quickly find the section applicable to them.

Hopefully this will help reduce the number of PRs where users haven't followed instructions because they're hard to find.

Checklist:

N/A as this is just a doc change.

@lildude lildude requested a review from a team as a code owner February 19, 2026 18:05
Copy link
Copy Markdown
Collaborator

@Alhadis Alhadis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The vast majority of people coming to this file are first-time or very infrequent contributors, and the first thing they should see is whether or not their language or file-extension of interest is even eligible for submission in the first place. If and only if the usage criteria is met does it make sense to go into depth about setting up one's workspace.

Here's how I'd structure this document:

Toggle table-of-contents
  • Rules for submissions

    • Adding entries

      • Notability requirements
      • Adding languages
      • Associating new file extensions with existing languages
    • Modifying entries

      • Fixing misclassified files
      • Syntax highlighting
        (Preamble about TextMate grammars)
        • Fixing highlighting mistakes (or rather, who and where to report them to)
        • Adding or replacing grammars
      • Changing language colours
  • Preparing a pull-request

    • Setting up your development environment

      • Developing locally
        (Steps for cloning and bootstrapping the Linguist repo)
        • Dependencies
          (We shouldn't waffle on too much about individual libraries;
          users need not know what charlock_holmes is or does, only that
          it's a Ruby Gem required by Linguist. The majority of this section
          should be comprised of platform-specific one-liners to install
          the necessary packages, with off-site links to the package manager's
          docs included to answer any questions that novice users might have
          about installing stuff on the system they're running)

      (The next two sections are about alternative workflows that are, in a manner
      of speaking, shortcuts. Ergo, they should follow on from the “normal” procedure
      of hacking on this repository that are more immediately familiar to Git users, even
      Git users who've never contributed to Linguist before).

      • Using GitHub Codespaces
      • Using the dev container locally
    • Testing your changes
      (This might be a good place to add subsections regarding common failures,
      particularly those produced by test_pedantic.rb)
      .

(Note that this requires some wordsmithing and literary surgery; obviously, these are tasks I'm tacitly volunteering to tackle).

@lildude
Copy link
Copy Markdown
Member Author

lildude commented Feb 24, 2026

@Alhadis
Copy link
Copy Markdown
Collaborator

Alhadis commented Feb 24, 2026

I think Codespaces and the devcontainer environments should take priority over local dev as they're "one click" ready to go and even easier to use.

Thing is, it's a reasonable assumption that many users with prior contributions elsewhere are used to skim-reading docs like this one in search for a familiar-looking setup command like git clone git@github.com:USER/REPO.git or what-have-you. Seeing those sorts of instructions helps confirm for the reader that the same setup steps they're used to still apply; there's just a script/bootstrap they need to run after cloning a checkout.

Conversely, if the first thing they're greeted with is an unusual or elaborate setup procedure, they might interpret it as "mandatory for contributing" and not "purely optional for seasoned Git hackers". That alone might be a turn-off for users with less time to spare than others for contributing to open-source projects. (I've submitted PRs on my lunch break, for example, but only because the process was easy and immediately familiar).

Opening this half of the document with the Codespaces and devcontainer sections might make those workflows more visible to users, but since the Developing locally section can be drastically cut down in length by omitting explanations that are unnecessary for development, it means leading with that section won't bury the visibility of the alternative, more efficient workflows.

@Alhadis
Copy link
Copy Markdown
Collaborator

Alhadis commented Feb 24, 2026

Also—and I realise this is purely anecdotal—but the mistrust I feel towards "efficiency" solutions offered by companies that are also hawking AI products leaves me reluctant to want to try or even trust any shortcuts being advertised (even if no AI is involved whatsoever).

This is probably just a "me" issue, but it's worth considering how many other stubborn Unix hackers have the same mentality towards LLM-powered tools.

@lildude
Copy link
Copy Markdown
Member Author

lildude commented Feb 24, 2026

Also—and I realise this is purely anecdotal—but the mistrust I feel towards "efficiency" solutions offered by companies that are also hawking AI products leaves me reluctant to want to try or even trust any shortcuts being advertised (even if no AI is involved whatsoever).

This is probably just a "me" issue, but it's worth considering how many other stubborn Unix hackers have the same mentality towards LLM-powered tools.

Oh, I'm 100% with you here. In this case, I'm only suggesting it because I'm incredibly lazy and I don't want to have to deal with local dev env setup issues when they can be prevented very easily 😁.

@Alhadis
Copy link
Copy Markdown
Collaborator

Alhadis commented Mar 1, 2026

@lildude lildude merged commit ac753dd into main Mar 2, 2026
9 checks passed
@lildude lildude deleted the lildude/add-toc-contrib branch March 2, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants