Skip to content
This repository has been archived by the owner on Mar 15, 2024. It is now read-only.

Latest commit

 

History

History
1585 lines (871 loc) · 94.7 KB

CHANGELOG.md

File metadata and controls

1585 lines (871 loc) · 94.7 KB

14.2.0 (2023-08-16)

Features

  • Record test failure details in mocha (1052eb9), closes #231

14.1.0 (2023-08-13)

Features

  • Add recorder type to appmap metadata (f7fa84b), closes #235

14.0.0 (2023-08-04)

Bug Fixes

  • Expand short paths on Windows (7e41bc2)
  • Tolerate UNKNOWN errors on Windows (4f178f6)
  • Wait a bit longer while spawning subcommands (9d6ff47)

chore

  • Remove support for Node 14 (66739e6)

BREAKING CHANGES

  • Support for Node 14 has been removed. Official support ended more than two months ago.

13.9.1 (2023-07-28)

Bug Fixes

  • use static path in function path (84e5fbb)

13.9.0 (2023-05-15)

Bug Fixes

  • add data url in JSON schema (f8abc37)
  • do not crash on missing source map (d025826)
  • more restrictive schema to improve error message (e1f5531)
  • prevent infinite recursion on user-defined toString (d9a1715)
  • solve oom issue on large test suite (773245e)
  • use trully pure convertions (1416486)

Features

  • improve feeedback for large appmaps (0448fb8)
  • make babel parsing options configurable by the user (f45d9c4)
  • no longer always exit with 0 (3b6f55a)
  • no longer requires the user to use jest --no-cache flag (d0b260a)

Performance Improvements

  • use a more compact format to send message to the backend (aba0510)

13.8.0 (2023-04-27)

Features

  • Report unhandled exceptions (b1fb7e6)

13.7.0 (2023-04-13)

Features

  • can record files with external urls (c697916)
  • record browser applications with man-in-the-middle proxy (e896646)
  • support package and process matching against absolute url (fadae4e)

Performance Improvements

  • add dead instance in source component (263756e)
  • cache browser recorder bundle to speed up html instrumentation (662d759)
  • frontend no longer validate data (13cfc30)

13.6.0 (2023-03-14)

Bug Fixes

  • cleanup JUMP_TAB in generator to support Generator.prototype.return (361afc3)
  • cleanup JUMP_TAB in generator to support Generator.prototype.throw (0e390ed)
  • no longer log undefined for the source url (e5caf45)
  • use command-options.cwd to load jest config (8b8a70c)

Features

  • support jest.config.js as esm (e2cd6b6)

13.5.2 (2023-03-03)

Bug Fixes

  • Support class features when transforming source code (46f03b0), closes #199

13.5.1 (2023-02-22)

Bug Fixes

  • add loc on manufactured empty ast (6f64aa3)
  • more robust ast lookup (54bf1f5)
  • only use the last extension segment of urls for parsing (fae2458)

Performance Improvements

  • do not load disabled source files (5d488c2)
  • faster url parsing (e7c92dc)

13.5.0 (2023-02-17)

Bug Fixes

  • do not crash if a source file is missing (15374c5)
  • handle default indirection on transformer (5fd1a54)
  • resolve recorder for unparsed commands (8c8b6f7)
  • support jest transformer that directly returns string (000dd6f)

Features

  • appmap clients can be launched separately from appmap server (75fcd20)
  • endless mode for batch when there is no command (f290399)
  • improve server logging (58eddb1)
  • parse package invocation with yarn (ea1f465)
  • support recording of concurrent node processes (a4fc3f9)

Performance Improvements

  • compile backend tracks one by one during flushing (18112b2)

13.4.0 (2023-02-11)

Bug Fixes

  • reverse order of apply summary (1a29c1d)

Features

  • support for function exclusion on the frontend (a5c968e)
  • support for smart postmortem-function-exclusion (259574b)

13.3.0 (2023-02-10)

Bug Fixes

  • correct assertion argument order (de59d4b)

Features

  • regularly flush appmaps from backend (cdd0ef5)

13.2.1 (2023-02-07)

Bug Fixes

  • make pure serialization actually pure (65e04a2)

13.2.0 (2023-02-02)

Features

  • support for dynamic sources (f169292)

13.1.2 (2023-02-01)

Bug Fixes

  • Ignore duplicate async events (b44937a)

13.1.1 (2023-02-01)

Bug Fixes

  • wrap root function before exclusion (185e50f)

13.1.0 (2023-01-31)

Bug Fixes

  • ignore json files in jest transformer (6dbfc70)
  • support concurrent jest test case (75c9696)

Features

