Skip to content

Commit 3394fb9

Browse files
committed
test: prepare for v1.0-release
1 parent 9436dbc commit 3394fb9

9 files changed

Lines changed: 110 additions & 8 deletions

File tree

.github/workflows/linkcheck.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Link check
2+
3+
on:
4+
push:
5+
pull_request:
6+
workflow_dispatch:
7+
schedule:
8+
- cron: "03 22 * * *"
9+
10+
jobs:
11+
linkcheck:
12+
runs-on: ubuntu-latest
13+
permissions:
14+
issues: write
15+
steps:
16+
- uses: actions/checkout@v4
17+
- name: Restore lychee cache
18+
uses: actions/cache@v4
19+
with:
20+
path: .lycheecache
21+
key: cache-lychee-${{ github.sha }}
22+
restore-keys: cache-lychee-
23+
- name: Check links with Lychee
24+
id: lychee
25+
uses: lycheeverse/lychee-action@v2
26+
with:
27+
fail: false
28+
args: >-
29+
--root-dir "$(pwd)"
30+
--timeout 20
31+
--max-retries 3
32+
--cache
33+
--max-cache-age 14d
34+
.
35+
- name: Create Issue From File
36+
if: steps.lychee.outputs.exit_code != 0
37+
uses: peter-evans/create-issue-from-file@v5
38+
with:
39+
title: Link Checker Report
40+
content-filepath: ./lychee/out.md
41+
labels: report, automated issue

.lycheeignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
## fsf.org redirects to www.fsf.org, but I don't want to change the LICENSE file due to that. Also, fsf.org fails evey now and then. Ignoring it ...
2+
https://fsf.org

.pre-commit-config.yaml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ repos:
3030

3131
- repo: local
3232
hooks:
33+
# Prevent direct pushes to main branch (bypass with --no-verify for releases)
34+
- id: no-push-to-main
35+
name: Prevent direct push to main branch
36+
entry: bash -c 'branch=$(git rev-parse --abbrev-ref HEAD); if [ "$branch" = "main" ] || [ "$branch" = "master" ]; then echo "Direct pushes to $branch are not allowed. Use --no-verify to bypass."; exit 1; fi'
37+
language: system
38+
pass_filenames: false
39+
stages: [pre-push]
3340
# Run ruff check without fixes on push (to catch any issues)
3441
- id: ruff-check-push
3542
name: Ruff check (no fixes)
@@ -47,6 +54,12 @@ repos:
4754
always_run: true
4855
stages: [pre-push]
4956

57+
- repo: https://github.com/compilerla/conventional-pre-commit
58+
rev: v3.4.0
59+
hooks:
60+
- id: conventional-pre-commit
61+
stages: [commit-msg]
62+
5063
- repo: https://github.com/fpgmaas/deptry.git
5164
rev: "0.24.0"
5265
hooks:
@@ -56,5 +69,5 @@ repos:
5669
rev: lychee-v0.22.0
5770
hooks:
5871
- id: lychee
59-
args: ["--no-progress", "--timeout", "10", "."]
60-
stages: [manual] # Run with: pre-commit run lychee --hook-stage manual
72+
args: ["--no-progress", "--timeout", "10", "--cache", "--max-cache-age", "1d", "."]
73+
stages: [pre-push]

CHANGELOG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,24 @@ This file should adhere to [Keep a Changelog](https://keepachangelog.com/en/1.1.
66

77
This project should adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), though some earlier releases may be incompatible with the SemVer standard.
88

9+
## [1.0.0] - 2026-03-15
10+
11+
### Changed
12+
- Minimum required `caldav` library version bumped to 3.0.2.
13+
- Text report now labels extra check information with "Extra check information:" header (rationale: it was a bit confusing with two "descriptions" on one feature).
14+
15+
### Documentation, tests, CI etc
16+
- Added `CONTRIBUTING.md` with contribution guidelines
17+
- Conventional commit message enforcement via `conventional-pre-commit` pre-commit hook
18+
- Link checker CI workflow
19+
- Development status classifier updated to Production/Stable
20+
21+
922
## [0.2.2] - 2026-03-11
1023

1124
Lots of changes have been done since v0.1.0. I'm not sure the changelog is complete, I didn't get time to do a proper QA on it. CalDAV version 3.0 is required.
1225

13-
Version 1.0 will be released in some few days, this may be considered as a pre-release.
26+
This was a pre-release; version 1.0.0 followed shortly after.
1427

1528
(Version 0.2.0/9.2.1 was never published due to problems with the auto-publish workflow)
1629

CONTRIBUTING.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Contributing to caldav-server-tester
2+
3+
Contributions are mostly welcome (but do inform about it if you've used AI or other tools). If the length of this text scares you, then I'd rather want you to skip reading and just produce a pull-request in GitHub. If you find it too difficult to write test code, etc, then you may skip it and hope the maintainer will fix it.
4+
5+
## What to include
6+
7+
Every submission should ideally include:
8+
9+
- **Test code** covering the new behaviour or bug fix
10+
- **Documentation** updates where relevant (README, USAGE.md)
11+
- **A changelog entry** in `CHANGELOG.md` under `[Unreleased]`
12+
13+
## Commit messages
14+
15+
Please follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and write messages in the imperative mood:
16+
17+
- `fix: correct time-range search handling for recurring events`
18+
- `feat: add free-busy query check`
19+
- `docs: update USAGE.md with --diff flag example`
20+
21+
Rather than:
22+
23+
- `This commit fixes the time-range search`
24+
- `Added free-busy query check`
25+
26+
Note: older commits in this repository predate this convention and do not follow it.
27+
28+
## Reporting bugs
29+
30+
Open an issue on GitHub. Include the server name/version and the output of `caldav-server-tester --version`.

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ For full usage information, including all CLI options and output formats, see
2929
## Installation
3030

3131
```
32-
pip install caldav-server-tester
32+
make install
3333
```
3434

35+
(This auto-detects `uv`, `pipx`, or `pip` and does the right thing.)
36+
3537
## Quick example
3638

3739
```

docs/TODO.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
* [x] New TODO-items have been added to USAGE.md. They should be fixed and removed from this file prior to the v1.0-release
55
* [x] Search for other TODO-notes in the project
66
* [x] `src/caldav_server_tester/caldav_server_tester_old.py` is 1028 lines, not imported anywhere - consider deleting it
7-
* [] It's needed to test it towards a server that does not allow calendars to be created
8-
* [] The text-based description should be prettified
7+
* [x] It's needed to test it towards a server that does not allow calendars to be created
8+
* [x] The text-based description should be prettified

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ authors = [
99
readme = "README.md"
1010
requires-python = ">=3.10"
1111
classifiers = [
12-
"Development Status :: 3 - Alpha",
12+
"Development Status :: 5 - Production/Stable",
1313
"Environment :: Console",
1414
"Intended Audience :: Developers",
1515
"Intended Audience :: System Administrators",
@@ -26,7 +26,7 @@ classifiers = [
2626
]
2727
keywords = ["caldav", "calendar", "testing", "compatibility", "server"]
2828
dependencies = [
29-
"caldav>=3.0.1",
29+
"caldav>=3.0.2",
3030
"click",
3131
"pyyaml",
3232
]

src/caldav_server_tester/checker.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ def report(self, verbose=False, show_diff=False, return_what=str):
226226
lines.append(f"## {feature}")
227227
lines.append(f"Feature support level found: {support}")
228228
if extras:
229+
lines.append("Extra check information:")
229230
lines.append(extra_str)
230231
if description:
231232
lines.append(f"Description of the feature: {description}")

0 commit comments

Comments
 (0)