Skip to content

Releases: VCTLabs/redis-ipc

Release v0.2.1

07 Oct 18:11
v0.2.1
Compare
Choose a tag to compare

v0.2.1 (2023-10-07)

New

  • Add tox plugin file, cleanup tox envs, add sdist to release. [Stephen L Arnold]

Changes

  • Bump static versions to next patch release. [Stephen L Arnold]

  • Temp workaround for unexpected coverage value from gcov. [Stephen L Arnold]

Fixes

  • More work on json.hh reference management. [S. Lockwood-Childs]

    • switch back to not take an extra reference on json_object ptr
      that gets passed in, to make things convenient for typical external
      usage of this constructor. This makes behavior match the exception
      mentioned in original comment about constructors:
      // normally want to take reference on underlying json_object*,
      // except for case of initializing from an existing raw json_object*
      // such as those returned by redis_ipc -- those start out with a reference

      which means that callers no longer need to remember to call json_object_put()
      after wrapping a raw json_object with json class

    • add a new comment right above tha constructor highlighting that
      this constructor wrapping an existing json_object does not bump
      the reference count

    • fix memory leak in operator=() by forgetting to json_object_put()
      before overwriting with a new value

  • Clean up memory leaks found with valgrind. [S. Lockwood-Childs]

    Get the test apps to pass 'valgrind --leak-check=full' without
    any leaks detected.

    • redis_ipc.c - add some missing frees

    • json.hh - fix reference management

      • get_field(): the json constructor of return value will automatically
        take a reference on the wrapped json_object, so don't need to manually
        bump reference count with json_object_get()
      • set_field() with json value: do manually take reference so the value
        object passed in will not be destroyed when the newly assigned
        parent object gets destroyed, since "add" does not bump reference
        count but later parent will try to clean it up

Other

  • Merge pull request #56 from VCTLabs/dev-workflows. [S. Lockwood-Childs]

    pre-release cleanup

  • Bump to latest upstream badge action in coverage workflow. [Stephen L Arnold]

  • Merge pull request #55 from VCTLabs/src-release. [S. Lockwood-Childs]

    bug fixes and src release

  • Add (temporary) gcov data files to .gitignore. [Stephen L Arnold]

  • Update files with static versions (needs automation) [Stephen L Arnold]

  • Merge pull request #53 from VCTLabs/dependabot/github_actions/emibcn/badge-action-2.0.1. [Steve Arnold]

    ci: bump emibcn/badge-action from 1.2.4 to 2.0.1

  • Ci: bump emibcn/badge-action from 1.2.4 to 2.0.1. [dependabot[bot]]

    Bumps emibcn/badge-action from 1.2.4 to 2.0.1.


    updated-dependencies:

    • dependency-name: emibcn/badge-action
      dependency-type: direct:production
      update-type: version-update:semver-major
      ...
  • Merge pull request #54 from VCTLabs/valgrind-fixes. [S. Lockwood-Childs]

    fix: usr: clean up memory leaks found with valgrind

Release v0.2.0

11 May 01:32
v0.2.0
7fc022a
Compare
Choose a tag to compare

v0.2.0 (2023-05-11)

Fixes

  • Subscribe/unsubscribe commands need separate context from the rest. [S. Lockwood-Childs]

    After using subscribe command from a thread, can start getting errors on
    other commands

    https://redis.io/commands/subscribe/
    "Once the client enters the subscribed state it is not supposed to issue
    any other commands, except for additional SUBSCRIBE, SSUBSCRIBE,
    PSUBSCRIBE, UNSUBSCRIBE, SUNSUBSCRIBE, PUNSUBSCRIBE, PING, RESET and
    QUIT commands."

    Prevent problems by maintaining 2 separate redis connections:
    subscribe/unsubscribe and everything else.