13.0.1 (2023-01-25)

Bug Fixes

  • add undefined check for sourceRoot in source map (6b1873b)
  • allow jest transformer in separate context (731dcc0)
  • support running jest test in separate context (2160e65)
  • unique dynamic url for eval source (9880202)

13.0.0 (2023-01-20)

Bug Fixes

  • instrument jest tests with transformers (de5e92f)

Features

BREAKING CHANGES

  • By default, programs are no longer spawned inside a shell. Rather, they are directly spawned with a system call.

12.2.0 (2023-01-11)

Features

  • support additional command patterns for mocha and jest (e9c84b7)

12.1.2 (2022-12-17)

Bug Fixes

  • more lenient source map url parsing (7656c39)
  • resilient zipping of arguments and parameters (4920efc)
  • return yield value intead of undefined (dd93c64)
  • use sourcesContent instead of contents in source map (f1ae3b4)

12.1.1 (2022-12-14)

Bug Fixes

12.1.0 (2022-12-13)

Bug Fixes

  • adequate homepage even if the agent is missing (606aaf0)
  • use file urls to specify node loader (6f49b2c)

Features

  • make status independent from uncaught error (9c9a93f)
  • more precise track termination (97a598d)
  • support jest (26ed907)

12.0.0 (2022-11-21)

Bug Fixes

  • add separator for source root concatenation (3b9da2b)
  • no longer reset source column between source map groups (66e2dc6)
  • support incompatible source urls (8fe9a5c)
  • use regexp instead of glob to exclude external files (085848d)

Code Refactoring

  • remove outdated configuration fields (5e44ad4)

Features

  • rewrite classmap processing (a72a4f2)

Performance Improvements

  • remove null fields from appmap (5537f07)

BREAKING CHANGES

  • function-name-placeholder and anonymous-name-separator are ignored.
  • Nested functions are now represented alongside their class container. Function class container are necessary to represent nested functions because the classmap format does not allow for functions to have children. For instance, function f () {} was represented before as {type:"class", name:"f", children:[{type:"function", name:"<placeholder>"}]}. Now it is represented as: [{type:"class", name:"f", children:[]}, {type:"function", name:"f"}]. The class container is removed if it has no children.
  • Files are represented as classes rather than packages. Plus their name no longer contain the file extension. Also, they are removed if the file does not contain top-level functions. Files as classes are necessary to provide a defined_class value to functions.
  • Top level files are nested within a package named: .. That is because classes are not allowed at the root level of classmap.
  • More aggressive naming. Before the agent would name code objects accordingly to the rule of dynamic function naming. For instance, var f = (x) => {} would cause the arrow to be named x. However, var f = test ? (x) => {} || (y) => {} would cause both arrows to have no name. The new naming algorithm is more aggressive to help reduce the number of anonymous code objects.
  • Anonymous code object are always named [anonymous]. This is likely to change in the future.

11.7.1 (2022-11-07)

Bug Fixes

  • provide path instead of url to spawn (5ad873e)
  • use error.name instead of constructor identity (d217b59)

Performance Improvements

  • remove outdated violation search param (324aaeb)

11.7.0 (2022-10-28)

Bug Fixes

  • better feedback on incompatible mocha version (1c2e718)

Features

  • add user feedback on uncaught error (6dd3d2e)
  • support node 19 (d102720)

11.6.0 (2022-10-22)

Bug Fixes

  • add missing configuration property (ee267c3)
  • handle absolute windows path when resolving url (b673238)
  • more portable line splitting for .env files (7f8d0d8)
  • normalize windows filename case (df29f33)
  • use all cap env variable name (b7f834f)
  • use file urls in NODE_OPTIONS (f0959d8)
  • use import.meta.url instead of require self package (3257c25)
  • use pure serialization for hash values (c652bd4)

Features

  • add configuration file when missing (1214979)
  • change default package exclusion (0a0bfa1)
  • consider SHELL env variable to define posix shell (32fd562)
  • default recorder is process instead of remote (341a1fa)
  • preserve parsed command in configuration-accessor (505c27b)
  • provide feedback if the stack overflows (7a4e2b6)
  • support node-fashion shell command option (48a0946)

11.5.3 (2022-10-07)

Bug Fixes

  • test for both utf8 and utf-8 in data url (50d9584)
  • update github link (e7ff866)

11.5.2 (2022-09-27)

Bug Fixes

  • resolve invalid format marker and detect future occurences (f7a4205)

11.5.1 (2022-09-22)

Bug Fixes

  • restore config id in schema for external installer (618ef2a)
  • send only one error to the backend on disconnect (1b42487)

