Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/0.8.9 #96

Merged
merged 29 commits into from
Sep 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
f606c07
new distributable 0.8.5
thijssnelleman Sep 2, 2024
c42ae6b
Release/0.8.5 (#75)
thijssnelleman Sep 3, 2024
ab8df5b
Update makefile
thijssnelleman Sep 16, 2024
a118edc
Update commandsautoprogram.md
thijssnelleman Sep 16, 2024
8156eae
Update commandsautoprogram.md
thijssnelleman Sep 16, 2024
768344d
Delete dist/sparkleai-0.8.5.tar.gz
thijssnelleman Sep 16, 2024
166e25a
Release/0.8.6 (#83)
thijssnelleman Sep 16, 2024
cebf9d4
Release/0.8.6 (#85)
thijssnelleman Sep 16, 2024
76fa818
Delete dist/sparkleai-0.8.5.tar.gz
thijssnelleman Sep 20, 2024
ea1d07b
Merge branch 'main' of https://github.com/ADA-research/Sparkle
thijssnelleman Sep 20, 2024
edf210e
Release/0.8.8 (#88)
thijssnelleman Sep 20, 2024
5a7a4dc
Delete dist/sparkleai-0.8.8.tar.gz
thijssnelleman Sep 20, 2024
c81e6c5
Release/0.8.8 (#91)
thijssnelleman Sep 20, 2024
caab52d
Delete dist/sparkleai-0.8.7.tar.gz
thijssnelleman Sep 20, 2024
9377185
Update static.yml
thijssnelleman Sep 20, 2024
0d9f2cc
Update and rename static.yml to github-pages.yml
thijssnelleman Sep 20, 2024
b822cb9
Update issue templates
thijssnelleman Sep 24, 2024
52e8d71
Update issue templates
thijssnelleman Sep 24, 2024
9dd7915
Update issue templates
thijssnelleman Sep 24, 2024
d3ad2e1
Update issue templates
thijssnelleman Sep 24, 2024
3b5be83
Update issue templates
thijssnelleman Sep 24, 2024
7f8f895
Prepping release
thijssnelleman Sep 27, 2024
61acfad
Updating sh examples for release
thijssnelleman Sep 27, 2024
4e745f2
pypi releasable
thijssnelleman Sep 27, 2024
25bb3f1
Merge branch 'main' into release/0.8.9
thijssnelleman Sep 27, 2024
b68e331
Release/0.8.9 (#92)
thijssnelleman Sep 27, 2024
cab02cf
Trying to fix documentation CI action
thijssnelleman Sep 27, 2024
925e8c5
Merge branch 'main' into release/0.8.9
thijssnelleman Sep 27, 2024
ecd0e27
Readme update to link to reports
thijssnelleman Sep 27, 2024
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
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.
13 changes: 7 additions & 6 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages
name: Deploy Documentation

on: # Runs on pushes targeting the default branch
push:
Expand Down Expand Up @@ -39,10 +39,11 @@ jobs:
run: |
conda install -y python=3.9 # https://github.com/conda/conda/issues/13560#issuecomment-1992720842
conda env update --file dev-env.yml --name base
pip install sphinx sphinx_rtd_theme myst_parser sphinxcontrib-autoprogram
- name: Compile code reports
run: pytest --all --cov sparkle/ --cov-report=html:Documentation/source/_static/coverage
pytest --all --html=Documentation/source/_static/junit/index.html
pip install -r Documentation/requirements.txt
- name: Run Code Coverage report
run: pytest --all --cov sparkle/ --cov-report=html:Documentation/source/_static/coverage
- name: Run tests report
run: pytest --all --html=Documentation/source/_static/junit/index.html
- name: Build Documentation
run: |
cd Documentation
Expand All @@ -55,4 +56,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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# _Sparkle_

[![Tests](.reports/junit/junit-badge.svg)](.reports/junit/junit.html)
[![Tests](.reports/junit/junit-badge.svg)](https://ada-research.github.io/Sparkle/_static/junit/index.html)
![tests status](https://github.com/ada-research/sparkle/actions/workflows/unittest.yml/badge.svg?event=push)
[![Coverage Status](.reports/coverage/coverage-badge.svg)](.reports/coverage/class_index.html)
[![Coverage Status](.reports/coverage/coverage-badge.svg)](https://ada-research.github.io/Sparkle/_static/coverage/index.html)
![linter](https://github.com/ada-research/sparkle/actions/workflows/linter.yml/badge.svg?event=push)
![docs](https://github.com/ada-research/sparkle/actions/workflows/documentation.yml/badge.svg?event=push)

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
Loading
Loading