Skip to content
Draft

v2.4.0 #1263

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
683 commits
Select commit Hold shift + click to select a range
10c7b4e
Added a warning
renesass Dec 7, 2022
3a66258
Set xi to 0.01
renesass Dec 12, 2022
6adeaa5
Incorporated walltime in trajectory
renesass Dec 12, 2022
760f67f
Working version of benchmark
renesass Dec 14, 2022
05be313
Changed requirements
renesass Dec 14, 2022
7005d4a
Changed xi back to 0.0 again
renesass Dec 15, 2022
b4c8124
No duplicate budgets
renesass Dec 15, 2022
a6f3837
Fixed bug which updated tracker wrongly
renesass Dec 15, 2022
35492d2
Bugfix: Delete correct bracket+stage
renesass Dec 19, 2022
cb63905
Fixed tests
renesass Dec 19, 2022
4ca0dcd
Added costs to the trajectory
renesass Dec 20, 2022
e2926da
Changed initial design max ratio to 0.25
renesass Dec 20, 2022
4cbf0a9
Make format
renesass Dec 20, 2022
22c5e73
Added more details to intensifier
renesass Dec 20, 2022
9c3efaf
Finished benchmark
renesass Dec 20, 2022
5c0dd76
Added benchmark source files
renesass Dec 20, 2022
4f5f6ef
Fixed tests because of initial design changes
renesass Dec 20, 2022
1a4d084
Improved runhistory API
renesass Dec 20, 2022
c66b8a6
Fixed typo (#894)
PascalIversen Dec 20, 2022
ef783e3
Merge doc fixes
renesass Dec 20, 2022
660b10d
Doc fixes (#893)
helegraf Dec 20, 2022
fddd98f
Make format
renesass Dec 20, 2022
15d9717
Satisfied mypy
renesass Dec 20, 2022
4413f6d
Enabled more tests
renesass Dec 20, 2022
92f025f
Increased version
renesass Dec 20, 2022
4dd5541
Mypy
renesass Dec 21, 2022
7fa26bb
Mypy
renesass Dec 21, 2022
b951d77
Mypy
renesass Dec 21, 2022
efcdabc
Fixed critical bug when using highest budget for inc selection
renesass Dec 21, 2022
b99c15c
Added SH+HB comparison
renesass Dec 21, 2022
3d869d1
Stuff
renesass Dec 22, 2022
b7aa793
Updated report
renesass Dec 22, 2022
b358d28
Fixed docstring
renesass Dec 22, 2022
8cd59c0
Fixed image path
renesass Dec 22, 2022
d681dd1
Removed vscode folder
renesass Dec 22, 2022
8c582b0
Bugfixes
renesass Dec 30, 2022
09f2d13
Doc fixes
renesass Dec 30, 2022
35e4f2d
Updated changelog
renesass Dec 30, 2022
0324b0e
Make isort
renesass Dec 30, 2022
58f0ea2
Fix typos
Jan 2, 2023
044beac
Removed new line
renesass Jan 7, 2023
69820e9
Added alpha2 to docs selection
renesass Jan 7, 2023
851e321
update description
dengdifan Jan 10, 2023
134c36f
Fix 531 correctly create integers in initial design
mfeurer Jan 11, 2023
8c2f1b2
Add contact paragraph to README.
alexandertornede Jan 19, 2023
469ca05
Increase days until stale issues are closed by stalebot (#904)
helegraf Jan 19, 2023
78488e7
Edit changelog
Jan 25, 2023
cd4ec30
Merge pull request #899 from automl/description
alexandertornede Jan 27, 2023
292e53d
Add issue number
Jan 27, 2023
9b98770
Merge pull request #900 from automl/fix_531
sarah-segel Jan 27, 2023
fc07e9b
Closes #907
renesass Jan 30, 2023
c247853
Clarify origin of configurations (#908)
helegraf Jan 30, 2023
2927921
Random forest speed up (#903)
jeroenrook Jan 30, 2023
a0a8fd1
Add: workflow to update pre-commit versions (#874)
eddiebergman Jan 30, 2023
4eb6528
Add Git-Flow Workflow Specification
helegraf Feb 2, 2023
da841e2
[DOC] acquisition function maximizers
Feb 2, 2023
f7209de
Add stale reminder email action
helegraf Feb 13, 2023
ef4653d
Merge pull request #919 from automl/hotfix/early_emails_stale_issues
helegraf Feb 13, 2023
871d656
Increase version number of ConfigSpace
benjamc Feb 16, 2023
e6c77a8
Merge branch 'feature/improve_documentation' into development
Feb 16, 2023
9207944
Add guideline for updating copyright notice years to CONTRIBUTING.md
helegraf Feb 16, 2023
cf6ee29
Merge pull request #911 from automl/feature/specify_git-flow_workflows
timruhkopf Feb 16, 2023
e5f9875
Update requirement for pyrfr (#920)
dengdifan Feb 16, 2023
83b3dc4
Update pre-commit: isort,flake8 version numbers
Feb 23, 2023
a6c60c8
Merge branch 'development' of https://github.com/automl/SMAC3 into de…
Feb 23, 2023
14ddf7a
Format black
Feb 23, 2023
c861ae4
Fix mypy
Feb 23, 2023
0bdb6fa
Ac bench (#929)
benjamc Mar 2, 2023
1addb24
[DOC] added documentation on the incumbent update
Mar 2, 2023
8564d5d
Feature/add version to make publish (#931)
sarah-segel Mar 2, 2023
981f32a
Transform integer feature names to strings (#930)
renesass Mar 2, 2023
302b8b3
Merge remote-tracking branch 'origin/development' into development
Mar 2, 2023
4dce9b6
Update version to 2.0.0
benjamc Mar 2, 2023
8407f21
Update version to 2.0.0
Mar 2, 2023
b91734f
Update CHANGELOG.md
benjamc Mar 2, 2023
9f3ba23
Add information on deepcave to the readme
Mar 2, 2023
cc94031
Merge branch 'main' into development
helegraf Mar 3, 2023
df0fd5c
Correct doc version
Mar 3, 2023
58a7d12
fix(runhistory): set id of the sampled config (#951)
aron-bram Mar 23, 2023
2b0419a
ci: Set dependabot to target development branch (#963)
eddiebergman Apr 11, 2023
719dcdd
Resolve merge conflict
Apr 11, 2023
5fb2000
feat: Option preventing SMAC setting up logging (#947)
eddiebergman Apr 11, 2023
628cb9d
Citation update (#961)
dengdifan Apr 12, 2023
6cf3f04
Adjust hyperband configuration distribution across brackets
helegraf Apr 15, 2023
c308062
Compute the actual differences between the isb keys. (#957)
jeroenrook Apr 17, 2023
af1f7c5
Adjust schedule for stale reminder
helegraf Apr 17, 2023
d0461c8
fix(logging): Prevent automatic logging setup at init (#970)
eddiebergman Apr 17, 2023
6cd50b7
Merge pull request #974 from automl/hotfix/adjust_stale_reminder_sche…
helegraf Apr 17, 2023
56b031c
Fix validate method of smbo, update docstring.
helegraf Apr 19, 2023
cc8a817
Merge pull request #981 from automl/fix/smbo_validate
helegraf Apr 19, 2023
970fe94
Merge branch 'development' into fix/hyperband_bracket_scaling
helegraf Apr 21, 2023
7965296
Allow callbacks to be added to a specific index, make callback regist…
helegraf Apr 25, 2023
2c58693
Update CHANGELOG.md
helegraf Apr 25, 2023
35197c2
Merge pull request #989 from automl/fix/callback_order
helegraf Apr 25, 2023
93b67d5
Merge pull request #980 from automl/fix/hyperband_bracket_scaling
helegraf Apr 25, 2023
3810c1c
Merge pull request #991 from automl/hotfix/update_stale_labels
helegraf Apr 25, 2023
36e97f2
Fix broken references (#988)
dengdifan May 4, 2023
093e749
Adapt developer install instructions to include pre-commit installati…
sarah-segel May 4, 2023
9875de0
[Feature] Initial Design now supports executing the default config pr…
May 4, 2023
488402a
Merge branch 'development' into feature/initial_design_defaults
timruhkopf May 4, 2023
d68d18f
Pipe dask_client through facade for exec on hpc (#983)
benjamc May 4, 2023
e11ade6
[Bug-fix] Pr was failing due to mutable additional configs default
May 4, 2023
0bdedd1
Merge remote-tracking branch 'origin/feature/initial_design_defaults'…
May 4, 2023
0ec392e
[doc-fix] the count of initial design configs is computed slightly di…
May 4, 2023
6687e4b
Feature/metadata callback (#999)
sarah-segel May 16, 2023
aacbcc2
Merge branch 'development' into feature/initial_design_defaults
timruhkopf May 16, 2023
89c2ba3
Merge pull request #995 from automl/feature/initial_design_defaults
timruhkopf May 16, 2023
486ea1a
Documentation/dask client example (#1001)
benjamc May 16, 2023
0d9b91e
Documentation/dask client example (#1001)
benjamc May 16, 2023
eacaa57
Feature/dask client (#1002)
benjamc May 16, 2023
dcf77ad
Update smac version (#1003)
sarah-segel May 16, 2023
486b3a9
Update copyright year
May 16, 2023
b5c16a1
check if config in rh when storing state (#997)
dengdifan May 16, 2023
162a5dd
Merge branch 'development' of github.com:automl/SMAC3 into development
May 16, 2023
ef3885b
Add a workaround to be able to pass a dataset via dask.scatter (#993)
nabenabe0928 May 16, 2023
03e1ca8
Adding Binder links for example (#976)
dengdifan May 16, 2023
6d68ac6
Remove commit message from dependabot PRs (#1009)
eddiebergman May 17, 2023
921883e
Solve merge conflict
May 17, 2023
d31c1d3
Bugfix/fix broken link (#1012)
sarah-segel May 22, 2023
3d1f249
Merge branch 'main' of github.com:automl/SMAC3 into development
May 22, 2023
df6659f
Merge branch 'main' of github.com:automl/SMAC3 into development
May 22, 2023
af60825
Drop torch requirements (#1015)
benjamc May 23, 2023
cc14039
Remove leftover CLI entry points (#1014)
BastianZim May 23, 2023
ab5f88f
Fix incumbent selection in case of SH+MO
helegraf Jun 1, 2023
12aa9b0
Update CHANGELOG.md
helegraf Jun 1, 2023
4e5b4d1
Merge pull request #1022 from automl/fix/sh_get_best_configs
helegraf Jun 1, 2023
7cbd360
Feature/GitHub actions pr draft (#1008)
timruhkopf Jun 1, 2023
da58c9c
Update stale report to include issues with recent interactions (#1025)
helegraf Jun 2, 2023
cb1cd2f
Raise error if resource limitation and parallelization is requested (…
benjamc Jun 6, 2023
787f5d6
Raise an error for invalid scatter data (#1018)
nabenabe0928 Jun 6, 2023
b1695f0
fix(configspace): shows all keys in print (#1043)
eddiebergman Jun 23, 2023
345d9f1
Fix callback order (#1040)
benjamc Jun 26, 2023
8b64d1e
fix: dtypes (#1044)
eddiebergman Jun 26, 2023
81d2f77
Fix(config_selector): Budget checking (#1039)
eddiebergman Jun 26, 2023
5aa921a
Fix: target runner with partial func (#1045)
eddiebergman Jun 26, 2023
83eaab5
Feature/improve documentation (#1028)
sarah-segel Jun 27, 2023
cbffa5f
Handle configspace as dictionary in mlp example (#1057)
sarah-segel Jul 20, 2023
bf02a23
Raise version number
Jul 31, 2023
0650ad5
Add missing period in docs.
Jul 31, 2023
064e133
Merge branch 'main' of github.com:automl/SMAC3 into development
Aug 1, 2023
a15c1b7
allow rf to impute OrdinalHyperparameter (#1065)
dengdifan Oct 5, 2023
d58d5b1
fix dask_scheduler_file path (#1055)
markwwen Oct 5, 2023
06d584f
Fix config rejection for #1068 (#1069)
PhilippBordne Oct 9, 2023
3852013
fix(RandomForest): Always cast `seed` to `int` (#1084)
eddiebergman Nov 21, 2023
6280104
Bump actions/checkout from 3 to 4 (#1072)
dependabot[bot] Nov 21, 2023
6d46430
chore: log warn on condition when custom dask client is provided (#1071)
SimonThormeyer Nov 27, 2023
3d09049
Bump conda-incubator/setup-miniconda from 2 to 3 (#1087)
dependabot[bot] Dec 4, 2023
a7ea4b5
Propagate the Scenario random seed to get_random_design (#1066)
bpkroth Jan 10, 2024
c0e77fa
[#1056] Add example on intensify for cross-validation. (#1061)
mfeurer Feb 8, 2024
29b8a01
Change stale-reminder to recent-reminder (#1096)
helegraf Feb 13, 2024
a2170f5
Change stale-reminder to recent-reminder (#1095) (#1099)
helegraf Mar 5, 2024
e1a525b
Dont use mutable lists as default args (#1097)
helegraf Mar 12, 2024
e808a00
Bump actions/setup-python from 4 to 5 (#1089)
dependabot[bot] Mar 12, 2024
658a6b3
Bump peter-evans/create-pull-request from 5 to 6 (#1093)
dependabot[bot] Mar 12, 2024
6da055b
test: Fix upper bounds for `test_transformer()` and no random in `tes…
eddiebergman Apr 17, 2024
5fd67a4
Change stale-reminder to recent-reminder (#1095) (#1107)
helegraf May 16, 2024
829cdde
Fix typo in docstring for `MultiFideltyFacade.get_initial_design` (#1…
fleonce May 16, 2024
a5ab119
Bug/acquisition maximizer sampling (#1106)
benjamc May 16, 2024
f754bf6
Update version number to 2.1.0
helegraf May 16, 2024
8ece46d
Add version 2.1.0 to docs drop-down
helegraf May 16, 2024
2674173
Fix dependencies (numpy + ConfigSpace) and docs (#1122)
benjamc Jul 16, 2024
c7a48f0
chore: fix URLs (#1114)
e-kwsm Jul 16, 2024
7ce2b24
[MF] Determine number of trials for a total optimization budget (#1121)
benjamc Jul 16, 2024
88bc2f7
Update CHANGELOG.md
benjamc Jul 16, 2024
73ff8d0
Revert 1023 (#1123)
dengdifan Jul 17, 2024
03a2701
Upgrade to ConfigSpace 1.x (#1124)
benjamc Jul 17, 2024
54cc71a
Update CHANGELOG.md
benjamc Jul 23, 2024
3a7e497
Update version
benjamc Jul 23, 2024
98a0bf9
Merge branch 'main' into development
benjamc Jul 23, 2024
4a343fb
Adapt to new ConfigSpace API
benjamc Jul 23, 2024
0550b7c
Fix merge errors
benjamc Jul 23, 2024
46d3863
refactor: remove notebook
benjamc Jul 24, 2024
89089fe
Fix merge errors
benjamc Jul 24, 2024
eb3b652
Make format
benjamc Jul 24, 2024
f0c3c99
Add test case for numpy encoder
benjamc Jul 24, 2024
ef93151
Make format
benjamc Jul 24, 2024
5409bc0
Fix calculation
benjamc Jul 24, 2024
29264c7
Add test for Hyperband calculation
benjamc Jul 24, 2024
f9f8df2
Update comment
benjamc Jul 24, 2024
59870f5
Update docstring
benjamc Jul 24, 2024
abfe86a
Fix pre-commit
benjamc Jul 24, 2024
7058b45
Fix pre-commit
benjamc Jul 24, 2024
275c5b7
Add information on handling of stopIteration error (#1130)
sarah-segel Aug 20, 2024
e1e324e
Bump peter-evans/create-pull-request from 6 to 7 (#1142)
dependabot[bot] Sep 17, 2024
e0a1a43
Update numpy dependency (#1146)
benjamc Sep 25, 2024
e0896a2
Bugfix/replace deprecated configpsace methods (#1141)
sarah-segel Sep 25, 2024
9e4bc8d
Update CHANGELOG.md
benjamc Sep 25, 2024
53fdea2
Update CHANGELOG.md
benjamc Sep 25, 2024
ca1424b
[doc] #1038, #987 added warm starting using ask and tell (#1120)
timruhkopf Sep 25, 2024
a154cf6
Migrate docs (#1155)
benjamc Nov 21, 2024
961da1b
Bump dawidd6/action-send-mail from 3 to 4 (#1171)
dependabot[bot] Nov 27, 2024
000dd2d
Adding in CPU time to wherever time is defined as variable "cpu_time"…
thijssnelleman Nov 29, 2024
9176ca6
1085 runhistory documentation (#1175)
benjamc Dec 2, 2024
14a6b5c
fix incorrect facade description in docs (#1166)
dengdifan Dec 2, 2024
7042a94
Fix differential evolution (#1150)
hadarshavit Dec 5, 2024
06723ed
Fix/1176 (#1177)
benjamc Jan 13, 2025
facd598
fix(differential_evolution): update kwarg to new API
benjamc Jan 13, 2025
43a975d
fix(differential_evolution): update scipy dependency
benjamc Jan 13, 2025
08d3bd7
Fix kwargs for DifferentialEvolution (#1187)
benjamc Jan 13, 2025
7919c87
1164 docs add source of logei formula (#1188)
daphne12345 Jan 13, 2025
aed7769
Fix PriorAcquisitionFunction (#1185)
LukasFehring Jan 13, 2025
f68ac63
1174 replace hard coded indices in runhistory (#1180)
LukasFehring Jan 13, 2025
2659f4f
1182 update license (#1190)
daphne12345 Jan 13, 2025
5bc52db
Clean CHANGELOG.md
benjamc Jan 15, 2025
4fb3316
Update version number
benjamc Jan 15, 2025
901b472
Update license (#1192)
daphne12345 Jan 15, 2025
2fc07dd
Fix trailing whitespace
benjamc Jan 15, 2025
b5fdee2
docs(conf): add version
benjamc Jan 15, 2025
715d857
Add LocalSearch Fix (#1194)
LukasFehring Jan 15, 2025
7386fcb
Update copyright from 2022 to 2025, update institution name (#1196)
lhennig0103 Jan 15, 2025
5b58ed1
Merge branch 'main' into development
benjamc Jan 20, 2025
78eb17d
Update README.md
benjamc Jan 20, 2025
2deab52
fix(docs): site build dir + links
benjamc Jan 20, 2025
3c36ce0
Merge branch 'main' into development
Jan 21, 2025
1726317
Merge branch 'main' into development
Jan 23, 2025
471f5ed
Merge branch 'main' into development
benjamc Feb 19, 2025
8879424
Fixed log output in case more workers have been configured than avail…
mwever Feb 19, 2025
55ca5e4
Fix/1179 (#1186)
daphne12345 Feb 26, 2025
2baa1a6
[feature] following issue #946 https://github.com/automl/SMAC3/issues…
Feb 27, 2025
0b4aaba
1088 smac stops before n trials (#1207)
LukasFehring Feb 27, 2025
214d7d8
[feature] following issue #946 https://github.com/automl/SMAC3/issues…
Feb 27, 2025
5157147
[feature] following issue #946 https://github.com/automl/SMAC3/issues…
Feb 27, 2025
8d5975d
Add example for additional arguments
LukasFehring Feb 27, 2025
c41b66a
[documentation] ask and tell
Feb 27, 2025
97aecac
Updatep plot
LukasFehring Feb 27, 2025
d7f72d2
Merge pull request #1209 from automl/1134-example-target-function-wit…
daphne12345 Feb 28, 2025
aee1e42
Update CHANGELOG.md
daphne12345 Feb 28, 2025
fc9bde8
Fix for #1081 (#1211)
daphne12345 Mar 5, 2025
024992e
bug
Mar 5, 2025
5fa1b8e
added different weightings to test_mean_aggregation, fix for 941 (#1219)
daphne12345 Mar 27, 2025
37cd90c
Added submitting trials in validate in smbo, fix for 937 (#1218)
daphne12345 Mar 27, 2025
77252ba
Add SMBO docs (#1223)
LukasFehring Apr 8, 2025
a3ce8a3
[typos]
Apr 16, 2025
6aedb86
Merge pull request #1208 from automl/feature/946_optional_target_func…
timruhkopf Apr 16, 2025
177d8c9
[minor] the rf model now initializes _rf during init as None (instead…
Apr 17, 2025
60bd0d6
Merge pull request #1212 from automl/feature/1206_ask_and_tell_with_i…
timruhkopf Apr 17, 2025
5a747c4
Bump dawidd6/action-send-mail from 4 to 5 (#1233)
dependabot[bot] May 15, 2025
8086f49
Better handling of n_retries (#1216)
hadarshavit May 20, 2025
4db3fd9
Bump dawidd6/action-send-mail from 5 to 6 (#1237)
dependabot[bot] Jun 19, 2025
1d0bbf9
Simplify local search code (#1244)
mfeurer Jul 31, 2025
38a7f91
Update SVM example to not use deprecated configspace functionality an…
mfeurer Jul 31, 2025
e9b5ae8
Bump actions/checkout from 4 to 5 (#1248)
dependabot[bot] Aug 18, 2025
828f115
Fix ParEGO link (#1253) (#1256)
JannisKst Sep 26, 2025
f7f434f
Bump actions/setup-python from 5 to 6 (#1254)
dependabot[bot] Sep 26, 2025
208fddc
add feature list to docs homepage (#1250) (#1257)
JannisKst Sep 26, 2025
f54816b
Feat/replace random forest (#1246)
dengdifan Sep 26, 2025
0cb5529
reorder CHANGELOG.md
benjamc Sep 26, 2025
76a9fdf
docs: add release flow documentation
benjamc Sep 26, 2025
632e062
update version number 2.3.1->2.4.0
benjamc Sep 26, 2025
dfea0ac
add note
benjamc Sep 26, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/citation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out a copy of the repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Check whether the citation metadata from CITATION.cff is valid
uses: citation-file-format/[email protected]
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.10"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: "3.10"
- name: "Install dependancies"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pre-commit-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ jobs:
auto-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: actions/setup-python@v5
- uses: actions/setup-python@v6

- uses: browniebroke/pre-commit-autoupdate-action@main

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
submodules: recursive

- name: Setup Python 3.10
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.10"

Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.9", "3.10", "3.11"]
os: ["ubuntu-latest"]

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

Expand Down Expand Up @@ -103,12 +103,12 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.9", "3.10", "3.11"]
os: ["ubuntu-latest"]

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Conda install
uses: conda-incubator/setup-miniconda@v3
Expand Down Expand Up @@ -143,15 +143,15 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.9", "3.10", "3.11"]
os: ["ubuntu-latest"]

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/recent_reminder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
echo "$(<recent_issues.md) <br />" >> mail.html
- name: Send mail
id: mail
uses: dawidd6/action-send-mail@v4
uses: dawidd6/action-send-mail@v6
with:
server_address: ${{secrets.MAIL_SERVER_ADDRESS}}
server_port: ${{secrets.MAIL_SERVER_PORT}}
Expand Down
20 changes: 19 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# 2.3.1
# 2.4.0
## Improvements
- Replace random forest from pyrfr with random forest from sklearn (#1246)
- Submit trials to runners in SMBO instead of running configs directly (#937)
- `target_function` becomes optional in Facade when using ask and tell exclusively (#946)

## Documentation
- Ask and tell without initial design and warmstarting

## Examples
- Add target function with additional arguments (#1134)

## Bugfixes
- Ask and tell without initial design may no longer return a config from the initial design - if it is not "removed".
- Addressing situations where the acquisition function suggests configurations that have already been sampled in prior iterations (#1216)

## Misc
- Rename retries to max_new_config_tries in ConfigSelector (#1207)

# 2.3.1
## Misc
- New SMAC logo
- Fix doc link in README
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date-released: "2016-08-17"
url: "https://automl.github.io/SMAC3/master/index.html"
repository-code: "https://github.com/automl/SMAC3"

version: "2.3.1"
version: "2.4.0"

type: "software"
keywords:
Expand Down
19 changes: 14 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,6 @@ conda create -n SMAC python=3.10
conda activate SMAC
```

Install swig:
```
conda install gxx_linux-64 gcc_linux-64 swig
```

Install SMAC via PyPI:
```
pip install smac
Expand All @@ -63,6 +58,20 @@ git clone https://github.com/automl/SMAC3.git && cd SMAC3
make install-dev
```

## Running SMAC with pyrfr
starting from 2.4.0, SMAC uses random forest from [sklearn](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html)
instead of random forest from [pyrfr](https://pypi.org/project/pyrfr/) as the default surrogate model for HPO tasks.
However, you could still use the old pyrfr surrogate model by calling `smac.facade.old.HyperparameterOptimizationRFRFacade`
and `smac.facade.old.MultiFidelityRFRFacade`

To work with pyrfr, you need to first install gcc, gxx, and swig:
```
conda install gxx_linux-64 gcc_linux-64 swig
```
then install smac with the pyrfr option:
```
pip install smac[pyrfr]
```

## Minimal Example

Expand Down
19 changes: 15 additions & 4 deletions docs/3_getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Getting Started

SMAC needs four core components (configuration space, target function, scenario and a facade) to run an
optimization process, all of which are explained on this page.
optimization process called Sequential Model Based Optimization (SMBO), all of which are explained on this page.

They interact in the following way:

Expand Down Expand Up @@ -93,8 +93,8 @@ scenario = Scenario(
!!! warn
By default Facades will try to warmstart on preexisting logs. This behavior can be specified using the `overwrite` parameter.

A [facade][smac.facade.abstract_facade] is the entry point to SMAC, which constructs a default optimization
pipeline for you. SMAC offers various facades, which satisfy many common use cases and are crucial to
A [facade][smac.facade.abstract_facade] is the entry point to SMAC, which constructs a Sequential Model Based Optimization (`SMBO`) object for you.
SMAC offers various facades, which satisfy many common use cases and are crucial to
achieving peak performance. The idea behind the facades is to provide a simple interface to all of SMAC's components,
which is easy to use and understand and without the need of deep diving into the material. However, experts are
invited to change the components to their specific hyperparameter optimization needs. The following
Expand Down Expand Up @@ -139,4 +139,15 @@ smac = MFFacade(scenario=scenario, target_function=train)
smac = ACFacade(scenario=scenario, target_function=train)
smac = RFacade(scenario=scenario, target_function=train)
smac = HBFacade(scenario=scenario, target_function=train)
```
```

## SMBO
Each `Facade` creates a [Sequential Model Based Optimization (SMBO)][smac.main.smbo] object for you. In addition to starting the optimization with
```python
incumbent = smbo.optimize()
```
it supports access to e.g. the runhistory with
````
runhistory = smbo.runhistory()
````
For more information check out the [API][smac.main.smbo].
2 changes: 2 additions & 0 deletions docs/advanced_usage/5_ask_and_tell.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,7 @@ and report the results of the trial.
different budgets, they, obviously, can not be considered. However, all user-provided configurations will flow
into the intensification process.

Notice: if you are exclusively using the ask-and-tell interface and do not use `smac.optimize()`, then smac no longer
is responsible for the evaluation of the trials and therefore the Facade no longer will require a specified `target_algorithm` argument.

Please have a look at our [ask-and-tell example](../examples/1%20Basics/3_ask_and_tell.md).
64 changes: 64 additions & 0 deletions docs/devnotes/release_flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# How to Create a New Release
Export version numer, e.g.
```bash
export VERSION="2.4.0"
```
If you do not use `uv`, remove `uv` from the commands.

1. Refresh main.
```bash
git checkout main
git pull
```

1. Checkout development branch:
```bash
git checkout development
git pull
```

1. Run `make tests` to ensure everything works. If tests run through, proceed.
```bash
make tests
```

1. Create new branch from development with name e.g. `v${VERSION}`:
```bash
git branch v${VERSION}
git checkout v${VERSION}
```

1. Merge main into branch
```bash
git merge main
```

1. Check `CHANGELOG.md` whether the version number is correct and the order is fine.
1. Replace version numbers everywhere: in `CITATION.cff`, `__init__.py`.
1. Create a PR to merge branch `v${VERSION}` into `main`. As description you can use the changelog notes.
1. Test installation with a fresh environment, see `test_package.sh`.
1. Merge PR if tests are fine and installation is fine.
1. Create release, add notes from changelog.
1. Update doc link.
1. Deploy github pages (replace version in the following command):
```bash
mike deploy "v${VERSION}" latest -u -p --title "v${VERSION} (latest)"
```

1. Upload to testpypi:
```bash
python -m twine upload --repository testpypi dist/*
```

1. Test from testpypi:
```bash
uv pip uninstall smac
uv pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ smac==${VERSION}
python -c 'import smac'
```
If this is fine, proceed.

1. Upload to pypi:
```bash
python -m twine upload dist/*
```
9 changes: 9 additions & 0 deletions docs/devnotes/test_package.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
export SMACVERSION="2.4.0"
make clean
make build
pip install uv
rm -r smac_test || true
uv venv --python=3.12 smac_test
source smac_test/bin/activate
uv pip install dist/smac-$SMACVERSION.tar.gz
python -c 'import smac'
14 changes: 14 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,20 @@ SMAC is a tool for algorithm configuration to optimize the parameters of arbitra

SMAC3 is written in Python3 and continuously tested with Python 3.8, 3.9, and 3.10. Its Random Forest is written in C++. In the following, SMAC is representatively mentioned for SMAC3.

## Features

* Open source + active maintenance
* Rich search space with floats, ordinals, categoricals and conditions
* Ask-and-Tell Interface
* Continue and Warmstart Optimization
* Intensification mechanism to efficiently compare configurations
* User priors
* Parallelization, local and on a cluster with Dask
* Multi-fidelity optimization, e.g. when we can evaluate our function with different resolutions
* Multi-objective optimization with ParEGO
* Optimization across many tasks (aka algorithm configuration)
* Function to optimize can either be pythonic or called via a script
* Easily extensible with callbacks

## Cite Us
If you use SMAC, please cite our [JMLR paper](https://jmlr.org/papers/v23/21-0888.html):
Expand Down
4 changes: 2 additions & 2 deletions examples/1_basics/2_svm_cv.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ def configspace(self) -> ConfigurationSpace:
def train(self, config: Configuration, seed: int = 0) -> float:
"""Creates a SVM based on a configuration and evaluates it on the
iris-dataset using cross-validation."""
config_dict = config.get_dictionary()
if "gamma" in config:
config_dict = dict(config)
if "gamma" in config_dict:
config_dict["gamma"] = config_dict["gamma_value"] if config_dict["gamma"] == "value" else "auto"
config_dict.pop("gamma_value", None)

Expand Down
15 changes: 13 additions & 2 deletions examples/1_basics/3_ask_and_tell.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
# Flags: doc-Runnable
This examples show how to use the Ask-and-Tell interface.
Notice, that the ask-and-tell interface will still use the initial design specified in the facade.
Should you wish to add your own evaluated configurations instead or deactivate the initial
design all together, please refer to the warmstarting example in conjunction with this one.
"""

from ConfigSpace import Configuration, ConfigurationSpace, Float
Expand Down Expand Up @@ -52,7 +56,7 @@ def train(self, config: Configuration, seed: int = 0) -> float:
# Now we use SMAC to find the best hyperparameters
smac = HyperparameterOptimizationFacade(
scenario,
model.train,
target_function=model.train,
intensifier=intensifier,
overwrite=True,
)
Expand All @@ -68,7 +72,14 @@ def train(self, config: Configuration, seed: int = 0) -> float:
smac.tell(info, value)

# After calling ask+tell, we can still optimize
# Note: SMAC will optimize the next 90 trials because 10 trials already have been evaluated
# Note: SMAC will optimize the next 90 trials because 10 trials already have been evaluated.
# If we however choose not to call optimize; e.g. because we want to manage heavy
# computation of model.train completely outside smac, but still use it to suggest new
# configurations, then n_trials will only be relevant for the initial design in combination
# with initial design max_ratio! In fact in an only ask+tell case, we could even set
# target_function=None in the constructor, because smac wouldn't even need to know
# what the target function is. But that will prevent us from calling optimize and validate later
# on.
incumbent = smac.optimize()

# Get cost of default configuration
Expand Down
Loading