Performance Improvements

  • lightweight source mapping (5f057f9)
  • load sources in the backend (521b293)

11.5.0 (2022-09-14)

Bug Fixes

  • account for file changes between fs calls (8fb5629)
  • avoid calling getters during serialization (7a23367)

Features

  • re-enable support for node 17 (e554d6e)

Performance Improvements

  • shorthand for begin/end group event pair (cf04077)

11.4.0 (2022-09-10)

Features

11.3.0 (2022-09-09)

Bug Fixes

Features

  • remove recording methods from the API (aa85b7d)
  • support eval instrumentation (02821b1)
  • write appmaps with formatted json (28b1df0)

11.2.0 (2022-08-16)

Features

  • add specific serialization data for array and hash (49da5d4)
  • capture http response body (a6f3ffe)
  • generate 1.8.0 appmaps (a931920)

11.1.0 (2022-07-04)

Features

  • always append the recorder name to the output directory (aff3ab1)

11.0.0 (2022-06-22)

Bug Fixes

  • sanitize language version before passing it to acorn (2595030)
  • support extension of unrecognized configuration field (8ee69b6)
  • use more robust import of acorn (e6b6e2d)

Features

  • allow extra root properties in configuration file (3cbcec0)
  • more lenient language and engine configuration field (f9eef3d)
  • support only string format for engine config field (838464e)
  • use appmap_dir and appmap_file instead of output config field (bcad7b7)
  • use the constant javascript string for language's config field (c28c273)
  • whitelist some external but expected root config properties (ddbb914)

BREAKING CHANGES

  • The output configuration field is no longer recognized.
  • It is no longer possible to provide a custom extension for appmap files.
  • name-version object format for engine configuration field is no longer supported
  • the agent will throw an error if the language configuration field is anything else than 'javascript'
  • It is no longer possible to tell acorn to parse the code to be instrumented as a particular ecmascript version. Instead, we now always use the latest version. This should not cause problems because ecmascript is backward-compatible.

10.1.0 (2022-06-07)

Bug Fixes

  • add missing separator in appmap path (8dedccf)
  • verify that toString method returned a string (ea17330)

Features

  • add log file as configuration option (b8551cc)
  • support top-level await in modules (60ee6e6)

10.0.1 (2022-02-18)

Bug Fixes

  • use write instead of end to show results (af3235f)

10.0.0 (2022-02-11)

Bug Fixes

Features

  • add recording methods to recorder api (2fcebda)
  • rename some API methods (61560d4)
  • tweak the API and update the reference doc (c518b17)

BREAKING CHANGES

  • createAppmap becomes createAppMap, appmap.startTrack becomes appmap.startRecording, and appmap.startTrack becomes appmap.stopRecording

9.4.4 (2022-01-29)

Bug Fixes

  • bin file is now commonjs instead of native module (f729934)
  • rename noop engine into engines in package.json (9d05d81)

9.4.3 (2022-01-26)

Bug Fixes

  • add glob to dependencies instead of devDependencies (2317abc)

9.4.2 (2022-01-21)

Bug Fixes

  • Improved node version compatibility (646692e)

9.4.1 (2022-01-19)

Bug Fixes

  • Fix the version constraints used by status (dfd2514)

9.4.0 (2022-01-17)

Bug Fixes

  • handles absolute windows path in sources of source maps (a4c89a3)

Features

  • commands are now executed via a shell rather than directly spawned (9e8cfa1)

9.3.1 (2022-01-12)

Bug Fixes

  • Add semver to package.json (c81163d)
  • Tighten node version restrictions (f45700f)

9.3.0 (2022-01-12)

Features

  • do not crash on invalid package.json (7926926)

9.2.0 (2022-01-11)

Features

  • proper support for extension-less node binary files in windows (3a5eaca)

9.1.2 (2022-01-10)

Bug Fixes

  • Allow CLI installation on Windows (8001465)

9.1.1 (2022-01-09)

Bug Fixes

  • failing assertion on identity of emit method (cd7817d)

Performance Improvements

  • avoid installing the agent twise in npm system test (b412f40)

9.1.0 (2022-01-07)

Features

  • change user-provided label format in comments (0ef6534)

9.0.1 (2022-01-06)

Bug Fixes

  • node --require needs explicit dot in relative paths (579ccdf)

9.0.0 (2022-01-06)

Features

BREAKING CHANGES

  • Commands are no longer interpreted using /bin/sh. Rather, they are understood as simply the path / name of an executable followed by its arguments. This the easiest and most portable approach and it should be sufficient for most cases. However, in the future we might want to use the npm approach where commands are interpreted by /bin/sh on unix platforms and cmd.exe on Windows platforms. We could also be using PowerShell on Windows and interpret the command as shell programs across all platforms.

