Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F85631040
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
21 KB
Referenced Files
None
Subscribers
None
View Options
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
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Aug 10, 8:01 AM (1 d, 23 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1724900
Default Alt Text
(21 KB)
Attached To
Mode
rL libkazv
Attached
Detach File
Event Timeline
Log In to Comment