mirror of
https://github.com/chatmail/core.git
synced 2026-04-05 23:22:11 +03:00
* integrate json-rpc repo https://github.com/deltachat/deltachat-jsonrpc * get target dir from cargo * fix clippy * use node 16 in ci use `npm i` instead of `npm ci` try fix ci script and fix a doc comment * fix get_provider_info docs * refactor function name * fix formatting make test pass fix clippy * update .gitignore * change now returns event names as id directly, no conversion method or number ids anymore also longer timeout for requesting test accounts from mailadm * fix compile after rebase * add json api to cffi and expose it in dc node * add some files to npm ignore that don't need to be in the npm package * add jsonrpc crate to set_core_version * add jsonrpc feature flag * call a jsonrpc function in segfault example * break loop on empty response * fix closing segfault thanks again to link2xt for figguring this out * activate other tests again * remove selectAccount from highlevel client * put jsonrpc stuff in own module * disable jsonrpc by default * add @deltachat/jsonrpc-client to make sure its dependencies are installed, too whwn installing dc-node * commit types.ts that dc-node has everything it needs to provide @deltachat/jsonrpc-client without an extra ts compile step * improve naming * Changes for tokio compat, upgrade to yerpc 0.3 This also changes the webserver binary to use axum in place of tide. * Improvements to typescript package * Improve docs. * improve docs, fix example * Fix CFFI for JSON-RPC changes * use stable toolchain not 1.56.0 * fix ci * try to fix ci * remove emtpy file allow unused code for new_from_arc * expose anyhow errors feature name was wrong * use multi-threaded runtime in JSON-RPC webserver * improve test setup and code style * don't wait for IO on webserver start * Bump yerpc to 0.3.1 with fix for axum server * update todo document remove specific api stuff for now, we now have the an incremental aproach on moving not the all at-once effort I though it would be * remove debug logs * changelog entry about the jsonrpc * Fix method name casings and cleanups * Improve JSON-RPC CI, no need to build things multiple times * Naming consistency: Use DeltaChat not Deltachat * Improve documentation * fix docs * adress dig's comments - description in cargo.toml - impl From<EventType> for EventTypeName - rename `CommandApi::new_from_arc` -> `CommandApi::from_arc` - pre-allocate if we know the entry count already - remove unused enumerate - remove unused serde attribute comment - rename `FullChat::from_dc_chat_id` -> `FullChat::try_from_dc_chat_id` * make it more idiomatic: rename `ContactObject::from_dc_contact -> `ContactObject::try_from_dc_contact` * apply link2xt's suggestions: - unref jsonrpc_instance in same thread it was created in - increase `max_queue_size` from 1 to 1000 * reintroduce segfault test script * remove unneeded context thanks to link2xt for pointing that out * Update deltachat-ffi/deltachat.h Co-authored-by: bjoern <r10s@b44t.com> * Update deltachat-ffi/deltachat.h Co-authored-by: bjoern <r10s@b44t.com> * make sure to use dc_str_unref instead of free on cstrings returned/owned by rust * Increase online test timeouts for CI * fix the typos thanks to ralphtheninja for finding them * restore same configure behaviour as desktop: make configure restart io with the old configuration if it had one on error * found another segfault: this time in batch_set_config * remove print from test * make dcn_json_rpc_request return undefined instead of not returning this might have been the cause for the second segfault * add set_config_from_qr to jsonrpc * add `add_device_message` to jsonrpc * jsonrpc: add `get_fresh_msgs` and `get_fresh_msg_cnt` * jsonrpc: add dm_chat_contact to ChatListItemFetchResult * add webxdc methods to jsonrpc: - `webxdc_send_status_update` - `webxdc_get_status_updates` - `message_get_webxdc_info` * add `chat_get_media` to jsonrpc also add viewtype wrapper enum and use it in `MessageObject`, additionally to using it in `chat_get_media` * use camelCase in all js object properties * Add check_qr function to jsonrpc * Fixed clippy errors and formatting * Fixed formatting * fix changelog ordering after rebase * fix compile after merging in master branch Co-authored-by: Simon Laux <mobile.info@simonlaux.de> Co-authored-by: Simon Laux <Simon-Laux@users.noreply.github.com> Co-authored-by: bjoern <r10s@b44t.com> Co-authored-by: flipsimon <28535045+flipsimon@users.noreply.github.com>
117 lines
3.3 KiB
Python
Executable File
117 lines
3.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import json
|
|
import re
|
|
import pathlib
|
|
import subprocess
|
|
from argparse import ArgumentParser
|
|
|
|
rex = re.compile(r'version = "(\S+)"')
|
|
|
|
|
|
def regex_matches(relpath, regex=rex):
|
|
p = pathlib.Path(relpath)
|
|
assert p.exists()
|
|
for line in open(str(p)):
|
|
m = regex.match(line)
|
|
if m is not None:
|
|
return m
|
|
|
|
|
|
def read_toml_version(relpath):
|
|
res = regex_matches(relpath, rex)
|
|
if res is not None:
|
|
return res.group(1)
|
|
raise ValueError("no version found in {}".format(relpath))
|
|
|
|
|
|
def replace_toml_version(relpath, newversion):
|
|
p = pathlib.Path(relpath)
|
|
assert p.exists()
|
|
tmp_path = str(p) + "_tmp"
|
|
with open(tmp_path, "w") as f:
|
|
for line in open(str(p)):
|
|
m = rex.match(line)
|
|
if m is not None:
|
|
print("{}: set version={}".format(relpath, newversion))
|
|
f.write('version = "{}"\n'.format(newversion))
|
|
else:
|
|
f.write(line)
|
|
os.rename(tmp_path, str(p))
|
|
|
|
|
|
def read_json_version(relpath):
|
|
p = pathlib.Path("package.json")
|
|
assert p.exists()
|
|
with open(p, "r") as f:
|
|
json_data = json.loads(f.read())
|
|
return json_data["version"]
|
|
|
|
|
|
def update_package_json(newversion):
|
|
p = pathlib.Path("package.json")
|
|
assert p.exists()
|
|
with open(p, "r") as f:
|
|
json_data = json.loads(f.read())
|
|
json_data["version"] = newversion
|
|
with open(p, "w") as f:
|
|
f.write(json.dumps(json_data, sort_keys=True, indent=2))
|
|
|
|
|
|
def main():
|
|
parser = ArgumentParser(prog="set_core_version")
|
|
parser.add_argument("newversion")
|
|
|
|
toml_list = ["Cargo.toml", "deltachat-ffi/Cargo.toml", "deltachat-jsonrpc/Cargo.toml"]
|
|
try:
|
|
opts = parser.parse_args()
|
|
except SystemExit:
|
|
print()
|
|
for x in toml_list:
|
|
print("{}: {}".format(x, read_toml_version(x)))
|
|
print("package.json:", str(read_json_version("package.json")))
|
|
print()
|
|
raise SystemExit("need argument: new version, example: 1.25.0")
|
|
|
|
newversion = opts.newversion
|
|
if newversion.count(".") < 2:
|
|
raise SystemExit("need at least two dots in version")
|
|
|
|
core_toml = read_toml_version("Cargo.toml")
|
|
ffi_toml = read_toml_version("deltachat-ffi/Cargo.toml")
|
|
assert core_toml == ffi_toml, (core_toml, ffi_toml)
|
|
|
|
if "alpha" not in newversion:
|
|
for line in open("CHANGELOG.md"):
|
|
## 1.25.0
|
|
if line.startswith("## "):
|
|
if line[2:].strip().startswith(newversion):
|
|
break
|
|
else:
|
|
raise SystemExit("CHANGELOG.md contains no entry for version: {}".format(newversion))
|
|
|
|
replace_toml_version("Cargo.toml", newversion)
|
|
replace_toml_version("deltachat-ffi/Cargo.toml", newversion)
|
|
update_package_json(newversion)
|
|
|
|
print("running cargo check")
|
|
subprocess.call(["cargo", "check"])
|
|
|
|
print("adding changes to git index")
|
|
subprocess.call(["git", "add", "-u"])
|
|
# subprocess.call(["cargo", "update", "-p", "deltachat"])
|
|
|
|
print("after commit, on master make sure to: ")
|
|
print("")
|
|
print(" git tag -a {}".format(newversion))
|
|
print(" git push origin {}".format(newversion))
|
|
print(" git tag -a py-{}".format(newversion))
|
|
print(" git push origin py-{}".format(newversion))
|
|
print("")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|