8.8.4 (2022-01-04)

Bug Fixes

  • Get rid of top-level awaits (48d03b0)

8.8.3 (2021-12-24)

Bug Fixes

  • handle manufactured apply events which have a null location (2f07433)

8.8.2 (2021-12-15)

Bug Fixes

8.8.1 (2021-12-08)

Bug Fixes

  • avoid recording some http requests from the agent (d769574)

8.8.0 (2021-12-08)

Features

  • additional logging for diagnosing instrumentation filtering (d73d39a)

8.7.1 (2021-12-07)

Bug Fixes

  • sanitize basename before writting files (5f93d3e)

8.7.0 (2021-12-06)

Bug Fixes

  • more robust source location serialization via JSON (8e04712)

Features

  • enable all hooks by default (04a9940)

8.6.4 (2021-12-06)

Bug Fixes

  • better handle location urls which already have a hash segment (6374195)

8.6.3 (2021-12-04)

Bug Fixes

  • log instead of crash on location url which contain hash (5dd1c4b)

8.6.2 (2021-12-04)

Bug Fixes

  • log instead of crashing on unrecoverable parsing error (3b16f41)

8.6.1 (2021-12-04)

Bug Fixes

  • consistent default import of commonjs modules (8c237b2)

8.6.0 (2021-12-03)

Features

  • more advanced function filtering (448d80f)
  • switch default collapse-package-hiearchy to false (a82dcae)

8.5.0 (2021-12-02)

Features

  • add labels to functions in classmap (f4a2939)

8.4.4 (2021-12-02)

Bug Fixes

  • Correct default config (af9916c)
  • Honor backpressure in init (82466c2)

8.4.3 (2021-11-26)

Bug Fixes

  • Ensure full result gets written (0692a2e)

8.4.2 (2021-11-25)

Bug Fixes

  • Fix the status subcommand route (3efa57d)

8.4.1 (2021-11-24)

Bug Fixes

  • Make the status subcommand available (ea2d3b5)

8.4.0 (2021-11-24)

Features

8.3.0 (2021-11-19)

Features

  • add collapse-package-hierarchy configuration field (1b07687)

8.2.5 (2021-11-17)

Bug Fixes

  • build now start from scratch dist folder (2520cf7)

8.2.4 (2021-11-17)

Bug Fixes

  • warn instead of crash when fail to parse git description (431ca41)

8.2.3 (2021-11-16)

Bug Fixes

8.2.2 (2021-11-15)

Bug Fixes

  • add sometimes missing function in classmap (696741e)

8.2.1 (2021-11-12)

Bug Fixes

  • tweak some shell commands (e9fd83d)

8.2.0 (2021-11-12)

Features

  • pruning now acts on classes and packages. (23c2207)

8.1.1 (2021-11-12)

Bug Fixes

  • support for relative paths in source map data url (8b2c082)

8.1.0 (2021-11-12)

Features

  • improved exclusion mechanism (b14e965)
  • path package specifier is now recursive by default (cbf6b34)
  • remove setup command from help message (669fc75)

8.0.1 (2021-11-12)

Bug Fixes

  • only print ignore message when loader is enabled (86b36c4)

8.0.0 (2021-11-11)

Features

  • scenario now discriminate against dedicated key rather than name (f2ff33b)

BREAKING CHANGES

  • Scenarios are now entered as an object rather than an array. The scenario configuration field is a regular expression that is tested agaisnt the keys of this object. Before it was tested against the name of the app (the name configuration field recently became the name of the app instead of the name of the appmap) which did not make much sense.

7.3.1 (2021-11-11)

Bug Fixes

  • avoid npx to launch test-turtle (13a350e)
  • node requirement (cc8466e)

7.3.0 (2021-11-11)

Features

  • support for more CLI named argument (d1428e3)

7.2.0 (2021-11-11)

Features

  • support --help and --version aliases (0bd7f74)

7.1.2 (2021-11-11)

Bug Fixes

  • now executable help prints help instead of version (923fadc)

7.1.1 (2021-11-10)

Bug Fixes

  • files are not instrumented if not listed in packages (ef7d9a0)

7.1.0 (2021-11-10)

Features

  • help and version in CLI (3bb79b2)

7.0.0 (2021-11-10)

Bug Fixes

  • standardized some configuration fields (f8b2c35)

BREAKING CHANGES

  • Configuration fields app and name are respectively renamed to name and map-name.

6.7.0 (2021-11-10)

Features

  • more lenient source map data url parsing (fb57927)

6.6.0 (2021-11-10)

