Skip to content

Commit a0b6ecc

Browse files
committed
Merge branch 'mabe-systematics' of https://github.com/devosoft/Empirical into mabe-systematics
2 parents d34e95a + 184ae28 commit a0b6ecc

File tree

751 files changed

+14188
-8517
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

751 files changed

+14188
-8517
lines changed

Diff for: .bumpversion.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.0.3
2+
current_version = 1.0.0
33
commit = True
44
tag = True
55

Diff for: .github/workflows/CI.yml

+88-16
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ on:
77
- '**'
88
schedule:
99
- cron: '0 0 * * 0'
10+
workflow_dispatch:
1011
jobs:
1112
tidy:
1213
name: Enforce Tidyness
1314
runs-on: ubuntu-22.04
1415
steps:
15-
- uses: actions/checkout@v2
16+
- uses: actions/checkout@v3
1617
with:
1718
submodules: 'recursive'
1819
- run: sudo apt-get update -qq
@@ -22,12 +23,20 @@ jobs:
2223
name: Test Tidy Enforcement on macOS
2324
runs-on: macos-11
2425
steps:
25-
- uses: actions/checkout@v2
26+
- uses: actions/checkout@v4
2627
with:
28+
# sometimes checkout action doesn't result in clean directory?
29+
fetch-depth: 0
30+
ref: ${{ github.event.pull_request.head.sha || github.ref }}
2731
submodules: 'recursive'
32+
- run: git status --ignored
2833
- run: brew install coreutils findutils gnu-sed gawk grep rename sphinx-doc
2934
# adapted from https://stackoverflow.com/a/42878119
3035
- run: brew link sphinx-doc --force
36+
# updates PATH to use Homebrew-installed tools first
37+
# see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path
38+
- run: echo "/usr/local/bin:$PATH" > $GITHUB_PATH
39+
- run: echo $PATH
3140
- run: ./ci/test_tidy.sh
3241
test:
3342
name: Tests
@@ -47,13 +56,17 @@ jobs:
4756
CXX: ${{ matrix.cxx }}
4857
TEST_SET: ${{ matrix.test-set }}
4958
steps:
50-
- uses: actions/checkout@v2
59+
- uses: actions/checkout@v3
5160
with:
5261
submodules: 'recursive'
5362
- name: Set up GCC
5463
uses: egor-tensin/setup-gcc@v1
5564
with:
5665
version: 11
66+
- name: Set up clang
67+
uses: egor-tensin/setup-clang@v1
68+
with:
69+
version: 15
5770
- run: sudo apt-get update -qq
5871
- run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
5972
- run: sudo apt-get update -qq
@@ -68,7 +81,7 @@ jobs:
6881
name: Web Tests
6982
runs-on: ubuntu-20.04
7083
steps:
71-
- uses: actions/checkout@v2
84+
- uses: actions/checkout@v3
7285
with:
7386
submodules: 'recursive'
7487
- name: Set up GCC
@@ -86,7 +99,11 @@ jobs:
8699
name: Measure Test Coverage
87100
runs-on: ubuntu-22.04
88101
steps:
89-
- uses: actions/checkout@v2
102+
- name: Set up clang
103+
uses: egor-tensin/setup-clang@v1
104+
with:
105+
version: 15
106+
- uses: actions/checkout@v3
90107
with:
91108
submodules: 'recursive'
92109
- run: sudo apt-get update -qq
@@ -96,26 +113,81 @@ jobs:
96113
- run: export CXX=clang++ && make install-coverage-dependencies
97114
- run: export CXX=clang++ && make coverage
98115
- run: curl -s https://codecov.io/bash | bash
116+
# adapted from https://docs.github.com/en/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#publishing-a-package-using-an-action
117+
build-container:
118+
name: Build Docker Image
119+
runs-on: ubuntu-22.04
120+
env:
121+
REGISTRY: ghcr.io
122+
IMAGE_NAME: ${{ github.repository }}
123+
permissions:
124+
contents: read
125+
packages: write
126+
steps:
127+
- uses: actions/checkout@v2
128+
with:
129+
submodules: 'recursive'
130+
- name: Log in to GitHub Container Registry
131+
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
132+
with:
133+
registry: ghcr.io
134+
username: ${{ github.actor }}
135+
password: ${{ secrets.GITHUB_TOKEN }}
136+
- name: Extract metadata (tags, labels) for Docker
137+
id: meta
138+
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
139+
with:
140+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
141+
tags: type=raw,value=ACTIONS_BUILD_${{ github.run_number }}
142+
- name: Push to GHCR
143+
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
144+
with:
145+
context: .
146+
push: true
147+
tags: ${{ steps.meta.outputs.tags }}
148+
labels: ${{ steps.meta.outputs.labels }}
99149
test-documentation:
100150
name: Test Documentation Build
101151
runs-on: ubuntu-22.04
152+
needs: build-container
153+
container:
154+
image: ghcr.io/devosoft/empirical:ACTIONS_BUILD_${{ github.run_number }}
155+
# github actions requires root to access mounted volumes
156+
options: --user root
102157
steps:
103-
- uses: actions/checkout@v2
158+
- uses: actions/checkout@v3
104159
with:
105160
submodules: 'recursive'
106-
- uses: mmore500/actions-setup-docker@94429ebc8d9edb4e8c8afb2667bce1e89435f74f
107-
- run: docker build -t devosoft/empirical .
108-
- run: docker ps -a
109-
- run: sudo docker run --name empirical devosoft/empirical /bin/bash -c "set -o pipefail && cd /opt/Empirical/doc && make html coverage | ./headtail.sh && python /opt/Empirical/doc/parse_documentation_coverage.py /opt/Empirical/doc/_build/doc-coverage.json >> /opt/Empirical/doc-coverage.json"
110-
- run: sudo docker cp empirical:/opt/Empirical/doc-coverage.json .
161+
- run: doxygen
162+
- run: cd doc && python make_md.py
163+
- run: cd doc && make html | ./headtail.sh
164+
- run: cd doc && make coverage
165+
- run: ls doc/ && ls doc/_build
166+
- run: cd doc && python parse_documentation_coverage.py _build/doc-coverage.json >> doc-coverage.json
167+
- uses: actions/upload-artifact@v2
168+
with:
169+
name: doc-coverage
170+
path: doc/doc-coverage.json
171+
deploy-documentation-coverage:
172+
name: Deploy Documentation Coverage
173+
runs-on: ubuntu-22.04
174+
if: github.ref == 'refs/heads/master'
175+
needs: test-documentation
176+
steps:
177+
- uses: actions/download-artifact@v2
178+
with:
179+
name: doc-coverage
180+
path: data
111181
- uses: sylvanld/action-storage@v1
112-
if: github.ref == 'refs/heads/master'
113182
with:
114-
src: doc-coverage.json
115-
dst: stats/doc-coverage.json
116-
deploy-dockerhub:
117-
name: Deploy to DockerHub
183+
src: data/doc-coverage.json
184+
dst: data/doc-coverage.json
185+
deploy-container:
186+
name: Deploy to DockerHub and ghcr.io
118187
runs-on: ubuntu-22.04
188+
permissions:
189+
contents: read
190+
packages: write
119191
if: github.ref == 'refs/heads/master'
120192
needs:
121193
- tidy

