Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 784033b
Author: Anatolii Lishchynskyi <anatolii.lishchynskyi@cossacklabs.com>
Date:   Tue Nov 28 21:45:12 2023 +0200

    New methods of building/installing PyThemis (cossacklabs#1023)

    Refactor Makefile:
    * new target pythemis_make_wheel to create a .whl Python package,
      current modern format to be installed into virtual environmants
    * new target pythemis_install_wheel to install it in currently active virtualenv
    * new target deb_python that builds a .deb package for system-wide
      installation of PyThemis
    * new target pythemis_install_deb, alias for pythemis_deb + apt install of
      the created pkg
    * new target rpm_python, similar to deb_python
    * new target pythemis_install_rpm, pythemis_install_deb

    Update GitHub Actions workflow, test .whl and .deb installation

    See cossacklabs/product-docs/pull/317 for related docs update

commit 30578c8
Author: Anatolii Lishchynskyi <anatolii.lishchynskyi@cossacklabs.com>
Date:   Mon Nov 27 17:53:02 2023 +0200

    Fix clippy and fmt issues, update MSRV (cossacklabs#1039)

    Fix clippy and fmt issues

    Update MSRV to 1.60

    Freeze test deps so they compile on Rust 1.60, with no effect on
    themis itself (does not use those frozen crates)

commit 6111766
Author: Anatolii Lishchynskyi <anatolii.lishchynskyi@cossacklabs.com>
Date:   Tue Nov 21 17:08:51 2023 +0200

    Update emscripten requirements and WASM CI job (cossacklabs#1036)

    * Bump emsdk version to 3.1.47
      Produces module importable in Node v18
      With older (emsdk 3.0.0) version, generated `libthemis.js` that should
      load `libthemis.wasm` fails due to some internal autogenerated code
      working differently on v16 and v18

    * Add link flag for WASM builds
      Needed to make new emscripten produce working module

    * Update Node testing versions
      Add v18 that should now work, also add v20 that is in active development
      as of now, but if tests are green then why not?

    * Switched integration tests to use v16

    * Removed testing of quite old and deprecated v10

    * Updated version of BoringSSL submodule to a newer one (not the latest though)

commit 05cac26
Author: Anatolii Lishchynskyi <anatolii.lishchynskyi@cossacklabs.com>
Date:   Thu Nov 9 22:24:35 2023 +0200

    CI fixes (cossacklabs#1034)

    Rix Rust CI builds (cossacklabs#1032)

    * Pin log dependency to 0.4.17
    * Pin byteorder dependency to 1.4.3

    Last versions that still work with current MSRV 1.58.

    Fix sanitizers CI job (cossacklabs#1033)

    * Switch to GCC 10
    * Install `libgcc-10-dev` that provides file `libtsan_preinit.o` needed
      for thread sanitizer

    Change priority of PREFIX in CFLAGS and LDFLAGS (cossacklabs#1031)

    * Change include dir priority in CFLAGS
    Move 'CFLAGS += -I/usr/local/include' below engine selection macros,
    so that if OS have OpenSSL header files installed in /usr/local/include,
    it won't mess with vendored BoringSSL or any other selected engine.

    * Put /usr/local/lib in separate LDFLAGS
    Introduce ADDITIONAL_LDFLAGS macro and put it after both LDFLAGS
    and CRYPTO_ENGINE_LDFLAGS during linking.

    * Add optional verbose logging to Makefile
    Add VERBOSE option to Makefile. If set, print executed command
    (compiler, linker etc) even for successful runs, and run ldd on created
    shared libraries.

    * Enable verbose builds on macOS jobs

commit 06d52f4
Author: Anatolii Lishchynskyi <anatolii.lishchynskyi@cossacklabs.com>
Date:   Tue Sep 26 13:15:37 2023 +0300

    Fix make target rbthemis_uninstall (cossacklabs#1022)

    * Fix make target rbthemis_uninstall
    * Add RbThemis uninstall step to CI

commit 8609650
Author: Nazar Serhiichuk <43041209+G1gg1L3s@users.noreply.github.com>
Date:   Mon Jul 10 22:57:46 2023 +0300

    Avoid specific versions in README (cossacklabs#1016)

    Just to avoid responsibility of updating it during release

    (•_•)
    ( •_•)>⌐■-■
    (⌐■_■)

commit 3219654
Author: Martin Arista <hello@mrtnrst.com>
Date:   Mon Jul 10 11:54:25 2023 -0400

    Update README.md (cossacklabs#1015)

    update links for maven and java/kotlin links
  • Loading branch information
G1gg1L3s committed Dec 4, 2023
1 parent d925c3b commit 3e687fd
Show file tree
Hide file tree
Showing 44 changed files with 455 additions and 238 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ jobs:
with:
toolchain: stable
profile: minimal
- name: Install Node.js 10.x
- name: Install Node.js 16.x
uses: actions/setup-node@v1
with:
node-version: 10.x
node-version: 16.x
- name: Install Emscripten
run: |
version=$(cat src/wrappers/themis/wasm/emscripten/VERSION)
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/test-core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ jobs:
name: Unit tests
runs-on: ${{ matrix.os }}
env:
VERBOSE: 1
SOTER_KDF_RUN_LONG_TESTS: yes
MATRIX_OS: ${{ matrix.os }}
strategy:
Expand Down Expand Up @@ -153,20 +154,20 @@ jobs:
run: |
sudo sh -c 'echo "DEBIAN_FRONTEND=noninteractive" >> /etc/environment'
sudo apt update
sudo apt install --yes gcc-8 clang-8 make libssl-dev
sudo apt install --yes gcc-10 libgcc-10-dev clang-8 make libssl-dev
- name: Check out code
uses: actions/checkout@v2
# We test only OpenSSL flavor to not expand the testing matrix too much
# (rebuilding BoringSSL is not fun and takes much time)
- name: Check with GCC (ASan)
if: always()
run: make clean test CC=gcc-8 WITH_ASAN=1
run: make clean test CC=gcc-10 WITH_ASAN=1
- name: Check with GCC (TSan)
if: always()
run: make clean test CC=gcc-8 WITH_TSAN=1
run: make clean test CC=gcc-10 WITH_TSAN=1
- name: Check with GCC (UBSan)
if: always()
run: make clean test CC=gcc-8 WITH_UBSAN=1
run: make clean test CC=gcc-10 WITH_UBSAN=1
- name: Check with Clang (ASan)
if: always()
run: make clean test CC=clang-8 WITH_ASAN=1
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/test-python.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,69 @@ jobs:
- name: Run test suite
run: make test_python

unit-tests-venv:
name: Unit tests (virtualenv install)
# TODO: Switch to something more fresh, Ubuntu 22.04 or Debian Bookworm,
# after issue with deprecates in C++ tests is fixed
runs-on: ubuntu-20.04
steps:
- name: Install system dependencies
run: |
sudo sh -c 'echo "DEBIAN_FRONTEND=noninteractive" >> /etc/environment'
sudo apt update
sudo apt install --yes gcc make libssl-dev \
python3 python3-setuptools python3-pip python3-venv
- name: Check out code
uses: actions/checkout@v2
- name: Prepare Themis Core
run: |
make
sudo make install
make prepare_tests_all
- name: Create virtualenv
run: mkdir /tmp/test_venv && python3 -m venv /tmp/test_venv
- name: Install PyThemis into virtualenv
run: |
make pythemis_make_wheel
source /tmp/test_venv/bin/activate && make pythemis_install_wheel
- name: Run test suite
run: source /tmp/test_venv/bin/activate && make test_python
- name: Uninstall PyThemis
run: source /tmp/test_venv/bin/activate && pip uninstall -y pythemis

unit-tests-deb-pkg:
name: Unit tests (deb package)
# TODO: Switch to something more fresh, Ubuntu 22.04 or Debian Bookworm,
# after issue with deprecates in C++ tests is fixed
runs-on: ubuntu-20.04
steps:
- name: Install system dependencies
run: |
sudo sh -c 'echo "DEBIAN_FRONTEND=noninteractive" >> /etc/environment'
sudo apt update
sudo apt install --yes gcc make libssl-dev \
python3 python3-setuptools \
ruby
sudo gem install fpm
- name: Check out code
uses: actions/checkout@v2
- name: Prepare Themis Core
run: |
make
sudo make install
make prepare_tests_all
- name: Install libthemis deb
run: |
make deb WITHOUT_THEMISPP=1 WITHOUT_JAVA=1
sudo apt install ./build/deb/libthemis_*.deb
- name: Install PyThemis (deb package)
run: |
sudo make pythemis_install_deb
- name: Run test suite
run: make test_python
- name: Uninstall PyThemis
run: sudo apt remove -y python3-pythemis

examples:
name: Code examples
runs-on: ubuntu-20.04
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test-ruby.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ jobs:
run: |
rvm use system
make test_ruby
- name: Uninstall RubyThemis
run: sudo make rbthemis_uninstall

examples:
name: Code examples
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-rust.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: [stable, '1.58']
rust: [stable, '1.60']
fail-fast: false
steps:
- name: Install system dependencies
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: [stable, '1.58']
rust: [stable, '1.60']
fail-fast: false
steps:
- name: Install system dependencies
Expand Down
17 changes: 10 additions & 7 deletions .github/workflows/test-wasm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,11 @@ jobs:
strategy:
matrix:
node-version:
- 10.x # legacy
- 12.x # old LTS
- 14.x # current LTS
- 16.x # current stable
- 12.x # legacy
- 14.x # legacy
- 16.x # legacy
- 18.x # current LTS
- 20.x # current active
fail-fast: false
steps:
- name: Install Node.js ${{ matrix.node-version }}
Expand Down Expand Up @@ -110,9 +111,11 @@ jobs:
strategy:
matrix:
node-version:
- 12.x # old LTS
- 14.x # current LTS
- 16.x # current stable
- 12.x # legacy
- 14.x # legacy
- 16.x # legacy
- 18.x # current LTS
- 20.x # current active
fail-fast: false
env:
# WasmThemis uses promises to handle asynchronous WebAssmebly compilation.
Expand Down
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ _Code:_
- `pythemis.scomparator` and `pythemis.skeygen` are now imported with `from pythemis import *` ([#914](https://github.com/cossacklabs/themis/pull/914)).
- Pythemis supports `pyproject.toml` as a main way of building packages. The old `setup.py` is preserved for backwards compatibility ([#1006](https://github.com/cossacklabs/themis/pull/1006)).

- New installation methods, accessible with make ([#1023](https://github.com/cossacklabs/themis/pull/1023)).
- create/install `.whl` package for virtualenv
- create/install `.deb` or `.rpm` package for system-wide installation

- **Ruby**

- Improved compatibility with non-standard installations on Apple M1 ([#917](https://github.com/cossacklabs/themis/pull/917)).
Expand All @@ -60,9 +64,14 @@ _Code:_

This is technically a breaking change, but most reasonble implementations should be `Send` already. Please raise an issue if your code fails to build.

- Minimum supported Rust version is now 1.58 ([#977](https://github.com/cossacklabs/themis/pull/977), [#984](https://github.com/cossacklabs/themis/pull/984)).
- Minimum supported Rust version is now 1.60 ([#977](https://github.com/cossacklabs/themis/pull/977), [#984](https://github.com/cossacklabs/themis/pull/984), [#1039](https://github.com/cossacklabs/themis/pull/1039)).
- Bindgen is pinned to 0.66.1 on CI ([#1008](https://github.com/cossacklabs/themis/pull/1008)).

- **WasmThemis**

- Updated required `emsdk` version to 3.1.47 ([#1036](https://github.com/cossacklabs/themis/pull/1036)).
- WasmThemis now works with Node v18 and v20 ([#1036](https://github.com/cossacklabs/themis/pull/1036)).

- **WebAssembly**

- Node.js v8 is no longer supported ([#901](https://github.com/cossacklabs/themis/pull/901)).
Expand Down
Loading

0 comments on commit 3e687fd

Please sign in to comment.