Skip to content

Commit

Permalink
Setting standards & cleanup (#16)
Browse files Browse the repository at this point in the history
* Rewrite genotypes to abstract base classes

* Remove test notebooks

* Fix three_channel_average

* Add pre-commit

* Add pyproject.toml and tox.ini

* Big refactor

* Revert "Big refactor"

This reverts commit c05abee.

* Big refactor (for real this time)

* Add pydocstyle config

* Improve hydra config and add type validation

* Fix diff model import

* Add github actions

* Add stats to flake8 precommit config

* Fix imports

* Fix diff model type hint

* Fix import bugs, make package

* Update pre-commit-config

* rewrite walk_creator w/dataclasses

* Fix serialization

* Add history to mapelites

* Fix map

* Add full history option to mapelites

* Fix mapelites history buffer

* Small refactor, add dev-reqs

* fix ghactions

* Linting fix

* Update config files

* change to requirements.txt

* Match the key of the new config file.

* Add pytest config

* Add contributing.md

Co-authored-by: Honglu Fan <[email protected]>
  • Loading branch information
herbiebradley and honglu2875 authored Nov 21, 2022
1 parent 1bce4af commit bafaa1f
Show file tree
Hide file tree
Showing 84 changed files with 2,263 additions and 2,296 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ name: Build

on:
push:
branches: [ $default-branch ]
branches:
- main
pull_request:
branches: [ $default-branch ]
branches:
- main

jobs:
build:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ dmypy.json
# Project dirs
checkpoints/
logs/
archive/

# generated dot files and tree graphs
.gv
Expand Down
39 changes: 39 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
# This should be the _latest_ version of python supported by us
default_language_version:
python: python3.9
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
files: ^(elm|test|setup.py)/
- repo: https://github.com/pycqa/isort
rev: 5.10.1
hooks:
- id: isort
name: isort (python)
- repo: https://github.com/pycqa/flake8
rev: 5.0.4
hooks:
- id: flake8
args:
- '--ignore=E203,E501,W503,F811'
- '--max-line-length=88'
- '--statistics'
- '--count'
- '--show-source'
- repo: https://github.com/pycqa/pydocstyle
rev: 6.1.1
hooks:
- id: pydocstyle
args:
- '--convention=google'
- '--add-ignore=D10'
64 changes: 64 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Contributing to `OpenEvolve`

Looking to improve `OpenEvolve`? Thanks for considering!

There are many ways to contribute, from writing tutorials in [Colab notebooks](https://colab.research.google.com) to improving the project's documentation, submitting bug reports and feature requests, or implementing new features themselves. See the outstanding [issues](https://github.com/CarperAI/ELM/issues) for ideas on where to begin.

Here are some guidelines to help you get started 🚀.

## Submitting a bug report or a feature request¶

To submit a bug report or a feature request, please open an [issue](https://github.com/CarperAI/ELM/issues) by clicking on the `New Issue` button and selecting the respective issue template. Make sure to fill out all the required information and provide as much detail as possible. For bug reports, this means including a minimal code example that reproduces the bug, and for feature requests, it means providing a clear and detailed description of the feature you would like to see implemented.

## Submitting code

> **Note**: Make sure to first search through the [issue tracker](https://github.com/CarperAI/ELM/issues) and [PR list](https://github.com/CarperAI/ELM/pulls) to avoid duplicating work. If you want to work on a non-trivial feature, we highly recommended that you first open an issue in the [issue tracker](https://github.com/CarperAI/ELM/issues) to get feedback from core developers.
Follow these steps to start contributing code:

1. Create your own [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) of the repository and clone it to your local machine.
```bash
git clone https://github.com/<YOUR-USERNAME>/OpenEvolve.git
cd OpenEvolve
git remote add upstream https://github.com/CarperAI/OpenEvolve.git
```
2. Create a new branch for your changes and give it a concise name that reflects your contribution.
```bash
git checkout -b <BRANCH-NAME>
```
2. Install the development dependencies in a Python environment.
```bash
pip install -e ".[dev]"
pre-commit install
```
4. Implement your changes. Make small, independent, and well documented commits along the way (check out [these](https://cbea.ms/git-commit/) tips).
5. Add unit tests whenever appropriate and ensure that the tests pass. To run the entire test suite, use the following command from within the project root directory.
```bash
pytest
```
For changes with minimal project scope (e.g. a simple bug fix), you might want to run the unit tests for just a specific test file instead:
```bash
pytest -vv -k "<TEST-FILE-NAME>"
```
5. Commit your final changes. Our `pre-commit` hooks will automatically run before each commit and will prevent you from committing code that does not pass our style and linter checks. They'll also automatically format your code! To run these manually, use the following command:
```bash
pre-commit run --all-files
```
6. Push the changes to your fork.
Finally ... 🥁 ... Create a [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) to the `OpenEvolve` repository! Make sure to include a description of your changes and link to any relevant issues.
## Asking questions
Have a question? Rather than opening an issue, you can readily chat with the core team on our [Discord server](https://discord.gg/canadagoose).
## Code of conduct
This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/CarperAI/ELM/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
## License
By contributing, you agree that your contributions will be licensed under its MIT License.
# Thank you for your contribution 🐠!
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ For more details, see our full research proposal at https://carperai.notion.site

Weekly meetings are in the EleutherAI discord at 20:00 UTC on Fridays.

- [ ] Sodarace environment implemented
- [ ] Stage 1: Diff Models & MAP-Elites
- [ ] Prompt Engineering on CodeGen
- [ ] Train diff model
- [ ] MAP-Elites implemented
- [x] Sodarace environment implemented
- [x] Stage 1: Diff Models & MAP-Elites
- [x] Prompt Engineering on CodeGen
- [x] Train diff model
- [x] MAP-Elites implemented
- [ ] Stage 2: Train LLM on generated data
- [ ] Stage 3: Conditional generation with PPO
99 changes: 0 additions & 99 deletions diff_scraping.py

This file was deleted.

85 changes: 0 additions & 85 deletions elm.py

This file was deleted.

1 change: 1 addition & 0 deletions elm/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from elm.elm import ELM
Loading

0 comments on commit bafaa1f

Please sign in to comment.