Features

  • add aliases to CLI (e2ea710)
  • dynamic default value for output directory (1300f84)

6.5.0 (2021-11-09)

Features

6.4.0 (2021-11-09)

Bug Fixes

  • cwd is now attached to command rather than command-options (add102f)
  • tweak default configuration fields (7eff84c)

Features

  • intercept-track-port now accepts a regular expression (92c583e)
  • support input command as positional arguments (80b365a)
  • warning instead of failure on missing sql npm package (2c5e5eb)

6.3.3 (2021-11-08)

Bug Fixes

  • support for new node module loader hooks (99f0d9e)

6.3.2 (2021-11-02)

Bug Fixes

  • valid urls for manufactured events (95eb0b7)

6.3.1 (2021-11-02)

Bug Fixes

  • no longer crash on package url other than 'data:' or 'file:' (6233055)
  • warning instead of failing upon http activity after closing (bbc3aca)

6.3.0 (2021-11-02)

Features

  • check mocha version before yielding control to mocha cli (3bfb515)

6.2.0 (2021-11-01)

Features

  • support for data url in source maps (ea52da2)

6.1.0 (2021-10-29)

Features

  • remove constraint to share recorder accross selected scenario (aa0f0c7)

6.0.0 (2021-10-28)

Features

  • revamp scenario feature in the configuration (e31411e)

BREAKING CHANGES

  • Revamped scenario feature in the configuration. The configuration format accepts a command field (parsed arrays are no longer supported). Scenarios are just configuration (the fork and spawn format are no longer supported). The mode configuration field has been removed (redundant with the recorder field).

5.2.2 (2021-10-25)

Bug Fixes

  • make sure to not access 'this' in child constructors (4b3969a)

5.2.1 (2021-10-25)

Bug Fixes

  • use posix-socket-messaging instead of fs.writeSync (ed2acf7)

5.2.0 (2021-10-24)

Bug Fixes

  • remove files from package.json, use npm ignore instead (4fb337e)

Features

  • in case of closure source map location miss check one column after (292c1d2)

5.1.2 (2021-10-24)

Bug Fixes

  • code entities in objects properties are no longer discarded (b5d3b08)

5.1.1 (2021-10-24)

Bug Fixes

5.1.0 (2021-10-22)

Bug Fixes

  • normalization path now handles properly multiple '..' in succession (4d70273)

Features

  • recovery when failing to read files related to source map (2decdeb)

5.0.0 (2021-10-22)

Features

BREAKING CHANGES

  • configuration field 'packages' acts on sources instead on generated javascript code
  • change configuration field source into inline-source

4.0.1 (2021-10-08)

Bug Fixes

  • integration tests now fail on promise rejection (4f2c03c)

4.0.0 (2021-10-08)

