| 
									
										
										
										
											2022-05-22 17:02:00 +01:00
										 |  |  |  | Roadmap | 
					
						
							|  |  |  |  | === | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | The roadmap for development of GLib in upcoming releases is tracked in GitLab, | 
					
						
							|  |  |  |  | using its [milestones feature](https://gitlab.gnome.org/GNOME/glib/-/milestones). | 
					
						
							|  |  |  |  | Look on the upcoming milestones to see what features and fixes are planned for | 
					
						
							|  |  |  |  | each release. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | An issue being assigned to a milestone is no guarantee that it will actually be | 
					
						
							|  |  |  |  | fixed in time for that milestone. Milestones are a rough prioritisation system | 
					
						
							|  |  |  |  | for work, but GLib is a volunteer project with no fixed resources, so no | 
					
						
							|  |  |  |  | guarantees can be given. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | All releases are time-based rather than feature-based, as the development and | 
					
						
							|  |  |  |  | stable branches of GLib should always be in a releasable state. Sometimes, at | 
					
						
							|  |  |  |  | the discretion of the maintainers, a release may be held for a week or so in | 
					
						
							|  |  |  |  | order to allow a particular merge request to land so that it can be made | 
					
						
							|  |  |  |  | available to distributions or testers more rapidly. | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-21 16:15:04 +01:00
										 |  |  |  | When [making a release](./releasing.md), all remaining issues and merge requests | 
					
						
							|  |  |  |  | allocated to the milestone for that release should be fixed (potentially | 
					
						
							|  |  |  |  | delaying the release), or rescheduled to a different release, based on the | 
					
						
							|  |  |  |  | maintainers’ assessment. | 
					
						
							| 
									
										
										
										
											2022-05-22 17:02:00 +01:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | Unstable release planning | 
					
						
							|  |  |  |  | --- | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | At the start of a development cycle, milestones are created for each release in | 
					
						
							|  |  |  |  | the cycle according to the [GNOME release | 
					
						
							| 
									
										
										
										
											2025-01-23 14:00:46 +00:00
										 |  |  |  | schedule](https://release.gnome.org/calendar/). GLib roughly follows the GNOME | 
					
						
							| 
									
										
										
										
											2022-05-22 17:02:00 +01:00
										 |  |  |  | release schedule, but makes its releases one or two weeks ahead of each | 
					
						
							|  |  |  |  | corresponding GNOME release. This allows other GNOME modules to depend on the | 
					
						
							|  |  |  |  | correct GLib version for new APIs. GLib does not follow the GNOME module | 
					
						
							|  |  |  |  | versioning scheme. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | As the milestones are created, maintainers will assign issues to them, based on | 
					
						
							|  |  |  |  | what they think is possible to achieve for each milestone given the amount of | 
					
						
							|  |  |  |  | developer time available before the release. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Issues affecting a lot of users (such as common crashes), and new features which | 
					
						
							|  |  |  |  | maintainers think will have a wide benefit are prioritised. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | As a development cycle progresses, some of the releases are timed to coincide | 
					
						
							|  |  |  |  | with [GNOME’s API/feature, string and hard code | 
					
						
							| 
									
										
										
										
											2025-01-23 14:00:46 +00:00
										 |  |  |  | freezes](https://handbook.gnome.org/release-planning/freezes.html). Issues which add API | 
					
						
							| 
									
										
										
										
											2022-05-22 17:02:00 +01:00
										 |  |  |  | and features are scheduled for the earlier micro releases in a development | 
					
						
							|  |  |  |  | cycle, followed by issues which add or change translatable strings, followed by | 
					
						
							|  |  |  |  | smaller bug fixes, documentation and unit test updates. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Stable release planning | 
					
						
							|  |  |  |  | --- | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Stable micro releases are scheduled at a cadence picked by maintainers, | 
					
						
							|  |  |  |  | depending on the rate at which bugs are being found in that stable branch. More | 
					
						
							|  |  |  |  | bugs leads to a more frequent release cadence. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Historically, the rate of releases on each stable branch has decreased inversely | 
					
						
							|  |  |  |  | proportionally to the time since the initial release of that branch. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | There is no limit on the number of micro releases in a stable release series. | 
					
						
							|  |  |  |  | Typically there will be around 6. Micro releases stop once there are no more | 
					
						
							| 
									
										
										
										
											2023-12-21 07:45:04 +01:00
										 |  |  |  | bugs found in a stable series, or once a new stable series supersedes it. | 
					
						
							| 
									
										
										
										
											2022-05-22 17:02:00 +01:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | The milestone for the next micro release in a stable series is created when the | 
					
						
							|  |  |  |  | previous micro release is made, such that only one stable micro release is | 
					
						
							|  |  |  |  | scheduled at any time. |