Skip to content

Commit 3fd5b15

Browse files
committed
CHANGELOG: Migrate from single file to split files for ease of maintenance
Signed-off-by: Siddharth Chandrasekaran <sidcha.dev@gmail.com>
1 parent 46e45ba commit 3fd5b15

32 files changed

Lines changed: 1282 additions & 35 deletions

.github/workflows/release.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
py_version="$(perl -ne 'print $1 if (/^project_version = "(\d+\.\d+\.\d+)"/)' python/setup.py)"
4444
platformio_version="$(perl -ne 'print $1 if (/^ "version": "(\d+\.\d+\.\d+)",$/)' library.json)"
4545
config_version="$(perl -ne 'print $1 if (/^#define PROJECT_VERSION\s+"(\d+\.\d+\.\d+)"/)' platformio/osdp_config.h)"
46+
release_file="CHANGELOG/RELEASE-${tag}.md"
4647
4748
for declared in "${cmake_version}" "${py_version}" "${platformio_version}" "${config_version}"; do
4849
if [[ "${declared}" != "${version}" ]]; then
@@ -51,14 +52,15 @@ jobs:
5152
fi
5253
done
5354
54-
if ! grep -q -E "^v${version} " CHANGELOG; then
55-
echo "CHANGELOG is missing an entry for ${tag}" >&2
55+
if [[ ! -f "${release_file}" ]]; then
56+
echo "CHANGELOG is missing ${release_file} for ${tag}" >&2
5657
exit 1
5758
fi
5859
59-
perl -e 'local $/; $_=<>; print $1 if (/-{4,}\n+\d+.*?\n+(.*?)\n+v\d+\./sg)' CHANGELOG > RELEASE.txt
60+
python3 scripts/changelog_tool.py validate --file "${release_file}" --expected-version "${tag}" --quiet
61+
python3 scripts/changelog_tool.py notes --file "${release_file}" --output RELEASE.txt
6062
if [[ ! -s RELEASE.txt ]]; then
61-
echo "Failed to extract release notes from CHANGELOG" >&2
63+
echo "Failed to extract release notes from ${release_file}" >&2
6264
exit 1
6365
fi
6466

.github/workflows/reusable-ci.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@ on:
1010
workflow_call:
1111

1212
jobs:
13+
Changelog:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v5
17+
with:
18+
submodules: recursive
19+
- name: Validate changelog files
20+
run: python3 scripts/changelog_tool.py validate --dir CHANGELOG --quiet
21+
1322
CmakeBuild:
1423
runs-on: ubuntu-latest
1524
steps:
File renamed without changes.

CHANGELOG/RELEASE-v0.1-alpha.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
release_date: 2019-11-15
3+
release_version: v0.1-alpha
4+
---
5+
6+
libosdp has reached a point where all the primary featured are in place.
7+
8+
## Known limitations
9+
10+
- Master key management is missing
11+
- Install mode stuffs need to be ironed out
12+
- comset command needs to be handled correctly

CHANGELOG/RELEASE-v0.2-beta-1.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
release_date: 2019-11-29
3+
release_version: v0.2-beta-1
4+
---
5+
6+
Release notes for v0.2-beta-1.
7+
8+
## Features
9+
10+
- Master key management in CP and PD
11+
- Many small issue fixes
12+
13+
## Known limitations
14+
15+
- install mode stuffs need to be ironed out comset command needs to be
16+
- handled correctly

CHANGELOG/RELEASE-v0.3-beta-2.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
release_date: 2019-12-15
3+
release_version: v0.3-beta-2
4+
---
5+
6+
Release notes for v0.3-beta-2.
7+
8+
## Features
9+
10+
- Added new tool osdpctl to create, manage and control osdp devices
11+
- Add PD context to CP logs for clarity
12+
13+
## Enhancements and fixes
14+
15+
- Fix PD stale pointer issue in osdp_setup
16+
- Fix MAC generation bug in Secure Channel
17+
- Fix Data offset bug in Secure Channel
18+
- Fix issues reported by -Wimplicit-fallthrough
19+
- Fix memleak in PD command queue alloc
20+
- Fix wrap around bug in cmd_queue
21+
- Fix many clang static code analysis issues

CHANGELOG/RELEASE-v0.4-beta-3.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
release_date: 2020-01-17
3+
release_version: v0.4-beta-3
4+
---
5+
6+
Release notes for v0.4-beta-3.
7+
8+
## Fixes
9+
10+
- fix unhandled reply-code bug
11+
- fix issue where reader goes permanent reader offline
12+
- retry SC after OSDP_PD_SC_RETRY_SEC when possible
13+
- fix USE_SCBKD inversion bug
14+
- fix bug in MAC add/check for SCS_15
15+
16+
## Notes
17+
18+
- This tag has CP mode verified with HID RK40 readers. This can act as reference point for all PD change validation hereafter.

CHANGELOG/RELEASE-v1.0.0.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
release_date: 2020-05-29
3+
release_version: v1.0.0
4+
---
5+
6+
This is the first release of libosdp. It has been in pre-release for a
7+
long time now and has been tested sufficiently well for a first release.
8+
Rate of bug fixes has gone down significantly.
9+
10+
## Features
11+
12+
- Supports OSDP CP mode of operation
13+
- Supports OSDP PD mode of operation
14+
- Supports Secure Channel for communication
15+
- Ships a tool: osdpctl to consume and library and setup/manage osdp devices
16+
- Documents key areas in the protocol that are of interest for consumers of this library.
17+
- So far, this library's CP implementation has been tested with multiple OSDP PDs including HID's devices and found to be working as expected. The PD implementation has been tested with it's own CP counterpart so this some level of confidence on the that too.

CHANGELOG/RELEASE-v1.1.0.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
release_date: 2020-06-28
3+
release_version: v1.1.0
4+
---
5+
6+
This release bumps up the minor number as the contract has changed. It
7+
introduces 2 major changes (first 2 in enhancements). The rest is all
8+
re-organization and fixes.
9+
10+
## Enhancements
11+
12+
- In PD Change app notification of incoming commands to polling to simplify API
13+
- Replace circular buffer command queue with linked list queue
14+
- Add SC status and status query methods
15+
- Add assert guards for exposed methods
16+
- Cleanup osdp.h by splitting it into multiple files
17+
- Split cmake rules into subdirectories
18+
19+
## Fixes
20+
21+
- Add PD address to REPLY_COM in pd_build_reply
22+
- Fix fd leak in read_pid
23+
- Fix missing null char at atohstr()
24+
- Fix memory under-alloc due to operator precedence issues

CHANGELOG/RELEASE-v1.2.0.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
release_date: 2020-08-15
3+
release_version: v1.2.0
4+
---
5+
6+
This release marks the first HEAD of initial PD support in Zephyr RTOS upstream
7+
(https://github.com/zephyrproject-rtos/zephyr). Lot of changes to coding style
8+
were made to upstream the PD sources without too much variation to the one here.
9+
10+
## Enhancements
11+
12+
- Add support for sphinx documentation builds see: https://libosdp.gotomain.io
13+
- Add a macro switch to disable Secure Channel
14+
- Add utils git-submodule and delete all copied ad-hoc utils from this repo
15+
- Add pkg-config file for libosdp
16+
- PD: When seq number 0 is received, invalidate SC status
17+
- Add github actions workflows for tests and release
18+
- Rewrite PD and CP fsm for zephyr integration
19+
- osdpctl: rewrite rs232.c into utils/serial.c
20+
- osdpctl: remove pid file in osdpctl stop. Also check return code of kill
21+
- Produce source and binary tarballs with cPack
22+
- Bring changes from zephyr PD, post review and apply it to CP as well
23+
- Control the externally exposed library symbols using `EXPORT` macro
24+
25+
## Fixes
26+
27+
- Make all internal methods static; scope all globals with `osdp_`
28+
- Add colors for various log levels of libosdp
29+
- Refactor all reference to struct osdp_pd as 'pd' everywhere
30+
- Fix static analysis issues identified by Xcode
31+
- travis: switch to Ubuntu 18.04 bionic for testing
32+
- osdpctl: Fix bug in `hex2int()`
33+
- osdpctl: Fix bug in load_scbk(); test key_store feature
34+
- osdpctl make config as the first argument for all commands
35+
- Fix sequence number 0 sent by CP does not reset connection in PD
36+
- osdpctl: Make PD message queue channel owner, responsible for cleanup
37+
- osdpctl: Fix segfault on channel cleanup code

0 commit comments

Comments
 (0)