Other

  • Merge pull request #52 from VCTLabs/bionic-cleanup. [Steve Arnold]

    cleanup ci workflows

  • Merge pull request #51 from VCTLabs/json-parse-exception. [S. Lockwood-Childs]

    json.hh: exception for constructing from invalid text

  • Json.hh: exception for constructing from invalid text. [S. Lockwood-Childs]

    The intention for json class is that wrapped json-c objects will
    never be null, but this was able to be violated by the constructor
    that has text string as argument. When the text string was not valid
    JSON, the obj pointer turned out NULL.

    Throw an exception instead, so this parsing failure case will need to be
    handled right away instead of causing bugs later from a NULL pointer.

  • Merge pull request #50 from VCTLabs/json-support-double. [S. Lockwood-Childs]

    json.hh: fix bug in to_double()

  • Json.hh: fix bug in to_double() [S. Lockwood-Childs]

  • Merge pull request #49 from VCTLabs/json-support-double. [S. Lockwood-Childs]

    json.hh: get/set for double floating point values

  • Json.hh: get/set for double floating point values. [S. Lockwood-Childs]

    Also added dump() function to retrieve json text for the whole object

  • Merge pull request #48 from VCTLabs/separate-redis-contexts. [S. Lockwood-Childs]

    subscribe/unsubscribe commands need separate context from rest

Release v0.1.0

24 Nov 02:49
v0.1.0
Compare
Choose a tag to compare

v0.1.0 (2022-11-24)

New

  • Add deb pkg and release workflows, update debian files. [Stephen L Arnold]

  • Support timeout when receiving channel messages. [S. Lockwood-Childs]

  • Pub-sub for notifications of settings changes. [S. Lockwood-Childs]

    Each component can receive notifications for changes to its own settings.
    These notifications are generated by the redis server
    https://redis.io/docs/manual/keyspace-notifications/

  • Runtime config of redis-ipc itself. [S. Lockwood-Childs]

    Functions for configuring behavior of redis-ipc itself
    see RIPC_DEFAULT_* definitions for default values if not called

    // configure verbosity level for debug channel
    int redis_ipc_config_debug_verbosity(int verbosity);

    // configure whether debug messages will be shown on stderr
    int redis_ipc_config_stderr_debug(int enable_stderr);

    // configure which component will be authorized to write settings
    // (RIPC_COMPONENT_ANY works as wildcard for "any")
    int redis_ipc_config_settings_writer(const char *writer_component);

Changes

  • Update dependabot config. [Stephen L Arnold]

    • use custom prefix in commit msg
    • add label (if found)
    • no need to set target-branch for default

Other

  • Update changelog for 0.1.0 release. [Stephen L Arnold]

  • Merge pull request #43 from VCTLabs/action-updates. [Steve Arnold]

    bump workflow action versions, update to latest coverage.yml

  • Merge pull request #41 from VCTLabs/settings-change-notifications. [S. Lockwood-Childs]

    new: usr: pub-sub for notifications of settings changes

  • Merge pull request #40 from VCTLabs/ripc-config-funcs. [S. Lockwood-Childs]

    new: usr: runtime config of redis-ipc itself

  • Fix format type (remove stray back-tick) [Stephen L Arnold]

  • Merge pull request #35 from VCTLabs/ci-release. [S. Lockwood-Childs]

    CI and packaging updates

  • Add issue template for automation queue. [Stephen L Arnold]

  • Add dependabot.yml config for gh actions. [Stephen L Arnold]

  • Update mark-stale workflow action, add dispatch. [Stephen L Arnold]

JSON Interface and Process Updates

21 Nov 02:46
v0.0.6
Compare
Choose a tag to compare

v0.0.6

New

  • Json.hh: provide == and != operators. [S. Lockwood-Childs]

  • Switch to individual issue template files to drive project cards. [Stephen L Arnold]

    • uses/used for non-beta (as of Nov2021) GH project automation
  • Add clang/llvm source coverage module, test with tox. [Stephen L Arnold]

    • use cmake options to enable coverage and set reporting formats
    • update pr comment action to use hide option

Changes

  • Relax cmake_minimum_required to 3.10. [Stephen L Arnold]

    • use the default version available in bionic/PPA as minimum
  • Bump CodeCoverageSummary action to latest. [Stephen L Arnold]

  • Update smoke/coverage deps, use new llvm source coverage in workflow. [Stephen L Arnold]

Fixes

  • Use legible/working sed regex for summary rate value. [Stephen L Arnold]

    • update comment action version, update workflow comments/rev
  • Force clang/llvm-12 for coverage, set version for find_package. [Stephen L Arnold]

    • explicitly set ENV_LLVM_VER, add tail to pick the summary value
  • Un-split ubuntu json-c deps in affected workflows. [Stephen L Arnold]

