Skip to content

Tools: Add WIP Wednesday generation script#11

Open
marcuspollio wants to merge 1 commit intomainfrom
wip-wednesday
Open

Tools: Add WIP Wednesday generation script#11
marcuspollio wants to merge 1 commit intomainfrom
wip-wednesday

Conversation

@marcuspollio
Copy link
Copy Markdown
Collaborator

@marcuspollio marcuspollio commented Apr 2, 2026

Description

Python3 script to fetch FreeCAD/FreeCAD repository activity for the past week, classify Pull Requests and other data, and generate a boilerplate WIP Wednesday article in Markdown with front matter for use in Hugo here.

  • Interactive mode to confirm selected time and date (Wednesday 12:00 UTC as default target).

  • Class PRs into total, backport, feature, fix, and others by git branch (please check as it may not be accurate), then group PRs by workbench. The PR titles are as is. They deserves some human prose before publication...

  • Output the index.md in correct /content/en/news directory with slug based on date.

  • Basic ReadMe for the /tools dir.

May not work:

  • local timezone issues

How to use

From repository root

python3 tools/wip_wednesday.py [optional arguments]

Optional arguments:

  • --time <timestamp>: optional date input like ISO 8601 (2026-01-01T12:00:00) or RFC 2822 (Thu, 01 Jan 2026 12:00:00 GMT)
  • --author <name>: optional article authors field in front matter
  • --root <path>: optional path to directory of website Hugo project (default: current working dir)
  • --ci: optional non-interactive mode with automatically most recent Wednesday
  • --token <github_token>: optional GitHub token or PAT (recommended to avoid rate limits)

Output example

⚠️ Warning: The selected time is not a Wednesday.
→ Selected time: Thursday, 02 April 2026 17:23:02
How to proceed?
  [Enter/Y] Continue with selected time
  [W]       Pick most recent Wednesday: Wednesday, 01 April 2026 12:00:00
> W
→ Continuing with most recent Wednesday: Wednesday, 01 April 2026 12:00:00
Created: website/content/en/news/2026/04/wip-wednesday-01-april-2026/index.md
Example Markdown output
---
title: WIP Wednesday - 01 April 2026
date: 2026-04-01
authors: 
draft: false
categories: update
tags:
- WIP
cover:
  image:
  caption:
---

This week in FreeCAD development:

### Merged PRs statistics:

| Type | main | FreeCAD-1-1 |
|------|---|---|
| Total | 111 | 39 |
| Backport | 0 | 38 |
| Feature | 21 | 0 |
| Fix | 45 | 1 |
| Other | 45 | 0 |

