Skip to content

Commit

Permalink
Merge pull request #460 from automl/development
Browse files Browse the repository at this point in the history
Release 0.9.0
  • Loading branch information
mfeurer authored Nov 16, 2018
2 parents 5775eaf + b7a4958 commit 7f15a59
Show file tree
Hide file tree
Showing 138 changed files with 7,700 additions and 1,573 deletions.
61 changes: 61 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
### Contributing to SMAC3

You are interested in developing a new feature or have found a bug? Awesome, feel welcome and read this guide in order to find out how to best report your ideas so that we can include them as quickly as possible.

### General Notes
We are always happy to read about your experiences and ideas on how to improve SMAC3. We use the issue tracker as our main communication platform, so please open an issue to

* report bugs (label as `bug`)
* ask usage questions (label as `question`)
* discuss feature requests (label as `request`)
* let us know if you plan to contribute code

NOTE: Before working on a new feature please first create an issue. If the relevant issue already exists, please comment that issue to let us know that you are going to work on it. Through that, we can ensure that there is no duplicated effort.

### New Features

If you are looking for feature that does not yet exist in SMAC3, we are happy to hear about it. Open an issue on our [issues list on GitHub](https://github.com/automl/SMAC3/issues), and describe
- the feature you would like to see
- why you need it and
- how it should work.

If you already know how to implement the feature, please create a pull request. Please see the [Pull request](#pull-requests) section, to read further details on pull requests.

### <a name="report-bugs"></a> Report Bugs

Open an issue in our [issue list on GitHub](https://github.com/automl/SMAC3/issues).

Before you report a bug, please make sure that:

1. Your bug hasn't already been reported in our [issue tracker](https://github.com/automl/SMAC3/issues).
2. You are using the latest SMAC3 version.

If you found a bug, please provide us the following information:

- A description of the problem
- An example to reproduce the problem
- Any information about your setup that could be helpful to resolve the bug (such as installed python packages)
- Feel free, to add a screenshot showing the issue, if it helps.

### Work on New Features

To work on new features, create a fork of the original repository and implement the feature there. When you are happy with the final result you can create a pull request which we will review.
A good tutorial on how to do this is in the Github Guide: [Fork a repo](https://help.github.com/articles/fork-a-repo/).

### <a name="pull-requests"></a> Pull Requests

The target branch for your pull request has to be the development branch. If you have not worked with pull requests, please take a look at [how to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) or read more about it in the official github documentation <https://help.github.com/articles/about-pull-requests/>

If you know how to fix a bug or implement your own feature, follow this small guide:

- Check the issue tracker if someone has already reported the same idea or found the same bug.
- Create a pull request, after you have implemented your changes in your fork. Using a separate branch for the fix is required.
- Pull request must include tests.
- We are using the Google Style Python Docstrings. Take a look at this [example](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html).
- The code should follow the PEP8 coding convention.

We try to react as fast as possible to your pull request.

### Reporting Security Issues

If you find security related issues, vulnerabilities or bugs including sensitive information, please do *not* report this to the issue tracker, or elsewhere public. Instead, please let us know via [email protected]
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Issue Template
about: Describe this issue template's purpose here.
labels:

---

<!--
Please file an issue for bug reports (label as `bug`), usage questions (label as `question`), feature requests (label as `feature request`), to notify us about upcoming contributions and any other topic that you think may be important discussing with us.
-->

<!-- Instructions For Filing a Bug: https://github.com/automl/SMAC3/blob/master/CONTRIBUTING.md -->

#### Description
<!-- Example: error: argument --initial-incumbent/--initial_incumbent: invalid choice: 'sobol' -->

#### Steps/Code to Reproduce
<!--
Example:
```
from smac.facade.func_facade import fmin_smac
def rosenbrock_2d(x):
x1 = x[0]
x2 = x[1]
val = 100. * (x2 - x1 ** 2.) ** 2. + (1 - x1) ** 2.
return val
x, cost, _ = fmin_smac(func=rosenbrock_2d,
x0=[-3, -4],
bounds=[(-5, 5), (-5, 5)],
maxfun=325,
scenario_args={"initial_incumbent": "sobol"},
rng=3)
```
If the code is too long, feel free to put it in a public gist and link
it in the issue: https://gist.github.com
-->

#### Expected Results
<!-- Example: No error is thrown. Please paste or describe the expected results.-->

#### Actual Results
<!-- Please paste or specifically describe the actual output or traceback. -->

#### Versions
<!--
Please run the following snippet and paste the output below.
`import smac; print(smac.__version__)`
-->

<!-- Thanks for contributing! -->
19 changes: 19 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull-request-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!--
Thanks for contributing a pull request! Please ensure you have taken a look at the contribution guidelines: https://github.com/automl/SMAC3/blob/master/CONTRIBUTING.md
-->

#### Reference Issues/PRs
<!--
Example: Fixes #1234. See also #3456.
Please use keywords (e.g., Fixes) to create link to the issues or pull requests you resolved, so that they will automatically be closed when your pull request is merged. See https://github.com/blog/1506-closing-issues-via-pull-requests
-->

#### What does this implement/fix? Explain your changes.

#### Any other comments?

<!--
We appreciate your effort, but please be aware that we are not working full-time on this project. We welcome any contribution and value your effort, no matter how minor they are. If we are slow to review, either the pull request needs some benchmarking, tinkering, convincing, etc. or more likely the reviewers are simply busy. In either case, we ask for your understanding during the review process.
Thanks for contributing!
-->
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ target_algo_runs.json
*.ipynb
*~
.html/
.mypy_cache/

#eclipse files
.pydevproject
.pydevproject
.project

# generated by doc
doc/main_options.rst
doc/scenario_options.rst
doc/smac_options.rst
12 changes: 0 additions & 12 deletions .landscape.yml

This file was deleted.

33 changes: 33 additions & 0 deletions .prospector.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
strictness: medium # default strictness
test-warnings: false # inspect unittests
doc-warnings: true # inspect docstrings

ignore-paths: # ignore the docs folder
- docs
- ci_scripts
- examples

pep8:
disable:
- N802 # ignore pep8 naming (func name should be lowercase i.e. get_X_y())
- N806 # ignore pep8 naming (func arg should be lowercase i.e. X_pred)
options:
max-line-length: 120

pep257:
disable:
- D203 # 1 blank line required before class docstring (conflicts with D211 [no blanks allowed])
- D212 # Multi-line docstring summary should start at the first line(conflicts with D213 [first line])

pylint:
disable:
- R0913 # ignore pylint too-many-arguments
- R0916 # ignore pylint too-many-boolean-expressions
- R0902 # ignore pylint too-many-instance-attributes
- R0914 # ignore pylint too-many-locals
- R0915 # ignore pylint too-many-statements
options:
max-line-length: 120

mccabe: # disable complexity analysis
run: false
47 changes: 37 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,28 @@
language: python

sudo: false

env:
global:
- OPENBLAS_NUM_THREADS=1
- OMP_NUM_THREADS=1
- MKL_NUM_THREADS=1

matrix:

include:
- os: linux
env: PYTHON_VERSION="3.5" COVERAGE="true" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
- os: linux
env: PYTHON_VERSION="3.6" COVERAGE="true" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"

# Unit tests
- os: linux
env: TESTSUITE=run_unittests.sh PYTHON_VERSION="3.5" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
- os: linux
env: TESTSUITE=run_unittests.sh PYTHON_VERSION="3.6" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
- os: linux
env: TESTSUITE=run_unittests.sh PYTHON_VERSION="3.7" COVERAGE="true" DOCPUSH="true" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
# Other tests (mypy, examples, flake8...)
- os: linux
env: TESTSUITE=run_mypy.sh PYTHON_VERSION="3.6" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
- os: linux
env: TESTSUITE=run_examples.sh PYTHON_VERSION="3.6" MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
# Disable OSX building because it takes too long and hinders progress
# Set language to generic to not break travis-ci
# https://github.com/travis-ci/travis-ci/issues/2312#issuecomment-195620855
Expand All @@ -25,9 +40,11 @@ matrix:
cache:
directories:
- $HOME/.cache/pip
- $HOME/download
pip: true

sudo: false
git:
depth: 5

before_cache:
- rm -f $HOME/.cache/pip/log/debug.log
Expand All @@ -41,12 +58,22 @@ before_install:
- source activate testenv

install:
- pip install pep8 codecov
- pip install pep8 codecov mypy flake8
- cat requirements.txt | xargs -n 1 -L 1 pip install
- python setup.py install

# command to run tests, e.g. python setup.py test
script:
- nosetests -sv --with-coverage --cover-package=smac
- ci_scripts/$TESTSUITE
after_success:
- codecov
- source ci_scripts/success.sh && source ci_scripts/create_doc.sh $TRAVIS_BRANCH "doc_result"

deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN # set in the settings page of my repository
keep-history: true
commiter-from-gh: true
on:
all_branches: true
condition: $doc_result = "success"
local_dir: doc/$TRAVIS_BRANCH
105 changes: 78 additions & 27 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,29 +1,80 @@
Copyright (c) 2016, Ml4AAD Group (http://www.ml4aad.org/)
SMAC License
============
============

BSD 3-Clause License

Copyright (c) 2016-2018, Ml4AAD Group (http://www.ml4aad.org/)
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A P
ARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License of other files
======================
======================

RoBO
====

Gaussian process files are built on code from RoBO and/or are copied from RoBO: https://github.com/automl/RoBO

smac/epm/gaussian_process.py
smac/epm/gaussian_process_mcmc.py
smac/epm/gp_base_prior.py
smac/epm/gp_default_priors.py

License:

Copyright (c) 2015, automl
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of RoBO nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



Loading

0 comments on commit 7f15a59

Please sign in to comment.