Skip to content

Commit 5d06482

Browse files
committed
feat: Make the project public!
Contents are copied over from the Insiders version since the relevant funding goal has been reached.
1 parent 87afb55 commit 5d06482

37 files changed

+877
-504
lines changed

.copier-answers.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Changes here will be overwritten by Copier
2-
_commit: 1.0.0
2+
_commit: 1.2.0
33
_src_path: gh:mkdocstrings/handler-template
44
author_email: [email protected]
55
author_fullname: Timothée Mazzucotelli
@@ -14,7 +14,7 @@ insiders_repository_name: mkdocstrings-shell
1414
language: Shell
1515
project_description: A shell scripts/libraries handler for mkdocstrings.
1616
project_name: mkdocstrings-shell
17-
public_release: false
17+
public_release: true
1818
python_package_distribution_name: mkdocstrings-shell
1919
python_package_import_name: shell
2020
repository_name: shell

.github/ISSUE_TEMPLATE/1-bug.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
name: Bug report
3+
about: Create a bug report to help us improve.
4+
title: "bug: "
5+
labels: unconfirmed
6+
assignees: [pawamoy]
7+
---
8+
9+
### Description of the bug
10+
<!-- Please provide a clear and concise description of what the bug is. -->
11+
12+
### To Reproduce
13+
<!-- Please provide a Minimal Reproducible Example (MRE) if possible.
14+
Try to boil down the problem to a few lines of code.
15+
Your code should run by simply copying and pasting it.
16+
17+
Example:
18+
19+
```
20+
git clone https://github.com/username/repro
21+
cd repro
22+
python -m venv .venv
23+
. .venv/bin/activate
24+
pip install -r requirements.txt
25+
... # command or code showing the issue
26+
```
27+
-->
28+
29+
```
30+
WRITE MRE / INSTRUCTIONS HERE
31+
```
32+
33+
### Full traceback
34+
<!-- Please provide the full error message / traceback if any, by pasting it in the code block below.
35+
No screenshots! -->
36+
37+
<details><summary>Full traceback</summary>
38+
39+
```python
40+
PASTE TRACEBACK HERE
41+
```
42+
43+
</details>
44+
45+
### Expected behavior
46+
<!-- Please provide a clear and concise description of what you expected to happen. -->
47+
48+
### Environment information
49+
<!-- Please run the following command in your repository and paste its output below it,
50+
redacting sensitive information. -->
51+
52+
```bash
53+
python -m mkdocstrings_handlers.shell.debug # | xclip -selection clipboard
54+
```
55+
56+
PASTE MARKDOWN OUTPUT HERE
57+
58+
### Additional context
59+
<!-- Add any other relevant context about the problem here,
60+
like links to other issues or pull requests, screenshots, etc.
61+
-->

.github/ISSUE_TEMPLATE/2-feature.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project.
4+
title: "feature: "
5+
labels: feature
6+
assignees: pawamoy
7+
---
8+
9+
### Is your feature request related to a problem? Please describe.
10+
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]. -->
11+
12+
### Describe the solution you'd like
13+
<!-- A clear and concise description of what you want to happen. -->
14+
15+
### Describe alternatives you've considered
16+
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
17+
18+
### Additional context
19+
<!-- Add any other context or screenshots about the feature request here. -->

.github/ISSUE_TEMPLATE/3-docs.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Documentation update
3+
about: Point at unclear, missing or outdated documentation.
4+
title: "docs: "
5+
labels: docs
6+
assignees: pawamoy
7+
---
8+
9+
### Is something unclear, missing or outdated in our documentation?
10+
<!-- A clear and concise description of what the documentation issue is. Ex. I can't find an explanation on feature [...]. -->
11+
12+
### Relevant code snippets
13+
<!-- If the documentation issue is related to code, please provide relevant code snippets. -->
14+
15+
### Link to the relevant documentation section
16+
<!-- Add a link to the relevant section of our documentation, or any addition context. -->

.github/ISSUE_TEMPLATE/4-change.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
name: Change request
3+
about: Suggest any other kind of change for this project.
4+
title: "change: "
5+
assignees: pawamoy
6+
---
7+
8+
### Is your change request related to a problem? Please describe.
9+
<!-- A clear and concise description of what the problem is. -->
10+
11+
### Describe the solution you'd like
12+
<!-- A clear and concise description of what you want to happen. -->
13+
14+
### Describe alternatives you've considered
15+
<!-- A clear and concise description of any alternative solutions you've considered. -->
16+
17+
### Additional context
18+
<!-- Add any other context or screenshots about the change request here. -->

.github/workflows/ci.yml

+29-15
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@ jobs:
2929
- name: Fetch all tags
3030
run: git fetch --depth=1 --tags
3131

