<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dura-lex.org/index.php?action=history&amp;feed=atom&amp;title=Development%2FGitHub</id>
	<title>Development/GitHub - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dura-lex.org/index.php?action=history&amp;feed=atom&amp;title=Development%2FGitHub"/>
	<link rel="alternate" type="text/html" href="https://wiki.dura-lex.org/index.php?title=Development/GitHub&amp;action=history"/>
	<updated>2026-04-23T05:36:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.dura-lex.org/index.php?title=Development/GitHub&amp;diff=43&amp;oldid=prev</id>
		<title>Nicolas: Create GitHub conventions page from coding-conventions/GITHUB.md (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dura-lex.org/index.php?title=Development/GitHub&amp;diff=43&amp;oldid=prev"/>
		<updated>2026-04-23T02:06:04Z</updated>

		<summary type="html">&lt;p&gt;Create GitHub conventions page from coding-conventions/GITHUB.md (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= GitHub Conventions =&lt;br /&gt;
&lt;br /&gt;
Issues, pull requests, branches, and commit messages across all &amp;lt;code&amp;gt;duralex-*&amp;lt;/code&amp;gt; repositories.&lt;br /&gt;
&lt;br /&gt;
== Commit messages and PR titles ==&lt;br /&gt;
&lt;br /&gt;
All repositories use &amp;#039;&amp;#039;&amp;#039;conventional commits&amp;#039;&amp;#039;&amp;#039;. Since PRs are squash-merged, the PR title becomes the commit message. The PR title format is enforced.&lt;br /&gt;
&lt;br /&gt;
=== Format ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;(&amp;lt;scope&amp;gt;): &amp;lt;Description starting with uppercase&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scope is optional. Description starts with uppercase, does not end with punctuation.&lt;br /&gt;
&lt;br /&gt;
=== Types ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! When to use&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;feat&amp;lt;/code&amp;gt; || New feature or capability&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fix&amp;lt;/code&amp;gt; || Bug fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;refactor&amp;lt;/code&amp;gt; || Code change that neither fixes a bug nor adds a feature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perf&amp;lt;/code&amp;gt; || Performance improvement&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt; || Documentation only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; || Adding or updating tests&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ci&amp;lt;/code&amp;gt; || CI/CD configuration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;chore&amp;lt;/code&amp;gt; || Maintenance (dependencies, tooling, config)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; || Build system or packaging changes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scopes (per repo) ===&lt;br /&gt;
&lt;br /&gt;
Scopes are short identifiers for the area of the codebase. Each repo defines its own set.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;duralex:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feat(corpus): Add source metadata discovery&lt;br /&gt;
fix(data): Handle missing content element in LEGI XML&lt;br /&gt;
refactor(annotations): Split envelope from type definitions&lt;br /&gt;
perf(fts): Optimize FTS query for large result sets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;duralex-fr:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feat(parser): Add KALI collective agreement parser&lt;br /&gt;
fix(refs): Correct L/R/D prefix detection for code du travail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Breaking changes ===&lt;br /&gt;
&lt;br /&gt;
Append &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; after the scope for breaking changes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
refactor(data)!: Rename LegislationArticle fields to match URI scheme&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The PR body must include a &amp;lt;code&amp;gt;== Breaking changes ==&amp;lt;/code&amp;gt; section explaining what breaks and how to migrate.&lt;br /&gt;
&lt;br /&gt;
== Branch naming ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;/&amp;lt;issue-number&amp;gt;-&amp;lt;short-description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lowercase, hyphens between words. The type matches the conventional commit type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feat/12-ecli-reference-detection&lt;br /&gt;
fix/34-lrd-prefix-code-travail&lt;br /&gt;
refactor/56-rename-article-fields&lt;br /&gt;
docs/78-add-packaging-conventions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pull request template ==&lt;br /&gt;
&lt;br /&gt;
Every &amp;lt;code&amp;gt;duralex-*&amp;lt;/code&amp;gt; repo has a &amp;lt;code&amp;gt;.github/pull_request_template.md&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Summary&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- What does this change do and why? One to three sentences. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
## Linked issues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Closes #123 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
## Test plan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- How was this tested? Paste test output or describe manual verification. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
## Breaking changes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Leave empty if none. Otherwise explain what breaks and migration path. --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PR guidelines ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Target size: under 200 lines changed.&amp;#039;&amp;#039;&amp;#039; If larger, split into stacked PRs.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;One concern per PR.&amp;#039;&amp;#039;&amp;#039; A bug fix does not include a refactor. A feature does not include unrelated cleanup.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Squash-merge only.&amp;#039;&amp;#039;&amp;#039; The PR title is the commit message in &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Link to the issue.&amp;#039;&amp;#039;&amp;#039; Use &amp;lt;code&amp;gt;Closes #N&amp;lt;/code&amp;gt; syntax so the issue auto-closes on merge.&lt;br /&gt;
&lt;br /&gt;
== Issue templates ==&lt;br /&gt;
&lt;br /&gt;
Each repo has three YAML issue forms in &amp;lt;code&amp;gt;.github/ISSUE_TEMPLATE/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
=== bug_report.yml ===&lt;br /&gt;
&lt;br /&gt;
Required fields:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; — what happened vs. what was expected&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Reproducible example&amp;#039;&amp;#039;&amp;#039; — minimal code or steps (required)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Version info&amp;#039;&amp;#039;&amp;#039; — output of &amp;lt;code&amp;gt;pip show duralex&amp;lt;/code&amp;gt; or similar (required)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Checklist&amp;#039;&amp;#039;&amp;#039; — &amp;quot;I searched existing issues&amp;quot;, &amp;quot;I am using the latest version&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== feature_request.yml ===&lt;br /&gt;
&lt;br /&gt;
Required fields:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Use case&amp;#039;&amp;#039;&amp;#039; — what problem does this solve? (required)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Proposed API&amp;#039;&amp;#039;&amp;#039; — how would the user call it? Code example preferred.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Alternatives considered&amp;#039;&amp;#039;&amp;#039; — what else was evaluated&lt;br /&gt;
&lt;br /&gt;
=== config.yml ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
blank_issues_enabled: false&lt;br /&gt;
contact_links:&lt;br /&gt;
  - name: Questions and discussions&lt;br /&gt;
    url: https://github.com/duralex/duralex/discussions&lt;br /&gt;
    about: Ask questions and discuss ideas here&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Blank issues are disabled. Questions go to GitHub Discussions. Issues are for confirmed bugs and accepted features.&lt;br /&gt;
&lt;br /&gt;
== Labels ==&lt;br /&gt;
&lt;br /&gt;
Namespaced prefixes for machine-parseable filtering.&lt;br /&gt;
&lt;br /&gt;
=== Shared across all repos ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type:bug&lt;br /&gt;
type:feature&lt;br /&gt;
type:refactor&lt;br /&gt;
type:docs&lt;br /&gt;
type:performance&lt;br /&gt;
&lt;br /&gt;
priority:critical&lt;br /&gt;
priority:high&lt;br /&gt;
priority:medium&lt;br /&gt;
priority:low&lt;br /&gt;
&lt;br /&gt;
status:needs-triage          (auto-applied to new issues)&lt;br /&gt;
status:accepted&lt;br /&gt;
status:blocked&lt;br /&gt;
status:in-progress&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Per-repo area labels ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;duralex:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
area:corpus&lt;br /&gt;
area:annotations&lt;br /&gt;
area:concepts&lt;br /&gt;
area:data&lt;br /&gt;
area:temporal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;duralex-fr:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
area:mcp&lt;br /&gt;
area:refs&lt;br /&gt;
area:temporal&lt;br /&gt;
area:courts&lt;br /&gt;
area:search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
Generated automatically from conventional commit messages (PR titles). Each type maps to a changelog section:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commit type !! Changelog section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;feat&amp;lt;/code&amp;gt; || Added&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fix&amp;lt;/code&amp;gt; || Fixed&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perf&amp;lt;/code&amp;gt; || Performance&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;refactor!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;feat!&amp;lt;/code&amp;gt; || Breaking changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ci&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chore&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; || Not included&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Nicolas</name></author>
	</entry>
</feed>