Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jelledouwe committed Jul 24, 2023
0 parents commit 4601179
Show file tree
Hide file tree
Showing 21 changed files with 868 additions and 0 deletions.
20 changes: 20 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[run]
branch = False
omit =
tests/*
examples/*
scripts/*

[report]
exclude_lines =
pragma: no cover
pass
if TYPE_CHECKING:
if self.log_memory and self.iter_ticks % self.print_iter == 0:
raise ValueError
elif print_mode == ROS:
filter_info_for_printing
remap_cb_input
trace_observable
print_info
raise
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
name: "\U0001F41B Bug Report"
about: Submit a bug report to help us improve
labels: bug
title: "[Bug] bug title"
---

### 🐛 Bug

A clear and concise description of what the bug is.


### To Reproduce

Steps to reproduce the behavior.

Please try to provide a minimal example to reproduce the bug. Error messages and stack traces are also helpful.

Please use the [markdown code blocks](https://help.github.com/en/articles/creating-and-highlighting-code-blocks)
for both code and stack traces.

```python
from eagerx import ...

```

```bash
Traceback (most recent call last): File ...

```

### Expected behavior

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


### System Info

Describe the characteristic of your environment:
* Describe how the library was installed (pip, docker, source, ...)
* Versions of all EAGERx packages installed
* Python version
* Gym version
* Versions of all relevant libraries

### Additional context
Add any other context about the problem here.

### Checklist

- [ ] I have checked that there is no similar [issue](https://github.com/eager-dev/eagerx/issues) in the repo (**required**)
- [ ] I have read the [documentation](https://eagerx.readthedocs.io) (**required**)
- [ ] I have provided a minimal working example to reproduce the bug (**required**)

<!--- This Template is an edited version of the one from https://github.com/DLR-RM/stable-baselines3-->
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: "\U0001F680Feature Request"
about: How to create an issue for requesting a feature
labels: enhancement
title: "[Feature Request] request title"
---

### 🚀 Feature

A clear and concise description of the feature proposal.

### Motivation

Please outline the motivation for the proposal.
Is your feature request related to a problem? e.g., "I'm always frustrated when [...]".
If this is related to another GitHub issue, please link here too.

### Pitch

A clear and concise description of what you want to happen.

### Alternatives

A clear and concise description of any alternative solutions or features you've considered, if any.

### Additional context

Add any other context or screenshots about the feature request here.

### Checklist

- [ ] I have checked that there is no similar [issue](https://github.com/eager-dev/eagerx/issues) in the repo (**required**)


<!--- This Template is an edited version of the one from https://github.com/DLR-RM/stable-baselines3 which is an edited version of the one from https://github.com/pytorch/pytorch -->
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: ❓Question
about: How to ask a question
labels: question
title: "[Question] question title"
---

### Question

Your question.
This can be e.g. questions regarding confusing or unclear behaviour of functions or a question if X can be done.
Make sure to check out the documentation first.

### Additional context

Add any other context about the question here.

### Checklist

- [ ] I have read the [documentation](https://eagerx.readthedocs.io) (**required**)
- [ ] I have checked that there is no similar [issue](https://github.com/eager-dev/eagerx/issues) in the repo (**required**)

<!--- This Template is an edited version of the one from https://github.com/DLR-RM/stable-baselines3 which is an edited version of the one from https://github.com/pytorch/pytorch -->
33 changes: 33 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->
<!--- You can use the syntax `closes #100` if this solves the issue #100 -->
- [ ] I have raised an issue to propose this change ([required](https://github.com/eager-dev/eagerx/blob/master/CONTRIBUTING.md) for new features and bug fixes)

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation (update in the documentation)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] I have read the [CONTRIBUTION](https://github.com/eager-dev/eagerx/blob/master/CONTRIBUTING.rst) guide (**required**).
- [ ] I have used semantic commit messages such that my PR is [semantic](https://github.com/zeke/semantic-pull-requests) (**required**).
- [ ] My change requires a change to the documentation.
- [ ] I have updated the tests accordingly (*required for a bug fix or a new feature*).
- [ ] I have updated the documentation accordingly.
- [ ] I have reformatted the code using `make codestyle` (**required**).
- [ ] I have checked the codestyle using `make check-codestyle` and `make lint` (**required**).
- [ ] I have ensured `make pytest` passes. (**required**).

Note: we are using a maximum length of 127 characters per line

<!--- This Template is an edited version of the one from https://github.com/DLR-RM/stable-baselines3 which is an edited version of the one from https://github.com/evilsocket/pwnagotchi/ -->
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2

updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
reviewers:
- "bheijden"
commit-message:
# Prefix all commit messages with "npm"
prefix: "chore: "
7 changes: 7 additions & 0 deletions .github/semantic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Always validate all commits, and ignore the PR title
commitsOnly: true

# Require at least one commit to be valid
# this is only relevant when using commitsOnly: true or titleAndCommits: true,
# which validate all commits by default
anyCommit: true
139 changes: 139 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: CI

on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
schedule:
- cron: '0 8 * * *'

jobs:
test:
# Skip CI if [ci skip] in the commit message
if: "! contains(toJSON(github.event.commits.*.message), '[ci skip]')"
strategy:
fail-fast: true
matrix:
os: [ "ubuntu-20.04" ]
# python-version: [ "3.6.2", "3.7", "3.8", "3.9" ]
python-version: [ "3.8" ]
runs-on: ${{ matrix.os }}
timeout-minutes: 40
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v2
with:
token: ${{ secrets.GH_TOKEN }}
- name: Set up python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: 1.3.2
virtualenvs-create: true
virtualenvs-in-project: true
#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
#----------------------------------------------
# install your root project, if required
#----------------------------------------------
- name: Install library
run: poetry install --no-interaction
#----------------------------------------------
# check codestyle & lint
#----------------------------------------------
- name: Check codestyle
run: |
make check-codestyle
- name: Lint with flake8
run: |
make lint
#----------------------------------------------
# ----- install & configure ROS -----
#----------------------------------------------
- name: install ROS
run: |
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install ros-noetic-ros-base
echo "source /opt/ros/noetic/setup.bash" >> .venv/bin/activate
sudo apt-get install ros-noetic-cv-bridge
#----------------------------------------------
# add matrix specifics and run test suite
#----------------------------------------------
- name: Run tests
run: |
source .venv/bin/activate
make pytest
#-----------------------------------------------
# Create coverage badge
#-----------------------------------------------
- name: Create coverage badge
run: |
make coverage-badge
- name: Add & Commit
uses: EndBug/add-and-commit@v9.1.1
with:
author_name: ${{ github.actor }}
author_email: ${{ github.actor }}@users.noreply.github.com
message: "ci: Update coverage badge [ci skip]"
add: "coverage.svg"
release:
needs: test
# https://github.community/t/how-do-i-specify-job-dependency-running-in-another-workflow/16482
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && !contains(github.event.head_commit.message, 'chore(release):')
runs-on: ubuntu-latest
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
token: ${{ secrets.GH_TOKEN }}
#-----------------------------------------------
# Publish to PYPI in case of a new version
#-----------------------------------------------
- name: Semantic Release
run: |
pip install python-semantic-release
git config --global user.name "github-actions"
git config --global user.email "action@github.com"
semantic-release publish -D commit_author="github-actions <action@github.com>"
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPOSITORY_USERNAME: ${{ secrets.PYPI_USERNAME }}
REPOSITORY_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
Loading

0 comments on commit 4601179

Please sign in to comment.