32-
- name: Set up Python
32+
- name: Setup Python
3333
uses: actions/setup-python@v5
3434
with:
35-
python-version: "3.11"
35+
python-version: "3.12"
3636

37-
- name: Install uv
38-
run: pip install uv
37+
- name: Setup uv
38+
uses: astral-sh/setup-uv@v3
39+
with:
40+
enable-cache: true
41+
cache-dependency-glob: pyproject.toml
3942

4043
- name: Install dependencies
4144
run: make setup
@@ -49,9 +52,6 @@ jobs:
4952
- name: Check if the code is correctly typed
5053
run: make check-types
5154

52-
- name: Check for vulnerabilities in dependencies
53-
run: make check-dependencies
54-
5555
- name: Check for breaking changes in the API
5656
run: make check-api
5757

@@ -66,13 +66,17 @@ jobs:
6666
echo 'jobs=[
6767
{"os": "macos-latest"},
6868
{"os": "windows-latest"},
69-
{"python-version": "3.9"},
7069
{"python-version": "3.10"},
7170
{"python-version": "3.11"},
72-
{"python-version": "3.12"}
71+
{"python-version": "3.12"},
72+
{"python-version": "3.13"},
73+
{"python-version": "3.14"}
7374
]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
7475
else
75-
echo 'jobs=[]' >> $GITHUB_OUTPUT
76+
echo 'jobs=[
77+
{"os": "macos-latest", "resolution": "lowest-direct"},
78+
{"os": "windows-latest", "resolution": "lowest-direct"}
79+
]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
7680
fi
7781
7882
tests:
@@ -85,29 +89,39 @@ jobs:
8589
- macos-latest
8690
- windows-latest
8791
python-version:
88-
- "3.8"
8992
- "3.9"
9093
- "3.10"
9194
- "3.11"
9295
- "3.12"
96+
- "3.13"
97+
- "3.14"
98+
resolution:
99+
- highest
100+
- lowest-direct
93101
exclude: ${{ fromJSON(needs.exclude-test-jobs.outputs.jobs) }}
94102
runs-on: ${{ matrix.os }}
95-
continue-on-error: ${{ matrix.python-version == '3.12' }}
103+
continue-on-error: ${{ matrix.python-version == '3.14' }}
96104

97105
steps:
98106
- name: Checkout
99107
uses: actions/checkout@v4
100108

101-
- name: Set up Python
109+
- name: Setup Python
102110
uses: actions/setup-python@v5
103111
with:
104112
python-version: ${{ matrix.python-version }}
105113
allow-prereleases: true
106114

107-
- name: Install uv
108-
run: pip install uv
115+
- name: Setup uv
116+
uses: astral-sh/setup-uv@v3
117+
with:
118+
enable-cache: true
119+
cache-dependency-glob: pyproject.toml
120+
cache-suffix: py${{ matrix.python-version }}
109121

110122
- name: Install dependencies
123+
env:
124+
UV_RESOLUTION: ${{ matrix.resolution }}
111125
run: make setup
112126

113127
- name: Run the test suite

.github/workflows/release.yml

