Skip to content

Commit a9a39bf

Browse files
Saurav AgarwalSaurav Agarwal
authored andcommitted
Restructure and improve setup
1 parent a8ab8d9 commit a9a39bf

Some content is hidden

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

63 files changed

+1429
-227
lines changed

.git_archival.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node: $Format:%H$
2+
node-date: $Format:%cI$
3+
describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$
4+
ref-names: $Format:%D$

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
.git_archival.txt export-subst
12
*.ipynb -linguist-detectable

.github/CONTRIBUTING.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
See [Installation From Source](https://KumarRobotics.github.io/CoverageControl/installation.html) for instructions on how to install from source.
2+
The core of the project is written in `C++` and the Python bindings are generated using `pybind11`.
3+
The `Pytorch` neural network is purely written in `Python` and uses the core `C++` code for the coverage control simulation and testing.
4+
5+
The repository is partially oraganized using the [Scientific Python Developer Guide][spc-dev-intro].
6+
[spc-dev-intro]: https://learn.scientific-python.org/development/
7+
8+
## License
9+
10+
Note that the repository is licensed under the GPL-3.0 License.
11+
This is primarily because the project uses [CGAL](https://www.cgal.org/) which is licensed under the GPL-3.0 License.
12+
Thus, any contributions to the project must also be licensed under the GPL-3.0 License.
13+
14+
## Setting up a development environment manually
15+
16+
You can set up a development environment by running:
17+
18+
```bash
19+
python3 -m venv .venv
20+
source ./.venv/bin/activate
21+
pip install -v -e .
22+
```
23+
24+
## Building docs
25+
26+
The repository uses `doxygen` to build the documentation.
27+
Run the following command to build the documentation from the base directory of the repository:
28+
29+
```bash
30+
doxygen doc/Doxyfile
31+
```
32+
33+
This creates a static website in the `doc/html` directory.
34+
35+
```bash
36+
cd doc/html
37+
firefox index.html
38+
```

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: 2
2+
updates:
3+
# Maintain dependencies for GitHub Actions
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
groups:
9+
actions:
10+
patterns:
11+
- "*"

.github/docker-base-action/action.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,20 @@ runs:
3838
uses: docker/metadata-action@v5
3939
with:
4040
images: ghcr.io/${{ github.repository }}
41-
tags: type=semver,pattern={{version}},suffix=-${{ inputs.base_tag }}
41+
tags: |
42+
type=semver,pattern={{version}},suffix=-${{ inputs.base_tag }}
43+
type=raw,value=${{ inputs.base_tag }}
44+
- name: Checkout
45+
uses: actions/checkout@v4
4246
- name: Build and push
4347
uses: docker/build-push-action@v5
4448
with:
4549
provenance: false
4650
platforms: linux/amd64
4751
file: setup_utils/docker/Dockerfile
48-
build-args: BASE_TAG=${{ inputs.base_tag }}
52+
build-args: |
53+
BASE_TAG=${{ inputs.base_tag }}
54+
BUILDKIT_CONTEXT_KEEP_GIT_DIR=1
4955
push: true
5056
tags: ${{ steps.meta.outputs.tags }}
5157
labels: ${{ steps.meta.outputs.labels }}

.github/matchers/pylint.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"problemMatcher": [
3+
{
4+
"severity": "warning",
5+
"pattern": [
6+
{
7+
"regexp": "^([^:]+):(\\d+):(\\d+): ([A-DF-Z]\\d+): \\033\\[[\\d;]+m([^\\033]+).*$",
8+
"file": 1,
9+
"line": 2,
10+
"column": 3,
11+
"code": 4,
12+
"message": 5
13+
}
14+
],
15+
"owner": "pylint-warning"
16+
},
17+
{
18+
"severity": "error",
19+
"pattern": [
20+
{
21+
"regexp": "^([^:]+):(\\d+):(\\d+): (E\\d+): \\033\\[[\\d;]+m([^\\033]+).*$",
22+
"file": 1,
23+
"line": 2,
24+
"column": 3,
25+
"code": 4,
26+
"message": 5
27+
}
28+
],
29+
"owner": "pylint-error"
30+
}
31+
]
32+
}

.github/workflows/cd.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: docker-deploy
2+
on:
3+
release:
4+
types: [published]
5+
6+
jobs:
7+
docker-deploy:
8+
permissions: write-all
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v4
13+
- name: Free Disk Space (Ubuntu)
14+
uses: jlumbroso/[email protected]
15+
# - name: 'CI docker base'
16+
# uses: ./.github/docker-base-action
17+
# with:
18+
# base_tag: pytorch2.2.1-cuda12.3.1-ros2humble
19+
# github_token: ${{ secrets.GITHUB_TOKEN }}
20+
# - name: cleanup
21+
# run: docker system prune -a -f
22+
# - name: 'CI docker base'
23+
# uses: ./.github/docker-base-action
24+
# with:
25+
# base_tag: pytorch2.2.1-ros2humble
26+
# github_token: ${{ secrets.GITHUB_TOKEN }}
27+
# - name: cleanup
28+
# run: docker system prune -a -f
29+
# - name: 'CI docker base'
30+
# uses: ./.github/docker-base-action
31+
# with:
32+
# base_tag: pytorch2.2.1-cuda12.3.1
33+
# github_token: ${{ secrets.GITHUB_TOKEN }}
34+
# - name: cleanup
35+
# run: docker system prune -a -f
36+
- name: 'CI docker base'
37+
uses: ./.github/docker-base-action
38+
with:
39+
base_tag: pytorch2.2.1
40+
github_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/ci_docker.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

.github/workflows/ghaction-doxygen-ghpages.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
name: doxygen-ghpages
12
on:
23
release:
34
types: [published]

.gitignore

Lines changed: 118 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,8 @@ osm_dataset_generator/cache/
33
osm_dataset_generator/leaflet_geojson_viz/data/
44
doc/html/
55
doc/latex/
6-
7-
# Prerequisites
8-
*.d
9-
10-
# Compiled Object files
11-
*.slo
12-
*.lo
13-
*.o
14-
*.obj
15-
16-
# Precompiled Headers
17-
*.gch
18-
*.pch
19-
20-
# Compiled Dynamic libraries
21-
*.so
22-
*.dylib
23-
*.dll
24-
25-
# Fortran module files
26-
*.mod
27-
*.smod
28-
29-
# Compiled Static libraries
30-
*.lai
31-
*.la
32-
*.a
33-
*.lib
34-
35-
# Executables
36-
*.exe
37-
*.out
38-
*.app
39-
6+
/pybind11
7+
third_party/
408

419
# Byte-compiled / optimized / DLL files
4210
__pycache__/
@@ -51,6 +19,7 @@ __pycache__/
5119
build/
5220
develop-eggs/
5321
dist/
22+
wheelhouse/
5423
downloads/
5524
eggs/
5625
.eggs/
@@ -76,9 +45,124 @@ MANIFEST
7645
pip-log.txt
7746
pip-delete-this-directory.txt
7847

48+
# Unit test / coverage reports
49+
htmlcov/
50+
.tox/
51+
.nox/
52+
.coverage
53+
.coverage.*
54+
.cache
55+
nosetests.xml
56+
coverage.xml
57+
*.cover
58+
*.py,cover
59+
.hypothesis/
60+
.pytest_cache/
61+
cover/
62+
63+
# Translations
64+
*.mo
65+
*.pot
66+
67+
# Django stuff:
68+
*.log
69+
local_settings.py
70+
db.sqlite3
71+
db.sqlite3-journal
72+
73+
# Flask stuff:
74+
instance/
75+
.webassets-cache
76+
77+
# Scrapy stuff:
78+
.scrapy
79+
80+
# Sphinx documentation
81+
docs/_build/
82+
83+
# PyBuilder
84+
.pybuilder/
85+
target/
86+
7987
# Jupyter Notebook
8088
.ipynb_checkpoints
8189

8290
# IPython
8391
profile_default/
8492
ipython_config.py
93+
94+
# pyenv
95+
# For a library or package, you might want to ignore these files since the code is
96+
# intended to run in multiple environments; otherwise, check them in:
97+
# .python-version
98+
99+
# pipenv
100+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
101+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
102+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
103+
# install all needed dependencies.
104+
#Pipfile.lock
105+
106+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
107+
__pypackages__/
108+
109+
# Celery stuff
110+
celerybeat-schedule
111+
celerybeat.pid
112+
113+
# SageMath parsed files
114+
*.sage.py
115+
116+
# Environments
117+
.env
118+
.venv
119+
env/
120+
venv/
121+
ENV/
122+
env.bak/
123+
venv.bak/
124+
125+
# Spyder project settings
126+
.spyderproject
127+
.spyproject
128+
129+
# Rope project settings
130+
.ropeproject
131+
132+
# mkdocs documentation
133+
/site
134+
135+
# mypy
136+
.mypy_cache/
137+
.dmypy.json
138+
dmypy.json
139+
140+
# Pyre type checker
141+
.pyre/
142+
143+
# pytype static type analyzer
144+
.pytype/
145+
146+
# Cython debug symbols
147+
cython_debug/
148+
149+
# setuptools_scm
150+
src/*/_version.py
151+
python/*/_version.py
152+
153+
154+
# ruff
155+
.ruff_cache/
156+
157+
# OS specific stuff
158+
.DS_Store
159+
.DS_Store?
160+
._*
161+
.Spotlight-V100
162+
.Trashes
163+
ehthumbs.db
164+
Thumbs.db
165+
166+
# Common editor files
167+
*~
168+
*.swp

0 commit comments

Comments
 (0)