Bug Fixes

  • abandon unknown group strategy, with a slightly more complex instrumentation correct groups can be retrieved (2883230)
  • adapt hook query to new sync api (8c04898)
  • add @appland/appmap-validate in production dependencies (60b96dc)
  • add before/after events in each track's slice (0309e07)
  • add lib/abomination.js file in npm package (4c08891)
  • add missing storables in some request responses (76930f7)
  • add parameters into event.message instead of event.http_server_request.paramaters (8cb2c2d)
  • add shallow information to message schema (671bf9d)
  • add shallow to message >> trace >> file (6cf4725)
  • basic mistakes in bin (67ecf29)
  • better adhere to specification for http hooking (def6c04)
  • better adhere to the doc (cdff50c)
  • better emitter spying which relies on overwritting emit instead of hacky tricks (1fd4a89)
  • bugs related to integration (623f667)
  • bump to appmap v1.6.0 and truncate value in parameters (bafab9f)
  • bundle and fork events (ee9bfd2)
  • continuous indexing (477892c)
  • correct a bug in the manufactoring algorithm (1027446)
  • correct manufactured data for trace completion (c69534e)
  • correct wrong key for overwritting events (2ed6675)
  • cwd-agnostique builder (6e3b820)
  • disable automated asynchronous jump for the time being (f937971)
  • don't crash anymore on anonymous names (9920000)
  • enable mysql test (another mysql server was running on local system) (9e3fb06)
  • event id now better reflect the timeline (09aaaae)
  • fake prompts now works as real prompts (df09e44)
  • fix and test client component (ee9957e)
  • fix and test client http2 (3068dc8)
  • fix and test http1 server component (f815348)
  • fix and test instrumentation (83bc534)
  • fix and test interpretation (fa5563b)
  • fix and test tcp server (e36f370)
  • fix bin file (89cb2ef)
  • fix corner case where done stuff was marked too early (40da18b)
  • flaten protype for backend session's response (support object rest) (5355aaf)
  • force npx mocha to always spawn (258c0fb)
  • function expression without identifier are now correctly marked as anonymous (ba84081)
  • generate warning instead of error when attempting to send a message after session end (846fc7c)
  • group are now correctly communicated between the hook and the trace (7a73f5c)
  • group for after await jump is now null instead of invalid (e00c6d1)
  • handle case where asynchronous id is declared but does not appear (258b6a7)
  • handle hashbang (96fe08b)
  • handle manufactured event which has no associated function in the appmap (afdf81a)
  • handle the case where events are fired within the initial request event of a server (1beb685)
  • http request's message field is now an array of parameter as it should (70ed1c6)
  • http server response bundle now encompass all listeners (2654b7b)
  • improve transparency of sqlite3 hooks (4cac0c8)
  • integration (3ce3d91)
  • invalid logging format (4e77c08)
  • keep jumps within marker bundles (but remove them bundle is skipped) (ea304d9)
  • made event.method_id and event.defined_class match corresponding object in the classMap (27e1a86)
  • make sure groups do not mess up jumps ordering (6a75df0)
  • minor issues in config questionnaire (78dd9d9)
  • more robust and faster manufactoring algorithm (dee4833)
  • multiple fixes on instrumentation component, now completely tested (3799538)
  • no longer output callstack frames but a flat list of stack-ordered events (ddd81df)
  • now metadata better adheres to appmap spec (e51e674)
  • numerous fixes on: util, expect, and log (8703dc6)
  • portable path in test (1f92216)
  • prevent null values in recording object (bdf67bc)
  • proble with cwd in batch (1f645d8)
  • properly use the fact that it is the module nature and not how it is imported that defines in which cache it will be be placed (cjs vs esm) (cf5f4e4)
  • remove duplicate stout from main test (308a9da)
  • remove node-version from configuration.childeren (5d72714)
  • remove wrong assumption that async hooks are never nested (f66a8b2)
  • resolved conflicts (d39070c)
  • set encoding for stderr && allow for normalized hook format (efda2c8)
  • set pid to runtime (5621718)
  • setup entry point (e24c622)
  • several integration issues (0bbff44)
  • sort events based on ids before writting (be257f9)
  • specific event for thread notifying link between threads (99a685f)
  • support for default values in function parameters (af7c978)
  • test and fix new cleaned util (5cd83c5)
  • test storage (684ab91)
  • time is now expressed in second rather than in milliseconds (e370670)
  • update interpretation, client and storage with the new dependency injection model (33904ba)
  • update json schema (a015c74)
  • update mysql test to look more like postgres test (93b909b)
  • update server to new dependencies injection model (13a7e04)
  • update trace generation with new configuration output format (3af8b17)
  • update validate with new schema (a1324fb)
  • updating instrumentation to comnponents (8181146)
  • use a unique thread_id for every event handling (1c9ab09)
  • util fixed and tested (89b38b5)
  • various bugs detected by intergration (602c797)
  • various fixes (3ad558d)
  • various small fixes (c957d22)

Code Refactoring

  • explicit the two separate channels: trace vs track (91f424d)

