Link Search Menu Expand Document

Table of Contents generated with DocToc

:octocat: Hacktoberfest

This project is participating in Hacktoberfest 2021. If you are looking to contribute, please check out our detailed guide for hacktoberfest participants.

🕐 What’s this project?

Before you get started, get to know the project a little bit. Open and browse around a little bit. Take a look at some of these recently merged PRs to get a better idea: #375, #374, #378, #383.

:pencil: About the codebase is built using Jekyll - the Ruby static site builder that powers GitHub Pages. The site is built and deployed to Netlify. Since the site is mostly informational, you don’t need programming skills to contribute to the project.

:new: Adding a new product

To add a new page to the website, create a new markdown file with YAML frontmatter. Keep the filename as, and please delete any generic comments or unneeded keys before creating a Pull Request. Use the timezone from the upstream product for all dates, wherever possible.

title: Timeturner
layout: post
# Possible values are os,db,app,lang,framework,device,service,server-app
# If you add a new value, please mention it on the PR Description. Some rough guidelines:
# os is operating systems (and similar projects)
# db is databases, os is operating systems, lang is programming languages
# app is end-user applications
# lang is programming languages
# framework is used for application libraries, SDKs, frameworks etc
# device is physical devices
# service is managed service offerings (SaaS/PaaS etc)
# server-app are applications usually installed on the server-side
category: os

# What should be used to sort releases. Set to one of:
# releaseCycle/eol/support/releaseDate/cycleShortHand/latest/latestShortHand
# which must be present in all of the releases underneath
sortReleasesBy: "releaseCycle"

# Template to be used to generate a link for the release
# __RELEASE_CYCLE__ will be replaced by the value of releaseCycle
# __CYCLE_SHORT_HAND__ will be replaced by the optional changelogTemplate
# __LATEST__ will be replaced by the value of latest
# __LATEST_SHORT_HAND__ will be replaced by the optional latestShortHand
# __CODENAME__ will be replaced by the optional codename

# You can even use Liquid Templating inside the template, such as:
# Do not use a localized URL (such as one containing en-us) if possible
changelogTemplate: "https://link/of/the/__RELEASE_CYCLE__/and/__LATEST__/version"

# Optional template that generates names for every release. Supports same templating as changelogTemplate.
# Default value is `__RELEASE_CYCLE__``
releaseLabel: "MoM Timeturner __RELEASE_CYCLE__ (__CODENAME__)"

# The label that will be used alongside releases labelled with `lts: true`
# Optional, only provide if the product has lts releases that are not called LTS, but something else.
# Default Value is <abbr title='Long Term Support'>LTS</abbr>
# Prefer using an HTML abbr tag, if possible.
LTSLabel: "<abbr title='Extra Long Support'>ELS</abbr>"

# Optional information about how release information can be fetched automatically
# This is used for automatically updating `releaseDate`, `latest`, and `latestReleaseDate` for
# every release.
# Please see for more details
  - custom: true
  # Any valid git clone URL will work
  # Support for partialClone is necessary (GitHub does support this)
  - git:
    # An optional regex that defines how the tags above should translate to releases
    # Use named capturing groups
    # Default value should work for most releases of the form a.b or a.b.c
    # default also skips over any special releases (nightly,beta,pre,rc etc)
    regex: ^v(?<major>0|[1-9]\d*)_(?<minor>0|[1-9]\d*)_(?<patch>\d{1,3})_?(?<tiny>\d+)?$
    # A liquid template using the captured variables from the regex above that renders the final version
    # You can use liquid templating here
    template: '..'

  # owner/repo combination for a docker hub public image
  # Use "library" as the owner name for a official docker/community image
  - dockerhub: ministryofmagic/timeturner

  # Link to package on NPM
  - npm:

  # Use this if the product has a custom script updating releases
  # in release-data repository
  - custom: true

