diff options
Diffstat (limited to 'web')
| -rw-r--r-- | web/input/news/release-3-0-0-rc2.md | 43 | ||||
| -rw-r--r-- | web/macros.py | 13 |
2 files changed, 54 insertions, 2 deletions
diff --git a/web/input/news/release-3-0-0-rc2.md b/web/input/news/release-3-0-0-rc2.md new file mode 100644 index 0000000..79746bd --- /dev/null +++ b/web/input/news/release-3-0-0-rc2.md | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | title: Version 3.0.0-rc2 Released | ||
| 2 | author: Lorenz Kästle | ||
| 3 | date: 2026-01-02 | ||
| 4 | --- | ||
| 5 | |||
| 6 | The Monitoring Plugins Development Team announces version 3.0.0-rc2 of | ||
| 7 | the Monitoring Plugins! | ||
| 8 | |||
| 9 | This is the second release candidate for version 3.0.0. | ||
| 10 | |||
| 11 | It contains mostly fixes to the 3.0.0-rc1 version and is also not a full release, | ||
| 12 | but serves as a basis for test until we are mostly sure not to break production | ||
| 13 | setups. | ||
| 14 | |||
| 15 | ### Changes | ||
| 16 | * check_nt was removed | ||
| 17 | check_nt is no long useful in current setups and hasn't been for some time. | ||
| 18 | Therefore it was removed without a replacement. | ||
| 19 | * check_ntp was removed | ||
| 20 | check_ntp was marked as deprecated for a long time due to systematic problems. | ||
| 21 | It should not be in use anywhere and gets now removed to reduce code size and | ||
| 22 | avoid misleading users. | ||
| 23 | The replacements are check_ntp_time and check_ntp_peer | ||
| 24 | * Bugfix for check_ntp_time | ||
| 25 | An errournous change in check_ntp_time made it fail in almost all use cases. | ||
| 26 | This has been fixed | ||
| 27 | * Properly separate perfdata from different subchecks | ||
| 28 | A missing separator caused errors in perfdata strings (from C plugins) where | ||
| 29 | two different data points where not properly separated and showed up as a single | ||
| 30 | invalid data point | ||
| 31 | * check_curl: append the query string from parsed uri | ||
| 32 | When using the old style follow method (`-f follow`) with check_curl the query string was not | ||
| 33 | appended to the new target after redirect. This was fixed. (Thanks Ahmet Oeztuerk) | ||
| 34 | * Fixing different problems on OpenBSD | ||
| 35 | A few different things did prevent proper compilation and usage on OpenBSD, partly due | ||
| 36 | to different naming conventions there. These are hopefully fixed now. Thanks to Alvar Penning | ||
| 37 | and Stuart Henderson. | ||
| 38 | * Gnulib update to stable-202507 | ||
| 39 | |||
| 40 | |||
| 41 | [download]: /download.html | ||
| 42 | |||
| 43 | <!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %--> | ||
diff --git a/web/macros.py b/web/macros.py index 3eb1046..eab21bc 100644 --- a/web/macros.py +++ b/web/macros.py | |||
| @@ -3,7 +3,7 @@ import math | |||
| 3 | import os.path | 3 | import os.path |
| 4 | import time | 4 | import time |
| 5 | 5 | ||
| 6 | plugins_release = '3.0.0-rc1' | 6 | plugins_release = '3.0.0-rc2' |
| 7 | mib_release = '1.0.1' | 7 | mib_release = '1.0.1' |
| 8 | release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-') | 8 | release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-') |
| 9 | site_url = 'https://www.monitoring-plugins.org/' | 9 | site_url = 'https://www.monitoring-plugins.org/' |
| @@ -52,6 +52,7 @@ _RSS_ITEM = """ | |||
| 52 | </item> | 52 | </item> |
| 53 | """ | 53 | """ |
| 54 | 54 | ||
| 55 | |||
| 55 | def hook_postconvert_rss(): | 56 | def hook_postconvert_rss(): |
| 56 | items = [] | 57 | items = [] |
| 57 | posts = [p for p in pages if 'date' in p] | 58 | posts = [p for p in pages if 'date' in p] |
| @@ -75,6 +76,7 @@ def hook_postconvert_rss(): | |||
| 75 | # News | 76 | # News |
| 76 | # | 77 | # |
| 77 | 78 | ||
| 79 | |||
| 78 | def hook_preconvert_news(): | 80 | def hook_preconvert_news(): |
| 79 | posts_per_page = 10 | 81 | posts_per_page = 10 |
| 80 | posts = [p for p in pages if 'date' in p] | 82 | posts = [p for p in pages if 'date' in p] |
| @@ -97,6 +99,7 @@ def hook_preconvert_news(): | |||
| 97 | parent='News') | 99 | parent='News') |
| 98 | pages.append(p) | 100 | pages.append(p) |
| 99 | 101 | ||
| 102 | |||
| 100 | def make_news_page(posts, current_index): | 103 | def make_news_page(posts, current_index): |
| 101 | marker = '<end-of-teaser>' | 104 | marker = '<end-of-teaser>' |
| 102 | if current_index == 0: | 105 | if current_index == 0: |
| @@ -121,6 +124,7 @@ def make_news_page(posts, current_index): | |||
| 121 | p['parent'] = title | 124 | p['parent'] = title |
| 122 | return '\n'.join(teaser) + '\n\n' | 125 | return '\n'.join(teaser) + '\n\n' |
| 123 | 126 | ||
| 127 | |||
| 124 | def make_news_footer(n_news_pages, current_index): | 128 | def make_news_footer(n_news_pages, current_index): |
| 125 | if n_news_pages == 1: | 129 | if n_news_pages == 1: |
| 126 | return '' | 130 | return '' |
| @@ -142,6 +146,7 @@ def make_news_footer(n_news_pages, current_index): | |||
| 142 | footer.append('[Last](news/%d.html)' % n_news_pages) | 146 | footer.append('[Last](news/%d.html)' % n_news_pages) |
| 143 | return ' '.join(footer) + '\n{: #news-footer }\n' | 147 | return ' '.join(footer) + '\n{: #news-footer }\n' |
| 144 | 148 | ||
| 149 | |||
| 145 | def next_news_chunk(posts, posts_per_page): | 150 | def next_news_chunk(posts, posts_per_page): |
| 146 | index = 0 | 151 | index = 0 |
| 147 | while len(posts[index:]) > 0: | 152 | while len(posts[index:]) > 0: |
| @@ -152,6 +157,7 @@ def next_news_chunk(posts, posts_per_page): | |||
| 152 | # Menu and Breadcrumb Navigation | 157 | # Menu and Breadcrumb Navigation |
| 153 | # | 158 | # |
| 154 | 159 | ||
| 160 | |||
| 155 | def menu(): | 161 | def menu(): |
| 156 | menu_pages = [p for p in pages if 'menu' in p] | 162 | menu_pages = [p for p in pages if 'menu' in p] |
| 157 | menu_pages.sort(key=lambda p: int(p['menu'])) | 163 | menu_pages.sort(key=lambda p: int(p['menu'])) |
| @@ -161,9 +167,10 @@ def menu(): | |||
| 161 | else: | 167 | else: |
| 162 | print('<span><a href="%s">%s</a></span>' % (p.url, hx(p.title))) | 168 | print('<span><a href="%s">%s</a></span>' % (p.url, hx(p.title))) |
| 163 | 169 | ||
| 170 | |||
| 164 | def breadcrumb(): | 171 | def breadcrumb(): |
| 165 | stable = '<span id="release">Stable release: <a href="%s">%s</a></span>' \ | 172 | stable = '<span id="release">Stable release: <a href="%s">%s</a></span>' \ |
| 166 | % (release_notes, plugins_release) | 173 | % (release_notes, plugins_release) |
| 167 | parents = {p.title: (p.url, p.get('parent')) for p in pages} | 174 | parents = {p.title: (p.url, p.get('parent')) for p in pages} |
| 168 | title = page.title | 175 | title = page.title |
| 169 | crumbs = hx(title) | 176 | crumbs = hx(title) |
| @@ -179,11 +186,13 @@ def breadcrumb(): | |||
| 179 | # Miscellaneous | 186 | # Miscellaneous |
| 180 | # | 187 | # |
| 181 | 188 | ||
| 189 | |||
| 182 | def list_kids(): | 190 | def list_kids(): |
| 183 | kids = [(p.url, p.title) for p in pages if p.get('parent') == page.title] | 191 | kids = [(p.url, p.title) for p in pages if p.get('parent') == page.title] |
| 184 | for kid in sorted(kids): | 192 | for kid in sorted(kids): |
| 185 | print('* [%s](%s)' % (kid[1], kid[0])) | 193 | print('* [%s](%s)' % (kid[1], kid[0])) |
| 186 | 194 | ||
| 195 | |||
| 187 | def copyright_years(since=None): | 196 | def copyright_years(since=None): |
| 188 | this_year = time.gmtime().tm_year | 197 | this_year = time.gmtime().tm_year |
| 189 | if since is not None and int(since) != this_year: | 198 | if since is not None and int(since) != this_year: |