Features

  • (recursively) add output directory if it does not exist (b36abc2)
  • add bundle/jump model into the schema (fabb4a5)
  • add configuration option to enable source (disable by default)) (313a4cd)
  • add local-track-port as a forward to track-port (which does not require a session) (b235617)
  • add log levels (d9d6d9e)
  • add log-level as configuration option (dcdcbfe)
  • add shallow to file message && deactivate mysql test because of unknown failure (d703269)
  • add SIGINT handling to gracefully shutdown (1e68950)
  • add SIGINT handling to interrupt scenarios execution (4fd1cfc)
  • add source and comment for functions in classmap (89c75ee)
  • add two events: bundle and fork for ordering the stack (75f8866)
  • also verify os and node version for setup (61bf9b3)
  • always provide a defined_class name for events (299c423)
  • backend glue component and update server (6da7831)
  • bake validation in and make available as configuration option (11a8f62)
  • better default behaviour for configuration (bef0305)
  • better error reporting when failing json schema (b8aed5b)
  • change mode configuration field (c01e596)
  • CLI to help creating configuration files (badeeb9)
  • config CLI when config file is missing (9d53ee3)
  • configuration can be extended with a null directory, and it will crash if the directory was needed (4c9ae3e)
  • configuration support naming children which are now called scenarios (7429d33)
  • default protocol: inline (0b5216a)
  • dynamic component build (c5be9b7)
  • easier to understand configuration (85a106b)
  • either util library (cc6a99a)
  • engine detection (fa5f343)
  • expect is now a component and have different behaviours (fd8f4ab)
  • experiment bundle/jump on sqlite3 (441c180)
  • explicit diff between disabled port (null) and random port (0) (55c3dca)
  • express (6d155d2)
  • extended capabilities of manual recording with remote recording (f2a20cc)
  • files are now packages instead of classes, also the classMap is now cleanup from agent's specific fields (8ddfc27)
  • fill some gaps in entry points but not tested (12c2b50)
  • first attempt at main (4c04d8c)
  • frame data structure (bdc464b)
  • function names are now duplicated into method_id (af6de0e)
  • hook mysql client (8368a44)
  • http hook (f9d371f)
  • implement and test postgres hooking (77fd51c)
  • implement and test runner (d2f1793)
  • implement asynchronous jump in trace post-processing (1089ca6)
  • implement manufacturing, event remain to be tested (2966e95)
  • implement sqlite3 hook (87c8bee)
  • log is now a component and have different behaviours (a054ce2)
  • log level configurable as environment variable (82b6fbe)
  • made available remote server (9cb8c50)
  • manual recorder (e50e583)
  • match document configuration options (65226b3)
  • metadata (168a2c5)
  • mocha recorder (9621c54)
  • more automated build process which provides default components (57fe80e)
  • more explicit output options (and remove indent) (045c414)
  • mysql query hook (fa08ff4)
  • new callstack ordering (dfb3abb)
  • new empty recorder for supporting http remote recording requests (b13fc7f)
  • new event data compilation (c6db2e4)
  • pg hook (43c465c)
  • port configuration from main branch (f716621)
  • port hook for grouping asynchronous events (3be8d94)
  • port hook module from main branch (10f29d1)
  • port validation from main branch (7a44554)
  • post processing of event trace to recover stack structure (9850cc9)
  • progress on node entry point (82532e1)
  • progress on post processing the trace (d7143c9)
  • propagate bundle/jump model to hooks (30ff104)
  • provide a type tag to anonymous names (452154f)
  • provide more information when a json schema failed (cf99888)
  • provide unique names (counter-based) to anonymous code objects (b6657f4)
  • relative paths in classMap and events instead of absolute paths (089ea6e)
  • reverse defined_class and method_id field && disable toString on functions (58ed1a1)
  • revert to duplicating names for function code objects (efd3936)
  • serilization now better matches requirements in the appmap spec (6f842bd)
  • setup clo (8cdf658)
  • shallow mode (a6d03b9)
  • simpler more inline with the spec naming (4c9f58b)
  • sketch of manufacture (f78b719)
  • small adjustements to facilate implementing entry points (11f4a06)
  • split trace between tracks (5e119ec)
  • sqlite3 hook (92306ea)
  • start porting configuration (d4cfbdc)
  • starting a track now requires a path to solve relative paths (90a5fd2)
  • static build can be scoped to reduce footprint (e0e83b3)
  • stored vs served appmap are not longer tied to traceClient vs trackClient (4b549fb)
  • strip extension when naming appmap file based on main path (149fda6)
  • support esm on mocha thanks to the abomination (d92865c)
  • support express normalized path and parameters (8f2bdad)
  • support for arbitrary slice of trace (5978fd7)
  • support for regexp in exclude elements (0217d0f)
  • support for regular expressions in exclude (a4a7ab0)
  • support for remote recording on batch (344485d)
  • support intercept port for remote recording (2279a62)
  • switch to fuction name only in method_id (309ce0a)
  • title (14eb852)
  • trace post processing of new bundle/jump model (5f925ce)
  • use @ character to denote the name of an unbound node (b3f3b3b)
  • warn instead of fail when missing conf file (486a7cb)

Performance Improvements

  • lower time accuracy to microsecond (3463ce8)
  • more compact message format (backend) (4805cb8)

BREAKING CHANGES

  • remove enabled and mode configuration field
  • Configuration changes: 'ordering' instead of 'hooks.group' and 'processes' separated from 'enabled'.
  • rename configuration keys: port -> trace-port, protocol -> trace-protocol, and remote-recording-port -> track-port.
  • The trace should be looking like a single big trace now.

3.2.0 (2021-05-28)

Features

  • support for node12 (latest still maintained node version)) (74d1056)

3.1.2 (2021-05-21)

Bug Fixes

3.1.1 (2021-05-21)

Bug Fixes

  • bump to push new npm version (f4bc231)

3.1.0 (2021-05-21)