### Core:
  - Bojan9597 | Core: Add shortcut for Recompute object [#27880](https://github.com/FreeCAD/FreeCAD/pull/27880)
  - theo-vt | Sketcher: Harden against flip with signed constraints [#26518](https://github.com/FreeCAD/FreeCAD/pull/26518)
  - chennes | Revert "Security: add module allowlist to PropertyPythonObject::Restore()" [#28945](https://github.com/FreeCAD/FreeCAD/pull/28945)
  - TomOstt | Security: add module allowlist to PropertyPythonObject::Restore() [#28756](https://github.com/FreeCAD/FreeCAD/pull/28756)
  - chennes | Revert "[Backport releases/FreeCAD-1-1] Security: add module allowlist to PropertyPythonObject::Restore()" [#28946](https://github.com/FreeCAD/FreeCAD/pull/28946)
  - TomOstt | [Backport releases/FreeCAD-1-1] Security: add module allowlist to PropertyPythonObject::Restore() [#28928](https://github.com/FreeCAD/FreeCAD/pull/28928)
  - PaddleStroke | Gui: Command groups should not enforce a etype [#28897](https://github.com/FreeCAD/FreeCAD/pull/28897)
  - PaddleStroke | Core: Datums: Rename origin point [#28889](https://github.com/FreeCAD/FreeCAD/pull/28889)
  - kadet1090 | Measure: Improve InputHints implementation [#28838](https://github.com/FreeCAD/FreeCAD/pull/28838)
  - Tobias Frost | [Backport releases/FreeCAD-1-1] Allow external PyCXX to be used, and find this external PyCXX via pkgconfig [#28867](https://github.com/FreeCAD/FreeCAD/pull/28867)
  - Roy-043 | Gui: Add Std_MassProperties to the Tools menu [#28864](https://github.com/FreeCAD/FreeCAD/pull/28864)
  - rehan-ahmed-aix | Fix: task panel hides when switching workbenches (#28821) [#28852](https://github.com/FreeCAD/FreeCAD/pull/28852)
  - chennes | [pre-commit.ci] supplementary post-merge formatting fixes [#28885](https://github.com/FreeCAD/FreeCAD/pull/28885)
  - chennes | Gui/App: Add error checking to config migration [#28662](https://github.com/FreeCAD/FreeCAD/pull/28662)
  - ...

### Gui:
  - Syres916 | [Gui] Eliminate workbench duplicate menu keyboard shortcuts [#28402](https://github.com/FreeCAD/FreeCAD/pull/28402)
  - kadet1090 | [Backport releases/FreeCAD-1-1] Gui: Clear cached shape after change to Deviation [#28024](https://github.com/FreeCAD/FreeCAD/pull/28024)

### Part:
  - Bojan9597 | [Backport releases/FreeCAD-1-1] PartDesign: Fix Remove edge button not working in Pipe task panels [#28900](https://github.com/FreeCAD/FreeCAD/pull/28900)
  - Bojan9597 | PartDesign: Fix Remove edge button not working in Pipe task panels [#28871](https://github.com/FreeCAD/FreeCAD/pull/28871)
  - Tobias Frost | [Backport releases/FreeCAD-1-1] On 32bit archs, E57Format fails to build, misses include to <limits> [#28846](https://github.com/FreeCAD/FreeCAD/pull/28846)
  - chennes | [Backport releases/FreeCAD-1-1] Part: Repect 'VisualTouched' flag even if no geometry changed [#28874](https://github.com/FreeCAD/FreeCAD/pull/28874)
  - chennes | Part: Repect 'VisualTouched' flag even if no geometry changed [#28843](https://github.com/FreeCAD/FreeCAD/pull/28843)
  - Tobias Frost | On 32bit archs, E57Format fails to build, misses include to <limits> [#28845](https://github.com/FreeCAD/FreeCAD/pull/28845)
  - ...

### Sketcher:
  - maxwxyz | Sketcher: Change defaults for new sketches [#28771](https://github.com/FreeCAD/FreeCAD/pull/28771)
  - Roy-043 | Sketcher: fix Group Constraint menu text typo [#28863](https://github.com/FreeCAD/FreeCAD/pull/28863)
  - Parag Debnath | Sketcher: Create symmetry constraint is checked by default [#28319](https://github.com/FreeCAD/FreeCAD/pull/28319)
  - PaddleStroke, chennes | Sketcher: Symmetric: Improve 'add symmetric constraints' option [#28118](https://github.com/FreeCAD/FreeCAD/pull/28118)
  - ...

### TechDraw:
  - Lgt2x | Techdraw: draw scene faster [#28702](https://github.com/FreeCAD/FreeCAD/pull/28702)
  - alfrix | Fix: Techdraw cosmetic threads ISO styling [#28570](https://github.com/FreeCAD/FreeCAD/pull/28570)
  - alfrix | TD: Fix Segfault and logic errors during TechDraw object destruction [#28653](https://github.com/FreeCAD/FreeCAD/pull/28653)
  - Nishendra Singh, nishendra3 | TechDraw: Fix matching points bug in area dimension labeling [#27730](https://github.com/FreeCAD/FreeCAD/pull/27730)
  - ...

### Assembly:
  - ...

### CAM:
  - ...

### ...

### Other changes:
  - dependabot[bot] | Bump prefix-dev/setup-pixi from 0.9.4 to 0.9.5 [#28902](https://github.com/FreeCAD/FreeCAD/pull/28902)
  - PhoneDroid | Improve Issue Overview & Template [#27431](https://github.com/FreeCAD/FreeCAD/pull/27431)
  - Daniel Nylander | Tools: Add language code mapping for Swedish (sv-SE -> sv) [#28554](https://github.com/FreeCAD/FreeCAD/pull/28554)
  - unknown | [pre-commit.ci] pre-commit autoupdate [#27464](https://github.com/FreeCAD/FreeCAD/pull/27464)
  - dependabot[bot] | Bump github/issue-metrics from 4.1.3 to 4.2.1 [#28857](https://github.com/FreeCAD/FreeCAD/pull/28857)
  - chennes | Build: Fix macOS CFBundleVersion generation [#28837](https://github.com/FreeCAD/FreeCAD/pull/28837)
  - ...

Additional improvements and fixes were contributed by APEbbers, Bojan9597, FlachyJoe, Gaurang-2005, JackStromberg, Lgt2x, Maik-0000FF, PaddleStroke, PhoneDroid, Roy-043, Syres916, TomOstt, WandererFan, alfrix, andershol, caio-venancio, chennes, coldtobi, czarflix, davidgilkaufman, dependabot[bot], freecad-ci-runner, furgo16, fuzzybear3, ipatch, jffmichi, kadet1090, marioalexis84, maxwxyz, nishendra3, paragforwork, petterreinholdtsen, pjcreath, pre-commit-ci[bot], rehan-ahmed-aix, relikd, ryankembrey, sliptonic, tarman3, theo-vt, tritao, wiljam144, xorza, yeager.

If you are interested in testing you can grab [the latest weekly build](https://github.com/FreeCAD/FreeCAD/releases/tag/weekly-2026.04.01).

PR stats: since the previous report, 150 pull requests have been merged, and 173 new pull requests have been opened.

Issue stats: overall, there are 3344 open issues in the tracker, up by 5 from last week.

PR Checklist

  • This change is verified to work as described.
  • This change complies with the repository Guidelines.

@marcuspollio
Copy link
Copy Markdown
Collaborator Author

FYI @prokoudine @chennes

@prokoudine
Copy link
Copy Markdown

Thanks, that's definitely an improvement, but commit messages or PR titles alone are rarely enough. There's a lot of context in PR descriptions, and to get to them, I would need a link to each merged PR. Could you please add that to the script?

@marcuspollio marcuspollio force-pushed the wip-wednesday branch 3 times, most recently from 886cb9a to 1bced08 Compare April 3, 2026 12:20
@marcuspollio
Copy link
Copy Markdown
Collaborator Author

marcuspollio commented Apr 3, 2026

OK, so the script now:

  • gives link for each PR
  • properly reports commits authors, instead of only single PR author. This takes longer than before as more API calls are made, but helps with accuracy, given we often have cherry-picks or maintainers edits.
  • counts for PRs (merged, opened) and issues (open and delta) now properly take the selected time instead of now.
  • adds a small info when generating so user knows it is running and not stuck (it may take 5-10 seconds for big weeks).

@marcuspollio marcuspollio force-pushed the wip-wednesday branch 2 times, most recently from 77de122 to ccf793f Compare April 3, 2026 12:48
- Add Python3 script to generate WIP Wednesday articles in Markdown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants