Page MenuHomePhorge

No OneTemporary

Size
21 KB
Referenced Files
None
Subscribers
None
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1ddbc60..856f812 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,146 +1,148 @@
# This file is part of libkazv.
# SPDX-FileCopyrightText: 2022-2023 tusooa <tusooa@kazv.moe>
# SPDX-License-Identifier: AGPL-3.0-or-later
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
- if: $CI_COMMIT_BRANCH
stages:
- lint
- prepare
- build
- check-changelog
- doc
- pages
lint:
stage: lint
script: |
echo 'Verify that no source file contains tabs'
! egrep -R --exclude-dir=resources $'\t' src
rules: &build-rules
- changes: &src-chg
- .gitlab-ci.yml
- Dockerfile
- '**/*.cpp'
- '**/*.hpp'
- '**/CMakeLists.txt'
- '**/*.in'
- 'src/tests/resources/**'
'prepare:env':
stage: prepare
script: |
tag="${CI_COMMIT_BRANCH:-$CI_COMMIT_TAG}"
tag="$(echo "$tag" | sed -e "s/[^a-zA-Z0-9.]/-/g")"
echo "tag=$tag" >> prepare.env
artifacts:
reports:
dotenv: prepare.env
rules: *build-rules
'build:debug':
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script: |
mkdir -p /kaniko/.docker
echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
if [ $CI_PIPELINE_SOURCE == "merge_request_event" ]; then
/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg JOBS=1 --no-push
else
/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg JOBS=1 --destination $CI_REGISTRY_IMAGE/libkazv:$tag --destination $CI_REGISTRY_IMAGE/libkazv:$tag-debug
fi
dependencies: &build-deps
- prepare:env
rules: *build-rules
'build:production':
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script: |
mkdir -p /kaniko/.docker
echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
if [ $CI_PIPELINE_SOURCE == "merge_request_event" ]; then
/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg JOBS=1 --build-arg BUILD_TYPE=Release --no-push
else
/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg JOBS=1 --build-arg BUILD_TYPE=Release --destination $CI_REGISTRY_IMAGE/libkazv:$tag-prod
fi
dependencies: *build-deps
rules: *build-rules
'build:coverage':
stage: build
image:
name: reg.lily.kazv.moe/kazv/libkazv-deps/deps:servant
entrypoint: [""]
script: |
export BUILD_TYPE=Debug
export JOBS=1
export DEPS_INSTALL_DIR=/opt/libkazv-deps
export LIBKAZV_INSTALL_DIR=/opt/libkazv
mkdir build && cd build && \
export CC=gcc-9 CXX=g++-9 && \
cmake .. -DCMAKE_INSTALL_PREFIX="$LIBKAZV_INSTALL_DIR" -DCMAKE_PREFIX_PATH="$DEPS_INSTALL_DIR" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -Dlibkazv_BUILD_TESTS=ON \
-Dlibkazv_BUILD_EXAMPLES=ON -Dlibkazv_BUILD_KAZVJOB=ON -Dlibkazv_ENABLE_COVERAGE=ON -DCMAKE_CXX_FLAGS=-fsanitize=address && \
make -j$JOBS && \
make CTEST_OUTPUT_ON_FAILURE=1 test && \
gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml -r "${CI_PROJECT_DIR}" --object-directory src -e '.*/api/.*'
coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
paths:
- build/coverage.xml
reports:
coverage_report:
coverage_format: cobertura
path: build/coverage.xml
rules: *build-rules
'doc:build':
stage: doc
image: reg.lily.kazv.moe/kazv/libkazv-deps/deps:servant
dependencies: []
script:
- doxygen Doxyfile
artifacts:
paths:
- doc/html/
rules:
- changes: *src-chg
- changes: &doc-chg
- '**/*.md'
- .gitlab-ci.yml
- public/**/*
pages:
stage: pages
image: alpine
dependencies:
- 'doc:build'
script:
- mv -v doc/html public/api
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH != "servant"
when: never
- changes: *src-chg
- changes: *doc-chg
'check-changelog':
stage: check-changelog
image: alpine
dependencies: []
script:
- sh ./tools/check-changelog
rules:
+ - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^release\//
+ when: never
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "servant"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb21c00..d7947e1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,27 +1,68 @@
# Change log
+## 0.3.0
+
+### Added
+- Error handling for async functions. https://lily-is.land/kazv/libkazv/-/merge_requests/21
+- Add device management functions to Client. https://lily-is.land/kazv/libkazv/-/merge_requests/29
+- Allow Sdk::createSecondaryRoot() to have its initial value. https://lily-is.land/kazv/libkazv/-/merge_requests/31
+- Add local echo support. https://lily-is.land/kazv/libkazv/-/merge_requests/33
+- Recalculate which megolm sessions need to be rotated after changing trust level settings. https://lily-is.land/kazv/libkazv/-/merge_requests/34
+- Implement redactions. https://lily-is.land/kazv/libkazv/-/merge_requests/36
+- Update to csapi v1.3. https://lily-is.land/kazv/libkazv/-/merge_requests/40
+- Add room tagging functionality. https://lily-is.land/kazv/libkazv/-/merge_requests/41
+- Implement getting member events of typing users in a room. https://lily-is.land/kazv/libkazv/-/merge_requests/42
+- Implement getting and setting account data. https://lily-is.land/kazv/libkazv/-/merge_requests/44
+- Handle invite state. https://lily-is.land/kazv/libkazv/-/merge_requests/46
+- Add getter for individual room message. https://lily-is.land/kazv/libkazv/-/merge_requests/47
+- Add libkazvtestfixtures library. https://lily-is.land/kazv/libkazv/-/merge_requests/51
+- Add cursor for joined member events. https://lily-is.land/kazv/libkazv/-/merge_requests/54
+- Track event relationships. https://lily-is.land/kazv/libkazv/-/merge_requests/55
+- Implement a minimum set of push rules. https://lily-is.land/kazv/libkazv/-/merge_requests/58
+- Implement power levels handling. https://lily-is.land/kazv/libkazv/-/merge_requests/59
+- Add functions about get member ids and events by membership. https://lily-is.land/kazv/libkazv/-/merge_requests/62
+- Make Client::stopSyncing() return a Promise. https://lily-is.land/kazv/libkazv/-/merge_requests/64
+- Add preset param to Client::createRoom(). https://lily-is.land/kazv/libkazv/-/merge_requests/66
+
+### Fixed
+- Make compile under gcc12. https://lily-is.land/kazv/libkazv/-/merge_requests/23
+- Will now compile with Catch2-3. https://lily-is.land/kazv/libkazv/-/merge_requests/24
+- Fix Room::encrypted not implemented. https://lily-is.land/kazv/libkazv/-/merge_requests/25
+- Fix joining room with room alias. https://lily-is.land/kazv/libkazv/-/merge_requests/28
+- Do not run tests that require Internet in pipeline. https://lily-is.land/kazv/libkazv/-/merge_requests/35
+- Get the correct room avatar when set. https://lily-is.land/kazv/libkazv/-/merge_requests/43
+- Fix pagination. https://lily-is.land/kazv/libkazv/-/merge_requests/45
+- Make work with cpr-1.10. https://lily-is.land/kazv/libkazv/-/merge_requests/48
+- Fix log spamming and session key revealing. https://lily-is.land/kazv/libkazv/-/merge_requests/50
+- Fix store test with ASAN. https://lily-is.land/kazv/libkazv/-/merge_requests/52
+- Fix AES256CTRDesc use-after-free error. https://lily-is.land/kazv/libkazv/-/merge_requests/53
+- Avoid creation of multiple room cursors. https://lily-is.land/kazv/libkazv/-/merge_requests/57
+- Minimize the copying of Crypto to improve performance. https://lily-is.land/kazv/libkazv/-/merge_requests/61
+- Include `<random>` properly in random-generator.hpp. https://lily-is.land/kazv/libkazv/-/merge_requests/63
+- Improve reducer performance by using immer::diff to compare device lists. https://lily-is.land/kazv/libkazv/-/merge_requests/65
+
## 0.2.1
- Fix crash when receiving a redacted encrypted event. https://lily-is.land/kazv/libkazv/-/commit/98870fa04fa78361f5092cd77f88895e4a228d34
## 0.2.0
- Support streaming uploads. https://gitlab.com/kazv/libkazv/-/merge_requests/1
- Fix ctx.dispatch() returning promises resolving to empty EffectStatus. https://gitlab.com/kazv/libkazv/-/commit/c7796a6ab8325773bf47fe83254a377204d6abcf
- Prevent leaking full file path when uploading to matrix server by using only basename for the request.
- Deal with timeline gaps properly. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/1
- Record state events in timeline. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/2
- Add support for streaming download. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/3
- Add support for Boost.Serialization. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/4
- Support encrypted attachments. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/5
- Allow custom random generator with crypto. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/6
- Support auto-discovery. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/12
- Support profile API. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/13
- Support kick/ban API. https://lily-is.land/kazv/libkazv/-/merge_requests/15
- Support room heroes. https://lily-is.land/kazv/libkazv/-/merge_requests/16
- Add coverage report. https://lily-is.land/kazv/libkazv/-/merge_requests/17
### Deprecated
- `makeDefaultEncryptedSdk()` is now deprecated. Use `makeDefaultSdkWithCryptoRandom()` instead.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 97e7a19..c46f737 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,114 +1,114 @@
# Do not let the option()s override variables here
cmake_minimum_required(VERSION 3.13)
if(NOT DEFINED PROJECT_NAME)
if(NOT DEFINED libkazv_INSTALL_HEADERS)
set(libkazv_INSTALL_HEADERS ON)
endif()
endif()
project(libkazv)
set(libkazvSourceRoot ${CMAKE_CURRENT_SOURCE_DIR})
set(libkazv_VERSION_MAJOR 0)
-set(libkazv_VERSION_MINOR 2)
-set(libkazv_VERSION_PATCH 1)
+set(libkazv_VERSION_MINOR 3)
+set(libkazv_VERSION_PATCH 0)
set(libkazv_VERSION_STRING ${libkazv_VERSION_MAJOR}.${libkazv_VERSION_MINOR}.${libkazv_VERSION_PATCH})
-set(libkazv_SOVERSION 2)
+set(libkazv_SOVERSION 3)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
option(libkazv_BUILD_TESTS "Build tests" ON)
option(libkazv_BUILD_EXAMPLES "Build examples" ON)
option(libkazv_BUILD_KAZVJOB "Build libkazvjob the async and networking library" ON)
option(libkazv_OUTPUT_LEVEL "Output level: Debug>=90, Info>=70, Quiet>=20, no output=1" 0)
option(libkazv_ENABLE_COVERAGE "Enable code coverage information" OFF)
if(libkazv_ENABLE_COVERAGE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -fPIC -O0")
endif()
if((libkazv_BUILD_TESTS OR libkazv_BUILD_EXAMPLES) AND NOT libkazv_BUILD_KAZVJOB)
message(FATAL_ERROR
"You asked kazvjob not to be built, but asked to build tests or examples. Tests and examples both depend on kazvjob. This is not possible.")
endif()
if(libkazv_BUILD_TESTS)
set(BUILD_TESTING ON)
include(CTest)
set(CMAKE_CTEST_ARGUMENTS --output-on-failure)
endif()
# Build shared libraries by default
if(NOT DEFINED BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS ON)
endif()
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(LIBKAZV_BUILT_WITH_DEBUG 1)
else()
set(LIBKAZV_BUILT_WITH_DEBUG 0)
endif()
find_package(Boost REQUIRED COMPONENTS serialization regex)
if(libkazv_BUILD_KAZVJOB)
find_package(cpr REQUIRED)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
endif()
if(libkazv_BUILD_TESTS)
find_package(Catch2 REQUIRED)
endif()
find_package(nlohmann_json REQUIRED)
find_package(Immer REQUIRED)
find_package(Zug REQUIRED)
find_package(Lager REQUIRED)
find_package(cryptopp REQUIRED)
find_package(Olm REQUIRED)
if(libkazv_BUILD_EXAMPLES)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBHTTPSERVER REQUIRED libhttpserver)
endif()
if(libkazv_OUTPUT_LEVEL)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLIBKAZV_OUTPUT_LEVEL=${libkazv_OUTPUT_LEVEL}")
endif()
include(GNUInstallDirs)
set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/libkazv)
add_subdirectory(src)
install(EXPORT libkazvTargets
NAMESPACE
libkazv::
DESTINATION
${ConfigPackageLocation}
)
install(
FILES cmake/libkazvConfig.cmake
DESTINATION ${ConfigPackageLocation})
# cpr does not install a good config file.
# We use the find module instead.
install(
FILES cmake/Findcpr.cmake
cmake/Findcryptopp.cmake
DESTINATION ${ConfigPackageLocation})
diff --git a/changelogs/21.add b/changelogs/21.add
deleted file mode 100644
index 252304c..0000000
--- a/changelogs/21.add
+++ /dev/null
@@ -1 +0,0 @@
-Error handling for async functions
diff --git a/changelogs/22.skip b/changelogs/22.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/23.fix b/changelogs/23.fix
deleted file mode 100644
index 5822a9c..0000000
--- a/changelogs/23.fix
+++ /dev/null
@@ -1 +0,0 @@
-Make compile under gcc12
diff --git a/changelogs/24.fix b/changelogs/24.fix
deleted file mode 100644
index f33ed00..0000000
--- a/changelogs/24.fix
+++ /dev/null
@@ -1 +0,0 @@
-Will now compile with Catch2-3
diff --git a/changelogs/25.fix b/changelogs/25.fix
deleted file mode 100644
index 60f7cd3..0000000
--- a/changelogs/25.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix Room::encrypted not implemented
\ No newline at end of file
diff --git a/changelogs/27.skip b/changelogs/27.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/28.fix b/changelogs/28.fix
deleted file mode 100644
index 7d294c9..0000000
--- a/changelogs/28.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix joining room with room alias
diff --git a/changelogs/29.add b/changelogs/29.add
deleted file mode 100644
index 776b685..0000000
--- a/changelogs/29.add
+++ /dev/null
@@ -1 +0,0 @@
-Add device management functions to Client
diff --git a/changelogs/30.skip b/changelogs/30.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/31.add b/changelogs/31.add
deleted file mode 100644
index 928f4bf..0000000
--- a/changelogs/31.add
+++ /dev/null
@@ -1 +0,0 @@
-Allow Sdk::createSecondaryRoot() to have its initial value
diff --git a/changelogs/32.skip b/changelogs/32.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/33.add b/changelogs/33.add
deleted file mode 100644
index 953cd62..0000000
--- a/changelogs/33.add
+++ /dev/null
@@ -1 +0,0 @@
-Add local echo support
diff --git a/changelogs/34.add b/changelogs/34.add
deleted file mode 100644
index 581b550..0000000
--- a/changelogs/34.add
+++ /dev/null
@@ -1 +0,0 @@
-Recalculate which megolm sessions need to be rotated after changing trust level settings
diff --git a/changelogs/35.fix b/changelogs/35.fix
deleted file mode 100644
index f54a2b0..0000000
--- a/changelogs/35.fix
+++ /dev/null
@@ -1 +0,0 @@
-Do not run tests that require Internet in pipeline
diff --git a/changelogs/36.add b/changelogs/36.add
deleted file mode 100644
index 70d9eed..0000000
--- a/changelogs/36.add
+++ /dev/null
@@ -1 +0,0 @@
-Implement redactions
diff --git a/changelogs/37.skip b/changelogs/37.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/38.skip b/changelogs/38.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/39.skip b/changelogs/39.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/40.add b/changelogs/40.add
deleted file mode 100644
index 6a8571f..0000000
--- a/changelogs/40.add
+++ /dev/null
@@ -1 +0,0 @@
-Update to csapi v1.3
diff --git a/changelogs/41.add b/changelogs/41.add
deleted file mode 100644
index 73532f5..0000000
--- a/changelogs/41.add
+++ /dev/null
@@ -1 +0,0 @@
-Add room tagging functionality
diff --git a/changelogs/42.add b/changelogs/42.add
deleted file mode 100644
index d163ae2..0000000
--- a/changelogs/42.add
+++ /dev/null
@@ -1 +0,0 @@
-Implement getting member events of typing users in a room
diff --git a/changelogs/43.fix b/changelogs/43.fix
deleted file mode 100644
index ff60cfc..0000000
--- a/changelogs/43.fix
+++ /dev/null
@@ -1 +0,0 @@
-Get the correct room avatar when set
diff --git a/changelogs/44.add b/changelogs/44.add
deleted file mode 100644
index 93e0a71..0000000
--- a/changelogs/44.add
+++ /dev/null
@@ -1 +0,0 @@
-Implement getting and setting account data
diff --git a/changelogs/45.fix b/changelogs/45.fix
deleted file mode 100644
index c6aaede..0000000
--- a/changelogs/45.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix pagination
diff --git a/changelogs/46.add b/changelogs/46.add
deleted file mode 100644
index 4561784..0000000
--- a/changelogs/46.add
+++ /dev/null
@@ -1 +0,0 @@
-Handle invite state
diff --git a/changelogs/47.add b/changelogs/47.add
deleted file mode 100644
index b79caa9..0000000
--- a/changelogs/47.add
+++ /dev/null
@@ -1 +0,0 @@
-Add getter for individual room message
diff --git a/changelogs/48.fix b/changelogs/48.fix
deleted file mode 100644
index b703e7f..0000000
--- a/changelogs/48.fix
+++ /dev/null
@@ -1 +0,0 @@
-Make work with cpr-1.10
diff --git a/changelogs/50.fix b/changelogs/50.fix
deleted file mode 100644
index 09773ec..0000000
--- a/changelogs/50.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix log spamming and session key revealing
diff --git a/changelogs/51.add b/changelogs/51.add
deleted file mode 100644
index 8f965c4..0000000
--- a/changelogs/51.add
+++ /dev/null
@@ -1 +0,0 @@
-Add libkazvtestfixtures library
diff --git a/changelogs/52.fix b/changelogs/52.fix
deleted file mode 100644
index 0890df4..0000000
--- a/changelogs/52.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix store test with ASAN
diff --git a/changelogs/53.fix b/changelogs/53.fix
deleted file mode 100644
index 89c8966..0000000
--- a/changelogs/53.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix AES256CTRDesc use-after-free error
diff --git a/changelogs/54.add b/changelogs/54.add
deleted file mode 100644
index b7e7118..0000000
--- a/changelogs/54.add
+++ /dev/null
@@ -1 +0,0 @@
-Add cursor for joined member events
diff --git a/changelogs/55.add b/changelogs/55.add
deleted file mode 100644
index 3eb53d5..0000000
--- a/changelogs/55.add
+++ /dev/null
@@ -1 +0,0 @@
-Track event relationships
diff --git a/changelogs/56.skip b/changelogs/56.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/57.fix b/changelogs/57.fix
deleted file mode 100644
index 5a78dd7..0000000
--- a/changelogs/57.fix
+++ /dev/null
@@ -1 +0,0 @@
-Avoid creation of multiple room cursors
diff --git a/changelogs/58.add b/changelogs/58.add
deleted file mode 100644
index deb22d9..0000000
--- a/changelogs/58.add
+++ /dev/null
@@ -1 +0,0 @@
-Implement a minimum set of push rules
diff --git a/changelogs/59.add b/changelogs/59.add
deleted file mode 100644
index 22111d9..0000000
--- a/changelogs/59.add
+++ /dev/null
@@ -1 +0,0 @@
-Implement power levels handling
diff --git a/changelogs/60.skip b/changelogs/60.skip
deleted file mode 100644
index e69de29..0000000
diff --git a/changelogs/61.fix b/changelogs/61.fix
deleted file mode 100644
index 2e28e6c..0000000
--- a/changelogs/61.fix
+++ /dev/null
@@ -1 +0,0 @@
-Minimize the copying of Crypto to improve performance
diff --git a/changelogs/62.add b/changelogs/62.add
deleted file mode 100644
index 5730f61..0000000
--- a/changelogs/62.add
+++ /dev/null
@@ -1 +0,0 @@
-Add functions about get member ids and events by membership
diff --git a/changelogs/63.fix b/changelogs/63.fix
deleted file mode 100644
index 05466cc..0000000
--- a/changelogs/63.fix
+++ /dev/null
@@ -1 +0,0 @@
-Include <random> properly in random-generator.hpp
diff --git a/changelogs/64.add b/changelogs/64.add
deleted file mode 100644
index 2d5a979..0000000
--- a/changelogs/64.add
+++ /dev/null
@@ -1 +0,0 @@
-Make Client::stopSyncing() return a Promise
diff --git a/changelogs/65.fix b/changelogs/65.fix
deleted file mode 100644
index 1fba554..0000000
--- a/changelogs/65.fix
+++ /dev/null
@@ -1 +0,0 @@
-Improve reducer performance by using immer::diff to compare device lists
diff --git a/changelogs/66.add b/changelogs/66.add
deleted file mode 100644
index c42ba58..0000000
--- a/changelogs/66.add
+++ /dev/null
@@ -1 +0,0 @@
-Add preset param to Client::createRoom()
diff --git a/tools/collect-changelog b/tools/collect-changelog
new file mode 100755
index 0000000..a62332b
--- /dev/null
+++ b/tools/collect-changelog
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+url() {
+ local mrId="$1"
+ echo "https://lily-is.land/kazv/libkazv/-/merge_requests/$mrId"
+}
+
+collectType() {
+ local suffix="$1"
+ local header="$2"
+ local printed=0
+ local mrId=
+ for file in changelogs/*."$suffix"; do
+ if [ '!' -f "$file" ]; then
+ continue
+ fi
+ if [ "$printed" = 0 ]; then
+ echo
+ echo "### $header"
+ printed=1
+ fi
+ # Normalize any trailing newlines/spaces, etc.
+ mrId="$(basename "$file" ".$suffix")"
+ echo "- $(cat "$file"). $(url "$mrId")"
+ done
+}
+
+collectType security Security
+collectType add Added
+collectType fix Fixed
+collectType remove Removed
+
+rm changelogs/*

File Metadata

Mime Type
text/x-diff
Expires
Mon, Aug 10, 8:01 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1724900
Default Alt Text
(21 KB)

Event Timeline