Skip to content

Commit 80fcee3

Browse files
committed
Generate Pelican site
1 parent 6ea4016 commit 80fcee3

33 files changed

Lines changed: 7845 additions & 2387 deletions

blog/archives/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@
102102

103103
<section id="blog-list">
104104
<h1 class="top-header">Archives</h1>
105+
<h2 class="top-subheader">Wed 17 December 2025</h2>
106+
<p>
107+
<a href="/blog/kiwi-tcms-team/2025/12/17/kiwi-tcms-is-going-to-fosdem-2026/">Kiwi TCMS is going to FOSDEM 2026</a>
108+
</p>
105109
<h2 class="top-subheader">Sat 06 December 2025</h2>
106110
<p>
107111
<a href="/blog/kiwi-tcms-team/2025/12/06/kiwi-tcms-152/">Kiwi TCMS 15.2</a>

blog/authors/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ <h1 class="top-header">Blog authors</h1>
106106
<h2 class="top-subheader">Alexander Todorov (21)</h2>
107107
</a>
108108
<a href="/blog/kiwi-tcms-team/" rel="bookmark">
109-
<h2 class="top-subheader">Kiwi TCMS Team (164)</h2>
109+
<h2 class="top-subheader">Kiwi TCMS Team (165)</h2>
110110
</a>
111111
<a href="/blog/malcolm-shore/" rel="bookmark">
112112
<h2 class="top-subheader">Malcolm Shore (1)</h2>

blog/index.html

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,45 @@
102102
<section id="blog-list">
103103
<h1>Blog</h1>
104104

105+
<article class="blog-list">
106+
<div class="header">
107+
<a href="/blog/kiwi-tcms-team/2025/12/17/kiwi-tcms-is-going-to-fosdem-2026/" rel="bookmark" title="Permalink to Kiwi TCMS is going to FOSDEM 2026">
108+
<h1 class="top-header">Kiwi TCMS is going to FOSDEM 2026</h1>
109+
</a>
110+
111+
<p class="post-meta">Posted by
112+
<a href="/blog/kiwi-tcms-team/">Kiwi TCMS Team</a>
113+
on Wed 17 December 2025
114+
</p>
115+
</div>
116+
117+
<div class="content">
118+
<p><img alt="fosdem 26 banner" src="/images/fosdem/2026/stand.png" title="fosdem 26 banner"></p>
119+
<p>Hello testers, we are happy to announce that
120+
Kiwi TCMS is going to <a href="http://fosdem.org/">FOSDEM 2026</a> in Brussels.
121+
This is where you can find us:</p>
122+
<ul>
123+
<li>Saturday Jan 31st:
124+
<a href="https://fosdem.org/2026/news/2025-11-16-accepted-stands/">Kiwi TCMS stand</a> -
125+
most likely in the K building however specific information will be made available
126+
closer to the event! Please follow <a href="https://fosdem.org/2026/">https://fosdem.org/2026/</a> for more news!</li>
127+
<li>Sunday Feb 1st:
128+
<a href="https://fosdem.org/2026/schedule/track/testing-and-continuous-delivery/">Testing and Continuous Delivery devroom</a> -
129+
we are proud to be co-hosting this devroom again!</li>
130+
</ul>
131+
<p>We would like to meet with all of you and talk about open source, software testing and test management!</p>
132+
<hr>
133+
<p>If you like what we're doing and how Kiwi TCMS supports various communities
134+
please help us!</p>
135+
<ul>
136+
<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li>
137+
<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a>
138+
and follow all project news;</li>
139+
<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li>
140+
<li><a href="/#subscriptions">Become a subscriber</a> and help us sustain development</li>
141+
</ul>
142+
</div>
143+
</article>
105144
<article class="blog-list">
106145
<div class="header">
107146
<a href="/blog/kiwi-tcms-team/2025/12/06/kiwi-tcms-152/" rel="bookmark" title="Permalink to Kiwi TCMS 15.2">
@@ -2390,48 +2429,6 @@ <h2>How to upgrade</h2>
23902429

