{"id":19358373,"url":"https://github.com/paritytech/release-registry","last_synced_at":"2025-04-23T11:31:31.154Z","repository":{"id":255400241,"uuid":"849291612","full_name":"paritytech/release-registry","owner":"paritytech","description":"Tracking past and future releases of the Polkadot SDK.","archived":false,"fork":false,"pushed_at":"2024-09-17T14:58:49.000Z","size":767,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-09-17T18:43:36.800Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paritytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-29T10:33:24.000Z","updated_at":"2024-09-17T14:58:50.000Z","dependencies_parsed_at":"2024-09-10T02:10:47.501Z","dependency_job_id":"6b82102e-07ad-4443-802e-63a579856b48","html_url":"https://github.com/paritytech/release-registry","commit_stats":null,"previous_names":["paritytech/release-registry"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Frelease-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Frelease-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Frelease-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Frelease-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/release-registry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223922085,"owners_count":17225636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:11:27.600Z","updated_at":"2025-04-23T11:31:31.147Z","avatar_url":"https://github.com/paritytech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Release Registry\n\n[![Current Stable Release](https://raw.githubusercontent.com/paritytech/release-registry/main/badges/polkadot-sdk-latest.svg)](#)\u0026nbsp;\u0026nbsp;[![Next Stable Release](https://raw.githubusercontent.com/paritytech/release-registry/main/badges/polkadot-sdk-next.svg)](#)\n\nSingle source of truth regarding past and future releases of the Polkadot SDK.\n\nThis repo contains a [releases-v1.json](./releases-v1.json) file that tracks all SDK releases and a [JSON schema](./releases-v1.schema.json) to ensure that it is in canonical format.\n\nThis Gantt chart shows the released (pink) and planned (grey) releases. The longer bars are the stable releases and the small ones are the patches on top of it.\n\n![](.assets/timeline-gantt.png)\n\n## Calendar\n\nPlanned and historic release dates:\n\n\u003c!-- DO NOT EDIT. Run `python3 update-readme.py` instead. --\u003e\n\n\u003c!-- TEMPLATE BEGIN --\u003e\n\n| Version | Cutoff | Publish | End of Life | State |\n|---------|--------|-----------|-------------|-------|\n| **stable2407** | 2024-04-29 | 2024-04-29 | 2025-04-29 | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2407) |\n| \u0026nbsp;\u0026nbsp;stable2407-8 | 2025-03-06 | 2025-03-06 |  | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2407-8) |\n| \u0026nbsp;\u0026nbsp;stable2407-9 | 2025-04-10 | 2025-04-10 |  | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2407-9) |\n| \u0026nbsp;\u0026nbsp;stable2407-10 | 2025-05-05 | 2025-05-08 |  | Planned |\n| \u0026nbsp;\u0026nbsp;[7 more past](CALENDAR.md) |  |  | | |\n| **stable2409** | 2024-09-02 | 2024-09-26 | 2025-09-25 | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2409) |\n| \u0026nbsp;\u0026nbsp;stable2409-5 | 2025-02-13 | 2025-02-13 |  | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2409-5) |\n| \u0026nbsp;\u0026nbsp;stable2409-6 | 2025-03-12 | 2025-03-12 |  | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2409-6) |\n| \u0026nbsp;\u0026nbsp;stable2409-7 | 2025-04-14 | 2025-04-17 |  | Planned |\n| \u0026nbsp;\u0026nbsp;stable2409-8 | 2025-05-12 | 2025-05-15 |  | Planned |\n| \u0026nbsp;\u0026nbsp;[4 more past, 5 more planned](CALENDAR.md) |  |  | | |\n| **stable2412** | 2024-11-06 | 2024-12-17 | 2025-12-16 | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412) |\n| \u0026nbsp;\u0026nbsp;stable2412-3 | 2025-03-11 | 2025-03-11 |  | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412-3) |\n| \u0026nbsp;\u0026nbsp;stable2412-4 | 2025-03-11 | 2025-03-31 |  | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412-4) |\n| \u0026nbsp;\u0026nbsp;stable2412-5 | 2025-04-21 | 2025-04-24 |  | Planned |\n| \u0026nbsp;\u0026nbsp;stable2412-6 | 2025-05-19 | 2025-05-22 |  | Planned |\n| \u0026nbsp;\u0026nbsp;[2 more past, 7 more planned](CALENDAR.md) |  |  | | |\n| **stable2503** | 2025-02-17 | 2025-04-08 | 2026-03-31 | [Released](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2503) |\n| \u0026nbsp;\u0026nbsp;stable2503-1 | 2025-04-28 | 2025-05-01 |  | Planned |\n| \u0026nbsp;\u0026nbsp;stable2503-2 | 2025-05-26 | 2025-05-29 |  | Planned |\n| \u0026nbsp;\u0026nbsp;[11 more planned](CALENDAR.md) |  |  | | |\n| **stable2506** | 2025-05-15 | 2025-06-30 | 2026-06-30 | Planned |\n| \u0026nbsp;\u0026nbsp;stable2506-1 | 2025-08-04 | 2025-08-07 |  | Planned |\n| \u0026nbsp;\u0026nbsp;stable2506-2 | 2025-09-01 | 2025-09-04 |  | Planned |\n| \u0026nbsp;\u0026nbsp;[11 more planned](CALENDAR.md) |  |  | | |\n\n\u003c!-- TEMPLATE END --\u003e\n\n### Subscribe\n\nSubscribe to the calendar by adding this iCal link to your Google or Apple calendar:\n\n`https://raw.githubusercontent.com/paritytech/release-registry/main/releases-v1.ics`\n\n Google has an \"From URL\" and Apple \"New Calendar Subscription\" option for this:\n\n Google            |  Apple\n:-------------------------:|:-------------------------:\n![](.assets/screenshot-google-cal.png)  |  ![](.assets/screenshot-apple-cal.png)\n\n## Schedule\n\n### Releases\n\nThe Polkadot SDK has a `stableYYMM` release every 3 months. Each stable release is supported for one year through a monthly patching schedule. The releases are not *exactly* 3 months apart, but we try to keep it close. The exact dates are in the calendar.  \nStable releases undergo a 1.5 month QA period before being published. This explains the difference between the `cutoff` and `published` dates.\n\n### Patches\n\nPatches have the tag format `stableYYMM-PATCH` where `PATCH` ranges from 1 to 99. There is no zero padding present, example: `stable2407-1` or `stable2409-10`.\n\nThe patching schedule of each stable release is assigned a week of the month. This works well, since there can be at most four stable releases maintained at once.  For example: release `stable2407` is always patched in the first week of a month. This means that on the first Monday of each month, a new patch is cut off, and on the first Thursday after that Monday, it is published.\n\n![Monthly Patching](./.assets/monthly-patching.png)\n\n## Goals\n\nThe two main goals of this repo are to improve:\n- **Communication**: clear information about past and upcoming releases. Hoarding information inside Parity is not helpful. This repo aims to make it easier for the Polkadot Ecosystem to know what's going on. This can be helpful to all departments; developers, marketing, devops, security etc.\n- **Expectations**: set clear expectations by having a public schedule. Know when what is coming.\n\n## Maintenance\n\n### Release Planning\n(how to add a new release to the json)\n\nFirst, check the calendar when about 3 months passed from the publish date of the last release. Then subtract about 1.5 months from that and call the plan command with that date:\n\n```bash\npython3 scripts/manage.py release plan stable2412 2024-11-06\n```\n\nThen figure out when the first patch date should be; you have to select a Monday for the patching schedule to be calculated (errors if not a Monday). You should select either a week that is empty and has no schedule, or the one where the oldest release is currently being patched.  \nThe script will then count the how many-th monday of the month it is and begin lining it up with the months like in the image above.\n\nExample where we want the first patch to be cut off on 2024-07-29:\n\n```bash\npython3 scripts/manage.py backfill-patches stable2407 --start-date 2024-07-29\n```\n\nThen update the README to see the changes by running `just`.\n\n### Release Cutoff / Publish\n\nRun this command to cut off a release:\n\n```bash\npython3 scripts/manage.py release cutoff stable2407-2 2024-09-02\n```\n\nWith `publish` likewise.\n\n## Automation\n\nTwo scripts are currently in place to:\n\n- [manage.py](./scripts/manage.py) - manage the releases json file (plan, cutoff, publish, etc)\n- [update-readme.py](./scripts/update-readme.py) - updates the README.md file with the data from the releases.json file\n- [update-calendar.py](./scripts/update-calendar.py) - generates an iCal file from the releases.json file\n- [update-badges.py](./scripts/update-badges.py) - re-generate the badges in the `badges` folder for downstream use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Frelease-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Frelease-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Frelease-registry/lists"}