Bug Fixes

  • catch network error (due to ECONRESET) and less globs and more regexp) (7a14afb)
  • correct a few bugs where the client and the server protocol did not match (2c44044)
  • fix infinite http recursion and change conf format to conform to initial values (4ca1ff9)
  • test child spawning and correct a few bugs linked to client expect checks (471b955)
  • various bug fixes and better seperation of errors between the base and the meta layer (cc80044)

Features

  • add hook for http request (3421530)
  • add https hooking (598d87e)
  • add inline extends field for configuration and embeded cwd (e4addf3)
  • cosmetic improvements (eafc86a)
  • provide more options to the user to spawn child processes (61522a3)

3.0.0 (2021-05-13)

Bug Fixes

  • eslint (4383c7e)
  • eslint the entire project (e230a6b)
  • merge from ci (615afde)
  • more robust error reporting for configuration throuhg haskell--inspired either (31b9a68)
  • updated instrumentation to new error handling and runtime variables (f28eefc)

Features

  • add termination for entire dispatcher to ensure appmaps are saved on disk (c2fb027)
  • done refactoring the server still need testing (f333032)
  • extensive refactoring of the client to support flexible recording (18974f7)
  • user can now spawn multiple child processes (c338c29)

BREAKING CHANGES

  • The way to launch a process-wide client has been modified. The client can now be recorded through a library as well.

2.12.1 (2021-04-30)

Performance Improvements

  • disabled processes will no longer hook require/import (1037385)

2.12.0 (2021-04-29)

Features

  • provide more options to output appmaps (9046f0e)

2.11.0 (2021-04-29)

Features

  • support for glob pattern for the 'enabled' configuration option (707cc97)

2.10.0 (2021-04-29)

Bug Fixes

  • update build with latest changes (57b766a)

Features

  • it is now possible to disabled recording on process-scale (8b45199)

2.9.0 (2021-04-28)

Features

  • cache to prevent appmaps from overwritting themselves and add default map name (8724059)

2.8.1 (2021-04-28)

Bug Fixes

  • remove legacy code dependent on node's argument rather than NODE_OPTIONS (0ce1b42)

2.8.0 (2021-04-28)

Features

  • use NODE_OPTIONS instead of node's argv which provides automatic support for child_process (b9c1dd3)

2.7.1 (2021-04-28)

Bug Fixes

  • fix argv processing in bin/index (bab6a53)

2.7.0 (2021-04-28)

Bug Fixes

Features

  • better handling of node version to diagnose requirements issue (cd900ac)

2.6.0 (2021-04-27)

Features

  • improved command line interface (5ed31b4)

2.5.0 (2021-04-22)

Bug Fixes

Features

  • all metadata are now included in config and initialization query provides more info (cc4640f)

2.4.0 (2021-04-21)

Features

  • propagate hook-child-process cli argument to forked processes (ea6af3b)

2.3.0 (2021-04-21)

Features

  • child_process methods can now be hooked so that their spawn processes are also instrumented (f34132b)

2.2.0 (2021-04-20)

Bug Fixes

  • update remaining of the application to new configuration feature (6fed62b)

Features

  • add support for package listing and exclusions and use json schema validator (ffa3c3f)

2.1.2 (2021-04-19)

Bug Fixes

  • update posix-socket-messaging (625fd8c)

2.1.1 (2021-04-15)

Bug Fixes

2.1.0 (2021-04-15)

Bug Fixes

Features

  • added new communication channel between server and client (35a7ff0)
  • replace fork channel by messaging channel (31e85c2)

Performance Improvements

  • http optimized empty body when null return (d3be7ec)

2.0.1 (2021-04-04)

Bug Fixes

  • correct outdated global variable (PROCESS_ID and SEND) (a784eaa)

2.0.0 (2021-04-04)

Bug Fixes

  • added current env variables to spawn inline client which is necessary for PATH) (dc4224e)
  • correct some erroneous appmap methods (4361823)
  • fix inversion argument between client and server for instrument query and lint-related fixes (2148505)
  • forgot some files in the big refactoring commit (aef71ed)
  • lint all (23471dd)
  • lint lib (3b6a05b)
  • more linent test on current repostory url (failed with travis)) (24dd21b)
  • start testing the client (c581b88)

Features

  • config system is now more flexible (465a918)
  • easier bin call (86f1b6d)
  • implement hooks for commonjs and native modules and refactor the architecture (14d1cee)

BREAKING CHANGES

  • Some old environment variables no longer work
  • The way the agent is invoked is completely changed

1.0.2 (2021-03-30)

Bug Fixes

1.0.1 (2021-03-30)

Bug Fixes

  • added bin to package json (6ac7995)

1.0.0 (2021-03-30)

Features

  • match appmap name with target file name (4619f3d)