23912430
</div>
23922431
</article>
2393-
<article class="blog-list">
2394-
<div class="header">
2395-
<a href="/blog/kiwi-tcms-team/2024/11/05/important-changes-to-user-accounts-on-tenantkiwitcmsorg/" rel="bookmark" title="Permalink to Important changes to user accounts on *.tenant.kiwitcms.org">
2396-
<h1 class="top-header">Important changes to user accounts on *.tenant.kiwitcms.org</h1>
2397-
</a>
2398-
2399-
<p class="post-meta">Posted by
2400-
<a href="/blog/kiwi-tcms-team/">Kiwi TCMS Team</a>
2401-
on Tue 05 November 2024
2402-
</p>
2403-
</div>
2404-
2405-
<div class="content">
2406-
<p>Hello testers,
2407-
starting today we are discontinuing the ability to register user
2408-
accounts on <a href="https://public.tenant.kiwitcms.org">https://public.tenant.kiwitcms.org</a>! New accounts can still
2409-
be created by logging in via the existing OAuth integrations - GitHub, GitLab and Google!</p>
2410-
<h2>How does this affect users</h2>
2411-
<ul>
2412-
<li>New account registrations via email+password are not possible anymore - use OAuth login</li>
2413-
<li>Existing users are able to login via OAuth and/or email+password - reset your password
2414-
if forgotten</li>
2415-
<li>New subscription purchases will create user accounts automatically -
2416-
reset your password before first login.
2417-
<em>Note: existing subscribers already have accounts</em></li>
2418-
<li>Inviting new users to a Private Tenant, <code>PLUGINS -&gt; Tenant -&gt; Invite users</code>
2419-
will create user accounts automatically - reset your password before first login</li>
2420-
</ul>
2421-
<p>Happy Testing!</p>
2422-
<hr>
2423-
<p>If you like what we're doing and how Kiwi TCMS supports various communities
2424-
please help us!</p>
2425-
<ul>
2426-
<li><a href="https://github.com/kiwitcms/Kiwi/stargazers">Give ⭐ on GitHub</a>;</li>
2427-
<li><a href="https://gitlab.com/gitlab-org/gitlab/-/issues/334558">Give 👍 on GitLab</a>;</li>
2428-
<li><a href="https://kiwitcms.us17.list-manage.com/subscribe/post?u=9b57a21155a3b7c655ae8f922&amp;id=c970a37581">Join our newsletter</a>
2429-
and follow all project news;</li>
2430-
<li><a href="https://kiwitcms.readthedocs.io/en/latest/contribution.html">Become a contributor</a> and an awesome open source hacker;</li>
2431-
<li><a href="/#subscriptions">Become a customer</a> and help us sustain development</li>
2432-
</ul>
2433-
</div>
2434-
</article>
24352432

24362433
<section id="pagination">
24372434
<p>

blog/index10.html

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,231 @@
102102
<section id="blog-list">
103103
<h1>Blog</h1>
104104

