Skip to content

Season of Docs projects

K.B.Dharun Krishna edited this page Oct 30, 2022 · 42 revisions

The tldr-pages project is applying to the Season of Docs 2021 program. The following are some ideas for potential projects that technical writers can apply to work on. Feel free to reach out to our community chat room on Gitter for any additional information or clarifications.


Project: Implement new syntax for pages

Summary

The main goal of this project is to modernize and properly specify a complete, extensible and unambiguous syntax for tldr-pages. It is expected that this project would build upon the work initiated in PR #958.

Context / background information

The current syntax of tldr-pages entries was decided early on in the project, and all the different clients have been implemented based on that loose specification. Unfortunately, this results in several setbacks that have prevented the project to evolve to satisfy needs identified by the community. In particular, the current syntax:

  • is quite loose and underspecified, which ironically leads to some rigidity and lack of extensibility, because any improvement requires all the clients to be updated individually
  • is based on markdown, but not fully compliant with it; this means pages can't be properly rendered by regular markdown processors and produce semantically meaningful output
  • fails to adhere to common command line usage description patterns, e.g. the POSIX Utility Argument Syntax and the specification defined by the docopt project
  • has quirks such as the need for backticks around commands that make both authoring and reading the pages more cumbersome than necessary.

Project goals / expected outcomes

Successfully completing this project would entail fulfilling the following goals:

  • A well-defined syntax should be specified, that resolves all the issues identified so far with the current syntax, or at least reaches reasonable compromises for conflicting requirements, if there are any.
  • The authors and contributors to the major clients (node.js, python, ...) should be contacted to make sure the new syntax is supported.
  • All existing pages in the repository should be converted to this new syntax
  • The syntax linting rules should be updated or rewritten, to allow automatically assessing pull requests against the new page format.

Extended goals

  • Clients could simultaneously support both the new and the current syntax, during a transition period.
  • The content in the old format should remain available for clients that can't be updated, e.g. by publishing an archive of the old-syntax pages.

Relevant links

  • CONTRIBUTING.md § markdown format: the primary specification of the current syntax
  • style-guide.md: a more detailed description of the current syntax
  • Issues labeled "syntax": proposed enhancements to the current syntax that hopefully could be addressed once this project is complete.
  • PR #958: a concrete proposal for such a syntax update. The discussion in that pull request contains many relevant points that this project should address.

Desirable skills

Markdown formatting; basic scripting of repetitive tasks; communication with multiple stakeholders in an open, collaborative ecosystem (client authors, PR submitters, project maintainers, etc.).

Potential mentors


Project: Completeness — create missing pages

Summary

tldr pages are not limited to the tools available in popular systems (either installed by default or available in the software repositories); that said, comparing completeness against well-known collections of CLI tools is a good way to ensure coverage of the needs of most users.

Project goals / expected outcomes

The main goal of this project is to reach full parity with various popular sets of CLI tools, and is comprised of several sub-goals:

  • Create all missing pages from the GNU Core Utilities (coreutils). Tracked in #2213.
  • Create all missing pages from util-linux. Tracked in #2214.
  • Create all missing pages from the "Who needs a GUI?" article. Tracked in #1162.

Extended goals

  • Create pages for the individual "page request" issues marked with the help wanted label.
  • Achieve +90% coverage in the compound coverage meter on this spreadsheet (includes the lists above and several others).
  • Implement an automated check to test and report coverage against various lists. Tracked in #1070.
  • Merge duplicate pages from linux/ and osx/ into common/ (checking not just for availability, but for compatible interfaces as well — e.g. GNU vs. BSD versions of the same tool).

Desirable skills

Interpreting manpages; experimenting with CLI tools (possibly in multiple systems).

Potential mentors


See also the list of projects for the coding programs like GSoC or GCI.