Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2789

Use Markdown for Specifications Documentation

    • Type: Icon: Epic Epic
    • Resolution: Unresolved
    • Priority: Icon: Unknown Unknown
    • None
    • Component/s: None
    • None
    • Hide

      Drivers should update their specification links to either point to the new markdown files, or to the ReadTheDocs links.

      git --no-pager grep -n "https://github.com/mongodb/specifications" can be used to find affected links.

      https://specifications.readthedocs.io/en/latest/ is the new hosted site. You may want to load the page to find the updated anchor name.

      Show
      Drivers should update their specification links to either point to the new markdown files, or to the ReadTheDocs links. git --no-pager grep -n "https://github.com/mongodb/specifications" can be used to find affected links. https://specifications.readthedocs.io/en/latest/ is the new hosted site. You may want to load the page to find the updated anchor name.
    • To Do
    • Markdown Drivers Specs
    • 0
    • 0
    • 0
    • 100
    • Hide

      2024-07-08: Moving to Backlog as this work will continue to be depriorized at least through FY25Q2.


      2024-05-23

      De-prioritized this work during the last two weeks because of PyCon and SSDLC work.


      2024-05-9

      Resumed work on docs migration. All of the specs with spec owners are either complete or are in review. There are 17 more spec files without owners that still need to be migrated.


      2024-03-15
      Several more specs have been migrated, and I put in a ticket to add it to our internal docs site. I am pausing work on this for now while I take over OIDC spec work.


      2024-02-29
      A few more specs are migrated, but progress slowed due ensuring that git blame works for the files, and adding a custom checker for anchor links.


      2024-02-16
      Process has accelerated, all but CSE from the unrendered specs are merged.
      Several of the smaller specs have been merged.


      2024-02-02

      • 2 specs have been merged
      • 2 specs are in review
      Show
      2024-07-08: Moving to Backlog as this work will continue to be depriorized at least through FY25Q2. 2024-05-23 De-prioritized this work during the last two weeks because of PyCon and SSDLC work. 2024-05-9 Resumed work on docs migration. All of the specs with spec owners are either complete or are in review. There are 17 more spec files without owners that still need to be migrated. 2024-03-15 Several more specs have been migrated, and I put in a ticket to add it to our internal docs site. I am pausing work on this for now while I take over OIDC spec work. 2024-02-29 A few more specs are migrated, but progress slowed due ensuring that git blame works for the files, and adding a custom checker for anchor links. 2024-02-16 Process has accelerated, all but CSE from the unrendered specs are merged. Several of the smaller specs have been merged. 2024-02-02 2 specs have been merged 2 specs are in review
    • Needed
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-5742 Fixed 1.29.0
      CXX-3114 Fixed 4.0.0
      CSHARP-5301 Backlog
      GODRIVER-3365 Done
      JAVA-5636 Backlog
      NODE-6410 Fixed
      MOTOR-1374 Backlog
      PYTHON-4813 Fixed 4.11
      PHPLIB-1543 Done
      RUBY-3548 Done 2.22.0
      RUST-2048 Fixed 3.2.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-5742 Fixed 1.29.0 CXX-3114 Fixed 4.0.0 CSHARP-5301 Backlog GODRIVER-3365 Done JAVA-5636 Backlog NODE-6410 Fixed MOTOR-1374 Backlog PYTHON-4813 Fixed 4.11 PHPLIB-1543 Done RUBY-3548 Done 2.22.0 RUST-2048 Fixed 3.2.0

      Summary

      Update our drivers specification source documents to use Github Flavored Markdown.

      Motivation

      Following up on DRIVERS-983, there is a renewed concern that is it prohibitively difficult to use RST. Additionally, there is a new internal initiative to use Pine for R&D docs, which consumes Github Flavored Markdown.

      Proposal

      We can use pandoc and a custom script to most of the heavy lifting to convert the existing RST documents to Markdown. Each spec author would be tasked with running the script and ensuring that the resulting document(s) are correct.

      We have verified that GitHub Flavored Markdown accommodates all of the features we were using in RST, except for the fact that Admonitions (e.g. inline warning box) are not uniformly specified. Docusaurus (which is used by Pine) has one syntax, while GitHub recently standardized another. We should prioritize rendering on Docusaurus in this case, since the drivers and other internal teams will most commonly use the rendered documentation.

      As a pilot, I will make a PR to add the script and convert the CSOT specification. Once that is done, we can open the other child tickets on this Epic for each spec.

      Once we have about a half dozen specs, we can turn on the Pine integration (which will be its own child ticket), as a carrot for everyone to update their specs.

      Implementation Plan

      I will run the migration script and open the PRs, in order to avoid merge conflicts. I will ping the spec owners for review.
      The spec owners will:

      • Verify the new content is correct (and update as necessary).
      • Verify that the links are correct (links in Markdown files will be verified in CI)
        Once the PR is merged, I will open a PR for the next ticket.

      Risks

      • We are no longer able to use git blame to see the history of the files. We are mitigating this by adding a tag: https://github.com/mongodb/specifications/releases/tag/v1
      • Links to existing RST files from JIRA and internal websites will break. We are mitigating this in four steps:
        • When converting, leave the RST file and add a note pointing to future development in the MD file, see https://github.com/mongodb/specifications/pull/1524.
        • Finish the conversion of the RST files to MD
        • Open tickets to migrate existing links in drivers and internal docs sites from RST to MD
        • Trim the contents of the RST files to only include the pointer to the MD file. This would break links to anchors on RST files, but would at least not give a 404 on the main document.

      Cast of Characters

      Engineering Lead:
      Document Author: Steven Silvester
      POCers:
      Product Owner:
      Program Manager:
      Stakeholders:

      Channels & Docs

      Slack Channel

      [Scope Document|some.url]

      [Technical Design Document|some.url]

       

            Assignee:
            steve.silvester@mongodb.com Steve Silvester
            Reporter:
            steve.silvester@mongodb.com Steve Silvester
            James Kovacs James Kovacs
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              6 weeks, 3 days