# A list of releases, supported or not
# Newer releases go on top of the list, in order
    # Release range (usually major.minor), always put in quotes
    # Do not prefix with "v" or suffix with ".x"
    # This becomes part of our API URL, so try to keep this hyphenated, instead of using spaces
    # And use consistent case (lowercase prefered) if it uses words.
    # Do not add releases that are not considered "stable" (such as RC/Alpha/Beta/Nightly)
  - releaseCycle: "1.2"
    # Optionally, overwrite the release label on a per-release basis
    # You can use templating here, though usually not required.
    # Template parameters are same as releaseLabel above
    releaseLabel: "Timeturner Firebolt (1.2)"
    # End of Security Support for the product. Alternatively, set to true|false if EOL is not pre-decided
    # In case there is extended/commercial support available, pick the date that would apply to the majority of users.
    eol: 2019-01-01
    # End of Active Support for the product. This is where bugfixes usually stop coming in. (remove if activeSupportColumn=false)
    # Alternatively, set to true|false if it is not pre-decided
    support: 2018-01-31
    # Date of release for the product
    # remove if releaseDateColumn is false
    # An approximate date is better than no date.
    releaseDate: 2017-03-12
    # Current latest release
    # remove if releaseColumn is false
    # always put in quotes
    latest: "1.2.3"
    # The date of the latest release
    # This is currently optional.
    latestReleaseDate: 2022-01-23
    # Whether this is a "LTS" release. What LTS means may differ from product to product (see LTSLabel above)
    # Optional, default false. Only provide for a release that will get a much longer support than usual.
    lts: true
    # Can be true/false. Only use if discontinuedColumn is set to true
    discontinued: true
    # Optional, can be used to sort releases, and as part of the changelogTemplate (__LATEST_SHORT_HAND__).
    latestShortHand: "10203"
    # Optional, can be used to sort releases, and as part of the changelogTemplate (__CYCLE_SHORT_HAND__).
    # Useful for sorting because 1.2 comes after 1.10 in normal sorting, so using cycleShortHand values of 102, 110
    # makes sorting much easier
    cycleShortHand: "102"
    # A link to the changelog for this specific release. Use this if the link is not
    # predictable and you can't use changelogTemplate.
    # Do not use a localized URL (such as one containing en-us) if possible
    # Optional field, not displayed anywhere by default. Can be used as __CODENAME__ in the releaseLabel and changelogTemplate
    # Also returned as-as in the API.
    codename: firebolt

# Set an icon for the product from
# If the icon is not available on simpleicons, set it to "NA"
# As an example, links to
# and
# So the slug is `opensuse` (the SVG filename without extension).
iconSlug: ministryofmagic

# A few extra fields define overall page behaviour

# URL for the page
permalink: /timeturner

# A list of alternate URLs that will redirect to the permalink. This is nice to let people use easier to remember URLs. For eg, we redirect /golang to /go
  - /hourglass

# More information link. This link should contain
# information about the release policy and schedule
# This is NOT the product URL
# Do not use a localized URL (such as one containing en-us) if possible

# Whether to hide the "Active Support" column (optional, default true)
activeSupportColumn: false

# Whether to hide/show the latest release column. If the product doesn't have patch releases, set this to false. (optional, default true)
releaseColumn: true

# Whether to show the release date column
# optional, default false
releaseDateColumn: true

# What to call the End of Life  (Security Support) column. (optional)
eolColumn: Service Status

# Whether to hide/show the discontinued column. Set to true, if you're tracking a device. This usually means the device is no longer available for sale or is no longer being manufactured. Set discontinued: true/false inside a release.

discontinuedColumn: false

# Command that can be used to check the current version. (optional)
versionCommand: swish and flick

# An image that shows a graphical representation of the releases.
# This is not the product logo. Remove if you don't find a relevant image.

# In the markdown section, ensure that the following are present:
# 1. A one line statement about what the product is, with a link to the primary website (in a quote)
# 2. A short summary of the release policy, pointing out the EoL policy as well, if available.
# 3. Any additional information that may be of interest
# See the Guiding Principles on the wiki (
# on tone and voice for the text.

# If you are adding any images in the text, they might get blocked due to our CSP
# Prefer using releaseImage in such cases.
# Images on the same website as releaseImage will not be blocked.

# Please leave a newline both above and below the triple-dashes


> [Time Turner]( is device that powers short-term time travel.

Time-turners are no longer released, and the last known stable release was in HP.5 release.

For the product text, please make sure you read the Guiding Principles for the website to match the tone. File a Pull Request with this file created, and Netlify will provide a preview URL for the same. Once the pull request is merged, the changes are automatically deployed on the website. See below on how to validate your changes.

You can visit to directly create your file.

✅ Validating your changes

Once you file your Pull Request, Netlify will provide a list of checks for your changes. If one of the checks is failed, you can click Details and see through the errors, or one of the Maintainers will be there to help you soon.

If all of the checks pass, you can click the “Details” link on the “Deploy Preview” Status Check to see a preview of the website with your changes.


Click through, and validate your changes. Click all the links in the page you’ve changed and make sure they’re not broken.

📑 Suggested Reading

We have the following documents which should help you get familiar with the project and the codebase. You don’t need to read all of these, and we’ve linked these docs above in cases where you must read any of them.

  • contains instructions on setting up the codebase locally with Jekyll. Read this if you’re planning to make complex changes or setting up the project locally.
  • Guiding Principles - These help us make decisions around the content we have. If you’d like to make sure your PR gets a speedy approval, please read these to ensure your changes are aligned with the rest of the content. This is especially important if you are making non-trivial changes that deal with the content or add a new product.
  • - (This page). Also accessible at

:bookmark: Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.