# Fedora 12 # # Copyright 2009-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 [12] macro content [f] macro content_title [Fedora] macro start_date [2009-06-09] macro start_work [2009-06-10] # set to one day after "start_date" macro end_date [2011-01-31] macro id [$Id: f-12.tjp,v 1.44 2009/10/29 22:46:33 poelstra Exp $] macro state [$State: Exp $] macro prior_project [f11] 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" } # Limit working days workinghours sat,sun off } include "reports.tji" # ========= Cornerstones of Fedora Schedules ============= /* 1) Time driven unless specified differently during planning 2) Freezes and releases always happen on Tuesdays 3) Alpha & Beta Candidates start on Wednesdays 4) Composes always start on Thursdays 5) Beta snapshots happen on Thursday or Fridays and are best effort --nothing depends or waits on them 6) Syncing releases to mirrors ideally happens on Thursdays... end of day on Friday is worst case 7) Most tasks are scheduled with 'length' instead of 'duration' to get a sense of "work days" required --an eternal debate could be held to discuss whether or not schedule cacluations should include weekends because community members work at all times and not within strict work days. 8) There is little to no benefit found in including a holiday.tji file for Fedora. In some cases it made the scheduling more complicated 9) Use "length" everywhere and "duration" only when something must take into account a weekend day 10) All "Blocker Bug Days" should be on Fridays 11) If a task takes one day or less--schedule with no length--this way it showes up as a milestone and gets included in iCalendar (ics) file 12) Because of bugs in the way TaskJuggler ics files get rendered in some calendars (e.g. Zimbra) we only include zero length (milestone) tasks in the ics file. As a result there are several duplicate tasks with no length that have been added so they appear in the ics file. 13) There are basically five different Fedora projects the Fedora Translation team works on: a) Software localization b) Guides localization c) Release Notes localization d) Website localization e) Release banner localization --there is probably a better place for this information */ # ============ What should be included in TaskJuggler? ============== /* e.g. Tasks that *should* be tracked in this schedule vs. subgroup ticketing or task systems 1) Inter-team dependencies. For example Docs team release-notes.rpm or Artwork team packages needed by Release Eng for complete distro creation. 2) Significant tasks that are important for other groups to be aware of 3) Tasks critical to releasing a new version of Fedora. For example, syncing the release to the mirrors 4) Informational tasks that round out important parts of the release. For example when the release will stop being supported--EOL 5) Tasks that must be completed for a quality release--"nice to have" items should tracked elswhere and clutter the schedule 6) In general we have found it to be ineffective to create overly-detailed schedules for the subteams because they are hard to maintain and the ROI appears to be low */ # =============== TODO: Unifinished Items ================ # /* 1) Standardize usage of "docs" and "documentation" vs. "trans" and "translation" in flags and report names 2) Standarize usage of "GA" and "Final Release" 3) Add comments clearly calling out which tasks need to be adjusted if a test freeze or release slips */ task ${content}${major} "${content_title} ${major}" { start ${start_work} # This task is required for the Product Pages # taskid and description should not be changed task PlanningPhase "Planning Phase" { # The Fedora 12 schedule was set before GA of Fedora 11. Because Fedora 11 was late development for # Fedora 12 was shortened to still target the original GA date. task start_features "Feature Submission and Acceptance" { plan: length 45d actual: length 35d flags quality, docs, releng, proto } # add for ical task start_features_cal "Start Feature Submission" { flags key, pm, roadmap } task clean_market_wiki "Cleanup Marketing wiki from previous releases" { depends !start_features_cal {gaplength 25d} length 5d flags marketing } task cycle_market_wiki "Cycle Marketing wiki pages for current release" { depends !start_features_cal {gaplength 25d} length 5d flags marketing } /* Stub to hold FUDCon for subsequent releases task fudcon "Fudcon Fedora 13 (TBD)" { # start 2009-01-09-01:00-EST # end 2009-01-11-23:00-EST flags design, report_milestone, pm, proto, devel } */ # This task is required for the Product Pages # taskid and description should not be changed task export_freeze "Requirements Freeze" { depends !start_features flags hidden } task bug_trackers "Create Tracker Bugs" { flags bugtriage, pm note "See details at https://fedoraproject.org/wiki/BugZappers/HouseKeeping/FirstDayDevel" } # The release name process should be started shortly after GA of the previous releases # and concluded preferably before FUDCon so it can be part of discussions and planning there # naming process: https://fedoraproject.org/wiki/Releases/Naming_Guidelines # https://fedoraproject.org/wiki/Name_suggestions_for_Fedora_11 # 1 week -- collect names # 1 week --fedora board reviews names # 2 weeks -- names reviewed by RHT legal # 1 week -- community vote on names /* This was done during F11--don't need for F12, but leaving here as a stub for F13 # TODO: track for FUDCon in Toronto December 5 to 7 task naming "Name the Release" { flags releng task gather "Collect Names on Wiki" { length 5.5d } task board "Board Review" { depends !gather length 5d } task legal "Legal Review" { depends !board length 6d } task vote "Voting" { depends !legal length 4d } task announce "Announce Release Name" { depends !vote {gapduration 1d} flags design } } */ # Alternatively this task could link up with inactivated # chain of tasks above for release naming task announce_name "Announce Release Name" { start 2009-06-27 flags design } task art_concept "Conceptual Design Phase" { depends !announce_name length 10d flags design } # a solid start for the wallpaper is the goal for alpha # NOTE: task ends with Feature Freeze and packaging for release task wallpaper_design "Wallpaper Design for Alpha" { depends !art_concept length 12d flags design } } # E N D of PlanningPhase # This task is required for the Product Pages # taskid and description should not be changed task DevelopmentPhase "Development Phase" { start ${start_work} task devel_start "Start Development" { flags devel } # ADJUST this task to set the start of ALPHA (alpha freeze) <-- normally # task develop "Packaging and Development (precedes alpha)" { task develop "Packaging and Development (precedes Alpha)" { plan: length 50d actual: length 40d flags devel, proto } task fedora9_eol "Fedora 9 End of Life" { start 2009-07-10 flags devel, releng, pm } # FIXME: make this programtic for F13, including email nags + delivery to FESCo # This should occur at midway point between devel start and feature freeze. # Also add reminder one week before feature freeze. task feature_check_remind "Request Feature Status update by 2009-07-14" { start 2009-07-07 flags devel, pm } task feature_check "Feature Page Checkpoint (all up2date)" { start 2009-07-14 flags devel, pm } task feature_fesco "FESCo Stale Feature Review" { start 2009-07-17 flags devel } task alpha_blocker1 "Alpha Blocker Bug Day (F12Alpha) #1" { depends !devel_start {gaplength 28d} flags releng, quality, devel } task alpha_blocker2 "Alpha Blocker Bug Day (F12Alpha) #2" { depends !alpha_blocker1 {gaplength 5d} flags releng, quality, devel } } # E N D of DevelopmentPhase task TestingPhase "Testing Phase" { task alpha "Alpha Release" { # ADJUST "feature submission length" to adjust this landing date # Feature freeze is one week before Alpha Freeze # KEY ADJUSTMENT POINT # TODO: In Fedora 13 the feature submission deadline has changed to be TWO weeks # before Feature Freeze task feature_freeze "Feature Freeze (no more features accepted)" { depends !!!PlanningPhase.start_features flags releng, quality, pm, design, proto, devel, key, marketing } task feature_incomplete_nag "Features < 85% complete email nag" { depends !feature_freeze {gaplength 1d} flags pm } task feature_incomplete_fesco "Deliver features < 85% complete to FESCo " { depends !feature_freeze {gaplength 6d} flags pm } task update_talking_points "Update Marketing Talking Points" { depends !feature_freeze length 5d flags marketing } task list_talking_points "List potential Marketing Talking Points and Feature Profiles" { depends !feature_freeze length 5d flags marketing } task talking_point_owners "Decide format and provider for Talking Points and Feature Profiles" { depends !list_talking_points length 5d flags marketing } # NOTE: If the length of 'alpha_freeze' changes also need to ADJUST the length of # Alpha Testing task to land in the right place if slip is "absorbed" # KEY ADJUSTMENT POINT task alpha_freeze_start "Start Alpha Freeze" { depends !feature_freeze {gaplength 5d} flags proto, releng, quality, pm, devel, key, roadmap } # freeze extended by one week to accomodate slip of Alpha release date # manually adjust all tasks that depend on 'alpha_freeze' as necessary # --typically these are tasks with a delayed start using 'gaplength' # KEY ADJUSTMENT POINT # Show the duration of the Alpha freeze task alpha_freeze "Alpha Freeze" { depends !feature_freeze {gaplength 5d} length 10d flags releng } # added 1 week for alpha slip task feature_profiles "In-depth feature profiles: 0% to 75% complete" { depends !alpha_freeze_start plan: length 35d actual: length 40d flags marketing } # increased gaplength by one week for alpha slip task brand_meeting "Collaboration with Red Hat Brand on marketing materials" { depends !alpha_freeze_start {gaplength 16d} length 5d flags marketing } task orphan "Orphan Rawhide Packages" { depends !feature_freeze flags releng, proto, devel } task package_alpha_wallpaper "Finalize and Package Wallpaper for Alpha" { depends !!!PlanningPhase.wallpaper_design flags design, releng, pm length 5d } task blog_alpha_wallpaper "Blog About Alpha Wallpaper" { depends !package_alpha_wallpaper flags design } task refresh_wallpaper1 "Deadline: Wallpaper Refresh #1" { depends !package_alpha_wallpaper {gaplength 7d} flags design } task package_refresh_wallpaper1 "Package: Wallpaper Refresh #1" { depends !refresh_wallpaper1 {gaplength 1d} flags design } task blog_wallpaper1 "Blog: Wallpaper Refresh #1" { depends !package_refresh_wallpaper1 flags design } # move this task out one week by increasing 'gaplength 5d' because of extra time # in the schedule created by adding one extra week to alpha release task refresh_wallpaper2 "Deadline: Wallpaper Refresh #2" { depends !package_refresh_wallpaper1 {gaplength 9d} flags design } task package_refresh_wallpaper2 "Package: Wallpaper Refresh #2" { depends !refresh_wallpaper2 {gaplength 1d} flags design } task blog_wallpaper2 "Blog: Wallpaper Refresh #2" { depends !package_refresh_wallpaper2 flags design } task refresh_wallpaper3 "Deadline: Wallpaper Refresh #3" { depends !package_refresh_wallpaper2 {gaplength 4d} flags design } task package_refresh_wallpaper3 "Package: Wallpaper Refresh #3" { depends !refresh_wallpaper3 {gaplength 1d} flags design } task blog_wallpaper3 "Blog: Wallpaper Refresh #3" { depends !package_refresh_wallpaper3 flags design } # depends on nearly complete version of the wallpaper, otherwise # you have to create the splashes twice # refresh #3 is good starting place task start_splash_screens "Create Splash Screens" { depends !package_refresh_wallpaper3 length 4d flags design } # for ics file task start_splash_screens_cal "Start Splash Screens" { depends !package_refresh_wallpaper3 flags design } task package_splash_screens1 "Package: Splash Screens For Rawhide" { depends !start_splash_screens {gaplength 1d} flags design } task finalize_splash_screens "Finalize Splash Screens" { depends !package_splash_screens1 {gaplength 4d} flags design } task package_final_splash "Package: Final Splash Screens" { depends !finalize_splash_screens {gaplength 1d} flags design } task refresh_wallpaper4 "Deadline: Wallpaper Refresh #4" { depends !package_refresh_wallpaper3 {gaplength 4d} flags design } task package_refresh_wallpaper4 "Package: Wallpaper Refresh #4" { depends !refresh_wallpaper4 {gaplength 1d} flags design } task blog_wallpaper4 "Blog: Wallpaper Refresh #4" { depends !package_refresh_wallpaper3 flags design } task alpha_freeze_end "End Alpha Freeze" { depends !alpha_freeze flags proto, releng, quality, pm, devel } task alpha_blocker3 "Alpha Blocker Bug Day (F12Alpha) #3" { depends !!!DevelopmentPhase.alpha_blocker2 {gaplength 5d} flags releng, quality, devel, pm } /* FIXME: this detail should be added to a wiki SOP task splashes "Splash Screens" { depends !!!PlanningPhase.wallpaper_design task full_splash "Fullscreen splash for syslinux" { length 26d flags design } task square_splash "Square splash for anaconda and firstboot" { length 26d flags design } task anaconda "Anaconda horizontal header" { length 26d flags design } task firstboot "Firstboot vertical header" { length 26d flags design } task fullscreen_grub "Fullscreen grub splash" { length 26d flags design } task kdm "kdm login screen theme" { length 26d flags design } task gnome_splash "gnome splash screen" { length 26d flags design } task kde "kde splash screen" { length 26d flags design } task gnome_screensave "gnome screensaver lock dialog" { length 26d flags design} } */ task software_string_freeze "Software String Freeze" { depends !feature_freeze {gaplength 5d } milestone flags devel, translation, pm, proto, releng, key } # NOTE: The LENGTH of this task hinges on how long the alpha period is and # the "Final Freeze" date. This task should end on a Tuesday, one week # before Final Freeze (also on a Tuesday). # If any of the Alpha tasks are late the length of this task is extended # KEY ADJUSTMENT POINT task software_translation "Software Translation"{ # add an additional week for this task because alpha phase was extended by one week task trans_software "Final Software Translation Period (POT to PO)" { depends !!software_string_freeze plan: length 22d actual: length 27d flags translation } task build_trans_software "Build F-12 collection packages for all language translators" { depends !trans_software plan: length 2d flags translation, devel } task trans_software_review "Review and correct software translation in built UI" { depends !build_trans_software {gaplength 1d} plan: length 5d flags translation } # should land one week before "Final Development Freeze" & end of Alpha # always double check after adjusting "trans_software" or length of alpha testing task trans_software_deadline "Software: Translation Deadline (PO Files complete)" { depends !trans_software_review milestone flags translation, proto, key, roadmap } # for ical file task start_trans_rebuild "Software: Start Rebuild all translated packages" { depends !trans_software_deadline flags translation, releng, devel } task trans_rebuild "Software: Rebuild all translated packages" { depends !trans_software_deadline length 5d flags translation, releng, devel } } #end software_translation task alpha_blocker4 "Alpha Blocker Bug Day (F12Alpha) #4" { depends !alpha_blocker3 {gaplength 5d} flags releng, quality, devel, pm } task alpha_blocker5 "Alpha Blocker Bug (go/no go)" { depends !alpha_blocker4 {gaplength 1d} flags releng, quality, devel, pm } # extra added in because of alpha compose slip task alpha_blocker6 "Alpha Blocker Bug Day (F12Alpha) #5" { depends !alpha_blocker4 {gaplength 5d} flags releng, quality, devel, pm } # extra added in because of alpha compose slip task alpha_blocker7 "Alpha Blocker Bug (go/no go)" { depends !alpha_blocker6 {gaplength 1d} flags releng, quality, devel, pm } task alpha_meeting_announce "Announce: Alpha Release Readiness Meeting" { depends !feature_freeze {gaplength 11d} milestone flags pm } task alpha_meeting_reminder "Reminder: Alpha Release Readiness Meeting" { depends !alpha_meeting_announce {gaplength 3d} milestone flags pm } # this was one week late because of outstanding blocker bugs and # slip of alpha compose # added 5 more days to gaplength task alpha_meeting "Alpha Project Wide Release Readiness Meeting" { depends !alpha_meeting_reminder {gaplength 2d} milestone flags releng, pm, quality, docs, design, translation, marketing } # this never happened for Fedora 12 because anaconda was not ready task compose_alpha_tc "Alpha Test Compose (TC) (boot media testing)" { depends !feature_freeze {gaplength 1d } flags releng } # this never happened for Fedora 12 because compose was never completed task test_alpha_tc "Test 'Test Compose' (boot media testing)" { depends !compose_alpha_tc plan: length 5d flags releng, quality } task start_compose_alpha "Start Alpha Compose" { depends !alpha_freeze_start {gaplength 2d} flags releng } # adjusted to show when Alpha Candidate was finally composed and ready for testing task compose_alpha "Compose Alpha Candidate" { depends !alpha_freeze_start {gaplength 2d} plan: length 1d actual: length 7d flags releng } # reduced testing time of candidate because compose was delayed task test_alpha_candidate "Test Alpha Candidate" { depends !compose_alpha plan: length 5d actual: length 3d flags releng, quality } # for ical file task start_stage_alpha "Start Stage & Sync Alpha to Mirrors" { depends !test_alpha_candidate flags releng } task stage_alpha "Stage & Sync Alpha to Mirrors" { depends !test_alpha_candidate plan: length 3d flags releng } task alpha_export_control "Alpha Export Control Reporting" { depends !start_stage_alpha {gaplength 1d} flags releng, pm } task alpha_announce "Create Alpha Announcement" { depends !alpha_meeting length 2d flags docs } # TODO: For Fedora 13 consider a nag to feature owners one week before task drop "Alpha Public Availability" { depends !stage_alpha milestone flags releng, docs, quality, design, pm, proto, devel, key, marketing, roadmap } # KEY ADJUSTMENT POINT task alpha_release_notes "Alpha Release Notes" { # create for ical # added 5 days to gaplength because of increased length of alpha release task start_alpha_beats "Start Alpha Beat and Feature Page Review" { depends !!feature_freeze {gaplength 16d} flags docs, quality } task comb_alpha_beats "Comb Beats and Feature Pages for Alpha" { depends !start_alpha_beats length 3d flags docs, quality } # KEY ADJUSTMENT POINT # Beta release notes depend on this task task prep_alpha_notes "Prepare Alpha Release Notes (1 page)" { depends !comb_alpha_beats flags docs, quality } task post_notes "Post Alpha Release Notes One-Page" { depends !prep_alpha_notes {gaplength 1d} flags docs } } #end alpha_release_notes # two days to create web banner # one day for websites team to add to www.fedoraproject.org # should be live one day before the release # FIXME: reconsider use of preceds here # start three days before Alpha public availability task alpha_banner "Alpha Release Banner" { precedes !drop {gaplength 3d} task alpha_create_banner "Create Alpha Website Banner" { plan: length 2d flags design } task alpha_publish_banner "Add Alpha Banner to Website" { plan: length 1d flags web } } # This task is required for the Product Pages # taskid and description should not be changed task public_alpha "Public Alpha" { depends !stage_alpha flags hidden } task branch "Allow Pre-branch Fedora 13" { milestone flags releng, proto, devel depends !stage_alpha } # NOTE: If this length changes, MUST also change "software translation" length # so that Translation Deadline falls 1 week before end of alpha # NOTE: Need four weeks to schedule three snapshots. They start ~1 week # Wed to Fri after Tues release after Alpha. In Fedora 12 extra week # add because of conflict with LinuxCon & Plumbers: 2009-09-21 to 2009-09-25 # KEY ADJUSTMENT POINT # Even though F12 Alpha release date slipped, testing duration was held to original length # and one week added to the rest of the schedule including the final release date (GA). task test_alpha "Alpha Testing" { depends !stage_alpha length 25d flags quality, releng, proto } # perform one day before final freeze (one day before end of alpha--see above) task mass_branch "Mass Branching" { depends !stage_alpha {gaplength 24d} flags releng } # dummy task to mark end of alpha # created so that other tasks can "precedes" using gaplength() task alpha_end "End of Alpha Testing" { depends !test_alpha flags quality, releng, proto } # TODO: consider finding a better dependency for this task # as it could be thrown off if the length of 'test_alpha' # KEY ADJUSTMENT POINT task beta_blocker1 "Beta Blocker Bug Day (F12Beta) #1" { depends !stage_alpha {gaplength 13d } flags quality, releng, devel, pm } task beta_blocker2 "Beta Blocker Bug Day (F12Beta) #2" { depends !beta_blocker1 {gaplength 5d} flags releng, quality, devel, pm } task beta_blocker3 "Beta Blocker Bug Day (F12Beta) #3" { depends !beta_blocker2 {gaplength 5d} flags releng, quality, devel, pm } # Each snapshot is "best effort" so if it doesn't go out # it does not hold up or affect subsequent tasks and was # coded with this in mind # start approx one week after alpha release task snapshots "Snapshot Releases" { depends !!alpha.drop {gapduration 8d} flags releng # sets flag for entire sub-section task snap1 "Snapshot 1" { task compose_snap1 "Compose Snap #1" { } task stage_snap1 "Stage & Sync Snap #1" { depends !compose_snap1 {gaplength 1d} length 1d } task drop_snap1 "Public Availability Snap #1" { depends !stage_snap1 } } task snap2 "Snapshot 2" { depends !snap1 {gapduration 5d} task compose_snap2 "Compose Snap #2" { } task stage_snap2 "Stage & Sync Snap #2" { depends !compose_snap2 {gaplength 1d} length 1d } task drop_snap2 "Public Availability Snap #2" { depends !stage_snap2 } } task snap3 "Snapshot 3" { depends !snap2 {gapduration 5d} task compose_snap3 "Compose Snap #3" { } task stage_snap3 "Stage & Sync Snap #3" { depends !compose_snap3 {gaplength 1d} length 1d } task drop_snap3 "Public Availability Snap #3" { depends !stage_snap3 } } } task beta_rawhide_install "Pre-Beta Rawhide Install Test Plan" { depends !stage_alpha {gaplength 16d} length 5d flags quality } task beta_compose1 "Beta Test Compose (TC) (boot media testing)" { depends !stage_alpha {gaplength 21d} flags releng } task test_beta1 "Test 'Test Compose' (boot media testing)" { depends !beta_compose1 plan: length 5d flags releng, quality } # NOTE: should land one week before final freeze task final_freeze_reminder "Features < 100% email nag" { depends !!alpha.drop {gaplength 21d} flags pm, devel } } task beta "Beta Release" { # six weeks before GA # two weeks before the Beta Release availability task finalfreeze "Final (Beta) Freeze: Development Code Complete" { depends !!alpha.test_alpha milestone flags releng, docs, design, quality, pm, translation, proto, devel, key, marketing, roadmap } task final_feature_fesco "Deliver features < 100% to FESCo" { depends !finalfreeze {gaplength 1d} flags pm, devel } # The Release Slogan is created by the Marketing team based on # the initial artwork theme. The Design Team needs to know # the slogan to create the release banners # TODO: consider a better dependency for this task--there is probably # a more reliable anchor that could be used task call_for_slogans "Open call for release slogans" { depends !!alpha.stage_alpha {gaplength 12d} flags marketing } task select_slogans "Release slogan selection" { depends !call_for_slogans length 5d flags marketing } task final_slogan "Announce final release slogan" { depends !select_slogans flags marketing } task draft_talking_points "Complete drafts of Talking Points" { depends !call_for_slogans {gaplength 3d} length 5d flags marketing } task famsco_talking_points "Brief FAMSCo and Ambassaors on Talking Points" { depends !call_for_slogans {gaplength 3d} length 5d flags marketing } task news_beats "Coordinate with news beats authors about feature coverage" { depends !draft_talking_points length 5d flags marketing } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task press_kits "Update press kits" { depends !news_beats plan: length 5d actual: length 10d flags marketing } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task feature_profiles "Finish in-depth feature profiles" { depends !draft_talking_points plan: length 10d actual: length 15d flags marketing } # prepare 6 weeks before GA finished by 4/14--(2 weeks of work) # go live 1 month before GA (4/28) # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task create_countdown "Create Count Down Graphic" { depends !finalfreeze plan: length 10d actual: length 15d flags design } task publish_countdown "Publish Count Down Graphic" { depends !create_countdown length 1d flags web } # TODO: probably a good idea to reconsider dependency for these tasks # to be closer to something happening at the end of the Alpha task beta_release_notes "Beta Release Notes" { task unclaimed_beats "Write Unclaimed Wiki Beats" { depends !!!alpha.alpha_release_notes.prep_alpha_notes length 3d flags docs } task port_wiki_publican "Port Wiki to Publican" { depends !unclaimed_beats { gaplength 1d } length 4d flags docs } task remind_trans_beta_notes "Remind Translation: Beta Rel Notes POT Coming" { depends !unclaimed_beats{gaplength 3d} flags docs } task release_notes_pot1 "Generate POT files for all fed-rel-notes.rpm content" { depends !remind_trans_beta_notes {gaplength 5d} flags docs } task remind_devel_beta_notes" Remind announce-list & f-deve-announce" { depends !port_wiki_publican {gaplength 5d} flags docs } task beta_wiki_freeze "Wiki Freeze: Beta Release Notes" { depends !remind_devel_beta_notes {gaplength 3d} flags docs } # this freeze is needed so that translation can start with frozen content task release_notes_freeze "String Freeze: release-notes.rpm " { depends !beta_wiki_freeze {gaplength 1d} flags docs note "Release Notes includes: release-notes, readme, readme-burning-isos, about-fedora, readme-live-image" } task beta_wiki_import "Import publican to fedorahosted.org/release-notes.rpm" { depends !release_notes_freeze length 1d flags docs } task trans_release_notes "Translate Beta Release Notes" { depends !release_notes_pot1 length 7d flags translation } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task build_trans_review "Ongoing build translation review htmls" { depends !release_notes_freeze {gaplength 5d} plan: length 8d actual: length 13d flags docs } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task trans_review_beta "Review and correct Beta Release Notes (daily buids html)" { depends !release_notes_freeze {gaplength 5d} plan: length 8d actual: length 13d flags translation } task trans_release_notes_deadline "Translation Deadline: Beta Release Notes (PO Files complete)" { depends !trans_review_beta milestone flags translation, docs } task build_beta_relnotes "Build fed-rel-notes.rpm for Beta Release" { depends !trans_release_notes_deadline {gaplength 1d} flags docs, translation } task web_notes "Build and Post release-notes to fedorahosted.org" { depends !trans_release_notes_deadline flags docs } } # end beta_release_notes task docs_guides "Documentation Guides" { # NOTE: problaby need a better anchor point for this tasks # right now set up dependency so it lands on 2009-09-10 task new_guides_remind "Remind new guide owners SRPM package review" { depends !!beta_release_notes.beta_wiki_import flags docs } task trans_guides_pot_remind "Reminder to Trans that POTs coming and how many" { depends !new_guides_remind {gaplength 3d} flags docs } task docs_guides_freeze "String Freeze: All Docs Guides" { depends !!finalfreeze flags docs } task build_guides_rpm "Build Draft Docs Guides RPMs" { depends !docs_guides_freeze length 1d flags docs } task post_guides_web "Post Draft Guides to docs.fedoraproject.org" { depends !docs_guides_freeze length 1d flags docs } task docs_create_draft_guides_pot "Create Draft POT files for All Guides" { depends !docs_guides_freeze length 1d flags docs } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task docs_review_guides "Solicit Review and Bug Reports for Guides" { depends !post_guides_web plan: length 9d actual: length 14d flags docs } # KEY ADJUSTMENT POINT # Added 5 days to gaplength for slip of Beta task remind_trans_final_guides "Reminder to Trans that Guides POT files are coming" { depends !post_guides_web {gaplength 13d} flags docs } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task trans_review_guides "Translate Draft PO for Guides" { depends !docs_create_draft_guides_pot plan: length 9d actual: length 14d flags translation } task docs_create_guides_pot "Create POT files for All Guides" { depends !docs_review_guides length 1d flags docs } } #end docs_guides task final_art "Final Packaging of All Release Artwork"{ depends !finalfreeze flags design } task beta_meeting_announce "Announce: Beta Release Readiness Meeting" { depends !finalfreeze{gaplength 1d} milestone flags pm } task beta_meeting_reminder "Reminder: Beta Release Readiness Meeting" { depends !beta_meeting_announce {gaplength 3d} milestone flags pm } # KEY ADJUSTMENT POINT # Added 5 days for slip of Beta task beta_meeting "Beta Project Wide Release Readiness Meeting" { depends !beta_meeting_reminder {gaplength 7d} milestone flags releng, pm, quality, docs, design, translation, marketing } task beta_announce "Create Beta Announcement" { depends !beta_meeting length 2d flags docs } task beta_blocker4 "Beta Blocker Day (F12Beta) #4" { depends !!alpha.beta_blocker3 {gaplength 5d} flags releng, quality, devel, pm } # KEY ADJUSTMENT POINT # Added extra blocker meeting because of slip of Beta task beta_blocker5 "Beta Blocker Day (F12Beta) #5" { depends !beta_blocker4 {gaplength 5d} flags releng, quality, devel, pm } task beta_go_not "Beta Blocker Bug (go/no go)" { depends !beta_compose2 {gaplength 2d} flags releng, quality, devel, pm } # KEY ADJUSTMENT POINT if Beta release date slips task beta_compose2 "Compose Beta Candidate" { depends !finalfreeze {gaplength 2d} plan: length 01h actual: length 5d flags releng } task test_beta2 "Test Beta Candidate" { depends !beta_compose2 plan: length 5d flags releng, quality } task start_stage_beta "Start Stage & Sync Beta to Mirrors" { depends !test_beta2 flags releng } task stage_beta "Stage & Sync Beta to Mirrors" { depends !test_beta2 plan: length 3d flags releng } task beta_export_control "Beta Export Control Reporting" { depends !start_stage_beta {gaplength 1d} flags releng, pm } # two days to create web banner # one day for websites team to add to www.fedoraproject.org # should be live one day before the release task beta_banner "Beta Release Banner" { precedes !drop {gaplength 3d} task beta_create_banner "Create Beta Website Banner" { plan: length 2d flags design } task beta_publish_banner "Add Beta Banner to Website" { plan: length 1d flags web } } # four weeks prior to GA task drop "Beta Release Public Availability" { milestone depends !stage_beta flags docs, releng, quality, pm, translation, proto, design, devel, key, marketing, roadmap } # for ics file task start_docs_marketing "Start One-page Release Notes: Docs & Marketing" { depends !drop flags docs, marketing } task docs_marketing "Create one page Release Notes with Marketing" { depends !drop length 5d flags docs, marketing } # testing of Beta (previously "preview release" in <= F11) release is two weeks # FIXME: For F13 make this three weeks task test "Beta Testing" { depends !stage_beta plan: length 9d flags quality, releng, proto } # two weeks to create # should be completely done and ready for hand off to Ambassadors two weeks before GA # Ambassadors should have made prior arrangements to flip artwork over to media producer # at this time. # FIXME: need an ambassadors task which tracks pre-coordination with printer and media producer task media "Create DVD/CD label and sleeve artwork" { # not a "great" place to anchor to as it could move # needs to start four weeks before GA depends !drop length 10d flags design } task rc_rawhide_install "Pre-RC Rawhide Install Test Plan" { depends !stage_beta {gaplength 6d} length 5d flags quality } task testmile "End of Beta Testing" { milestone depends !test flags quality, releng, proto } # Anchor to ship date of Beta task ga_blocker1 "Blocker Bug Day (F12Blocker) #1" { depends !stage_beta {gaplength 3d} flags releng, quality, devel, pm } task ga_blocker2 "Blocker Bug Day (F12Blocker) #2" { depends !ga_blocker1 {gaplength 5d} flags releng, quality, devel, pm } } } # E N D of TestingPhase task LaunchPhase "Launch Phase" { # four weeks before GA ambassadors create release posters--two weeks # two weeks before GA to art team does final polish to posters # posters are ready on release day! task release_posters "Release Party Posters" { depends !!TestingPhase.beta.drop task create_posters "Create Release Party Posters" { length 10d flags ambassadors } task polish_poster "Polish/Finalize Release Party Posters" { depends !create_posters length 9d flags design } } task screenshots "Update and freeze the screenshots page" { depends !!TestingPhase.beta.stage_beta {gaplength 6d} length 5d flags marketing } task tour_page "Update Fedora tour page" { depends !!TestingPhase.beta.stage_beta {gaplength 6d} length 5d flags marketing } task freeze_tour_page "Freeze Fedora tour page" { depends !tour_page flags marketing } task briefings "Brief news distribution network" { depends !tour_page length 5d flags marketing } task monitor "Monitor news sites to provide corrections & info" { depends !tour_page length 29d flags marketing } task rc "Release Candidate" { task ga_blocker3 "Blocker Bug Day (F12Blocker) #3" { depends !!!TestingPhase.beta.ga_blocker2 {gaplength 5d} flags releng, quality, devel, pm } task final_guides "Final Guides" { task trans_guides "Translate All Guides (POT to PO)" { depends !!!!TestingPhase.beta.docs_guides.docs_create_guides_pot length 11d flags translation } task trans_guides_review "Review and correct Translated Guides (daily buids html)" { depends !trans_guides length 5d flags translation } task trans_guides_daily "Daily builds of guides for Translation" { depends !trans_guides length 5d flags docs } task trans_guides_deadline "Translation Deadline: All Guides" { depends !trans_guides_review flags translation } task final_build_guides "Final Build All Guides: All Languages" { depends !trans_guides_deadline {gaplength 1d} flags docs } } #end final guides task ga_release_notes "Final Release Notes" { task prep_ga_notes "Prepare GA Release Notes" { depends !!!!TestingPhase.beta.drop flags docs, quality } task ga_release_notes_freeze "String Freeze: GA Release Notes" { depends !prep_ga_notes {gaplength 4d} flags docs, proto } task wiki_ga_port "Port diff wiki content publican" { depends !ga_release_notes_freeze length 2d flags docs } task remind_trans_ga_notes "Remind Translation POTs coming GA release notes" { depends !wiki_ga_port flags docs } task ga_release_notes_pot "Generate GA Release Notes POT files for Translation" { depends !remind_trans_ga_notes {gaplength 3d} flags docs } task build_trans_review_final "Build GA release note htmls for Translation" { depends !ga_release_notes_pot {gaplength 1d} length 4d flags docs } task build_ga_trans_review "Review and correct GA Release Notes (daily builds html)" { depends !ga_release_notes_pot {gaplength 1d} length 4d flags docs, translation } task ga_pot_trans "Translate GA Release Notes (POT to PO)" { depends !ga_release_notes_pot {gaplength 1d} length 4d flags translation } task ga_release_notes_po "Translation Deadline: **GA rel-notes (PO Files complete)" { milestone depends !ga_pot_trans flags translation } task ga_release_notes_rpm "Build fedora-release-notes.rpm" { depends !ga_release_notes_po length 1d flags docs } task publican_final "Port publican to fh.o/rel-notes" { depends !ga_release_notes_rpm {gaplength 4d} length 1d flags docs } } #end final release notes # Three banners are created for the GA release (based on the Slogan from Marketing) # 1) large banner--fedoraproject.org front page # 2) "the release is out, go get it"--fedoraproject.org front page # 3) release name on start.fedoraproject.org # banners take one week to complete # banners should be completed one week before GA # banners are translated the week up until GA # translated during the week up until GA task ga_create_banners "Create Final Release Banners" { precedes !ga_meeting {gaplength 4d} # FIXME: rework not using 'precedes' length 4d flags design } task ga_announce "Create GA Announcement" { depends !ga_meeting length 2d flags docs } task ga_create_banners_pot "Create Release Banners POT " { depends !ga_create_banners length 1d flags web } task ga_translate_banners "Translate Final Release Banners (POT to PO)" { depends !ga_create_banners_pot length 4.5d flags translation } task ga_translate_banners_deadline "Translation Deadline: Final Release Banners (PO)" { depends !ga_translate_banners flags translation } task ga_publish_banners "Add Final Release Banners to Website" { depends !ga_translate_banners length 1d flags web } # web propertities need to be updated and translated # Tasks start at time Beta Release goes out # http://fedoraproject.org/en/index # http://fedoraproject.org/en/get-fedora # http://fedoraproject.org/en/join-fedora # http://fedoraproject.org/en/get-help task web_content_update "Update Website Content" { depends !!!TestingPhase.beta.drop length 5d flags web } task web_freeze "Website String Freeze" { depends !web_content_update milestone flags web } task web_create_pot "Create Website POT Files" { depends !web_freeze length 1d flags web } task trans_web "Translation Period for Website (POT to PO)" { depends !web_create_pot length 9d flags translation } task review_trans_web "Review and correct Website translations" { depends !trans_web length 4d flags translation, web } task finish_trans_web "Translation Deadline: Websites (POs done)" { depends !review_trans_web flags translation } task publish_trans_web "Publish Translations on Website (fedoraproject.org)" { depends !review_trans_web length 1d flags web } task final_meeting_announce "Announce: Final Release Readiness Meeting" { depends !!!TestingPhase.beta.test {gaplength 2d} flags pm } task final_meeting_reminder "Reminder: Final Release Readiness Meeting" { depends !final_meeting_announce {gaplength 3d} flags pm } task ga_meeting "F12 Project Wide Release Readiness Meeting" { depends !final_meeting_reminder {gaplength 2d} milestone flags releng, pm, quality, docs, design, marketing } # there isn't room for a TC in F12 because the "Beta" is only # two weeks long which resulted from changing the meaning of Alpha & # Beta in F12 and dropping the original Alpha. # FIXME: For Fedora 13: # 1) Make the Beta at least three weeks # 2) Add Test Compose for RC (made possible by extra week in Beta) task compose_rc "Compose RC" { depends !!!TestingPhase.beta.test {gaplength 2d} flags releng, key, roadmap } task enable_updates "Enable Fedora 12 Updates" { depends !!!TestingPhase.beta.test {gaplength 2d} flags releng } task test_rc "Test RC" { depends !compose_rc plan: length 5d flags releng, quality } task start_stage_rc "Start Stage & Sync RC to Mirrors" { depends !test_rc {gaplength 1d} flags releng } task stage_rc "Stage & Sync RC to Mirrors" { depends !test_rc {gaplength 1d} plan: length 3d flags releng } task final_export_control "Final Export Control Reporting" { depends !start_stage_rc {gaplength 1d} flags releng, pm } task go_nogo "F12 Blocker Review (go/no go) 3 PM EDT" { depends !compose_rc {gaplength 3d} flags releng, quality, docs, proto, pm } # this is a shadow task so that precedes will work within this section task drop "Hidden GA Release Task" { depends !stage_rc plan: length 1d flags hidden } task zero_day_relnotes "Zero Day Release Notes" { task zero_day_web "0-Day rel-notes update docs.fp.org" { depends !!ga_release_notes.publican_final length 1d flags docs } task zero_day_rpm "0-Day rel-notes build updated rpm" { depends !!ga_release_notes.publican_final length 1d flags docs } task zero_day_pot "0-Day rel-notes generate POT" { depends !!ga_release_notes.publican_final length 1d flags docs } } # zero_day_relnotes } # end of rc task # Required for product pages--do not change description # Also make sure to confirm this date with Red Hat IS to # make sure it does not conflict with other releases. This should # generally not be a problem because of: # https://fedoraproject.org/wiki/Infrastructure/Red_Hat_bandwidth_effects task ga "GA Release" { depends !rc.stage_rc flags quality, releng, docs, design, pm, translation, proto, devel, key, marketing, roadmap } } task MaintenancePhase "Maintenance Phase" { task zero_day_trans "Translate 0-day release notes for docs.fp.org" { depends !!LaunchPhase.rc.zero_day_relnotes.zero_day_pot {gaplength 1d} length 5d flags translation } task zero_day_deadline "Translation Deadline: 0-Day (PO Files complete)" { depends !zero_day_trans milestone flags translation } task web_post "Add translated zero-day updates to docs.fp.org" { depends !zero_day_trans flags docs } } } # Bitter End