+9-11
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,30 @@ jobs:
1414
- name: Fetch all tags
1515
run: git fetch --depth=1 --tags
1616
- name: Setup Python
17-
uses: actions/setup-python@v4
18-
- name: Install build
19-
if: github.repository_owner == 'pawamoy-insiders'
20-
run: python -m pip install build
17+
uses: actions/setup-python@v5
18+
with:
19+
python-version: "3.12"
20+
- name: Setup uv
21+
uses: astral-sh/setup-uv@v3
2122
- name: Build dists
2223
if: github.repository_owner == 'pawamoy-insiders'
23-
run: python -m build
24+
run: uv tool run --from build pyproject-build
2425
- name: Upload dists artifact
2526
uses: actions/upload-artifact@v4
2627
if: github.repository_owner == 'pawamoy-insiders'
2728
with:
2829
name: shell-insiders
2930
path: ./dist/*
30-
- name: Install git-changelog
31-
if: github.repository_owner != 'pawamoy-insiders'
32-
run: pip install git-changelog
3331
- name: Prepare release notes
3432
if: github.repository_owner != 'pawamoy-insiders'
35-
run: git-changelog --release-notes > release-notes.md
33+
run: uv tool run git-changelog --release-notes > release-notes.md
3634
- name: Create release with assets
37-
uses: softprops/action-gh-release@v1
35+
uses: softprops/action-gh-release@v2
3836
if: github.repository_owner == 'pawamoy-insiders'
3937
with:
4038
files: ./dist/*
4139
- name: Create release
42-
uses: softprops/action-gh-release@v1
40+
uses: softprops/action-gh-release@v2
4341
if: github.repository_owner != 'pawamoy-insiders'
4442
with:
4543
body_path: release-notes.md

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
/.pdm-build/
1616
/htmlcov/
1717
/site/
18+
uv.lock
1819

1920
# cache
2021
.cache/

CONTRIBUTING.md

+7-10
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,23 @@ make setup
2323
> You can install it with:
2424
>
2525
> ```bash
26-
> python3 -m pip install --user pipx
27-
> pipx install uv
26+
> curl -LsSf https://astral.sh/uv/install.sh | sh
2827
> ```
2928
>
3029
> Now you can try running `make setup` again,
31-
> or simply `uv install`.
30+
> or simply `uv sync`.
3231
3332
You now have the dependencies installed.
3433
3534
Run `make help` to see all the available actions!
3635
3736
## Tasks
3837
39-
This project uses [duty](https://github.com/pawamoy/duty) to run tasks.
40-
A Makefile is also provided. The Makefile will try to run certain tasks
41-
on multiple Python versions. If for some reason you don't want to run the task
42-
on multiple Python versions, you run the task directly with `make run duty TASK`.
43-
44-
The Makefile detects if a virtual environment is activated,
45-
so `make` will work the same with the virtualenv activated or not.
38+
The entry-point to run commands and tasks is the `make` Python script,
39+
located in the `scripts` directory. Try running `make` to show the available commands and tasks.
40+
The *commands* do not need the Python dependencies to be installed,
41+
while the *tasks* do.
42+
The cross-platform tasks are written in Python, thanks to [duty](https://github.com/pawamoy/duty).
4643
4744
If you work in VSCode, we provide
4845
[an action to configure VSCode](https://pawamoy.github.io/copier-uv/work/#vscode-setup)

Makefile

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
# This Makefile is just here to allow auto-completion in the terminal.
44

55
actions = \
6+
allrun \
67
changelog \
78
check \
89
check-api \
9-
check-dependencies \
1010
check-docs \
1111
check-quality \
1212
check-types \
@@ -16,6 +16,7 @@ actions = \
1616
docs-deploy \
1717
format \
1818
help \
19+
multirun \
1920
release \
2021
run \
2122
setup \
@@ -24,4 +25,4 @@ actions = \
2425

2526
.PHONY: $(actions)
2627
$(actions):
27-
@bash scripts/make "$@"
28+
@python scripts/make "$@"

README.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# mkdocstrings-shell
22

3-
[![documentation](https://img.shields.io/badge/docs-mkdocs%20material-blue.svg?style=flat)](https://mkdocstrings.github.io/shell/)
4-
[![gitpod](https://img.shields.io/badge/gitpod-workspace-blue.svg?style=flat)](https://gitpod.io/#https://github.com/mkdocstrings/shell)
3+
[![ci](https://github.com/mkdocstrings/shell/workflows/ci/badge.svg)](https://github.com/mkdocstrings/shell/actions?query=workflow%3Aci)
4+
[![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://mkdocstrings.github.io/shell/)
5+
[![pypi version](https://img.shields.io/pypi/v/mkdocstrings-shell.svg)](https://pypi.org/project/mkdocstrings-shell/)
6+
[![gitpod](https://img.shields.io/badge/gitpod-workspace-708FCC.svg?style=flat)](https://gitpod.io/#https://github.com/mkdocstrings/shell)
57
[![gitter](https://badges.gitter.im/join%20chat.svg)](https://app.gitter.im/#/room/#shell:gitter.im)
68

79
A shell scripts/libraries handler for mkdocstrings.
@@ -10,9 +12,9 @@ to collect documentation from shell scripts.
1012

1113
## Installation
1214

13-
This project is available to sponsors only, through my Insiders program.
14-
See Insiders [explanation](https://mkdocstrings.github.io/shell/insiders/)
15-
and [installation instructions](https://mkdocstrings.github.io/shell/insiders/installation/).
15+
```bash
16+
pip install mkdocstrings-shell
17+
```
1618

1719
## Configuration
1820

config/git-changelog.toml

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ parse-refs = false
66
parse-trailers = true
77
sections = ["build", "deps", "feat", "fix", "refactor"]
88
template = "keepachangelog"
9+
versioning = "pep440"

config/pytest.ini

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
[pytest]
22
python_files =
33
test_*.py
4-
*_test.py
5-
tests.py
64
addopts =
75
--cov
86
--cov-config config/coverage.ini

config/ruff.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
target-version = "py38"
1+
target-version = "py39"
22
line-length = 120
33

44
[lint]

config/vscode/tasks.json

-6
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,6 @@
3131
"command": "scripts/make",
3232
"args": ["check-docs"]
3333
},
34-
{
35-
"label": "check-dependencies",
36-
"type": "process",
37-
"command": "scripts/make",
38-
"args": ["check-dependencies"]
39-
},
4034
{
4135
"label": "check-api",
4236
"type": "process",

0 commit comments

Comments
 (0)