{"id":20264442,"url":"https://github.com/fabiand/deltasched","last_synced_at":"2025-07-21T17:31:38.079Z","repository":{"id":204920593,"uuid":"707678928","full_name":"fabiand/deltasched","owner":"fabiand","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-28T11:34:40.000Z","size":803,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-13T02:04:25.639Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabiand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-10-20T12:24:06.000Z","updated_at":"2023-10-20T12:24:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"c76197a6-6620-49fe-8066-acf114a3276d","html_url":"https://github.com/fabiand/deltasched","commit_stats":null,"previous_names":["fabiand/deltasched"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fabiand/deltasched","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiand%2Fdeltasched","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiand%2Fdeltasched/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiand%2Fdeltasched/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiand%2Fdeltasched/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabiand","download_url":"https://codeload.github.com/fabiand/deltasched/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiand%2Fdeltasched/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266342809,"owners_count":23914262,"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","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-14T11:40:38.794Z","updated_at":"2025-07-21T17:31:38.008Z","avatar_url":"https://github.com/fabiand.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nCreate a schedule with basic milestones automatically.\n\nThe basics rely on two elements:\n\n1. A target release date\n2. A list of deltas between milestones\n\n# Build\n\n```console\n$ git clone https://github.com/fabiand/deltasched\n$ cd deltasched\n$ cargo build\n    Updating crates.io index\n…\n$ cargo run\n```\n\n# Example\n\n```console\n$ cargo run -- -o human example\n    Finished dev [unoptimized + debuginfo] target(s) in 0.06s\n     Running `target/debug/deltasched -o human example`\n# 'TBD' Schedule\n## Timeline\n- Planning\n  - (????-??-?? ???)  RG   Requirements Gathering\n  - (????-??-?? ???)  RF   Requirements Freeze\n\n- Development\n  - (????-??-?? ???)  FS   Feature Start\n  - (????-??-?? ???)  FF   Feature Freeze\n\n- Testing\n  - (????-??-?? ???)  BO   Blockers Only\n  - (????-??-?? ???)  CF   Code Freeze\n\n- Release\n  - (????-??-?? ???)  PS   Push to Stage\n  - (????-??-?? ???)  GA   General Availability\n\n## Baseline Deltas\n- RF to FF: 6 Sprints\n- FF to BO: 1 Sprints\n- BO to CF: 1 Sprints\n- CF to GA: 4 Weeks\n\n$\n```\n\n# New\n\nCreate a new draft schedule\n\n```console\n$ cargo run -- -o human new --name kubevirt-1.1 --from-skeleton project-skeleton.yaml --with-due-date GA:2023-10-31\n    Finished dev [unoptimized + debuginfo] target(s) in 0.06s\n     Running `target/debug/deltasched -o human new --name kubevirt-1.1 --from-skeleton project-skeleton.yaml --with-due-date 'GA:2023-10-31'`\n# 'kubevirt-1.1' Schedule\n## Timeline\n- Planning\n  - (????-??-?? ???)  RG   Requirements Gathering\n  - (2023-04-18 Tue)  RF   Requirements Freeze\n\n- Development\n  -  ????-??-?? ???   KV   KubeVirt Feature Freeze\n  - (2023-08-22 Tue)  FF   Feature Freeze\n\n- Testing\n  - (2023-09-12 Tue)  BO   Blockers Only\n  - (2023-10-03 Tue)  CF   Code Freeze\n\n- Release\n  - (????-??-?? ???)  PS   Push to Stage\n  -  2023-10-31 Tue   GA   General Availability\n\n## Baseline Deltas\n- RF to FF: 6 Sprints\n- FF to BO: 1 Sprints\n- BO to CF: 1 Sprints\n- CF to GA: 4 Weeks\n$\n\n# Now create a yaml in order to allow us to re-plan:\n$ cargo run -- new --name kubevirt-1.1 --from-skeleton project-skeleton.yaml --with-due-date GA:2023-10-31 \u003e draft.yaml\n    Finished dev [unoptimized + debuginfo] target(s) in 0.06s\n     Running `target/debug/deltasched new --name kubevirt-1.1 --from-skeleton project-skeleton.yaml --with-due-date 'GA:2023-10-31'`\n$\n```\n\n# Replan\n\nWe can now take the draft/existing schedule (`draft.yaml` in the previous example).\nFor example let's push out the GA by 1 month.\n\n```console\n$ edit draft.yaml\n# Change GA to 2023-11-30\n$  cargo run -- replan --schedule draft.yaml \u003e replanned-draft.yaml\n    Finished dev [unoptimized + debuginfo] target(s) in 0.06s\n     Running `target/debug/deltasched replan --schedule draft.yaml`\n$ diff -u draft.yaml replanned-draft.yaml \n--- draft.yaml\t2023-10-20 14:20:20.253701381 +0200\n+++ replanned-draft.yaml\t2023-10-20 14:21:15.978983749 +0200\n@@ -8,7 +8,7 @@\n     fixed: false\n   - name: Requirements Freeze\n     alias: RF\n-    due_date: 2023-04-18\n+    due_date: 2023-05-18\n     fixed: false\n - name: Development\n   milestones:\n@@ -18,17 +18,17 @@\n     fixed: true\n   - name: Feature Freeze\n     alias: FF\n-    due_date: 2023-08-22\n+    due_date: 2023-09-21\n     fixed: false\n - name: Testing\n   milestones:\n   - name: Blockers Only\n     alias: BO\n-    due_date: 2023-09-12\n+    due_date: 2023-10-12\n     fixed: false\n   - name: Code Freeze\n     alias: CF\n-    due_date: 2023-10-03\n+    due_date: 2023-11-02\n     fixed: false\n - name: Release\n   milestones:\n```\n\n## Fixating milestones\n\nIn order to not re-plan a certain milestone, the milestone needs to\nne _fixated_ by setting `fixed: true`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiand%2Fdeltasched","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabiand%2Fdeltasched","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiand%2Fdeltasched/lists"}