Skip to content

Commit

Permalink
Release/0.8.9 (#93)
Browse files Browse the repository at this point in the history
* new distributable 0.8.5

* Release/0.8.5 (#75)

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* SPRK-88 (#12)

* Creating unified file for CLI arguments

* Aggregate all CLI arguments into argparse_custom

* Made CLI programs use centralised ArgumentContainers

* Fixed SolverPathArgument

* Sprk 76 (#7)

* Added cpu_time & solver_calls to configuration budget (missing from run_ablation & get_smac_settings)

* Fixed some flake8 and pytest errors

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Small flake8 fix

* Small fixes

* Small fixes

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* Changed Default CPU value

* Added alias to userguide & settings

* small fix

* corrected method name

* Set solver_calls and cpu_time default to None

* flake8 hates me

---------

Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Split PerformanceMeasureArgument in two and remove current value information for certain CLI arguments

* Wrap-up of restructuring argparse arguments

* Actual implementation of SPRK-88

* Small fix to generate_report

* Removing print statement, correcting my own mistakes for argsv

* Formatting string without + operator

---------

Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Fix typo (#10)

Minor change

* bugfix in dev

* SPRK-120 (#15)

* Implementation of SPRK-120

* Change requests

---------

Co-authored-by: Noah Peil <[email protected]>

* Added .kwargs to argparse argument

* Replaced * with ** for kwargs

* Adding Aaron to contributors list

* SPRK-128: Rename clips_per_node (#16)

* Rename clis_per_node

* Requests

* Adding Aaron to contributors list

---------

Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>

* Fixing permissions

* Fixing bug in remove solver, renaming global_variables symbol from sgh (sparkle_global_help) to gv (#14)

* SPRK-55 (#13)

* Fixes for removing instances from Sparkle through CLI

* Intermediate check

* ignoring runsolver file from compilation

* Fixing all nicknames in commands for configuration

* bugfix from different ticket

* Refactoring and print improvement

* Bugfix feature data frame

* Refactoring useless/dead code

* bug fix args branch

* nickname support run sparkle portfolio selector

* Nickname support for generate report

* flake8

* Simplified extractor nicknaming code

* Simplifying remove instances nickname

* Simplifying remove solver

* Refactoring

* flake8

* Bugfix

* sh test fix

* Preventing the nickname handler from crashing when args are None

* test fix

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 80 - [M] Add pcs validity and running check to wrappers (#17)

* Add check argument

* Merge duplicate check pcs functions

* Add pcsparser

* Start with running an instances to check if wrapper runs

* Repo change

* Do checks before adding. Change executable check return type

* Merge and comment on wrong executable check

* fixes

* flake8

* enviroment fix

* Changelog

* PR comments fixes

* Move messages from reading the pcs files to the cli part

* Sprk 285 (#19)

* Fixed check_settings_changes KeyError

* Finishing SPRK-285

* Revert run_on option strings to lowercase again

* Resolved flake8 issues

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 220 (#9)

* Add option to set autofolio's timeout

* fixup! Add option to set autofolio's timeout

* Fix autofolio timeout

* Minor fixes selection example

* Updating docs for runsolver (#26)

* Docs bugfix

* Update about usage for docs

* typo

* trying to fix docs compilation

* Bugfixes for docs gen

* removing print statement

* Updating requirements

* Sprk 102 (#25)

* Remove redundant code

* Added default extractor wrapper

* Modified Wrapper

* Implemented new wrapper in add_feature_extractor

* rewrote extractor wrapper code

* Fixed flake8 mistakes

* Some fixes (mostly path related)

* Requested Changes

* Updates

* Few more changes

* Removing dead imports

* Implemented changes to extractor wrapper

* Extractor now works

* Removed print statements

* Minor code layout changes

* standardising

* Wrapping up wrapper changes for extractors

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Improve status monitoring with logfile status (#28)

* First implementation of monitoring with logfile status

* Formatting and variable renaming

* More formatting

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 269 (#18)

* refactor

* Removing construct parallel portfolio from Sparkle

* flake8

* Removing traces of construct parallel portfolio

* flake8

* Adding in solver wrappers for solvers with outdated wrappers

* Bugfixes

* Big changes

* wrapping up report refactoring

* flake8 adapt

* Clean up

* Moving code to more logical place

* flake8

* bugfix from refactor

* minor refactor

* flake8 fixes

* Updating parallel portfolio arguments/settings

* Renaming the command

* bugfix

* Moving arguments to argparse custom

* Bugfix hadar

* Removing dead variables

* Refactoring variables pt 2

* Refactoring gv method

* Bugfixes

* Load snapshot bugfix

* remove feature extractor bugfix

* Minor bug fixes

* flake8

* CLI pass through comments fix

* Bug fixes

* about test fix

* About fix

* Bugfix report generation

* Forgotten print statement

* Reverting refactoring

* Updating CLI test

* Fixing bug

* Final bug fix for test

* Removing dead files

* Bugfixes remove instances CLI test

* remove multi instances bugfix

* CLI test fixes

* Refactoring SMAC

* Refactoring test bugs fix

* Updating changelog

* Bugfix wrapper, updating changelog, minor refactoring

* Minor bug fix solver wrapper

* Bug fix validator

* Bug fixes in compute features / selection example

* Removing useless print statement

* flake8 fix

* Removing dead variable

* Adding file lock for selector writing to performance data csvs

* flake8

* Report bugfixing

* Bug fixes report

* Changelog + bugfix

* bugfix feature extractor removal (#29)

* Release/0.8.2 (#31)

* Sprk 76 (#7)

* Added cpu_time & solver_calls to configuration budget (missing from run_ablation & get_smac_settings)

* Fixed some flake8 and pytest errors

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Small flake8 fix

* Small fixes

* Small fixes

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* Changed Default CPU value

* Added alias to userguide & settings

* small fix

* corrected method name

* Set solver_calls and cpu_time default to None

* flake8 hates me

---------

Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Fixing execute permission on example

* bugfix feature extractor removal

---------

Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Quick fix for documentation generation

* Sprk 292 (#33)

* Change documentation template

* added theme to requirements

* Fixed Index page of documentation

* Included github action file

* Test GitHub Actions

* test v2

* test 3

* test 4

* test 5 (?)

* test 6

* test7

* test 8

* test 9

* test 10 ?

* another one

* New approach

* check

* spelling?

* this is getting sad

* lesgo

* wild test

* Polishing

* Deleted build files to try something out

* Changed the workflow to run on push on main

* small fixes

---------

Co-authored-by: Noah Peil <[email protected]>

* SPRK-275 (#34)

* refactoring the random date time stamp getter

* Forgot one file

* Moving ablation help to its correct location

* This file shouldn't exist anymore since last version, weird

* Redundant code removal?

* Refactoring useless code

* Removing dead code

* Moving file to correct spot

* Refactoring, moving files

* Reforming slurm options

* refactoring + test fixes

* Refactoring solver object usage in Sparkle

* test bug fixes

* Refactoring solver deterministic parameter

* Updating args

* Moving compute features help to correct file

* code layout

* Bug fixes

* Getting rid of CSV merge by using file locks instead

* Removing dead file

* flake8

* Removing unused command enums

* Refactoring run configured solver help

* Renaming file to be more representative

* Moving to more suitable folder

* Simplifying run solvers help by making more use of the Solver object

* Removing dead code

* Refactorign default wrapper out of sparkle

* Updating user guide

* updating the template

* bug fix in results parsing

* Setting example to run in parallel by default

* bugfix adding solver

* Updating printing info from add solver to be more compact and accurate

* Factoring settings usage out of performance data frame

* Final bug fixes for refactoring global variables out of performance data frame

* Updated comments

* Pytest fixes

* test fix

* Removing dead code

* flake8

* test fix

* Refactoring feature data csv, bug fixes

* Bug fixes for Performance dataframe

* bugfix performance dataframe

* Simplifying Solver imports

* Moving missing value into the data structures

* Removing dead import

* Removing sparkle version from global variables

* Removing dead import

* Test fix

* removing print statement

* Refactoring instance set NAME references to PATH for SMAC configurator class

* flake8

* Fixing pytests

* Removing extra spaces

* refactoring instances help

* reverting change due to complexity

* refactoring global variables out of instances_help

* Refactoring global variables out of configurator

* pytest fix

* Moving CLI related files

* Refactoring gv from file help, bug fixes

* restoring file

* Bugfixes

* flake8 + bugfix

* Refactoring variables

* Setting string variables to Path

* Unused import removal

* Setting path to performance data csv as path object instead of str

* Factoring out double code

* Updated comment

* dead arguments, flake8

* fixing path variables to actually be paths

* Fixing tests, str to path objects

* bugfixes

* Factoring global variables out of report generation

* renaming file

* pytest fix

* flake8

* Moving check results to generate report command

* Removing last run test as its already being resolved by reportingscenario object

* Removing get num instances as it can be deduced from the validator data

* Removing methods only referenced once

* Refactoring configuration report generator with GV, moving class out of GV

* flake8

* pytest fixes

* flake8

* removing gv references from parallel portfolio report

* flake8

* minor fixes for selection reports

* Refactoring selection report

* selection example fix

* refactoring gv from selection

* Refactoring performance dataframe usage

* Removing global variable references from selection

* Flake8

* forgotten print

* pytest fix

* removing gv from settings help

* Bugfix

* Removing solver references as str

* Fixing bug, giving test a better name

* bugfix

* Mistake

* Bugfix

* flake8

* Removing --parallel option from compute features (This should be done using sparkle settings)

* Removing unused method

* Renaming method to be more clear

* Removing dead argument from add solver

* Moving add solver argument to argparse custom

* Refactoring --parallel argument out of Sparkle

* Flake8

* bugfix settings

* Bug fix settings

* Removing double code and renaming

* flake8 fixes

* test fix

* Removing nearly unused variables from gv

* Bugfixes

* test fix

* Flake8

* Moving slurm settings to settings class

* flake8

* Refactoring slurm settings into sparkle settings

* Correcting method variable to Path

* Bugfix for settings

* bugfix config report generation

* test fixes

* Removing ``in parallel'' from sparkle prints

* Parallel portfolio fixes and improvements

* Bugfix settings writing

* Removing useless write statement

* double spaces in print statement

* Unnecessary path conversion removal

* Removing feature data tmp dir

* Bugfolio portfolio selector

* Sprk 308 (#35)

* Setting up base shared class of extractor and solver

* First step towards an OO extractor

* flake8

* SPRK-306 (#36)

* Update to check_settings_changes to verify if sections in the settings file were added or removed

* Changed lists to sets and formatting

* More descriptive variable naming

---------

Co-authored-by: Noah Peil <[email protected]>

* Add entry to CONTRIBUTING.md regarding the custom git clean command

* Sprk 271 (#37)

* Base setup for new instances object

* Preparing configuration to run with instances object instead of paths/str

* Fixing up Sparkle with new Instances object

* bugfix

* Reworking deterministic into flag

* Bug fix in pathing

* Using instance object for ablation

* Minor fixes for ablation report generation

* Fixing run configured solver with new object

* flake8

* Fixing test of dead code

* bug fixes instances

* flake8

* Enabling instance set to contain instance

* Renaming variable

* Test fix

* flake8

* Fixing run portfolio selector with more elegant code

* Fixing arguments for parallel portfolio

* Bugfix

* Removing unused code

* Prepping to test multi-file instance

* Updating extractor

* Renaming wrapper

* Fixing multi instance extractor

* Fixing bugs in adding multi instance extractor

* Fixing up add instances

* Bugfixes add instances

* Fixing up example, enabling solver wrapper to receive lists

* Adding sparkle solver wrapper to TCA

* Expanding compute features to work with multi-file instances

* Forgot to save data structures after modification

* Updating compute features to work with multi instance

* Bugfixes for compute features multi-file instances

* Fixing multi instance examples

* Cleaning up compute features core

* flake8

* Quickfix for multi-instance run solvers

* Removing print statement

* Removing old wrappers

* Updating remove instances with new object

* minor bug fixes

* flake8

* Removing unused file

* Removing system status file getter

* Refactoring file_hlep

* Refactoring argument

* Fixing run configured solver to use instance sets

* Removing dead arguments, unnecessary path conversions

* Making sure Sparkle uses solver object

* Fixing pytest files

* Bugfix solver wrapper

* Minor bug fixes

* Bugfixes for running solvers

* Cleaning up variable types for generate report config

* removing print statement

* Bugfixes data setting for performance dataframe

* bugfix reporting scenario

* Bugfix report generation parallel portfolio

* Bugfix parallel portfolio report generation

* flake8

* bugfix reports

* Sprk 202 (#39)

* Removing unused configurator files in test

* Adding pytests

* Fixing up configurator pytests

* flake8

* Bugfixes for getting optimal configuration

* Removing special string references from sparkle

* Add default value for the run-on argument (#38)

* Add standard value for the run-on argument which can be overwritten via the command line

* Make get_run_on() return enum instead of string

* Write run-on argument as a string to the latest.ini file

* Last commit was missing one file

* Small fix

---------

Co-authored-by: Noah Peil <[email protected]>

* Starting to refactor how feature data works in sparkle

* Restructuring feature data frame

* Renaming file and setting up package init

* renaming file

* Reworking feature extractor workings with feature data frame

* Prepping feature extractor wrappers

* Preparing feature extractors part 2

* bugfixes for adding/removing instances from fdf

* Bugfixes for adding/removing extractors

* Updating extractor to handle I/O better

* Fixing feature computations to work with new wrapper set up

* Fixing featuredataframe imports

* Removing dead variables

* Correcting settings

* Updating manual

* Bugfixes for how to compute remaining feature jobs

* Added comment

* wrapper fix

* Bug fixes running selector on single instance

* Deleting now unused file

* Test fix

* Unused code removal

* Flake8

* Updating remaining jobs format

* pytest fix

* Removing unused code

* Flake8

* bugfixes

* Use extractor object in compute features core

* Minor code fixes

* Bugfixes regarding runsolver

* recompute bugfix

* Fixing up extractor wrapper

* Fixing comments for featuredataframe

* Bugfix for multi file instances

* flake8

* Reanming file

* bugfix running extractor

* Test fix

* Removing old configuration example

* Replacing old config, deleting old validation test data

* New validation example data

* Test update

* Adding satzilla2024

* Prepping SATZilla2024 example

* Prepping Sparkle for new extractor

* Moving compute features into the CLI command file

* updating extractors

* Updating example execution rights

* adding description

* Updating 2024 wrapper

* missing executable

* Don't use the last feature

* chmod +x

* Feature group preparation

* Description update

* Setting execution permissions

* Adding feature mapping

* Compilation update SATZilla2024

* Updating example

* Execution rights

* Fixing wrapper

* Bugfixes feature imputation

* bugfix get feature groups

* Adding new instance set

* Updating selection example

* renaming instances new set

* Bugfix runsolver output parsing

* flake8

* minor fix

* Update description_SAT-features-competition2024.txt

* Adding main to avoid floating code

* Fixing settings options without SMAC section

* Removing dead code

* Settings fix

* minor fixes

* Fixing last Solver object omission

* Status info fix

* Sprk 252 (#40)

* Change documentation template

* added theme to requirements

* Fixed Index page of documentation

* Included github action file

* Test GitHub Actions

* test v2

* test 3

* test 4

* test 5 (?)

* test 6

* test7

* test 8

* test 9

* test 10 ?

* another one

* New approach

* check

* spelling?

* this is getting sad

* lesgo

* wild test

* Polishing

* Deleted build files to try something out

* Changed the workflow to run on push on main

* small fixes

* Sparkle wait now shows a table

* Added output-verbosity to settings

* sparkle wait now also shows partition

* Restructering. Removed Extensive, rename REDUCED to QUIET, removed partition

* Finished new wait command

* Flake is killing me

* Moved vreebosity from output to general (settings)

* Added check interval to settings

* Jobs are sorted based on status

* Fixed flake8

* Added TEXT class and implemented in sparkle wait

* Minor changes

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 283 (#42)

* Print update

* Refactoring

* fixing comments

* Bug fixes dataframes

* first implementation design of selector OO

* refactoring file

* Refactoring sparkle to use selector OO solution

* flake8

* Removing multiple file creating from perfect selector computation

* refactoring copy operations out of marginal contribution

* performance dataframe fixes

* Changing references to Settings file

* Forgot a few

* Testing changing reference to gv.settings to settings

* Refactoring usage of marginal contribution

* flake8

* Updating test

* bugfix

* Fixing verbosity

* Flake8 + pytest fixes

* bugfix

* pytest mock fixes

* more usefull error printing selector

* test fix

* bugfixes

* bugfixes

* reordering tests

* flake8

* new test files

* Removing dead command

* Removing dead test

* New RunRunner version

* Test fixes for new runrunner version

* Showing new column based on runrunner update in sparkle wait

* fix for pytest

* Sprk 160 (#44)

* Prepping tests to use all a different scenario file

* Fixing tests to always use specific test set

* Removing dead variables from global variables

* Minor changes ablation

* reducing git ignore

* Removing logging from Platform (CLI functionality)

* Removing non-CLI references to global variables, moving sparkle log

* settings mistake

* Creating init for CLI packages

* Pre release test branch (#45)

* Trying to move global variables

* init fllake8

* flake8

* Moving tools to be part of Sparkle lib

* Updating setup to not include the tests

* renaming latex dir

* Creating manifest, updating setup.py

* flake8

* Moving Components into sparkle dir to prepare workable pip install

* Update pull-request.yml (#49)

* Update pull-request.yml

* Update pull-request.yml

* SPRK 151 (#46)

* Flake8 pre-commit

* Pre commit test

* Disable test for pre commit

* Updating change log and contributing

* Reducing test files bloating

* Settings mistake

* Removing unused test files

* Unused test files

* Sprk 320 (#50)

* Fixing bugs in Ablation

* First class design, bug fixes, flake8

* Refactoring ablation object usage

* fixing pytests

* Moving ablation

* Bug fixes for report generation

* Bugfixes ablation, refactoring, fixing timezone on smac target algorithm

* Adding example download capability to initialise command

* Simplifying + comment for init

* Updating changelog

* Simplifying wait command

* Minor variable name and comments fixes

* Removing dead variables from global var

* Fixes regarding portfolio selector methods

* Renaming symbols

* Minor refactoring

* Minor refactoring

* Refactoring method definitions

* Bugfixes for initialise

* Bugfix init

* Removing excess test files

* Moving CLI tests to tests folder

* Removing unnecessary methods

* Refactoring function definitions

* Simplifying sat_help methods

* sat verify bug fix

* Old code reversal

* Refactoring snapshit

* snapshot bugfix

* Logger typing fixes

* Minor fixes

* Refactoring file help

* Redundant string removal

* Fixes

* Sprk 295 (#51)

* Creating parser for solver wrapper output

* Change solver status from string to enum

* Completed docstring

* Merge dev into SPRK-295

---------

Co-authored-by: ngcp1 <[email protected]>

* Remove the exclusive flag when running the portfolio selector (#52)

* Moving CLI to a better place

* Bug fix seed being none for solver

* Bugfix run sparkle portfolio core

* Bugfixes portfolio selector

* Version 0.8.3 release (#53)

* Sprk 76 (#7)

* Added cpu_time & solver_calls to configuration budget (missing from run_ablation & get_smac_settings)

* Fixed some flake8 and pytest errors

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Small flake8 fix

* Small fixes

* Small fixes

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* Changed Default CPU value

* Added alias to userguide & settings

* small fix

* corrected method name

* Set solver_calls and cpu_time default to None

* flake8 hates me

---------

Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Fixing execute permission on example

* Release/0.8.2 (#30)

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* SPRK-88 (#12)

* Creating unified file for CLI arguments

* Aggregate all CLI arguments into argparse_custom

* Made CLI programs use centralised ArgumentContainers

* Fixed SolverPathArgument

* Sprk 76 (#7)

* Added cpu_time & solver_calls to configuration budget (missing from run_ablation & get_smac_settings)

* Fixed some flake8 and pytest errors

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Small flake8 fix

* Small fixes

* Small fixes

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* Changed Default CPU value

* Added alias to userguide & settings

* small fix

* corrected method name

* Set solver_calls and cpu_time default to None

* flake8 hates me

---------

Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Split PerformanceMeasureArgument in two and remove current value information for certain CLI arguments

* Wrap-up of restructuring argparse arguments

* Actual implementation of SPRK-88

* Small fix to generate_report

* Removing print statement, correcting my own mistakes for argsv

* Formatting string without + operator

---------

Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Fix typo (#10)

Minor change

* bugfix in dev

* SPRK-120 (#15)

* Implementation of SPRK-120

* Change requests

---------

Co-authored-by: Noah Peil <[email protected]>

* Added .kwargs to argparse argument

* Replaced * with ** for kwargs

* Adding Aaron to contributors list

* SPRK-128: Rename clips_per_node (#16)

* Rename clis_per_node

* Requests

* Adding Aaron to contributors list

---------

Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>

* Fixing permissions

* Fixing bug in remove solver, renaming global_variables symbol from sgh (sparkle_global_help) to gv (#14)

* SPRK-55 (#13)

* Fixes for removing instances from Sparkle through CLI

* Intermediate check

* ignoring runsolver file from compilation

* Fixing all nicknames in commands for configuration

* bugfix from different ticket

* Refactoring and print improvement

* Bugfix feature data frame

* Refactoring useless/dead code

* bug fix args branch

* nickname support run sparkle portfolio selector

* Nickname support for generate report

* flake8

* Simplified extractor nicknaming code

* Simplifying remove instances nickname

* Simplifying remove solver

* Refactoring

* flake8

* Bugfix

* sh test fix

* Preventing the nickname handler from crashing when args are None

* test fix

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 80 - [M] Add pcs validity and running check to wrappers (#17)

* Add check argument

* Merge duplicate check pcs functions

* Add pcsparser

* Start with running an instances to check if wrapper runs

* Repo change

* Do checks before adding. Change executable check return type

* Merge and comment on wrong executable check

* fixes

* flake8

* enviroment fix

* Changelog

* PR comments fixes

* Move messages from reading the pcs files to the cli part

* Sprk 285 (#19)

* Fixed check_settings_changes KeyError

* Finishing SPRK-285

* Revert run_on option strings to lowercase again

* Resolved flake8 issues

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 220 (#9)

* Add option to set autofolio's timeout

* fixup! Add option to set autofolio's timeout

* Fix autofolio timeout

* Minor fixes selection example

* Updating docs for runsolver (#26)

* Docs bugfix

* Update about usage for docs

* typo

* trying to fix docs compilation

* Bugfixes for docs gen

* removing print statement

* Updating requirements

* Sprk 102 (#25)

* Remove redundant code

* Added default extractor wrapper

* Modified Wrapper

* Implemented new wrapper in add_feature_extractor

* rewrote extractor wrapper code

* Fixed flake8 mistakes

* Some fixes (mostly path related)

* Requested Changes

* Updates

* Few more changes

* Removing dead imports

* Implemented changes to extractor wrapper

* Extractor now works

* Removed print statements

* Minor code layout changes

* standardising

* Wrapping up wrapper changes for extractors

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Improve status monitoring with logfile status (#28)

* First implementation of monitoring with logfile status

* Formatting and variable renaming

* More formatting

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 269 (#18)

* refactor

* Removing construct parallel portfolio from Sparkle

* flake8

* Removing traces of construct parallel portfolio

* flake8

* Adding in solver wrappers for solvers with outdated wrappers

* Bugfixes

* Big changes

* wrapping up report refactoring

* flake8 adapt

* Clean up

* Moving code to more logical place

* flake8

* bugfix from refactor

* minor refactor

* flake8 fixes

* Updating parallel portfolio arguments/settings

* Renaming the command

* bugfix

* Moving arguments to argparse custom

* Bugfix hadar

* Removing dead variables

* Refactoring variables pt 2

* Refactoring gv method

* Bugfixes

* Load snapshot bugfix

* remove feature extractor bugfix

* Minor bug fixes

* flake8

* CLI pass through comments fix

* Bug fixes

* about test fix

* About fix

* Bugfix report generation

* Forgotten print statement

* Reverting refactoring

* Updating CLI test

* Fixing bug

* Final bug fix for test

* Removing dead files

* Bugfixes remove instances CLI test

* remove multi instances bugfix

* CLI test fixes

* Refactoring SMAC

* Refactoring test bugs fix

* Updating changelog

* Bugfix wrapper, updating changelog, minor refactoring

* Minor bug fix solver wrapper

* Bug fix validator

* Bug fixes in compute features / selection example

* Removing useless print statement

* flake8 fix

* Removing dead variable

* Adding file lock for selector writing to performance data csvs

* flake8

* Report bugfixing

* Bug fixes report

* Changelog + bugfix

* bugfix feature extractor removal

---------

Co-authored-by: Hadar Shavit <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Koen van der Blom <[email protected]>
Co-authored-by: Jeroen Rook <[email protected]>

* Version change

* Small fixes

---------

Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Koen van der Blom <[email protected]>
Co-authored-by: Jeroen Rook <[email protected]>

* Release/0.8.3 (#55)

* Sprk 76 (#7)

* Added cpu_time & solver_calls to configuration budget (missing from run_ablation & get_smac_settings)

* Fixed some flake8 and pytest errors

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Small flake8 fix

* Small fixes

* Small fixes

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* Changed Default CPU value

* Added alias to userguide & settings

* small fix

* corrected method name

* Set solver_calls and cpu_time default to None

* flake8 hates me

---------

Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Fixing execute permission on example

* Release/0.8.2 (#30)

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* SPRK-88 (#12)

* Creating unified file for CLI arguments

* Aggregate all CLI arguments into argparse_custom

* Made CLI programs use centralised ArgumentContainers

* Fixed SolverPathArgument

* Sprk 76 (#7)

* Added cpu_time & solver_calls to configuration budget (missing from run_ablation & get_smac_settings)

* Fixed some flake8 and pytest errors

* Refactor

* Updating Runsolver and placing compilation responsibility in platform initialisation (#3)

* Updating runsolver

* Fixed runsolver make

* Updating runsolver and gitignore structure for local compilation

* Removing runsolver as part of Sparkle, must now be compiled by user

* Fixing sparkle platform intialization with Runsolver compilation

* Refactoring, flake8

* Fixes for instant compilation of runsolver (Conda install of required c packages and necessary path modding)

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Run workflow on on pull request (#6)

* Update SWIG (#5)

* Small flake8 fix

* Small fixes

* Small fixes

* Sprk 270 (#8)

* temp design check in

* Flake8 fixes

* Refactoring validator as preparation

* Preparing configurator to use validator

* Attempting fix for Github

* pytest fix for gen rep

* Pytest fix for validation scenario

* Re-enabling pytest

* Prepping for testing

* Intermediate check in

* Moving configurator implementations in settings

* Bugfixes moving configurator

* Setting up general configurator CLI

* Fixing configurator writing output configurations from each run to a unified CSV

* Validator and solver running fix

* flake8 fix

* Fixing command calls

* Fixing settings

* Fixing variable name in test

* Continuing work on configurators, cleaning up Components directory

* Removing unused files

* Intermediate check in to check issue with runsolver

* Found bug in smac target algorithm, was using the wrong runsolver output file to detect runtime.

* Updating solver wrapper to be able to read configurations from file

* Bugfixes SMAC wrappers

* Reverting sparkle settings to original

* Reverting slurm settings to original

* Moving direcotries to unified output directory

* Correcting file structure

* Refactoring, flake8

* Wrapping up file organisation

* Refactoring code to work with new implementation

* Bug fixes

* Fixing code for report generation

* flake8

* Fixing solver input for validate after config to match amount of configurations

* Attempted bug fix

* Bugfix for ablation?

* Bugfix ablation

* Refactoring configure_solver_help content

* Renaming to make a closer match to current contents

* description rename

* Fixing rename for imports

* flake8

* pytest fixes

* Fixing variables

* pytest fix

* Pytest fix

* Pytest fix

* pytest fixes

* Fix

* Pytest fix

* removing dead code from test

* Final fixes

* bugfix

* pytest fix

* Removing smac references from global variables

* Removing hard coded smacv2 references from Sparkle all together

* PR changes

* Minor fixes

* flake8

* Minor fixes

* Forgot to check in settings file

* Bugfixes for ablation

* Changed Default CPU value

* Added alias to userguide & settings

* small fix

* corrected method name

* Set solver_calls and cpu_time default to None

* flake8 hates me

---------

Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Split PerformanceMeasureArgument in two and remove current value information for certain CLI arguments

* Wrap-up of restructuring argparse arguments

* Actual implementation of SPRK-88

* Small fix to generate_report

* Removing print statement, correcting my own mistakes for argsv

* Formatting string without + operator

---------

Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>

* Fix typo (#10)

Minor change

* bugfix in dev

* SPRK-120 (#15)

* Implementation of SPRK-120

* Change requests

---------

Co-authored-by: Noah Peil <[email protected]>

* Added .kwargs to argparse argument

* Replaced * with ** for kwargs

* Adding Aaron to contributors list

* SPRK-128: Rename clips_per_node (#16)

* Rename clis_per_node

* Requests

* Adding Aaron to contributors list

---------

Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Thijs Snelleman <[email protected]>

* Fixing permissions

* Fixing bug in remove solver, renaming global_variables symbol from sgh (sparkle_global_help) to gv (#14)

* SPRK-55 (#13)

* Fixes for removing instances from Sparkle through CLI

* Intermediate check

* ignoring runsolver file from compilation

* Fixing all nicknames in commands for configuration

* bugfix from different ticket

* Refactoring and print improvement

* Bugfix feature data frame

* Refactoring useless/dead code

* bug fix args branch

* nickname support run sparkle portfolio selector

* Nickname support for generate report

* flake8

* Simplified extractor nicknaming code

* Simplifying remove instances nickname

* Simplifying remove solver

* Refactoring

* flake8

* Bugfix

* sh test fix

* Preventing the nickname handler from crashing when args are None

* test fix

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 80 - [M] Add pcs validity and running check to wrappers (#17)

* Add check argument

* Merge duplicate check pcs functions

* Add pcsparser

* Start with running an instances to check if wrapper runs

* Repo change

* Do checks before adding. Change executable check return type

* Merge and comment on wrong executable check

* fixes

* flake8

* enviroment fix

* Changelog

* PR comments fixes

* Move messages from reading the pcs files to the cli part

* Sprk 285 (#19)

* Fixed check_settings_changes KeyError

* Finishing SPRK-285

* Revert run_on option strings to lowercase again

* Resolved flake8 issues

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 220 (#9)

* Add option to set autofolio's timeout

* fixup! Add option to set autofolio's timeout

* Fix autofolio timeout

* Minor fixes selection example

* Updating docs for runsolver (#26)

* Docs bugfix

* Update about usage for docs

* typo

* trying to fix docs compilation

* Bugfixes for docs gen

* removing print statement

* Updating requirements

* Sprk 102 (#25)

* Remove redundant code

* Added default extractor wrapper

* Modified Wrapper

* Implemented new wrapper in add_feature_extractor

* rewrote extractor wrapper code

* Fixed flake8 mistakes

* Some fixes (mostly path related)

* Requested Changes

* Updates

* Few more changes

* Removing dead imports

* Implemented changes to extractor wrapper

* Extractor now works

* Removed print statements

* Minor code layout changes

* standardising

* Wrapping up wrapper changes for extractors

---------

Co-authored-by: Thijs Snelleman <[email protected]>

* Improve status monitoring with logfile status (#28)

* First implementation of monitoring with logfile status

* Formatting and variable renaming

* More formatting

---------

Co-authored-by: Noah Peil <[email protected]>

* Sprk 269 (#18)

* refactor

* Removing construct parallel portfolio from Sparkle

* flake8

* Removing traces of construct parallel portfolio

* flake8

* Adding in solver wrappers for solvers with outdated wrappers

* Bugfixes

* Big changes

* wrapping up report refactoring

* flake8 adapt

* Clean up

* Moving code to more logical place

* flake8

* bugfix from refactor

* minor refactor

* flake8 fixes

* Updating parallel portfolio arguments/settings

* Renaming the command

* bugfix

* Moving arguments to argparse custom

* Bugfix hadar

* Removing dead variables

* Refactoring variables pt 2

* Refactoring gv method

* Bugfixes

* Load snapshot bugfix

* remove feature extractor bugfix

* Minor bug fixes

* flake8

* CLI pass through comments fix

* Bug fixes

* about test fix

* About fix

* Bugfix report generation

* Forgotten print statement

* Reverting refactoring

* Updating CLI test

* Fixing bug

* Final bug fix for test

* Removing dead files

* Bugfixes remove instances CLI test

* remove multi instances bugfix

* CLI test fixes

* Refactoring SMAC

* Refactoring test bugs fix

* Updating changelog

* Bugfix wrapper, updating changelog, minor refactoring

* Minor bug fix solver wrapper

* Bug fix validator

* Bug fixes in compute features / selection example

* Removing useless print statement

* flake8 fix

* Removing dead variable

* Adding file lock for selector writing to performance data csvs

* flake8

* Report bugfixing

* Bug fixes report

* Changelog + bugfix

* bugfix feature extractor removal

---------

Co-authored-by: Hadar Shavit <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Koen van der Blom <[email protected]>
Co-authored-by: Jeroen Rook <[email protected]>

* Version change

* Small fixes

* Bugfix test files

---------

Co-authored-by: Brian Schiller <[email protected]>
Co-authored-by: Hadar Shavit <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Noah Peil <[email protected]>
Co-authored-by: Koen van der Bl…
  • Loading branch information
8 people authored Sep 27, 2024
1 parent b6a9ae7 commit 99624d1
Show file tree
Hide file tree
Showing 22 changed files with 491 additions and 15 deletions.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is. What were you trying to accomplish?

**To Reproduce**
What is the result you get? Explain step wise a minimal reproducible example e.g.:
*Please include your sparkle_settings.ini file here*

Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem. If the output is text *please do not make screen shots but paste it instead*

**Computed on**
- Specify your Linux setup
- Running with Slurm?
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here, such as:
- The Solver wrapper script for your algorithm
- An link to your data set, or, if impossible, a description of your data set and preferably a dummy version for reproduction
- A copy of your `Output/Logs/` directory
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE]"
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen. Please give an example of sequence of Sparkle commands you'd hypothetically like to execute to get to your solution.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
- If specific software packages / libraries should be used specify it by placing an URL to it in your request. Also specify what kind of requirements the package would have (e.g. "Only runs on the latest version of Java" or "C++ code needs to be compiled on target system")
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: Issue report
about: General issues regarding the Sparke project
title: "[ISSUE]"
labels: issue
assignees: ''

---

**Description**
Give a general description of your problem. *If you're having issues with running Sparkle's code, consider submitting a BUG report instead*. Don't forget to introduce your context of the situation.

- Please add visuals to your issue description if possible, such as screenshots or drawings
- Please add a description of what you would consider to be a good solution to the problem, no matter how 'hypothetical' it may be.
2 changes: 1 addition & 1 deletion .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ jobs:
path: 'Documentation/build/html'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v4
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

Notable changes to Sparkle will be documented in this file.

## [0.8.9] - 2024/??/??
## [0.8.9] - 2024/09/27
- Various updates to Documentation, automated testing and CI pipelines

### Fixed
- Bugfix for generating figures in report generation for 'configuration_quality' tutorial
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ When releasing a new version (including bugfix versions) of Sparkle to the `main
2. Update and commit `CHANGELOG.md` by creating a header with the release number and date; move everything from the `[unreleased]` header to the new release header (leaving the `[unreleased]` header empty for the next release).
3. Update and commit `sparkle/about.py` by changing the version number.
4. If there were updates to the CLI and/or the examples.md, make sure to re-compile their files for the Documentation. Run `md_to_sh.py` in the Documentation directory to compile the example .mds to executable .sh files, and run `command_descriptions.py` to automatically re-create the documentation for the CLI commands and their arguments. Run `mod_descriptions.py` to update the package descriptions. The documentation itself is after release automatically compiled and deployed to github pages.
4. Create the compiled zip for PyPi by running `python setup.py sdist bdist_wheel`. Delete build directory and the wheel file, and commit it.
4. Create the compiled zip for PyPi by running `python setup.py sdist` and commit it.
5. Merge the new version branch into both `development` and `main`, DO NOT delete the version branch!
6. Upload the zip to PyPi with `twine upload $ZIPFILE_PATH`

Expand Down
12 changes: 6 additions & 6 deletions Examples/configuration_quality.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
# Auto-Generated .sh files from the original .md by Sparkle 0.8.8
# Auto-Generated .sh files from the original .md by Sparkle 0.8.4

## Algorithm Quality Configuration
# We can configure an algorithm too based on some quality objective, that can be defined by the user. To see all options for defining {ref}`SparkleObjective <sparkle-objective>`
# We can configure an algorithm too based on some quality objective, that can be defined by the user. See the {ref}`SparkleObjective <sparkle-objective>` page for all options regarding objective defintions.
# These steps can also be found as a Bash script in `Examples/configuration_qualty.sh`

### Initialise the Sparkle platform
Expand All @@ -11,20 +11,20 @@ sparkle initialise

### Add instances

# Add train, and optionally test, instances (in this case for the VRP) in a given directory, without running solvers or feature extractors yet
# Now we add train, and optionally test, instances for configuring our algorithm (in this case for the VRP). The instance sets are placed in a given directory.

sparkle add_instances Examples/Resources/CVRP/Instances/X-1-10/
sparkle add_instances Examples/Resources/CVRP/Instances/X-11-20/

### Add a configurable solver

# Add a configurable solver (here for vehicle routing) with a wrapper containing the executable name of the solver and a string of command line parameters, without running the solver yet
# Add a configurable solver (In this tutorial its an algorithm for vehicle routing) with a wrapper containing the executable name of the solver and a string of command line parameters.

# The solver directory should contain the solver executable, the `sparkle_solver_wrapper.py` wrapper, and a `.pcs` file describing the configurable parameters
# The solver directory should contain the `sparkle_solver_wrapper.py` wrapper, and a `.pcs` file describing the configurable parameters.

sparkle add_solver Examples/Resources/CVRP/Solvers/VRP_SISRs/

# If needed solvers can also include additional files or scripts in their directory, but keeping additional files to a minimum speeds up copying.
# In this case the source directory also contains an executable, as the algorithm has been compiled from another programming language (`C++`). If needed solvers can also include additional files or scripts in their directory, but keeping additional files to a minimum speeds up copying.

### Configure the solver

Expand Down
2 changes: 1 addition & 1 deletion Examples/configuration_randomforest.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Auto-Generated .sh files from the original .md by Sparkle 0.8.8
# Auto-Generated .sh files from the original .md by Sparkle 0.8.4

## Configuring Random Forest on Iris

Expand Down
2 changes: 1 addition & 1 deletion Examples/configuration_runtime.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Auto-Generated .sh files from the original .md by Sparkle 0.8.8
# Auto-Generated .sh files from the original .md by Sparkle 0.8.4

## Algorithm Runtime Configuration

Expand Down
2 changes: 1 addition & 1 deletion Examples/parallel_portfolio_runtime.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Auto-Generated .sh files from the original .md by Sparkle 0.8.8
# Auto-Generated .sh files from the original .md by Sparkle 0.8.4

## Running a Parallel Portfolio
# In this tutorial we will measure the runtime performance of several algorithms in parallel. The general idea is that we consider the algorithms as a portfolio that we run in parallel (hence the name) and terminate all running algorithms once a solution is found.
Expand Down
2 changes: 1 addition & 1 deletion Examples/selection.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Auto-Generated .sh files from the original .md by Sparkle 0.8.8
# Auto-Generated .sh files from the original .md by Sparkle 0.8.4

## Algorithm Selection

Expand Down
2 changes: 1 addition & 1 deletion Examples/selection_multi-file_instance.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Auto-Generated .sh files from the original .md by Sparkle 0.8.8
# Auto-Generated .sh files from the original .md by Sparkle 0.8.4

## Algorithm selection with multi-file instances

Expand Down
Binary file added dist/sparkleai-0.8.9.tar.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion sparkle/about.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Helper module for information about Sparkle."""

name = "Sparkle"
version = "0.8.8"
version = "0.8.9"
description = "Platform for evaluating empirical algorithms/solvers"
licence = "MIT"
authors = ["Koen van der Blom",
Expand Down
45 changes: 45 additions & 0 deletions tests/test_abalation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
"""Test ablation scenario class."""


def test_ablation_scenario_constructor() -> None:
"""Test for ablation scenario constructor."""
# TODO: Write test
pass


def test_create_configuration_file() -> None:
"""Test for method create_configuration_file."""
# TODO: Write test, check that written contents match with expected value
pass


def test_create_instance_file() -> None:
"""Test for method create_instance_file."""
# TODO: Write test for with training set
# TODO: Write test for with test set
pass


def test_check_for_ablation() -> None:
"""Test for method check_for_ablation."""
# TODO: Write test for when correct file exists
# TODO: Write test for when file does not exist
# TODO: Write test for when file is corrupted
pass


def test_read_ablation_table() -> None:
"""Test for reading an ablation table from file."""
# TODO: Write test for correct file

# TODO: Write test for not existant file

# TODO: Write test for partially corrupted file
pass


def test_submit_ablation() -> None:
"""Test for method submit ablation."""
# NOTE: RunRunner calls must be mocked to avoid slurm job submission
# TODO: Write test
pass
49 changes: 49 additions & 0 deletions tests/test_extractor.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"""Test files for Extractor class."""


def test_extractor_constructor() -> None:
"""Test for constructor."""
# TODO: Write test
pass


def test_features() -> None:
"""Test for property features."""
# TODO: Write test
pass


def test_feature_groups() -> None:
"""Test for property feature_groups."""
# TODO: Write test
pass


def test_output_dimension() -> None:
"""Test for property output_dimension."""
# TODO: Write test
pass


def test_groupwise_computation() -> None:
"""Test for property groupwise_computation."""
# TODO: Write test
pass


def test_build_cmd() -> None:
"""Test for method build_cmd."""
# TODO: Write test
pass


def test_run() -> None:
"""Test for method run."""
# TODO: Write test
pass


def test_get_feature_vector() -> None:
"""Test for method get_feature_vector."""
# TODO: Write test
pass
120 changes: 120 additions & 0 deletions tests/test_feature_dataframe.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
"""Tests for feature dataframe class."""


def test_feature_dataframe_constructor() -> None:
"""Test feature dataframe constructor."""
# TODO: write test
pass


def test_add_extractor() -> None:
"""Test for method add_extractor."""
# TODO: Write test
pass


def test_add_instances() -> None:
"""Test for method add_instances."""
# TODO: Write test
pass


def test_remove_extractor() -> None:
"""Test for method remove_extractor."""
# TODO: Write test
pass


def test_remove_instances() -> None:
"""Test for method remove_instances."""
# TODO: Write test
pass


def test_get_feature_groups() -> None:
"""Test for method get_feature_groups."""
# TODO: Write test
pass


def get_value() -> None:
"""Test for method get_value."""
# TODO: Write test
pass


def set_value() -> None:
"""Test for method set_value."""
# TODO: Write test
pass


def test_has_missing_vectors() -> None:
"""Test for method has_missing_vectors."""
# TODO: Write test for completely filled FDF
# TODO: Write test for:
# - atleast one missing value per instance for all extractors
# - One feature group being compeletely missing
# - One instance being completely missing
pass


def test_get_remaining_jobs() -> None:
"""Test for method get_remaining_jobs."""
# TODO: Write test
pass


def test_get_instance() -> None:
"""Test for method get_instance."""
# TODO: Write test
pass


def test_impute_missing_values() -> None:
"""Test for method impute_missing_values."""
# TODO: Write test for one missing value (Can be calculated)
# TODO: Write test for one missing feature in every instance
pass


def test_has_missing_values() -> None:
"""Test for method has_missing_values."""
# TODO: Write test
pass


def test_reset_dataframe() -> None:
"""Test for method reset_dataframe."""
# TODO: Write test
pass


def test_sort() -> None:
"""Test for method sort."""
# TODO: Write test
pass


def test_instances() -> None:
"""Test instances property."""
# TODO: Write test
pass


def test_extractors() -> None:
"""Test for property extractors."""
# TODO: Write test
pass


def test_save_csv() -> None:
"""Test for method save_csv."""
# TODO: Write test
pass


def test_to_autofolio() -> None:
"""Test for method to_autofolio."""
# TODO: Write test
pass
Loading

0 comments on commit 99624d1

Please sign in to comment.