Other

  • Add PR/issue managers, update readme/changelog and debian packaging files. [Stephen L Arnold]

    • auto-assign PR to author, mark stale via cron
    • add tox clang command and requirements to readme
    • minimum ubuntu build environment is bionic

Usability update

13 Nov 02:04
v0.0.5
Compare
Choose a tag to compare

v0.0.5

New

  • Json.hh: provide has_field() alternative to throwing missing-field exception. [S. Lockwood-Childs]

Other

  • Bump version for release 0.0.4 => 0.0.5 and update changelog. [Stephen L Arnold]

v0.0.4

04 Nov 18:37
v0.0.4
Compare
Choose a tag to compare

Smoother, Fresher, Cleaner

New

  • Add initial pre-commit config. [Stephen L Arnold]

  • Add cmake module to generate coverage data. [Stephen L Arnold]

    • cmake module replicates makefile.am lcov/genhtml commands

    • tox bionic env updated to generate full coverage

    • move lcov to common deps in smoke workflow

    • note full coverage requires 2 passes, one with and one without
      the runtime socket path override (true for both autotools
      and cmake builds)

    • enabling cmake coverage also enables building test binaries;
      both are currently OFF by default

      • WITH_COVERAGE enables RIPC_BUILD_TESTING
      • enable RIPC_BUILD_TESTING to build test binaries only
  • Updates all tox envs, adds valgrind with ci workflow. [Stephen L Arnold]

    • valgrind args are currently hard-coded in tox.ini
    • uses three of five test executables
  • Update cmake to create and install pkgconfig file. [S. Lockwood-Childs]

    Note that library version is still being maintained in 2 places,
    both CMakeLists.txt and configure.ac -- would be good to move it to
    a separate version file that both can share, at some point.

  • Update cmake to check for json-c with pkg-config. [S. Lockwood-Childs]

    Use consistent strategy for finding json-c and hiredis dependencies,
    which might be managed by pkg-config rather than native cmake modules

Changes

  • Update pre-commit hooks, bump version for next release. [Stephen L Arnold]

  • Be more explicit with coverage badge. [Stephen L Arnold]

  • Add some dev docs, add rst doc checks to pre-commit config. [Stephen L Arnold]

    • add doc8 and some pygrep hooks to validate .rst formatting
    • add some pre-commit dev docs, usage and config hooks
    • validate docs, reflow some text, fix some warnings
    • make ChangeLog.rst an actual .rst doc
  • Add contributing section with pre-commit install steps. [Stephen L Arnold]

  • Let cmake use socket path ENV var or path as build option. [Stephen L Arnold]

    • leave option empty/define unset if not found
    • prefer path found in env over build option
    • pass ENV var in tox.ini
  • Add section on tox commands, remove redis-ipc-py section. [Stephen L Arnold]

  • Remove python/related files => moved to redis-ipc-py repo. [Stephen L Arnold]

  • Remove python-only workflows and badges. [Stephen L Arnold]

  • Remove macos until more debug, re-enable ccache on linux. [Stephen L Arnold]

  • Use conda-dev/env setup for conda-dev workflow. [Stephen L Arnold]

  • General build cleanup in cmake cfg and conda recipe. [Stephen L Arnold]

    • disable cmake modules, prefer pkg-config over find_package
    • adjust conda recipe deps and tests, add extra macos flags
  • Add pkg-config dep and FindPython module. [Stephen L Arnold]

  • Use agnostic build-test command across all platforms. [Stephen L Arnold]

