Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
f810021
(PR12) Documentation/Getting Started_QSE_Unit Commitment (#21)
GuillaumeMaistre Jan 19, 2026
1b17f8b
(PR17) Output Files (#28)
nikolaredstork Jan 19, 2026
5dbecb2
(PR18) Hypergraph (#30)
nikolaredstork Jan 19, 2026
bf9ab08
(PR19) Business View and Taxnomy (#31)
nikolaredstork Jan 19, 2026
6868de3
(PR16) Documentation // Update home and overview section (#29)
GuillaumeMaistre Jan 19, 2026
4f2ec01
(PR23) Fix invalid links in develop branch and move support page (#35)
nikolaredstork Jan 20, 2026
a96cb89
(PR21) Documentation/New Layout Home Page (#34)
GuillaumeMaistre Jan 20, 2026
72d450b
add necessary files for website creation
nikolaredstork Jan 20, 2026
9e6f5b7
(PR22) Documentation/Support & Contributing (#36)
GuillaumeMaistre Jan 20, 2026
c63bee9
(PR20) Documentation/UserGuide_Glossary (#33)
GuillaumeMaistre Jan 20, 2026
c8fcd74
(PR26) Refactoring and fixing (#40)
nikolaredstork Jan 22, 2026
fe62709
(PR25) Tests for documentation examples (#42)
nikolaredstork Jan 22, 2026
9fb2606
(PR24) Documentation/Interoperability_Hybrid Studies (#38)
GuillaumeMaistre Jan 23, 2026
13bfb74
change favicon (#43)
GuillaumeMaistre Jan 23, 2026
89f4a5b
Update doc/4_Interoperability/1_pypsa.md
nikolaredstork Jan 26, 2026
4ca0534
Update doc/0_Home/3_use_cases.md
nikolaredstork Jan 26, 2026
42a9d48
Update doc/0_Home/3_use_cases.md
nikolaredstork Jan 26, 2026
e14e031
(PR28) Documentation/fix_QSE_2_Unit_Commitment (#44)
GuillaumeMaistre Jan 26, 2026
ffec6d5
New TU Delft logo
nikolaredstork Jan 26, 2026
3bd4ea1
Merge branch 'main' into develop
nikolaredstork Jan 27, 2026
a888d58
Merge branch 'main' into develop
nikolaredstork Jan 28, 2026
eaa5683
feat(pypsa to gems converter docs): implement PyPSA to GEMS converter…
dusanparipovic Jan 30, 2026
195e105
Merge branch 'main' into develop
nikolaredstork Jan 30, 2026
2aba3a9
fix paragraphs (#59)
nikolaredstork Jan 30, 2026
2c56c05
(PR30) Documentation/UserGuide_Add Ceil and Floor operators documenta…
GuillaumeMaistre Feb 23, 2026
a4f1f41
(PR31) Documentation/Overview_Visualization Librairies (#63)
GuillaumeMaistre Mar 3, 2026
55b98e2
Add PR Workflow page
nikolaredstork Mar 9, 2026
c31c2d6
(PR32) Documentation/Website_Refactoring (#66)
GuillaumeMaistre Mar 19, 2026
e69ec95
fix
nikolaredstork Mar 19, 2026
d6ced77
add branch management
nikolaredstork Mar 22, 2026
a16a466
fix
nikolaredstork Mar 22, 2026
1be5df9
Merge branch 'main' into develop
GuillaumeMaistre Mar 25, 2026
20cbc5a
update release page (v010 to v020)
GuillaumeMaistre Mar 26, 2026
20c9ac0
Merge branch 'main' into develop
GuillaumeMaistre Mar 27, 2026
5995f8a
initial commit (#85)
nikolaredstork Apr 3, 2026
87678a6
(PR34) Documentation/Update area-connection section in hybrid studies…
GuillaumeMaistre Apr 20, 2026
cb971cd
(PR35) Documentation/Update the Library of the Quick Start Example 2 …
GuillaumeMaistre Apr 20, 2026
5dd8291
(PR36) Documentation/Display YAML Files (#93)
GuillaumeMaistre Apr 20, 2026
0b01741
(PR38) Documentation/Upgrade SEO (#97)
GuillaumeMaistre Apr 20, 2026
0fba250
(PR42) Documentation/Prepare Release v03 (#104)
GuillaumeMaistre Apr 23, 2026
38fddc9
(PR41) Documentation/Bump v10.0.1 (#105)
GuillaumeMaistre Apr 23, 2026
9f906ca
Merge branch 'main' into develop
GuillaumeMaistre Apr 23, 2026
d96d0df
refactor
nikolaredstork Apr 24, 2026
d104870
add dependencies.json
nikolaredstork Apr 24, 2026
61b4ab4
Merge branch 'develop' into feature/pr-lifecycle-workflow
nikolaredstork Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
360 changes: 360 additions & 0 deletions doc/6_Support_Contributing/4_pr_management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,360 @@
# GEMS Standard Development and Release Workflow

This document defines the **standard workflow for development, pull
requests, branching, versioning, tagging, and packaging** across all
official **GEMS ecosystem repositories**.

It applies to repositories related to:

- GEMS Language
- GemsPy
- Antares2GEMS Converter
- PyPSA2GEMS Converter
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please give the URL of the concerned repos

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

- GEMS Documentation
- GEMS Libraries and Taxonomies

The objective of this workflow is to ensure:

- consistent repository management
- predictable releases
- controlled versioning
- reliable CI/CD validation
- clear traceability of changes

------------------------------------------------------------------------

# 1. Development Starting Point

All changes **MUST start from a tracked GitHub Issue**.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should precise/discuss where the GitHub Issue should be written. My opinion: each repo should own its GitHub issues.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, that's the plan!


The issue **MUST include**:

- purpose of the change
- affected repository or repositories
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure this a responsibility of the GitHub issue writer to enumerate impacts on other repos. It can help, but it is not mandatory and we shouldn't expect this for any GitHub issue.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge last expected impact and compatibility impact

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

affected repository or repositories is excluded

- expected impact
- compatibility impact
- related process ID (if applicable)

Pull Requests **MUST NOT be opened without an associated issue**, except
for:

- trivial documentation fixes
- emergency hotfixes

------------------------------------------------------------------------

# 2. Branch Management System

The default branch of each repository is:

main

Direct commits to `main` **are NOT allowed**.

All changes **MUST be introduced through Pull Requests**.

------------------------------------------------------------------------

## 2.1 Branch Types

| Branch Type| Purpose|
| ------------------ |-----------------------------------------|
`feature/...` |New functionality|
`bugfix/...` |Bug fixes|
`refactor/...` |Internal restructuring|
`perf/...` |Performance improvements|
`docs/...` |Documentation changes|
`chore/...` |Maintenance tasks or dependency updates|
`release/vX.Y.Z` |Release preparation|
`hotfix/vX.Y.Z` |Urgent post-release corrections|

------------------------------------------------------------------------

## 2.2 Branch Naming Convention

Branch names **MUST follow** the format:

<branch-type>/<short-description>

Examples:

feature/add-storage-operator
bugfix/fix-parser-validation
refactor/model-builder-cleanup
perf/improve-study-loading
docs/update-language-version-table
chore/update-python-dependencies
release/v0.3.4
hotfix/v0.3.5

Branch names **SHOULD**:

- be short
- be descriptive
- use hyphen separation

------------------------------------------------------------------------

# 3. Pull Request Creation Rules

Every Pull Request **MUST be linked to a GitHub Issue**.

------------------------------------------------------------------------

## 3.1 PR Title Convention

PR titles **MUST follow the format**:

[PR] <PR-id>: <short description> <proccess-id>

Examples:

[PR] 001: Add support for new language operator GP-01
[PR] 002: Add support for new Antares legacy model A2G-03
[PR] 003: Adapt converter to new PyPSA API P2G-04
[PR] 004: Clarify GEMS Language folder structure GR-06

If no process ID exists, a **repository-specific prefix MAY be used
temporarily**.

------------------------------------------------------------------------

# 4. Pull Request Description Rules

Each PR **MUST include the following sections**.

## Summary
Describe the purpose of the change.

## Related Issue
Link the GitHub issue.

## Scope
List affected components, modules, or repositories.

## Compatibility Impact
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my remark above: I am not sure this is the reponsibility of a repo to warn the downstream repo. This is rather the responsibility of each repo to "observer" the upstream repo.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally agree, repositories are excluded, but we will still have compatibility impact.

State whether the change is breaking, backward-compatible, or internal only.

## Testing
Describe unit, integration, and end-to-end tests executed.

## Release Impact
State the expected release label: major, minor, or patch.

## Dependencies
List dependent PRs or state "None".

Additional requirements:

- If behavior changes, the **new behavior MUST be described
explicitly**
- If behavior does not change, this **MUST also be stated**

------------------------------------------------------------------------

# 5. Pull Request Labeling Convention

Every PR **MUST include labels describing**:

- the **type of change**
- the **release impact**

------------------------------------------------------------------------

## 5.1 Change Type Labels

|Label| Meaning|
|---------------------- |---------------------------|
`type:feature` |New feature|
`type:bugfix` |Bug fix
`type:refactor` |Internal restructuring
`type:performance` |Performance improvement
`type:documentation` |Documentation changes
`type:dependency` |Dependency updates
`type:hotfix` |Critical post-release fix

------------------------------------------------------------------------

## 5.2 Release Impact Labels

**Exactly one** release label **MUST be assigned**.

|Label| Meaning|
|----------------- |-----------------|
`release:major` |Breaking change
`release:minor` |New feature
`release:patch` |Bug fix
`release:none` |Internal change

------------------------------------------------------------------------

# 6. Review Rules

A Pull Request **MAY be merged only when all conditions are satisfied**:

- CI pipeline passes
- required labels are present
- PR description is complete
- at least one maintainer approves the PR
- all review comments are resolved

For breaking changes or release branches, **two approvals are
recommended**.

------------------------------------------------------------------------

# 7. Merge Rules

The standard merge strategy is:

Squash and Merge

This ensures:

- clean commit history
- one logical commit per PR

------------------------------------------------------------------------

# 8. Release Branch Rules

Official releases **MUST be created from branches named**:

release/vX.Y.Z

Example:

release/v0.3.4

Only stabilization changes are allowed on a release branch.

No new features may be added once a release branch is created.

------------------------------------------------------------------------

# 9. Tagging Rules

Official releases **MUST be tagged from the corresponding release
branch**.

Tag format:

vX.Y.Z

Examples:

v1.0.0
v0.3.4
v2.1.7

------------------------------------------------------------------------

# 10. Versioning Rules

All repositories **MUST follow Semantic Versioning**:

MAJOR.MINOR.PATCH

## Common upgrade rules:

Major → breaking changes\
Minor → backward compatible features\
Patch → bug fixes or internal improvements



------------------------------------------------------------------------

# 11. Changelog Rules

Each repository **MUST maintain a changelog**.

Recommended sections:

- Added
- Changed
- Fixed
- Removed
- Deprecated

Every release **MUST include a changelog entry before tagging**.

In repositories that host multiple independently versioned entities,
a dedicated changelog will be provided for each entity.

------------------------------------------------------------------------

# 12. Python Package Rules

???

------------------------------------------------------------------------

# 13. Hotfix Rules

If a release contains a critical issue, a hotfix branch may be created:

hotfix/vX.Y.Z

The hotfix process **MUST include**:

- issue creation
- targeted fix
- CI validation
- patch version increment
- updated changelog
- new tag and release

------------------------------------------------------------------------

# 14. Rollback Rules

If a release is broken:

- it may be reverted in `main`
- a corrective patch release must be prepared
- published packages may be yanked

Rollback actions **MUST be documented in release notes or changelog**.

------------------------------------------------------------------------

# 15. CI/CD Rules

All repositories **defines certain CI pipelines**.

Typical checks include:

- formatting
- import sorting
- type checking
- unit tests
- integration tests
- end-to-end tests
- documentation build

PRs **cannot be merged if required checks fail**.

------------------------------------------------------------------------

# 16. Recommended Minimal PR Lifecycle

```mermaid
flowchart TD

A[Create GitHub Issue] --> B[Create Working Branch]
B --> C[Implement Change]
C --> D[Open Pull Request]
D --> E[Apply Labels]
E --> F[Run CI]

F -->|CI Failed| C
F -->|CI Passed| G[Review and Approval]

G -->|Changes Requested| C
G -->|Approved| H[Squash and Merge]

H --> I[Include in Release Branch]
I --> J[Tag and Publish Release]
```
------------------------------------------------------------------------
4 changes: 3 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,6 @@ nav:
- Support & Contributing:
- FAQ: 6_Support_Contributing/1_faq.md
- Contact: 6_Support_Contributing/2_contact.md
- Contributing: 6_Support_Contributing/3_contributing.md
- For Developers:
- Contributing: 6_Support_Contributing/3_contributing.md
- PR Workflow: 6_Support_Contributing/4_pr_management.md