Skip to content

✨ v2.2.0 New scheduler, timestamps in logs, dashboard improvements, + more.

Compare
Choose a tag to compare
@bmeares bmeares released this 24 May 06:45
· 6 commits to main since this release
3784121

v2.2.0

New Features

  • New job scheduler
    The job scheduler has been rewritten with a simpler syntax.

    mrsm sync pipes -s 'daily & mon-fri starting 00:00 tomorrow' -d
  • Add show schedule.
    Validate your schedules' upcoming timestamps with show schedule.

    mrsm show schedule 'daily & mon-fri starting 2024-05-01'
    
    Next 5 timestamps for schedule 'daily & mon-fri starting 2024-05-01':
    
      2024-05-01 00:00:00+00:00
      2024-05-02 00:00:00+00:00
      2024-05-03 00:00:00+00:00
      2024-05-06 00:00:00+00:00
      2024-05-07 00:00:00+00:00
    
  • Added timestamps to log file lines.
    Log files now prepend the current minute to each line of the file, and the timestamps are also printed when viewing logs with show logs.
    To disable this behavio, set MRSM{jobs:logs:timestamps:enabled} to false.

    You may change the timestamp format under the config keys MRSM{jobs:logs:timestamps:format} (timestamp written to disk) and MRSM{jobs:logs:timestamps:follow_format} (timestamp printed when following via show logs.).

  • Add --skip-deps.
    When installing plugins, you may skip dependencies with --skip-deps. This should improve the iteration loop during development.

    mrsm install plugin noaa --no-deps
  • Add logs buttons to job cards on the Web UI.
    For your convenience, "Follow logs" and "Download logs" buttons have been added to jobs' cards.

  • Add a Delete button to job cards on the Web UI.
    You may now delete a job from its card (once stopped, that is).

  • Add management buttons to pipes' cards.
    For your convenience, you may now sync, verify, clear, drop, and delete pipes directly from cards.

  • Designate your packages as plugins with the meerschaum.plugins entry point.
    You may now specify your existing packages as Meerschaum plugins by adding the meerschaum.plugins Entrypoint to your package metadata:

    from setuptools import setup
    
    setup(
        ...,
        entry_points = {
            'meerschaum.plugins': [
                'foo = foo',
            ],
        },
    )

    or if you are using pyproject.toml:

    [project.entry-points."meerschaum.plugins"]
    foo = "foo"
  • Pre- and post-sync hooks are printed separately.
    The results of sync hooks are now printed right after execution rather than after the sync.

Bugfixes

  • Fixed a filtering bug on the Web UI when changing instances.
    When changing instances on the Web Console, the connector, metric, and location choices will reset appropriately.

  • Ctrl+C when exiting show logs.
    Pressing Ctrl+C will now exit the show logs immediately.

Breaking Changes

  • No longer supporting the old scheduler syntax.
    If you have jobs with the old scheduler syntax (e.g. using the keyword before), you may need to delete and recreate your jobs with an updated schedule.

  • Upgraded to psycopg from psycopg2.
    The upgrade to psycopg (version 3) should provide better performance for larger transactions.

  • Daemon.cleanup() now returns a SuccessTuple.

Other changes

  • Bumped xterm.js to v5.5.0.
  • Added tags to the pipes card.
  • Replaced watchgod with watchfiles.
  • Replaced rocketry with APScheduler.
  • Removed pydantic from dependencies.
  • Removed passlib from dependencies.
  • Bumped default TimescaleDB image to latest-pg16-oss.
  • Held back duckdb to <0.10.3.