Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
390 commits
Select commit Hold shift + click to select a range
94ef198
Feature: Comparison module (#550)
FBumann Jan 6, 2026
932cd1b
Add tests for clustering and new features
FBumann Jan 6, 2026
b39cf70
Improve notebooks and documentation
FBumann Jan 6, 2026
f76ea9e
Update CHANGELOG.md for v6.0.0
FBumann Jan 6, 2026
a3453ef
ci: Speedup notebook execution (#551)
FBumann Jan 6, 2026
c7c7e80
ClusterStructure.plot() now works for all cases using fxplot:
FBumann Jan 6, 2026
bc1344f
Merge pull request #555 from flixOpt/feature/aggregation-final
FBumann Jan 6, 2026
5d3b667
[ci] prepare release v6.0.0rc2
github-actions[bot] Jan 6, 2026
7b27156
Add cluster_mode parameter to StatusParameters
FBumann Jan 6, 2026
73be856
Fix clustering metrics
FBumann Jan 6, 2026
9844541
I've simplified the flixopt/clustering/base.py module. Here are the…
FBumann Jan 6, 2026
3ea9a83
Problem: Two functions in flixopt/modeling.py didn't handle None va…
FBumann Jan 6, 2026
2e1d2cb
Fixx effects computation
FBumann Jan 6, 2026
c25e51b
Add Comparison.inputs for simple comparison of inputs of different fl…
FBumann Jan 6, 2026
6c4c67e
Add 'case' to dim_priority of Plotting
FBumann Jan 6, 2026
a056589
modeling.py:
FBumann Jan 6, 2026
ce150e1
Set previous flow_rate to 0 for pre v5 api
FBumann Jan 6, 2026
2759207
Update CHANGELOG.md
FBumann Jan 6, 2026
f122288
Merge pull request #556 from flixOpt/feature/minor-improvements
FBumann Jan 6, 2026
50f9456
Add test file for compariosn class
FBumann Jan 7, 2026
5914b9c
Add data_only argument to plotting accessor
FBumann Jan 7, 2026
6179b1a
Fixed Issues:
FBumann Jan 7, 2026
d79eb72
1. docs/notebooks/data/generate_realistic_profiles.py:230-234 - Fix…
FBumann Jan 7, 2026
1a65f8a
Add data_only argument to plotting accessor
FBumann Jan 7, 2026
6d29b20
Rename expand_solution to expand()
FBumann Jan 7, 2026
71bca89
Improve comparion plot methods
FBumann Jan 7, 2026
840799e
Extract line overlay helper
FBumann Jan 7, 2026
adaf733
Refactor storage plotting to use helper
FBumann Jan 7, 2026
ce6a1aa
Set color='variable in Compariosn plots where needed
FBumann Jan 7, 2026
02925f0
Added glossary to docs
FBumann Jan 8, 2026
7e3a118
Feature/faster ci notebooks (#561)
FBumann Jan 10, 2026
4a492f4
Remove fxplot accessor in favor of external ploty accessor (#560)
FBumann Jan 13, 2026
fb0fee4
Added FlowSystem.from_old_dataset() method
FBumann Jan 14, 2026
d3ce064
perf: Keep data in minimal form (no pre-broadcasting) (#575)
FBumann Jan 16, 2026
f74877e
Fix reduction
FBumann Jan 16, 2026
aa06420
The stacking functions are now integrated into flixopt/io.py:
FBumann Jan 16, 2026
db82494
Fix notebook
FBumann Jan 16, 2026
846dd57
1. flixopt/io.py - Fixed _stack_equal_vars and _unstack_vars to pre…
FBumann Jan 16, 2026
75bb5f3
Feature/tsam v3+rework (#571) (#584)
FBumann Jan 21, 2026
41d55a0
[ci] prepare release v6.0.0rc3
github-actions[bot] Jan 21, 2026
613877c
Remove tsam git dependency from [full] extra for PyPI compatibility
FBumann Jan 21, 2026
bd5c2f5
[ci] prepare release v6.0.0rc4
github-actions[bot] Jan 21, 2026
4cae451
Adjust dependencies
FBumann Jan 21, 2026
fa1b687
Install tsam for CI (not yet on pypi
FBumann Jan 21, 2026
dacb35f
[ci] prepare release v6.0.0rc5
github-actions[bot] Jan 21, 2026
27d985a
Allow pre releases in github releas notes
FBumann Jan 21, 2026
e5e8c48
Deploy docs for all releases. Only set latest for official releases
FBumann Jan 21, 2026
ca5f54a
[ci] prepare release v6.0.0rc6
github-actions[bot] Jan 21, 2026
f766121
Add color parameter to components and bulk color assignment via topol…
FBumann Jan 21, 2026
4ddcd4f
Use area chart instead of bar chart for better performance (#577)
FBumann Jan 21, 2026
b39ab03
[ci] prepare release v6.0.0rc7
github-actions[bot] Jan 21, 2026
4f31aaf
Feature/speed up plotting (#586)
FBumann Jan 22, 2026
8128530
[ci] prepare release v6.0.0rc8
github-actions[bot] Jan 22, 2026
8e8fe5c
Add FlowContainer for inputs/outputs (#587)
FBumann Jan 23, 2026
42f593e
The mock test didn't work but the core fix is verified. The FlowConta…
FBumann Jan 23, 2026
6083587
[ci] prepare release v6.0.0rc9
github-actions[bot] Jan 24, 2026
2154fd4
Improve documentation of coloring
FBumann Jan 26, 2026
ee0a308
fix old api mention in docs
FBumann Jan 26, 2026
41318a1
Improve documentation of coloring
FBumann Jan 26, 2026
c036acb
added the round_decimals parameter to all three methods that use fast…
FBumann Jan 26, 2026
ede2fc7
Changed include/exclude from substring matching to exact label matching:
FBumann Jan 26, 2026
f6281d3
Added dataset sorting for consistent plotting order
FBumann Jan 26, 2026
60763f4
Summary of Color Changes
FBumann Jan 26, 2026
60fbdcd
Usage by method:
FBumann Jan 26, 2026
89fbc58
Removed dead code: The elif '|' in label: branch was never hit becau…
FBumann Jan 26, 2026
bb10993
[ci] prepare release v6.0.0rc10
github-actions[bot] Jan 26, 2026
f815b83
Add minimal repr for PloResult class
FBumann Jan 26, 2026
f3f1e87
Rename statistics to stats and deprecate the old one
FBumann Jan 26, 2026
5fabcd3
Make carrier_balance combine ins and outs to netto
FBumann Jan 26, 2026
6502ad5
Make carrier balance per Component aggregate!
FBumann Jan 27, 2026
272213e
Added threshold: float | None = 1e-5 to all plotting methods:
FBumann Jan 27, 2026
ab04f19
[ci] prepare release v6.0.0rc11
github-actions[bot] Jan 27, 2026
d83cc2a
Added before_solve callback parameter to both optimize() and rolling_…
FBumann Jan 27, 2026
ada8323
[ci] prepare release v6.0.0rc12
github-actions[bot] Jan 27, 2026
7d42744
Add example fpr callback to notebook
FBumann Jan 27, 2026
e898eab
Improve example fpr callback to notebook
FBumann Jan 27, 2026
471677d
Fix clustering expansion bugs and add ExtremeConfig validation (#590)
FBumann Jan 27, 2026
cd0e576
Fix/expand flow system rework (#591)
FBumann Jan 27, 2026
de92e23
Reverted files to original state (from commit 471677db):
FBumann Jan 27, 2026
54a1d1a
Fix notebooks
FBumann Jan 27, 2026
8921fd4
Fix notebooks
FBumann Jan 27, 2026
379fe95
Changes made:
FBumann Jan 28, 2026
206bc90
Update to use xarray-plotly helpers
FBumann Jan 28, 2026
5d91402
Refactor clustering: clean keys, unified dims, and encapsulated expan…
FBumann Jan 28, 2026
905d44f
deps: update xarray_plotly
FBumann Jan 28, 2026
980b1c5
[ci] prepare release v6.0.0rc13
github-actions[bot] Jan 28, 2026
10ba9c3
feat: improve Comparison class
FBumann Jan 28, 2026
09daac6
[ci] prepare release v6.0.0rc14
github-actions[bot] Jan 28, 2026
f9c6ff0
feat: flow_colors property for mapping of flows to component colors
FBumann Jan 28, 2026
d11e7b6
New _ReducedFlowSystemBuilder class (lines 82-381): (#593)
FBumann Jan 28, 2026
95d79af
[ci] prepare release v6.0.0rc15
github-actions[bot] Jan 28, 2026
fcb9e30
fix: move filtering and rounding before early return in case data_onl…
FBumann Jan 28, 2026
d31e48f
feat: data_only and threshold in Comparion class
FBumann Jan 28, 2026
b77cea9
[ci] prepare release v6.0.0rc16
github-actions[bot] Jan 28, 2026
4a46129
update to tsam v3
FBumann Feb 2, 2026
6df2cd0
[ci] prepare release v6.0.0rc17
github-actions[bot] Feb 2, 2026
0d79826
Update the CHANGELOG.md
FBumann Feb 3, 2026
3aaa5c7
Update to tsam v3.1.0 and add warnings for preserve_n_clusters=False
FBumann Feb 3, 2026
4fdc445
[ci] prepare release v6.0.0
github-actions[bot] Feb 4, 2026
26ababd
fix typo in deps
FBumann Feb 4, 2026
8524d32
fix typo in README.md
FBumann Feb 4, 2026
19ce60f
Revert citation temporarily
FBumann Feb 4, 2026
35bb383
[ci] prepare release v6.0.0
github-actions[bot] Feb 4, 2026
c5f64fa
Improve json io
FBumann Feb 4, 2026
4a57b73
fix: Notebooks using tsam
FBumann Feb 4, 2026
4bd9143
Allow manual docs dispatch
FBumann Feb 4, 2026
c14dc00
Created: tests/test_clustering/test_multiperiod_extremes.py
FBumann Feb 4, 2026
6e5082c
fix: clustering and tsam 3.1.0 issue
FBumann Feb 4, 2026
0bdc30f
[ci] prepare release v6.0.1
github-actions[bot] Feb 4, 2026
92f14b9
fix: clustering and tsam 3.1.0 issue
FBumann Feb 4, 2026
314b0fa
[ci] prepare release v6.0.1
github-actions[bot] Feb 4, 2026
6f8788e
ci: remove test
FBumann Feb 4, 2026
6ae5d03
[ci] prepare release v6.0.1
github-actions[bot] Feb 4, 2026
7e4347f
chore(deps): update dependency werkzeug to v3.1.5 (#564)
renovate[bot] Feb 4, 2026
b7a30e6
chore(deps): update dependency ruff to v0.14.14 (#563)
renovate[bot] Feb 4, 2026
2eb528f
chore(deps): update dependency netcdf4 to >=1.6.1, <1.7.5 (#583)
renovate[bot] Feb 4, 2026
5caffd1
chore(deps): update dependency pre-commit to v4.5.1 (#532)
renovate[bot] Feb 5, 2026
16eae3d
fix: Comparison coords (#599)
FBumann Feb 5, 2026
31a5964
[ci] prepare release v6.0.2
github-actions[bot] Feb 5, 2026
5b05d7e
test: Add new category of tests to improve test coverage of modeled c…
FBumann Feb 6, 2026
c18c296
feat: Route solver output through Python logging (#606)
FBumann Feb 12, 2026
3f5a63e
[ci] prepare release v6.1.0rc0
github-actions[bot] Feb 12, 2026
167525a
chore(deps): update dependency xarray to v2026 (#607)
renovate[bot] Feb 12, 2026
589d237
chore(deps): update dependency mkdocs-include-markdown-plugin to v7.2…
renovate[bot] Feb 12, 2026
89c5d6e
chore(deps): update dependency astral-sh/uv to v0.9.30 (#503)
renovate[bot] Feb 12, 2026
27839a2
chore(deps): update dependency mkdocs-git-revision-date-localized-plu…
renovate[bot] Feb 12, 2026
35b565b
chore(deps): update actions/cache action to v5 (#568)
renovate[bot] Feb 12, 2026
c0f0bcf
fix(deps): update dependency pymdown-extensions to v10.20.1 (#567)
renovate[bot] Feb 12, 2026
855ef71
chore(deps): update astral-sh/setup-uv action to v7 (#565)
renovate[bot] Feb 12, 2026
aae6543
fix(deps): update dependency mkdocs-gen-files to v0.6.0 (#504)
renovate[bot] Feb 13, 2026
f1209b8
Add combination tests for piecewise, status, investment & effects int…
FBumann Feb 14, 2026
bb486a6
chore(deps): update dependency astral-sh/uv to v0.10.9 (#612)
renovate[bot] Mar 17, 2026
add5ecf
fix(deps): update dependency linopy to >=0.5.1, <0.7 (#615)
renovate[bot] Mar 17, 2026
05cd92f
fix(deps): update dependency xarray to >=2024.2.0, <2026.3 (#617)
renovate[bot] Mar 17, 2026
1a8f199
fix(deps): update tsam bounds after yanked releases (#622)
FBumann Mar 17, 2026
e9d70e3
Release preparation
FBumann Mar 17, 2026
5237c14
[ci] prepare release v6.1.0
github-actions[bot] Mar 17, 2026
1615ee8
Fix typing
FBumann Mar 18, 2026
ae6b099
fix: filter user-provided clustering weights to available columns (#625)
FBumann Mar 23, 2026
1dc2bcc
Move CONTRIBUTING.md to top level
FBumann Mar 23, 2026
27cce42
[ci] prepare release v6.2.0rc0
github-actions[bot] Mar 23, 2026
4cba143
fix: validate user-provided clustering weight keys (#627)
FBumann Mar 24, 2026
0c40d59
ci: add release-please, dependabot, and PR title validation (#626)
FBumann Mar 24, 2026
095bb75
ci: add conventional commit prefixes to Dependabot config (#636)
FBumann Mar 24, 2026
402e9fe
ci: auto-approve Dependabot PRs with Release Bot before merge (#642)
FBumann Mar 24, 2026
d3723c1
chore: bump pymdown-extensions from 10.20.1 to 10.21 (#641)
dependabot[bot] Mar 24, 2026
c3fabe3
chore: bump mkdocs-material from 9.7.1 to 9.7.6 (#640)
dependabot[bot] Mar 24, 2026
18ea786
chore: update pvlib requirement from <0.14,>=0.10.0 to >=0.10.0,<0.16…
dependabot[bot] Mar 24, 2026
c4e6b8f
chore: bump pytest from 8.4.2 to 9.0.2 (#637)
dependabot[bot] Mar 24, 2026
15aca5d
chore(main): release 6.1.1 (#643)
flixopt-release-bot[bot] Mar 24, 2026
103be48
ci: skip redundant test run during publish (#645)
FBumann Mar 24, 2026
2d4a507
fix: allow expand() on clustered FlowSystem without a solution (#646)
FBumann Mar 25, 2026
189c82b
ci: use pull_request_target for dependabot auto-merge (#653)
FBumann Mar 30, 2026
9ccb57a
chore: bump mkdocstrings-python from 1.19.0 to 2.0.3 (#652)
dependabot[bot] Mar 30, 2026
6bc1cf0
chore: bump mkdocs-gen-files from 0.6.0 to 0.6.1 (#649)
dependabot[bot] Mar 30, 2026
e45f7eb
chore: bump mkdocs-jupyter from 0.25.1 to 0.26.1 (#648)
dependabot[bot] Mar 30, 2026
c3050a1
chore: bump mike from 2.1.3 to 2.1.4 (#651)
dependabot[bot] Mar 30, 2026
6c003fb
ci: decouple publish workflow from release-please workflow_call (#644)
FBumann Mar 30, 2026
d19421d
chore(main): release 6.1.2 (#647)
flixopt-release-bot[bot] Mar 30, 2026
0580751
chore: update CITATION.cff date-released
github-actions[bot] Mar 30, 2026
db1512b
chore: bump pymdown-extensions from 10.21 to 10.21.2 (#657)
dependabot[bot] Apr 5, 2026
2f9da3a
chore: bump ruff from 0.14.14 to 0.15.9 (#658)
dependabot[bot] Apr 5, 2026
7331970
chore: bump mkdocs-include-markdown-plugin from 7.2.1 to 7.2.2 (#660)
dependabot[bot] Apr 5, 2026
26f30e4
chore: bump werkzeug from 3.1.5 to 3.1.8 (#661)
dependabot[bot] Apr 5, 2026
0915cbe
chore: bump tsam from 3.1.2 to 3.3.0 (#662)
dependabot[bot] Apr 5, 2026
3e01a1c
chore: bump pygments from 2.19.2 to 2.20.0 (#659)
dependabot[bot] Apr 5, 2026
fa54589
chore: bump ruff from 0.15.9 to 0.15.10 (#664)
dependabot[bot] Apr 12, 2026
89a146f
chore: bump pytest from 9.0.2 to 9.0.3 (#665)
dependabot[bot] Apr 12, 2026
8ba569b
chore: bump mkdocs-jupyter from 0.26.1 to 0.26.3 (#667)
dependabot[bot] Apr 19, 2026
7fc7766
chore: bump mike from 2.1.4 to 2.2.0 (#668)
dependabot[bot] Apr 19, 2026
aa3ecdc
chore: update xarray requirement (#669)
dependabot[bot] Apr 19, 2026
5c55d36
chore: bump ruff from 0.15.10 to 0.15.11 (#670)
dependabot[bot] Apr 19, 2026
10103d2
refactor: make Comparison follow dict/Mapping protocol (#671)
FBumann Apr 20, 2026
85f019e
chore: bump pre-commit from 4.5.1 to 4.6.0 (#674)
dependabot[bot] Apr 26, 2026
7bdde58
chore: update xarray requirement from <2026.3 to <2026.5 (#676)
dependabot[bot] Apr 26, 2026
2eb6465
chore: bump ruff from 0.15.11 to 0.15.12 (#675)
dependabot[bot] Apr 26, 2026
d92fc0e
chore: bump pymdown-extensions from 10.21.2 to 10.21.3 (#677)
dependabot[bot] May 17, 2026
22ab335
chore: bump mkdocs-include-markdown-plugin from 7.2.2 to 7.3.0 (#678)
dependabot[bot] May 17, 2026
814fe32
chore: bump tsam from 3.3.0 to 3.4.0 (#679)
dependabot[bot] May 17, 2026
8504d00
chore: bump ruff from 0.15.12 to 0.15.13 (#680)
dependabot[bot] May 17, 2026
4bf4dea
chore: update linopy requirement from <0.7,>=0.5.1 to >=0.5.1,<0.8 (#…
dependabot[bot] May 17, 2026
22a8e58
chore: bump mkdocs-git-revision-date-localized-plugin (#682)
dependabot[bot] May 17, 2026
6756fb7
chore: bump ruff from 0.15.13 to 0.15.14 (#683)
dependabot[bot] May 24, 2026
251e5d4
fix: exclude highspy 1.14.0 (closes #685) (#686)
FBumann May 27, 2026
08db9a0
chore(main): release 6.1.3 (#688)
flixopt-release-bot[bot] May 27, 2026
8ddd469
chore: update CITATION.cff date-released
github-actions[bot] May 27, 2026
54ff8e6
fix: stop using deprecated tsam ClusterConfig(weights=) API (#689)
FBumann May 29, 2026
2627af3
chore: bump ruff from 0.15.14 to 0.15.15 (#691)
dependabot[bot] May 31, 2026
75931b5
chore(main): release 6.1.4 (#690)
flixopt-release-bot[bot] May 31, 2026
1a0feb7
chore: update CITATION.cff date-released
github-actions[bot] May 31, 2026
a825371
fix(docs): remove malicious polyfill.io script reference (#693)
FBumann Jun 1, 2026
54cc04a
fix: preserve per-period sizes in transform.fix_sizes() for multi-per…
FBumann Jun 1, 2026
dd5f1ea
chore(main): release 6.1.5 (#694)
flixopt-release-bot[bot] Jun 1, 2026
89993ba
chore: update CITATION.cff date-released
github-actions[bot] Jun 1, 2026
99074d9
chore: bump ruff from 0.15.15 to 0.15.16 (#697)
dependabot[bot] Jun 7, 2026
55c1aab
chore: bump mkdocs-git-revision-date-localized-plugin (#700)
dependabot[bot] Jun 7, 2026
f04752e
chore: bump mkdocstrings-python from 2.0.3 to 2.0.4 (#699)
dependabot[bot] Jun 7, 2026
14a9789
chore: bump ruff from 0.15.16 to 0.15.17 (#702)
dependabot[bot] Jun 14, 2026
b6d66d8
chore: bump pytest from 9.0.3 to 9.1.0 (#703)
dependabot[bot] Jun 14, 2026
792bb4d
fix: normalize clustered solution dim order to (cluster, time) (#704)
FBumann Jun 14, 2026
ae51e13
chore(main): release 6.1.6 (#705)
flixopt-release-bot[bot] Jun 14, 2026
82d6ee2
chore: update CITATION.cff date-released
github-actions[bot] Jun 14, 2026
56eed06
test: de-flake test_heatmap_reshape irregular-data case (#707)
FBumann Jun 16, 2026
c9652bc
feat(tutorials): ship tutorial data + downloadable example systems (#…
FBumann Jun 16, 2026
15be34d
chore(main): release 6.2.0 (#708)
flixopt-release-bot[bot] Jun 16, 2026
df458d0
chore: update CITATION.cff date-released
github-actions[bot] Jun 16, 2026
0cd684d
chore: bump pooch from 1.8.2 to 1.9.0 (#711)
dependabot[bot] Jun 21, 2026
cc5534e
chore: bump ruff from 0.15.17 to 0.15.18 (#712)
dependabot[bot] Jun 21, 2026
7a45803
chore: bump pytest from 9.1.0 to 9.1.1 (#714)
dependabot[bot] Jun 28, 2026
b1c0d27
ci: bump actions/cache from 5 to 6 (#713)
dependabot[bot] Jun 29, 2026
59d70a8
chore: bump pymdown-extensions from 10.21.3 to 11.0.1 (#716)
dependabot[bot] Jul 7, 2026
88e2203
fix(transform): don't force investment when fixing a size of 0 (#721)
FBumann Jul 7, 2026
97d2ddf
chore(main): release 6.2.1 (#722)
flixopt-release-bot[bot] Jul 7, 2026
863dab0
chore: update CITATION.cff date-released
github-actions[bot] Jul 7, 2026
8c2e3ce
refactor!: migrate clustering from tsam to tsam_xarray (#654)
FBumann Jul 7, 2026
432c463
chore(main): release 7.0.0 (#723)
flixopt-release-bot[bot] Jul 7, 2026
e1ef5b1
chore: bump ruff from 0.15.18 to 0.15.21 (#725)
dependabot[bot] Jul 12, 2026
8b0c409
feat(cluster): add cluster_on for true subset clustering (#724)
FBumann Jul 13, 2026
67c2fc2
chore(main): release 7.1.0 (#726)
flixopt-release-bot[bot] Jul 13, 2026
00f74ea
chore: update CITATION.cff date-released
github-actions[bot] Jul 13, 2026
3cd03a5
chore: bump mkdocstrings-python from 2.0.4 to 2.0.5 (#727)
dependabot[bot] Jul 19, 2026
82f2be1
feat(cluster): add original-vs-clustered comparison accessors (#734)
FBumann Jul 21, 2026
cec4e36
chore(main): release 7.2.0 (#736)
flixopt-release-bot[bot] Jul 21, 2026
ead4b31
chore: update CITATION.cff date-released
github-actions[bot] Jul 21, 2026
3c975b1
ci: bump actions/checkout from 6 to 7 (#709)
dependabot[bot] Jul 21, 2026
49ed538
fix(stats): threshold not applied along breakdown dimension in plot.e…
FBumann Jul 21, 2026
4ef1e75
chore: bump dash from 3.3.0 to 4.4.0 (#717)
dependabot[bot] Jul 21, 2026
e18a7e8
chore(main): release 7.2.1 (#737)
flixopt-release-bot[bot] Jul 21, 2026
f2a9406
ci: bump dependabot/fetch-metadata from 2 to 3 (#663)
dependabot[bot] Jul 21, 2026
3b4ea28
ci: bump googleapis/release-please-action from 4 to 5 (#673)
dependabot[bot] Jul 21, 2026
5765530
ci: run only fast tests and skip slow notebooks on draft PRs (#562)
FBumann Jul 22, 2026
cc56774
refactor: drop clustering dim-rename layer via tsam-xarray DimNames (…
FBumann Jul 22, 2026
6962e5e
fix: load pre-7.0 clustered NetCDF files with legacy original_data re…
FBumann Jul 23, 2026
2b2720c
fix: dimension-aware effect-total consistency check (#745)
FBumann Jul 23, 2026
bc18a54
Revert "refactor: drop clustering dim-rename layer via tsam-xarray Di…
FBumann Jul 23, 2026
f280bda
ci: pin ruff to the version in pyproject dev extra (#756)
FBumann Jul 27, 2026
051480b
fix: support linopy 0.9.0 (#758)
FBumann Jul 27, 2026
f8e53bd
fix: load clustered NetCDF files written before flixopt 7.0 (#757)
FBumann Jul 27, 2026
de9940d
chore: update xarray requirement (#753)
dependabot[bot] Jul 27, 2026
eb4484e
ci: always report lint and test on pull requests (#759)
FBumann Jul 27, 2026
125e03c
chore(main): release 8.0.0 (#740)
flixopt-release-bot[bot] Jul 27, 2026
489111c
chore: update CITATION.cff date-released
github-actions[bot] Jul 27, 2026
da7bfaf
docs: correct the 8.0.0 changelog entry (#760)
FBumann Jul 27, 2026
21efda9
fix: support tsam_xarray 0.6.5 by using cluster_counts (#761)
FBumann Jul 27, 2026
cdd9bc4
chore(main): release 8.0.1 (#762)
flixopt-release-bot[bot] Jul 27, 2026
ce99a3d
chore: bump tsam-xarray from 0.6.5 to 0.6.6 (#763)
dependabot[bot] Aug 2, 2026
315dd6e
chore: bump pre-commit from 4.6.0 to 4.6.1 (#764)
dependabot[bot] Aug 2, 2026
5b54af8
chore: bump ruff from 0.15.21 to 0.16.0 (#752)
dependabot[bot] Aug 2, 2026
828fa31
chore: bump nbformat from 5.10.4 to 5.11.0 (#765)
dependabot[bot] Aug 9, 2026
c15a347
chore: bump pre-commit from 4.6.1 to 4.6.2 (#768)
dependabot[bot] Aug 16, 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
4 changes: 1 addition & 3 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ body:
import numpy as np
import flixopt as fx

fx.CONFIG.Logging.console = True
fx.CONFIG.Logging.level = 'DEBUG'
fx.CONFIG.apply()
fx.CONFIG.Logging.enable_console('DEBUG')
flow_system = fx.FlowSystem(pd.date_range('2020-01-01', periods=3, freq='h'))

flow_system.add_elements(
Expand Down
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
commit-message:
prefix: "ci"
- package-ecosystem: pip
directory: /
schedule:
interval: weekly
commit-message:
prefix: "chore"
39 changes: 39 additions & 0 deletions .github/workflows/dependabot-auto-merge.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Dependabot auto-merge

on:
pull_request_target:

permissions:
contents: write
pull-requests: write

jobs:
auto-merge:
name: Auto-merge minor/patch
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-24.04
steps:
- uses: dependabot/fetch-metadata@v3
id: metadata

- name: Generate token for Release Bot
if: steps.metadata.outputs.update-type != 'version-update:semver-major'
id: generate-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.RELEASE_BOT_APP_ID }}
private-key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}

- name: Approve PR
if: steps.metadata.outputs.update-type != 'version-update:semver-major'
run: gh pr review "$PR" --approve
env:
PR: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ steps.generate-token.outputs.token }}

- name: Enable auto-merge
if: steps.metadata.outputs.update-type != 'version-update:semver-major'
run: gh pr merge "$PR" --auto --squash
env:
PR: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ github.token }}
197 changes: 197 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
name: Docs

on:
push:
branches: [main]
paths:
- 'docs/**'
- 'mkdocs.yml'
- 'flixopt/**'
- '.github/workflows/**'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- 'docs/**'
- 'mkdocs.yml'
- 'flixopt/**' # notebooks import flixopt; catch library changes that break docs
- '.github/workflows/**'
workflow_dispatch:
inputs:
deploy:
description: 'Deploy docs to GitHub Pages'
type: boolean
default: false
version:
description: 'Version to deploy (e.g., v6.0.0)'
type: string
required: false
workflow_call:
inputs:
deploy:
type: boolean
default: false
version:
type: string
required: false

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
PYTHON_VERSION: "3.11"
MPLBACKEND: Agg
PLOTLY_RENDERER: notebook_connected

jobs:
build:
name: Build documentation
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0

- uses: astral-sh/setup-uv@v7
with:
version: "0.10.9"
enable-cache: true

- uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Extract changelog
run: |
cp CHANGELOG.md docs/changelog.md
python scripts/format_changelog.py

- name: Install dependencies
run: uv pip install --system ".[docs,full]"

- name: Get notebook cache key
id: notebook-cache-key
run: |
set -eo pipefail
# Hash notebooks + flixopt source code using null-delimited find for safety
HASH=$({ find docs/notebooks -name '*.ipynb' -print0; find flixopt -name '*.py' -print0; } | sort -z | xargs -0 tar -cf - 2>/dev/null | sha256sum | cut -d' ' -f1)
echo "hash=$HASH" >> $GITHUB_OUTPUT

- name: Cache executed notebooks
uses: actions/cache@v6
id: notebook-cache
with:
path: docs/notebooks/**/*.ipynb
key: notebooks-${{ steps.notebook-cache-key.outputs.hash }}

- name: Execute fast notebooks
if: steps.notebook-cache.outputs.cache-hit != 'true'
run: |
set -eo pipefail
# Execute fast notebooks in parallel (4 at a time), excluding slow ones
cd docs/notebooks && find . -name '*.ipynb' | \
grep -vFf slow_notebooks.txt | \
xargs -P 4 -I {} sh -c 'jupyter execute --inplace "$1" || exit 255' _ {}

- name: Execute slow notebooks
if: steps.notebook-cache.outputs.cache-hit != 'true' && github.event.pull_request.draft != 'true'
run: |
set -eo pipefail
# Execute slow notebooks in parallel (skip on draft PRs)
cd docs/notebooks && cat slow_notebooks.txt | \
xargs -P 4 -I {} sh -c 'jupyter execute --inplace "$1" || exit 255' _ {}

- name: Build docs
env:
MKDOCS_JUPYTER_EXECUTE: "false"
run: mkdocs build --strict

- uses: actions/upload-artifact@v4
with:
name: docs
path: site/
retention-days: 7

deploy:
name: Deploy documentation
needs: build
if: ${{ inputs.deploy == true && inputs.version != '' }}
runs-on: ubuntu-24.04
permissions:
contents: write
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0

- uses: astral-sh/setup-uv@v7
with:
version: "0.10.9"
enable-cache: true

- uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Extract changelog
run: |
cp CHANGELOG.md docs/changelog.md
python scripts/format_changelog.py

- name: Install dependencies
run: uv pip install --system ".[docs,full]"

- name: Get notebook cache key
id: notebook-cache-key
run: |
set -eo pipefail
# Hash notebooks + flixopt source code using null-delimited find for safety
HASH=$({ find docs/notebooks -name '*.ipynb' -print0; find flixopt -name '*.py' -print0; } | sort -z | xargs -0 tar -cf - 2>/dev/null | sha256sum | cut -d' ' -f1)
echo "hash=$HASH" >> $GITHUB_OUTPUT

- name: Cache executed notebooks
uses: actions/cache@v6
id: notebook-cache
with:
path: docs/notebooks/**/*.ipynb
key: notebooks-${{ steps.notebook-cache-key.outputs.hash }}

- name: Execute fast notebooks
if: steps.notebook-cache.outputs.cache-hit != 'true'
run: |
set -eo pipefail
# Execute fast notebooks in parallel (4 at a time), excluding slow ones
cd docs/notebooks && find . -name '*.ipynb' | \
grep -vFf slow_notebooks.txt | \
xargs -P 4 -I {} sh -c 'jupyter execute --inplace "$1" || exit 255' _ {}

- name: Execute slow notebooks
if: steps.notebook-cache.outputs.cache-hit != 'true'
run: |
set -eo pipefail
# Execute slow notebooks (only on release)
cd docs/notebooks && cat slow_notebooks.txt | \
xargs -I {} sh -c 'jupyter execute --inplace "$1" || exit 255' _ {}

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Deploy docs
env:
MKDOCS_JUPYTER_EXECUTE: "false"
run: |
VERSION=${{ inputs.version }}
VERSION=${VERSION#v}

# Check if this is a pre-release (alpha, beta, rc)
if [[ "$VERSION" =~ (alpha|beta|rc) ]]; then
# Pre-release: deploy version only, don't update "latest"
mike deploy --push $VERSION
else
# Stable release: deploy and update "latest" alias
mike deploy --push --update-aliases $VERSION latest
mike set-default --push latest
fi
32 changes: 32 additions & 0 deletions .github/workflows/pr-title.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: PR Title

on:
push:
branches: ["release-please--**"]
pull_request:
types: [opened, edited, reopened]

jobs:
validate:
name: Validate conventional commit
if: github.event_name == 'pull_request'
runs-on: ubuntu-24.04
permissions:
pull-requests: read
steps:
- uses: amannn/action-semantic-pull-request@v6
with:
types: |
feat
fix
refactor
test
docs
chore
ci
build
perf
revert
style
env:
GITHUB_TOKEN: ${{ github.token }}
Loading
Loading