Skip to content

Releases: bngarren/ccsync

v1.0.0

Choose a tag to compare

@bngarren bngarren released this 04 Apr 18:23
1b7d5cc

1.0.0 (2025-04-04)

Features

  • cli: Added new commands to CLI. 'computers find' and 'computers clear' (9c92488)
  • config: improved default config file with better organization, examples, comments (#55) (768e4e0)
  • sync: improved user-facing language, errors, and suggestions (#59) (6f20dc7)

Bug Fixes

  • sync: fixed bug in sync manager lifecycle. Main (index.ts) should run until manager is STOPPED (089eb70)
  • sync: fixed bug where missing computer IDs were not being deduplicated in sync result (#56) (7576e4e)
  • sync: fixes #58, watch mode exits immediately when no source files are matched (#61) (089eb70)

Miscellaneous Chores

v1.0.0-beta.5

Choose a tag to compare

@bngarren bngarren released this 14 Mar 20:55
08b9137

1.0.0-beta.5 (2025-03-14)

Features

  • cli: added some command line arg capabilities, including an 'init' command and a 'verbose' option and file logging overrides. CLI args will override any matching variables in the config file (#45) (e592b7d)
  • ui: various small improvements to ui (#47) (4ec0eeb)

Bug Fixes

  • build: fixes some package.json issues. Adds minification to all build outputs to slightly reduce bundle size. (#43) (6d0c4ce)
  • sync: added warning to UI when sync rules target the same path on the same computer, risking inadvertent overwrite. Added unit and integration tests for this logic. (#51) (bfbd058)
  • ui: changed files in watch mode are now correctly shown in the UI. Added integration test. (#48) (92c87f9)
  • ui: moved all theme related code to theme.ts. Fully converted to 'chalk', removed 'picocolors' dependency (4ec0eeb)

v1.0.0-beta.4

Choose a tag to compare

@bngarren bngarren released this 12 Mar 18:30
376bf21

1.0.0-beta.4 (2025-03-12)

Features

  • performance: added node-cache and incorporated caching in processPath. Should lessen the amount of string operations, especially with lots of matched files (#30) (c6c3f49)

Bug Fixes

  • build: added bun-plugin-pino to help bundle pino's dependencies (#42). (ac392cd)
  • log: added detailed log output after uncaught fatal exception (#34) (511b939)
  • log: added error handling to logger initialization so that errors aren't fatal exceptions, if possible (bac77d1)
  • log: fixes #36, error with symlink creation in environments that it's not allowed (bac77d1)
  • paths: more improvements to path handling and consistency, added various edge cases to tests (#29) (e50e9ef)
  • sync: fixed errors not being emitted correctly when errors accumulated in performSync (ec95303)
  • ui: fixed bug causing current sync mode not to show in the header (3c6bfe0)
  • ui: improved how config validation errors are formatted/presented. Improve UI (#35) (3c6bfe0)

Performance Improvements

  • utils: performance improvements in utils (c6c3f49)

Miscellaneous Chores

  • release as 1.0.0-beta.4 (7944f6d)

v1.0.0-beta.3

Choose a tag to compare

@bngarren bngarren released this 06 Mar 17:28
1a9758d

1.0.0-beta.3 (2025-03-06)

  • Config version is now 2.1
    • Removed 'verbose'
    • Added logToFile, logLevel, and usePolling options
  • Added file logging with pino (off by default)
  • Improved watch mode file processing with batched syncs

⚠ BREAKING CHANGES

  • config: updated config to version 2.0 given the removal of the "verbose" option and addition of log options. Updated the default config to include these new options. Config version is now 2.1 per 322de00

Features

  • log: Added pino logging support with pino-roll for rotation. Log to file and log level options added to config. (7a8d749)
  • sync: added a 'usePolling' option to the config (advanced). This bumps config VERSION to 2.1 (322de00)
  • sync: adds batch processing with debouncing to watch mode so that multiple files changed at once or in quick succession are processed more efficiently (#23) (322de00)
  • workflow: add a version.ts file that can be bundled with code (89e891c)
  • workflow: add version-check (#17) that verifies that package.json, version.ts, and latest git tag (if applicable) match prior to pull request. (89e891c)

Bug Fixes

  • config: updated config to version 2.0 given the removal of the "verbose" option and addition of log options. Updated the default config to include these new options. (7a8d749)
  • log: logs added throughout main code, using child loggers to categorize by component (7a8d749)
  • script: updated watch-log.sh to allow a file name to be passed so that this file is tailed rather than current.log (322de00)
  • sync: add UI warnings when a watched file is renamed or deleted (will no longer be watched until mode is restarted) (322de00)
  • sync: chokidar watcher will use polling strategy if process.env.CI is 'true' so that tests can pass in CI (322de00)
  • sync: fixed bug where missing computers were not resulting in correct sync status (322de00)
  • sync: missing computers appropriately treated as warnings, added integration test for missing computer scenario (322de00)
  • ui: UI now uses process.stdout.write instead of console.log for terminal output (7a8d749)
  • utils: improved check for 'computercraft/computer' dir within the minecraft save dir, and fixed associated test (#20) (bf3ca51)
  • workflow: get release-please to automatically update version.ts (#18) (85aad90)
  • workflow: updated release-please workflow to correctly checkout code and use config file (89e891c)

Miscellaneous Chores

  • release as 1.0.0-beta.3 (b750add)

v1.0.0-beta.2

Choose a tag to compare

@bngarren bngarren released this 01 Mar 20:40
b8f44c1

1.0.0-beta.2 (2025-03-01)

Features

  • ui: Major UI update, using chalk, boxen, and log-update (1358f3e)

Bug Fixes

  • config: downgrade config version to 1.1 (from 2.0) as it was incorrectly given a major increase (#14) (c64cd4d)
  • errors: Improved error handling and integration with new UI (1358f3e)
  • paths: Add a resolveTargetPath utility function with extensive testing. This important function helps to resolve a rule's full target path, taking into consideration whether it represents a filename, directory, and whether flatten is false, in which case source directory structure will be preserved in the actual target path. (1358f3e)
  • paths: fixes glob * causing inclusion of directories into resolved file rule and added test (1358f3e)
  • ui: use strip-ansi in UI to clear color codes (1358f3e)

Miscellaneous Chores

  • release as 1.0.0-beta.2 (cfa6fbe)

v1.0.0-beta.1

Choose a tag to compare

@bngarren bngarren released this 25 Feb 12:57
9bde51a

1.0.0-beta.1 (2025-02-25)

⚠ BREAKING CHANGES

  • config: The 'computers' field in a SyncRule is no longer optional.

Features

  • A recursive, e.g. "**/*.lua", glob pattern can now be used in config.rules.source in order to glob files and preserve the relative source directory structure when copied to a target directory. Adds a 'flatten' option to Sync Rules. Default is true. If set to false, will keep source directory structure when a recursive glob pattern is used (6631487)
  • config: add robust config error handling with suggestions (aa466f2)

Bug Fixes

  • config: improve withDefaultConfig helper and ensure that result from loadConfig is wrapped with this. Notably this ensures that flatten field is applied (default true) to all sync rules (6631487)
  • config: The 'computers' field in a SyncRule is no longer optional. (6631487)
  • config: various improvements to config file validation. Improved validation of computer references. Referenced groups must exist, cannot be circular, etc. Ensure paths in config actually exist/can be accessed. (aa466f2)
  • ensure consistent use of toSystemPath when logging/error messaging (6631487)
  • general: improvements to path normalization, including better handling of unix vs windows paths. Internally, paths should consistently use a normalized path (forward slashes) and then convert to an appropriate system path when interacting with the filesystem or user-facing messages (6631487)
  • utils: resolveComputerReferences recursively expands group names to generate a flattened list of computer IDs (aa466f2)

Miscellaneous Chores

  • release as 1.0.0-beta.1 (d223104)

v1.0.0-beta

Choose a tag to compare

@bngarren bngarren released this 22 Feb 03:15
aa3903d

1.0.0-beta (2025-02-22)

Finally hit 1.0.0-beta! Current version is relatively stable and well-tested. Manual mode and watch mode are both implemented.

Bug Fixes

  • sync: add file permissions error handling and tests (9b4b7ce)

Miscellaneous Chores

v1.0.0-alpha.4

v1.0.0-alpha.4 Pre-release
Pre-release

Choose a tag to compare

@bngarren bngarren released this 21 Feb 22:11
310aee6

1.0.0-alpha.4 (2025-02-21)

⚠ BREAKING CHANGES

  • config: add config "version" and compatibility checking, with tests (#3)

Features

  • config: add config "version" and compatibility checking, with tests (#3) (e3024f4)

Miscellaneous Chores

  • release as 1.0.0-alpha.4 (bd74fea)

v1.0.0-alpha.3

v1.0.0-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@bngarren bngarren released this 21 Feb 21:17
b153b28

1.0.0-alpha.3 (2025-02-21)

Miscellaneous Chores

v1.0.0-alpha.2

v1.0.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@bngarren bngarren released this 21 Feb 00:27