| # GLib | |
| GLib is the low-level core library that forms the basis for projects such | |
| as GTK and GNOME. It provides data structure handling for C, portability | |
| wrappers, and interfaces for such runtime functionality as an event loop, | |
| threads, dynamic loading, and an object system. | |
| The official download locations are: | |
| <https://download.gnome.org/sources/glib> | |
| The official web site is: | |
| <https://www.gtk.org/> | |
| ## Installation | |
| See the file ‘[INSTALL.md](INSTALL.md)’. There is | |
| [separate and more in-depth documentation](./docs/win32-build.md) for building | |
| GLib on Windows. | |
| ## Supported versions | |
| Upstream GLib only supports the most recent stable release series, the previous | |
| stable release series, and the current development release series. All | |
| older versions are not supported upstream and may contain bugs, some of which | |
| may be exploitable security vulnerabilities. | |
| See [SECURITY.md](SECURITY.md) for more details. | |
| ## Documentation | |
| API documentation is available online for GLib for the: | |
| * [GLib](https://docs.gtk.org/glib/) | |
| * [GObject](https://docs.gtk.org/gobject/) | |
| * [GModule](https://docs.gtk.org/gmodule/) | |
| * [GIO](https://docs.gtk.org/gio/) | |
| ## Discussion | |
| If you have a question about how to use GLib, seek help on [GNOME’s Discourse | |
| instance](https://discourse.gnome.org/tags/glib). Alternatively, ask a question | |
| on [StackOverflow and tag it `glib`](https://stackoverflow.com/questions/tagged/glib). | |
| ## Reporting bugs | |
| Bugs should be [reported to the GNOME issue tracking system](https://gitlab.gnome.org/GNOME/glib/issues/new). | |
| You will need to create an account for yourself. You may also submit bugs by | |
| e-mail (without an account) by e-mailing <incoming+gnome-glib-658-issue-@gitlab.gnome.org>, | |
| but this will give you a degraded experience. | |
| Bugs are for reporting problems in GLib itself, not for asking questions about | |
| how to use it. To ask questions, use one of our [discussion forums](#discussion). | |
| In bug reports please include: | |
| * Information about your system. For instance: | |
| * What operating system and version | |
| * For Linux, what version of the C library | |
| * And anything else you think is relevant. | |
| * How to reproduce the bug. | |
| * If you can reproduce it with one of the test programs that are built | |
| in the `tests/` subdirectory, that will be most convenient. Otherwise, | |
| please include a short test program that exhibits the behavior. | |
| As a last resort, you can also provide a pointer to a larger piece | |
| of software that can be downloaded. | |
| * If the bug was a crash, the exact text that was printed out | |
| when the crash occurred. | |
| * Further information such as stack traces may be useful, but | |
| is not necessary. | |
| ## Contributing to GLib | |
| Please follow the [contribution guide](./CONTRIBUTING.md) to know how to | |
| start contributing to GLib. | |
| Patches should be [submitted as merge requests](https://gitlab.gnome.org/GNOME/glib/-/merge_requests/new) | |
| to gitlab.gnome.org. If the patch fixes an existing issue, please refer to the | |
| issue in your commit message with the following notation (for issue 123): | |
| ``` | |
| Closes: #123 | |
| ``` | |
| Otherwise, create a new merge request that introduces the change. Filing a | |
| separate issue is not required. | |