105+
<article class="blog-list">
106+
<div class="header">
107+
<a href="/blog/kiwi-tcms-team/2018/02/10/kiwi-tcms-tcms-api-version-400/" rel="bookmark" title="Permalink to Kiwi TCMS & tcms-api version 4.0.0">
108+
<h1 class="top-header">Kiwi TCMS &amp; tcms-api version 4.0.0</h1>
109+
</a>
110+
111+
<p class="post-meta">Posted by
112+
<a href="/blog/kiwi-tcms-team/">Kiwi TCMS Team</a>
113+
on Sat 10 February 2018
114+
</p>
115+
</div>
116+
117+
<div class="content">
118+
<p>We're happy to announce Kiwi TCMS version 4.0.0
119+
and the corresponding tcms-api version 4.0.0! This is a very big release
120+
which introduces tons of backwards incompatible changes to the RPC layer
121+
as well as several bug-fixes and enhancements!</p>
122+
<p>With this release Kiwi TCMS meets one of our
123+
<a href="/blog/kiwi-tcms-team/2018/01/22/kiwi-tcms-roadmap-for-2018/">milestones for 2018</a>! All XML-RPC
124+
namespaces now match DB model names and the API client class names. Lots of
125+
similar and duplicate methods were removed and existing ones were simplified.
126+
We've also reduced code duplication and technical debth by 1 month
127+
according to stats by <a href="https://codeclimate.com/github/kiwitcms/Kiwi">CodeClimate</a>.</p>
128+
<p><strong>IMPORTANT:</strong> this is also the first release to officially publish the
129+
<code>pub.kiwitcms.eu/kiwitcms/kiwi</code> container image!</p>
130+
<p><strong>WARNING:</strong> upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade
131+
the tcms-api client as well. None of the 4.x releases is compatible with
132+
older releases due to the massive ammount of changes in the RPC layer.</p>
133+
<h2>Changes since Kiwi TCMS 3.50</h2>
134+
<h3>Enhancements and bug fixes</h3>
135+
<ul>
136+
<li>Upgrade to Django 2.0.2 which patches a security issue</li>
137+
<li>Pin JIRA client version to 1.0.10. Fixes
138+
<a href="https://github.com/kiwitcms/Kiwi/issues/195">Issue #195</a></li>
139+
<li>Generate api-docs for model classes</li>
140+
<li>Updated documentation for all RPC methods</li>
141+
<li>Use Grappelli jQuery initialization, fixes popup windows</li>
142+
<li>Unify RPC namespaces, API client class names and server-side model names.
143+
Fixes <a href="https://github.com/kiwitcms/Kiwi/issues/153">Issue #153</a></li>
144+
</ul>
145+
<h3>Settings</h3>
146+
<ul>
147+
<li>Remove <code>ADMIN_PREFIX</code> setting</li>
148+
</ul>
149+
<h3>RPC methods refactoring</h3>
150+
<ul>
151+
<li>Remove <code>Build.check_build</code>, use <code>Build.filter</code></li>
152+
<li>Remove <code>Build.get</code>, use <code>Build.filter</code></li>
153+
<li>Remove <code>Build.get_caseruns</code>, use <code>TestCaseRun.filter</code></li>
154+
<li>
155+
<p>Remove <code>Build.get_runs</code>, use <code>TestRun.filter</code></p>
156+
</li>
157+
<li>
158+
<p>Rename <code>Env.filter_groups</code>, use <code>Env.Group.filter</code></p>
159+
</li>
160+
<li>Rename <code>Env.filter_properties</code>, use <code>Env.Property.filter</code></li>
161+
<li>
162+
<p>Rename <code>Env.filter_values</code>, use <code>Env.Value.filter</code></p>
163+
</li>
164+
<li>
165+
<p>Remove <code>Product.add_component</code>, use <code>Component.create</code></p>
166+
</li>
167+
<li>Remove <code>Product.add_version</code>, use <code>Version.create</code></li>
168+
<li>Remove <code>Product.check_category</code>, use <code>Category.filter</code></li>
169+
<li>Remove <code>Product.check_component</code>, use <code>Component.filter</code></li>
170+
<li>Remove <code>Product.check_product</code>, use <code>Product.filter</code></li>
171+
<li>Remove <code>Product.filter_categories</code>, use <code>Category.filter</code></li>
172+
<li>Remove <code>Product.filter_components</code>, use <code>Component.filter</code></li>
173+
<li>Remove <code>Product.filter_versions</code>, use <code>Version.filter</code></li>
174+
<li>Remove <code>Product.get</code>, use <code>Product.filter</code></li>
175+
<li>Remove <code>Product.get_builds</code>, use <code>Build.filter</code></li>
176+
<li>Remove <code>Product.get_cases</code>, use <code>TestCase.filter</code></li>
177+
<li>Remove <code>Product.get_categories</code>, use <code>Category.filter</code></li>
178+
<li>Remove <code>Product.get_category</code>, use <code>Category.filter</code></li>
179+
<li>Remove <code>Product.get_component</code>, use <code>Component.filter</code></li>
180+
<li>
181+
<p>Remove <code>Product.update_component</code>, use <code>Component.update</code></p>
182+
</li>
183+
<li>
184+
<p>Rename <code>Tag.get_tags</code> to <code>Tag.filter</code></p>
185+
</li>
186+
<li>
187+
<p>Remove <code>TestCase.add_comment</code></p>
188+
</li>
189+
<li>Update signature for <code>TestCase.add_component</code></li>
190+
<li>Update signature for <code>TestCase.add_tag</code></li>
191+
<li>Remove <code>TestCase.add_to_run</code>, use <code>TestRun.add_case</code></li>
192+
<li>Remove <code>TestCase.attach_bug</code>, use <code>Bug.create</code></li>
193+
<li>Remove <code>TestCase.calculate_average_estimated_time</code></li>
194+
<li>Remove <code>TestCase.calculate_total_estimated_time</code></li>
195+
<li>Remove <code>TestCase.check_case_status</code>, use <code>TestCaseStatus.filter</code></li>
196+
<li>Remove <code>TestCase.check_priority</code>, use <code>Priority.filter</code></li>
197+
<li>Update signature for <code>TestCase.create</code>, no longer accepts <code>plan</code>,
198+
<code>component</code> and <code>bug</code> dict attributes. Instead use
199+
<code>TestPlan.add_case</code>, <code>TestCase.add_component</code> and <code>Bug.create</code></li>
200+
<li>Remove <code>TestCase.detach_bug</code>, use <code>Bug.remove</code></li>
201+
<li>Remove <code>TestCase.filter_count</code></li>
202+
<li>Remove <code>TestCase.get</code>, use <code>TestCase.filter</code></li>
203+
<li>Remove <code>TestCase.get_bugs</code>, use <code>Bug.filter({'case': ?})</code></li>
204+
<li>Remove <code>TestCase.get_bug_systems</code></li>
205+
<li>Remove <code>TestCase.get_case_status</code>, use <code>TestCaseStatus.filter</code></li>
206+
<li>Update signature for <code>TestCase.get_components</code></li>
207+
<li>Remove <code>TestCase.get_plans</code>, use <code>TestPlan.filter({'case': ?})</code></li>
208+
<li>Remove <code>TestCase.get_priority</code>, use <code>Priority.filter</code></li>
209+
<li>Remove <code>TestCase.get_tags</code>, use <code>Tag.filter({'case': ?})</code></li>
210+
<li>Remove <code>TestCase.get_text</code>, use <code>TestCase.filter</code></li>
211+
<li>Remove <code>TestCase.link_plan</code>, use <code>TestPlan.add_case</code></li>
212+
<li>Rename <code>TestCase.notification_add_cc</code> to <code>TestCase.add_notification_cc</code>
213+
and update signature</li>
214+
<li>Rename <code>TestCase.notification_get_cc_list</code> to <code>TestCase.get_notification_cc</code>
215+
and update signature</li>
216+
<li>Rename <code>TestCase.notification_remove_cc</code> to <code>TestCase.remove_notification_cc</code>
217+
and update signature</li>
218+
<li>Update signature for <code>TestCase.remove_component</code></li>
219+
<li>Update signature for <code>TestCase.remove_tag</code></li>
220+
<li>Remove <code>TestCase.store_text</code>, use <code>TestCase.update</code> with
221+
<code>setup</code>, <code>breakdown</code>, <code>action</code> and <code>effect</code> attributes in the parameter dict</li>
222+
<li>
223+
<p>Remove <code>TestCase.unlink_plan</code>, use <code>TestPlan.remove_case</code></p>
224+
</li>
225+
<li>
226+
<p>Remove <code>TestCasePlan.get</code></p>
227+
</li>
228+
<li>
229+
<p>Remove <code>TestCasePlan.update</code></p>
230+
</li>
231+
<li>
232+
<p>Update <code>TestCaseRun.add_comment</code> to accept a single ID as first parameter</p>
233+
</li>
234+
<li>Remove <code>TestCaseRun.attach_bug</code>, use <code>Bug.create</code></li>
235+
<li>Rename <code>TestCaseRun.attach_log</code> to <code>TestCaseRun.add_log</code></li>
236+
<li>Remove <code>TestCaseRun.detach_bug</code>, use <code>Bug.remove</code></li>
237+
<li>Rename <code>TestCaseRun.detach_log</code> to <code>TestCaseRun.remove_log</code></li>
238+
<li>Remove <code>TestCaseRun.get</code>, use <code>TestCaseRun.filter</code></li>
239+
<li>Remove <code>TestCaseRun.get_bugs</code>, use <code>Bug.filter({'case_run': ?})</code></li>
240+
<li>Remove <code>TestCaseRun.get_case_run_status_by_name</code></li>
241+
<li>
242+
<p>Update signature for <code>TestCaseRun.update</code></p>
243+
</li>
244+
<li>
245+
<p>Remove <code>TestPlan.add_component</code></p>
246+
</li>
247+
<li>Update signature for <code>TestPlan.add_tag</code></li>
248+
<li>Remove <code>TestPlan.check_plan_type</code>, use <code>PlanType.filter</code></li>
249+
<li>Remove <code>TestPlan.filter_count</code></li>
250+
<li>Remove <code>TestPlan.get</code>, use <code>TestPlan.filter</code></li>
251+
<li>Remove <code>TestPlan.get_all_cases_tags</code></li>
252+
<li>Remove <code>TestPlan.get_components</code></li>
253+
<li>Remove <code>TestPlan.get_env_groups</code>, use <code>Env.Group.filter({'testplan': ?})</code></li>
254+
<li>Remove <code>TestPlan.get_plan_type</code>, use <code>PlanType.filter</code></li>
255+
<li>Remove <code>TestPlan.get_product</code>, use <code>Product.filter({'plan': ?})</code></li>
256+
<li>Remove <code>TestPlan.get_tags</code>, use <code>Tag.filter({'plan': ?})</code></li>
257+
<li>Remove <code>TestPlan.get_test_cases</code>, use <code>TestCase.filter({'plan': ?})</code></li>
258+
<li>Remove <code>TestPlan.get_test_runs</code>, use <code>TestRun.filter({'plan': ?})</code></li>
259+
<li>Remove <code>TestPlan.get_text</code>, use <code>TestPlan.filter</code></li>
260+
<li>Rename <code>TestPlan.link_env_value</code> to <code>TestPlan.add_env_value</code>
261+
and update signature</li>
262+
<li>Remove <code>TestPlan.remove_component</code></li>
263+
<li>Update signature for <code>TestPlan.remove_tag</code></li>
264+
<li>Remove <code>TestPlan.store_text</code>, use <code>TestPlan.update</code> with
265+
a <code>text</code> attribute in the parameter values</li>
266+
<li>
267+
<p>Rename <code>TestPlan.unlink_env_value</code> to <code>TestPlan.remove_env_value</code>
268+
and update signature</p>
269+
</li>
270+
<li>
271+
<p>Rename <code>TestRun.add_cases</code> to <code>TestRun.add_case</code> and update signature</p>
272+
</li>
273+
<li>Update signature for <code>TestRun.add_tag</code></li>
274+
<li>Update signature for <code>TestRun.create</code>, no longer accepts <code>case</code>
275+
dict attribute. Instead use <code>TestRun.add_case</code></li>
276+
<li>Remove <code>TestRun.filter_count</code></li>
277+
<li>Remove <code>TestRun.get</code>, use <code>TestRun.filter</code></li>
278+
<li>Remove <code>TestRun.get_bugs</code></li>
279+
<li>Remove <code>TestRun.get_env_values</code>, use <code>Env.Value.filter({'testrun': ?})</code></li>
280+
<li>Remove <code>TestRun.get_tags</code>, use <code>Tag.filter({'run': ?})</code></li>
281+
<li>Rename <code>TestRun.get_test_cases</code> to <code>TestRun.get_cases</code></li>
282+
<li>Remove <code>TestRun.get_test_case_runs</code>, use <code>TestCaseRun.filter({'run': ?})</code></li>
283+
<li>Remove <code>TestRun.get_test_plan</code>, use <code>TestPlan.filter({'run': ?})[0]</code></li>
284+
<li>Rename <code>TestRun.remove_cases</code> to <code>TestRun.remove_case</code> and update signature</li>
285+
<li>Update signature for <code>TestRun.remove_tag</code></li>
286+
<li>
287+
<p>Update signature for <code>TestRun.update</code></p>
288+
</li>
289+
<li>
290+
<p>Rename <code>User.get</code> to <code>User.filter</code></p>
291+
</li>
292+
<li>Rename <code>User.join</code> to <code>User.join_group</code></li>
293+
<li>Update signature for <code>User.update</code></li>
294+
</ul>
295+
<h3>Models and database migrations</h3>
296+
<ul>
297+
<li>Remove model <code>TestEnvironment</code></li>
298+
<li>Remove model <code>TestEnvironmentCategory</code></li>
299+
<li>Remove model <code>TestEnvironmentElement</code></li>
300+
<li>Remove model <code>TestEnvironmentMap</code></li>
301+
<li>Remove model <code>TestEnvironmentProperty</code></li>
302+
<li>Remove model <code>TestPlanComponent</code></li>
303+
<li>Remove <code>TestPlan.get_text_with_version()</code></li>
304+
<li>Remove <code>TestRun.get_previous_or_next()</code></li>
305+
</ul>
306+
<p><strong>IMPORTANT:</strong> this release introduces new database migrations!</p>
307+
<h2>tcms-api changes since 1.5.1</h2>
308+
<ul>
309+
<li><strong>Make the code compatible with Kiwi TCMS XML-RPC v4.0.0</strong></li>
310+
<li>Rename <code>Status</code> to <code>TestCaseRunStatus</code></li>
311+
<li>Rename <code>CaseRun</code> to <code>TestCaseRun</code></li>
312+
<li>Remove <code>PlanStatus</code>, use <code>TestPlan.is_active</code></li>
313+
<li>Remove <code>RunStatus</code>, use <code>TestRun.finished</code></li>
314+
<li>Remove <code>TestPlan.components</code> container</li>
315+
<li>Update signature for <code>TestPlan</code>. Now accept <code>text</code> kwarg in constructor
316+
instead of <code>document</code>.</li>
317+
</ul>
318+
<h2>How to upgrade</h2>
319+
<p>If you are using Kiwi TCMS as a Docker container then</p>
320+
<div class="highlight"><pre><span></span><code>cd Kiwi/
321+
docker-compose down
322+
docker pull pub.kiwitcms.eu/kiwitcms/kiwi
323+
docker-compose up -d
324+
docker exec -it kiwi_web /Kiwi/manage.py migrate
325+
</code></pre></div>
326+
327+
<p>Happy testing!</p>
328+
</div>
329+
</article>
105330
<article class="blog-list">
106331
<div class="header">
107332
<a href="/blog/kiwi-tcms-team/2018/01/25/kiwi-tcms-version-350/" rel="bookmark" title="Permalink to Kiwi TCMS version 3.50">

0 commit comments

Comments
 (0)