# Fedora 9 # # Copyright 2007-2011 John Poelstra # # Permission is hereby granted, free of charge, to any person # obtaining a copy of this software and associated documentation files # (the "Software"), to deal in the Software without restriction, # including without limitation the rights to use, copy, modify, merge, # publish, distribute, sublicense, and/or sell copies of the Software, # and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # macro major [9] macro content [f] macro content_title [Fedora] macro start_date [2007-11-07] macro end_date [2008-06-30] macro id [$Id: f-9.tjp,v 1.21 2008/04/02 21:32:31 poelstra Exp $] macro state [$State: Exp $] macro prior_project [f8] # create a macro for actual start of work. # TJ won't compile from command line if you use start_date # which is used in the "project declaration below. There # must be another way to work around this macro start_work [2007-11-08] # eventually we need to get to set durations so that entire # schedule calculates on its own... for starters pick a date that # makes sense and set a macro as several groups depend on macro start_alpha [2008-01-15] project ${content}${major} "${content_title}" "${major}" ${start_date} - ${end_date} { timeformat "%Y-%b-%d" # Based on Eastern time zone in USA timezone "America/New_York" scenario plan "Original Plan" { scenario actual "Actual" } } include "reports.tji" task ${content}${major} "${content_title} ${major}" { task plan "General" { start ${start_work} task scope "Scope the Release" { plan: duration 2w } task features "Open Feature Review" { depends !scope plan: duration 103d actual: duration 110d } task end_support "End of Support for FC 6" { # milestone #flags report_milestone start 2007-12-07 flags releng } task orphan "Drop Orphaned Packages" { # milestone #flags report_milestone #start 2007-12-07 depends !end_support flags releng } task fudcon "FUDCon RDU" { start 2008-01-11 end 2008-01-13 } task feature_freeze "Feature Freeze" { milestone flags report_milestone depends !features } } task releng "Release Engineering" { flags releng task alpha "Alpha Release" { task freeze "Alpha Freeze (non-blocking)" { start ${start_alpha} actual: start 2008-01-22 milestone flags report_milestone } task stage "Compose Stage Sync" { depends !freeze {gapduration 2d } plan: duration 1w actual: duration 12d } task drop "Public Availability" { milestone flags report_milestone depends !stage } task test "Testing" { depends !stage plan: duration 47d actual: duration 35d } task testmile "End of Alpha" { milestone flags report_milestone depends !test } } # TODO: Is there a way to schedule this so it automatically starts 2 weeks before Alpha? task naming "Naming the Release" { start 2007-12-18 task draft "Solicit List of Names" { #duration 1w end 2008-01-01 } task legal "Legal Review" { depends !draft {gapduration 1d} duration 2w } task vote "Voting" { depends !legal {gapduration 1d} duration 1w } task announce "Announce Name" { milestone depends !vote {gapduration 1d} } } task beta "Beta Release" { #depends !!plan.features plan: start 2008-03-04 actual: start 2008-03-11 task freeze "Beta Freeze" { milestone flags report_milestone } task string "String Freeze" { milestone flags report_milestone } task stage "Compose Stage Sync" { depends !freeze {gapduration 2d} plan: duration 1w actual: duration 12d } task drop "Public Availability" { milestone flags report_milestone depends !stage } task branch "Allow Pre-branch F9" { milestone flags report_milestone depends !drop } task test "Testing" { depends !stage plan: duration 26d actual: duration 14d } task testmile "End of Beta" { milestone flags report_milestone depends !test } } task snapshots "Snapshot Releases" { depends !beta.stage {gapduration 2d} task snap1 "Snapshot 1" { task stage "Compose Stage Sync" { plan: duration 1d # actual: duration XXd } task drop "Public Availability" { milestone flags report_milestone depends !stage } } task snap2 "Snapshot 2" { depends !snap1 {gapduration 6d} task stage "Compose Stage Sync" { plan: duration 1d # actual: duration XXd } task drop "Public Availability" { milestone flags report_milestone depends !stage } } task snap3 "Snapshot 3" { depends !snap2 {gapduration 6d} task stage "Compose Stage Sync" { plan: duration 1d # actual: duration XXd } task drop "Public Availability" { milestone flags report_milestone depends !stage } } } task pr "Preview Release" { depends !beta task develfreeze "Final Development Freeze" { milestone flags report_milestone } task stage "Compose Stage Sync" { depends !develfreeze plan: duration 2d actual: duration 9d } task drop "Public Availability" { milestone flags report_milestone depends !stage } task test "Testing" { depends !stage plan: duration 6d actual: duration 14d } task testmile "End of Preview Release" { milestone flags report_milestone depends !test } } task rc "Release Candidate" { depends !pr task stage "Compose & Smoke Test" { plan: length 4d # actual: duration XXd } task testmile "Ship or No-Ship Decision" { milestone flags report_milestone depends !stage } task mirror "Post & Sync Mirrors" { depends !stage plan: duration 7d # actual: duration XXd } } task ga "Release Day" { milestone flags report_milestone depends !rc.mirror } } ### end releng task docs "Documentation" { flags docs task election "FDSCo Election"{ task nominate "Nominations" { start 2007-12-05 end 2007-12-12 } task vote "Voting" { start 2007-12-14 end 2007-12-24 } task announc "Announce New Members" { milestone depends !vote flags report_milestone } } task alpha "Alpha Tasks" { start ${start_work} task beats "Wiki Release Note Beats" { start ${start_work} plan: duration 76d actual: duration 83d } task notes "Prepare Release Notes" { depends !!!releng.alpha.freeze {gapduration 8d } duration 1d } task post "Post Release Notes to Wiki" { milestone depends !notes flags report_milestone } } task beta "Beta Tasks" { task beats "Wiki Release Note Beats" { depends !!alpha.beats duration 41d } task notes "Prepare Release Notes" { depends !!!releng.beta.freeze duration 1d } task package "Build Release Notes RPM" { depends !notes duration 1d flags report_milestone } task post "Post Release Notes to Wiki" { milestone depends !!!releng.beta.drop flags report_milestone } } task pr "Preview Release" { depends !beta.beats task beats "Wiki Release Note Beats" { duration 12d } task beats_freeze "Wiki Beats Freeze" { milestone depends !beats flags report_milestone } task wiki_port "Port wiki content to CVS" { precedes !beats_freeze duration 5d } task send_pot "Send POT Files to Translation" { depends !beats_freeze duration 1d } task pot_trans "POT Files Translated" { depends !send_pot duration 14d } task po "PO Files due from Translation" { milestone depends !pot_trans flags report_milestone } task translation "Translation Freeze" { milestone depends !pot_trans flags report_milestone } task notes "Build Release Notes RPM" { depends !pot_trans duration 1d } } task rc "Final" { task beats "Wiki Release Note Beats" { depends !!pr.beats duration 21d } task beats_freeze "Wiki Beats Freeze" { milestone depends !beats flags report_milestone } task wiki_port "Port diff wiki content to CVS" { depends !beats duration 0.5d } task send_pot "Send POT Files to Translation" { depends !wiki_port duration 0.5d } task pot_trans "POT Files Translated" { depends !send_pot duration 8d } task po "PO Files due from Translation" { milestone depends !pot_trans flags report_milestone } task notes "Build Release Notes RPM" { depends !pot_trans duration 1d } task beats_final "Final Wiki Release Note Beats" { depends !beats duration 11d } task final_beats_snap "Final Wiki Beats Snapshot" { milestone depends !beats_final flags report_milestone } task updated_trans "POT files updated for l10n" { depends !final_beats_snap duration 7d } # Is there a way to schedule this task as (GA less 1 day)? task zero_day "Add zero-day updates to docs.fp.org" { depends !updated_trans {gapduration 4d} duration 1d } task web_post "Publish web-only relenotes with 'tag LIVE'" { depends !!!releng.rc.mirror } } } ### end of docs # FIXME: start with simple 'start' and 'end' dates--add durations later task art "Artwork" { flags art task theme "Default Theme" { start ${start_work} task round1 "Round One" { task announce "Create wiki and send announcement" { } task collect "Collect sketches" { duration 61d } task concepts "Three Conceptual Sketches Completed" { depends !collect } } # ideally this task should line up with release engineering # obtaining an approved name for the release task round2 "Round Two"{ depends !round1 end 2008-02-05 task walpaper "Theme Walpaper Draft" {} task vertical "Virtically Long Supporting Artwork" {} task horizontal "Horizontally Long Supporting Artwork" {} task square "Square Supporting Artwork" {} } task round3 "Round Three"{ depends !round2 end 2008-02-28 task full_splash "Fullscreen splash for syslinux" {} task square_splash "Square splash for anaconda and firstboot" {} task anaconda "Anaconda horizontal header" {} task firstboot "Firstboot vertical header" {} task fullscreen_grub "Fullscreen grub splash" {} task bootup "bootup/loading graphics (new rhgb coming for f9?)" {} task fullscreen_gdm "Fullscreen splash for gdm (new gdm, only wallpaper image needed)" {} task kdm "kdm login screen theme" {} task gnome_splash "gnome splash screen" {} task kde "kde splash screen" {} task gnome_screensave "gnome screensaver lock dialog" {} } task beta_pkg "Package Artwork for Beta"{ depends !round3 end 2008-03-04 } task final_pkg "Final Artwork Package"{ depends !!!releng.beta } } task marketing "Marketing" { depends !theme.round3 {gapduration 11d} task kick_off "Kick Off Meeting/Email Thread" { duration 1w } task banner "Banner Creation" { depends !kick_off duration 1w } task counter "Count Down Graphic" { depends !kick_off duration 2w } task firefox "Firefox default page" { task design "Design" { duration 14d } task package "Package" { depends !design duration 1w } } task media "DVD/CD label artwork" { task design "Design" { duration 2w } task printer "Prepare for Printer" { depends !design duration 1w } task launch "Ready for Printer" { depends !printer } } task web "Web Site" { task design "Design" { duration 22d } task proof "Proof and Test Web Site" { depends !design duration 7d } task launch "Ready for Launch" { depends !proof } } } } ### end art /* TODO: Unbuilt out teams task marketing "Marketing" { task plan "Planning" { depends !!plan.features duration 2w } task marketing1 "First Marketing Push" { depends !!releng.beta.test milestone flags report_milestone } } ### end marketing task infra "Infrastructure" { task plan "Planning" { depends !!plan.features duration 2w } task infrafreeze "Infrastructure Freeze" { depends !!releng.pr milestone flags report_milestone } } ### end infra */ }