Diff for: .gitignore

+8
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ demos/Emphatic/Emphatic
4848
demos/Emphatic/examples/ConceptTest
4949
demos/Emphatic/examples/ConceptTest.cpp
5050
demos/MABE/examples/NK
51+
demos/MAP-Elites-Arm/web/MAP-Elites-Arm.js
5152
demos/NK.bak/
5253
demos/NK/NK
5354
demos/NK/web/NK.js
@@ -76,6 +77,13 @@ demos/NK/web/jquery-1.11.2.min.js
7677
demos/NK/web/NK.asm.js
7778
demos/NK/web/NK.html
7879
demos/NK/web/NK.js.mem
80+
demos/utils/words/Wordle/Wordle
81+
demos/utils/words/Wordle/web/
82+
demos/utils/words/annotate-length
83+
demos/utils/words/has-only
84+
demos/utils/words/wordlists/
85+
demos/utils/words/wordplay-remove
86+
demos/utils/words/wordplay-shuffle
7987

8088
doc/doxygen/
8189
examples/*/*

Diff for: .readthedocs.yaml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# .readthedocs.yaml
2+
# Read the Docs configuration file
3+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4+
5+
# Required
6+
version: 2
7+
8+
# Set the version of Python and other tools you might need
9+
build:
10+
os: ubuntu-22.04
11+
tools:
12+
python: "3.10"
13+
jobs:
14+
pre_build:
15+
- doxygen
16+
- cd doc && python make_md.py
17+
18+
# Build documentation in the docs/ directory with Sphinx
19+
sphinx:
20+
configuration: doc/conf.py
21+
22+
# Optionally declare the Python requirements required to build your docs
23+
python:
24+
install:
25+
- requirements: doc/requirements.txt

Diff for: .readthedocs.yml

-19
This file was deleted.

0 commit comments

Comments
 (0)