Fixes

  • Add missing arg in readme example. [Stephen L Arnold]

  • Document fixes and pre-commit autoupdates. [Stephen L Arnold]

  • Improve gitchangelog config, populate ChangeLog => ..v0.0.3. [Stephen L Arnold]

    • use updated cfg with built-in rest_py for ChangeLog.rst
    • add experimental md template file for release page
    • add initial gitchangelog doc, update readme
  • Pre-commit whitespace/eol cleanup commit. [Stephen L Arnold]

  • Tweak pre-commit cfg, apply cmake/shell changes. [Stephen L Arnold]

    • yaml checks cough parse error on std conda meta.yaml format
    • cmake-format needs fencing/rulers to mark comments
    • add excludes and fence markers
    • restore missing clang toolchain file
  • Local autotools env and small nit in PR coverage xml report names. [Stephen L Arnold]

    • isolate internal env, override via ENV_RIPC_RUNTIME_DIR
    • define package (internal) env var names using tox defaults
    • move tox env commands to replicate workflow
  • Create both html coverage reports, add inc/ dir to metrics artifact. [Stephen L Arnold]

    • create both html reports, one for functions and one for branches
    • note each report is created via separate tox cmds
    • sync up metrics source code with coverage
    • update conda devenv file, use Ninja generator

    Signed-off-by: Stephen L Arnold nerdboy@gentoo.org

    chg: dev: py38/39 is not resolving deps like 37, remove jinja py ver

    • this should really not be necessary, somehow devenv is inconsistent
    • it should work fine across all python versions 36 => 39
    • even on macos
  • Cleanup ci cmds (per OS env), add python dep for conda devenv. [Stephen L Arnold]

    • bionic lcov is too old for required include usage
    • devenv needs jinja python dep per CI version
  • Cleanup coverage flags, upload coverage report. [Stephen L Arnold]

    • speedup: switch coverage workflow to ctest
    • cleanup: make sure covrage builds are identical
    • add cov report artifact upload to smoke workflow (no gh-pages branch yet)
    • add/update coverage cfgs and tox commands
  • Remove stale results until next scan (cov-test workflow) [Stephen L Arnold]

    • add check for data file before triggering convert/upload steps
  • Use local lcov config file for make cov, fix name in ci. [Stephen L Arnold]

  • Refactor coverage generation/reporting, add fix script. [Stephen L Arnold]

    • add autobuild to tox, use lcov => gcovr for report
    • xml seems more compliant, except for pkg name="."
    • add fix_pkg_name.sh and run it in coverage workflow
  • Sort out coverage config, enable debug for branches/lines. [Stephen L Arnold]

  • Switch metrics action to latest release => 0.3. [Stephen L Arnold]

    • fixes metrics report artifact uploads
  • Remove action options until gh-pages branch is pushed. [Stephen L Arnold]

    • add readme note about python module move
  • Make sure autotools and cmake use the same soname/version. [Stephen L Arnold]

    • add missing configure check for pthreads (autotools)
    • allow SCM_VERSION to override static version (cmake)
  • Restore missing target property versions. [Stephen L Arnold]

  • Set recipe soversion, add include guard for unistd.h !win. [Stephen L Arnold]

v0.0.3

20 Aug 21:03
v0.0.3
0d01e73
Compare
Choose a tag to compare

Build | Packaging | CI Baseline

New

  • Add issue/PR templates and base .gitignore file. [Stephen L Arnold]

Changes

  • Add pkconfig.in file, update configure.ac. [Stephen L Arnold]
  • Add readme section for overlay/ppa package installs. [Stephen L Arnold]

Other

  • Test conversion and display of coverity results as SARIF data. [Stephen L Arnold]

  • Cpplint cleanup and workflow (#8) [Steve Arnold]

    • add doctest to pylint workflow, with minimal nose cfg
    • cpplint cleanup commit, mainly whitespace, if/else, and curly braces
    • cleanup indenting, revert if/else brace changes, add cfg file
    • fix constructor warnings in inc/json.hh, add cpplint worklow
  • Revert action to main and set branch for metrics. [Stephen L Arnold]

  • Use new action release and set source directories for analysis. [Stephen L Arnold]

  • Silence "/tmp" path socket warning with a usage comment. [Stephen L Arnold]

  • Add pylint workflow (check only, fail under 9.25) [Stephen L Arnold]

  • More fun with badges. [Stephen L Arnold]

  • Add bandit workflow (with github annotaions), disable flake8 ignores. [Stephen L Arnold]main

  • Update readme status, use status table. [Stephen L Arnold]

  • Add codeql analysis to its own workflow, enable extra queries. [Stephen L Arnold]

  • Add python examples to readme (doctest-able even) [Stephen L Arnold]

  • Pylint cleanup commit, update pep8speaks config. [Stephen L Arnold]

  • Flake8 cleanup commit, add modified gitchangelog.rc and flake8 cfg. [Stephen L Arnold]

v0.0.2

23 Jul 22:46
v0.0.2
Compare
Choose a tag to compare

New

  • Compatibility with more modern versions of json-c.
  • Gcov support added to configure (use --with-coverage)
  • Build/test/coverage workflow using github CI.