Skip to content

Commit 3223ae4

Browse files
committed
Initial setup
0 parents  commit 3223ae4

21 files changed

Lines changed: 990 additions & 0 deletions

.github/CONTRIBUTING.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Contributing to Publishing Python Packages
2+
3+
Thank you for your interest in improving repoman!
4+
Please read these guidelines to see how best to contribute to the project's success.
5+
6+
## Source code issues
7+
8+
If you've discovered an issue with the code in this repository, please [open an issue](https://github.com/easy-as-python/repo-man/issues/new/choose).
9+
Or, if you have time, please consider forking this repo and opening a pull request with the fix!
10+
11+
## Questions
12+
13+
If you just have a question or would like to discuss ideas, [start a discussion](https://github.com/easy-as-python/repo-man/discussions/new).
14+
15+
## Code of conduct
16+
17+
Please read the [code of conduct](../CODE_OF_CONDUCT.md) before contributing to this repository.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
name: Code issue
3+
about: Identify an issue with the source code
4+
title: A concise summary of the issue should go here
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
[Line(s) of code in question](<GitHub link to highlighted file lines>)
11+
12+
## Issue
13+
14+
<Description of the issue exhibited in the code>

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Description of issue
2+
3+
<Description of what's being addressed>
4+
5+
## Description of solution
6+
7+
<Description of how this pull request solves the issue>

.github/dependabot.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: 2
2+
3+
updates:
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
day: "monday"
9+
time: "09:00"
10+
11+
- package-ecosystem: "pip"
12+
directory: "/"
13+
schedule:
14+
interval: "weekly"
15+
day: "monday"
16+
time: "09:00"
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: "CodeQL"
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
schedule:
9+
- cron: '37 17 * * 0'
10+
11+
jobs:
12+
analyze:
13+
name: Analyze
14+
runs-on: ubuntu-latest
15+
permissions:
16+
actions: read
17+
contents: read
18+
security-events: write
19+
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
language: [ 'python' ]
24+
25+
steps:
26+
- name: Checkout repository
27+
uses: actions/checkout@v3
28+
29+
- name: Initialize CodeQL
30+
uses: github/codeql-action/init@v2
31+
with:
32+
languages: ${{ matrix.language }}
33+
34+
- name: Autobuild
35+
uses: github/codeql-action/autobuild@v2
36+
37+
- name: Perform CodeQL Analysis
38+
uses: github/codeql-action/analyze@v2

.github/workflows/packaging.yml

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
name: Packaging
2+
3+
on:
4+
- push
5+
6+
jobs:
7+
format:
8+
name: Check formatting
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v3
12+
13+
- uses: actions/setup-python@v4.0.0
14+
with:
15+
python-version: "3.12"
16+
17+
- name: Install tox
18+
run: python -m pip install tox
19+
20+
- name: Run black
21+
run: tox -e format
22+
23+
lint:
24+
name: Lint
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@v3
28+
29+
- uses: actions/setup-python@v4.0.0
30+
with:
31+
python-version: "3.12"
32+
33+
- name: Install tox
34+
run: python -m pip install tox
35+
36+
- name: Run flake8
37+
run: tox -e lint
38+
39+
typecheck:
40+
name: Type check
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v3
44+
45+
- uses: actions/setup-python@v4.0.0
46+
with:
47+
python-version: "3.12"
48+
49+
- name: Install tox
50+
run: python -m pip install tox
51+
52+
- name: Run mypy
53+
run: python -m tox -e typecheck
54+
55+
test:
56+
name: Test
57+
runs-on: ubuntu-latest
58+
strategy:
59+
matrix:
60+
python:
61+
- version: "3.12"
62+
toxenv: "py312"
63+
- version: "3.9"
64+
toxenv: "py39"
65+
steps:
66+
- uses: actions/checkout@v3
67+
68+
- uses: actions/setup-python@v4.0.0
69+
with:
70+
python-version: ${{ matrix.python.version }}
71+
72+
- name: Install tox
73+
run: python -m pip install tox
74+
75+
- name: Run pytest
76+
run: tox -e ${{ matrix.python.toxenv }}
77+
78+
docs:
79+
runs-on: ubuntu-latest
80+
steps:
81+
- uses: actions/checkout@v3
82+
83+
- name: Set up Python
84+
uses: actions/setup-python@v3
85+
with:
86+
python-version: 3.9
87+
88+
- name: Install tox
89+
run: python -m pip install tox
90+
91+
- name: Build docs
92+
run: tox -e docs
93+
94+
build_source_dist:
95+
name: Build source distribution
96+
runs-on: ubuntu-latest
97+
steps:
98+
- uses: actions/checkout@v3
99+
100+
- uses: actions/setup-python@v4.0.0
101+
with:
102+
python-version: "3.12"
103+
104+
- name: Install build
105+
run: python -m pip install build
106+
107+
- name: Run build
108+
run: python -m build --sdist
109+
110+
- uses: actions/upload-artifact@v3
111+
with:
112+
path: dist/*.tar.gz
113+
114+
publish:
115+
needs: [format, lint, typecheck, test, docs]
116+
if: startsWith(github.ref, 'refs/tags')
117+
runs-on: ubuntu-latest
118+
permissions:
119+
id-token: write
120+
contents: write
121+
steps:
122+
- uses: actions/checkout@v3
123+
124+
- name: Set up Python
125+
uses: actions/setup-python@v3
126+
with:
127+
python-version: 3.9
128+
129+
- name: Install pypa/build
130+
run: python -m pip install build
131+
132+
- name: Build distribution
133+
run: python -m build --outdir dist/
134+
135+
- name: Publish distribution to Test PyPI
136+
uses: pypa/gh-action-pypi-publish@release/v1
137+
with:
138+
repository_url: https://test.pypi.org/legacy/
139+
140+
- name: Publish distribution to PyPI
141+
uses: pypa/gh-action-pypi-publish@release/v1
142+
143+
- name: Publish distribution to GitHub release
144+
uses: softprops/action-gh-release@v1
145+
with:
146+
files: |
147+
dist/repoman-*.whl
148+
dist/repoman-*.tar.gz
149+
env:
150+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
pip-wheel-metadata/
24+
share/python-wheels/
25+
*.egg-info/
26+
.installed.cfg
27+
*.egg
28+
MANIFEST
29+
30+
# PyInstaller
31+
# Usually these files are written by a python script from a template
32+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
33+
*.manifest
34+
*.spec
35+
36+
# Installer logs
37+
pip-log.txt
38+
pip-delete-this-directory.txt
39+
40+
# Unit test / coverage reports
41+
htmlcov/
42+
.tox/
43+
.nox/
44+
.coverage
45+
.coverage.*
46+
.cache
47+
nosetests.xml
48+
coverage.xml
49+
*.cover
50+
*.py,cover
51+
.hypothesis/
52+
.pytest_cache/
53+
54+
# Translations
55+
*.mo
56+
*.pot
57+
58+
# Django stuff:
59+
*.log
60+
local_settings.py
61+
db.sqlite3
62+
db.sqlite3-journal
63+
64+
# Flask stuff:
65+
instance/
66+
.webassets-cache
67+
68+
# Scrapy stuff:
69+
.scrapy
70+
71+
# Sphinx documentation
72+
docs/_build/
73+
docs/reference/
74+
75+
# PyBuilder
76+
target/
77+
78+
# Jupyter Notebook
79+
.ipynb_checkpoints
80+
81+
# IPython
82+
profile_default/
83+
ipython_config.py
84+
85+
# pyenv
86+
.python-version
87+
88+
# pipenv
89+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
90+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
91+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
92+
# install all needed dependencies.
93+
#Pipfile.lock
94+
95+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
96+
__pypackages__/
97+
98+
# Celery stuff
99+
celerybeat-schedule
100+
celerybeat.pid
101+
102+
# SageMath parsed files
103+
*.sage.py
104+
105+
# Environments
106+
.env
107+
.venv
108+
env/
109+
venv/
110+
ENV/
111+
env.bak/
112+
venv.bak/
113+
114+
# Spyder project settings
115+
.spyderproject
116+
.spyproject
117+
118+
# Rope project settings
119+
.ropeproject
120+
121+
# mkdocs documentation
122+
/site
123+
124+
# mypy
125+
.mypy_cache/
126+
.dmypy.json
127+
dmypy.json
128+
129+
# Pyre type checker
130+
.pyre/
131+
132+
# Compiled extensions
133+
*.c
134+
135+
# repo-man
136+
repo-types.cfg

0 commit comments

Comments
 (0)